mirror of
https://github.com/zulip/zulip.git
synced 2026-07-03 21:10:12 +08:00
Add the ability to add new subscriptions.
(imported from commit 0a7fdc17087240b13631627a053c580c2e4b5319)
This commit is contained in:
parent
7e56e7a0f4
commit
99925f4aaf
@ -18,6 +18,7 @@ urlpatterns = patterns('',
|
||||
url(r'^accounts/register/', 'zephyr.views.register', name='register'),
|
||||
url(r'^subscriptions/$', 'zephyr.views.subscriptions', name='subscriptions'),
|
||||
url(r'^subscriptions/manage/$', 'zephyr.views.manage_subscriptions', name='manage_subscriptions'),
|
||||
url(r'^subscriptions/add/$', 'zephyr.views.add_subscriptions', name='add_subscriptions'),
|
||||
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
|
||||
{'document_root': os.path.join(settings.SITE_ROOT, '..', 'zephyr', 'static/')})
|
||||
|
||||
|
||||
@ -34,4 +34,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1>Add new subscriptions</h1>
|
||||
<div class="row-fluid">
|
||||
<div id="current_subscriptions" class="span12">
|
||||
<form action="/subscriptions/add/" method="post" class="subscriptions">{% csrf_token %}
|
||||
<label>Please enter a comma-separated list of classes</label>
|
||||
<input type="text" name="new_subscriptions" id="new_subscriptions" value="" /><br />
|
||||
<input type="submit" name="add_subscriptions" value="Add subscriptions" class="btn" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -162,9 +162,48 @@ def manage_subscriptions(request):
|
||||
unsubs = request.POST.getlist('subscription')
|
||||
for sub_name in unsubs:
|
||||
zephyr_class = ZephyrClass.objects.get(name=sub_name)
|
||||
recipient = Recipient.objects.get(user_or_class=zephyr_class.id, type="class")
|
||||
subscription = Subscription.objects.get(
|
||||
userprofile_id=user_profile.id, recipient_id=zephyr_class.id)
|
||||
userprofile_id=user_profile.id, recipient_id=recipient)
|
||||
subscription.active = False
|
||||
subscription.save()
|
||||
|
||||
return HttpResponseRedirect(reverse('zephyr.views.subscriptions'))
|
||||
|
||||
@login_required
|
||||
def add_subscriptions(request):
|
||||
if not request.POST:
|
||||
# Do something reasonable.
|
||||
return
|
||||
user_profile = UserProfile.objects.get(user=request.user)
|
||||
|
||||
new_subs = request.POST.get('new_subscriptions')
|
||||
if not new_subs:
|
||||
return HttpResponseRedirect(reverse('zephyr.views.subscriptions'))
|
||||
|
||||
for sub_name in new_subs.split(","):
|
||||
zephyr_class = ZephyrClass.objects.filter(name=sub_name)
|
||||
if zephyr_class:
|
||||
zephyr_class = zephyr_class[0]
|
||||
else:
|
||||
zephyr_class = ZephyrClass()
|
||||
zephyr_class.name = sub_name
|
||||
zephyr_class.save()
|
||||
|
||||
recipient = Recipient()
|
||||
recipient.user_or_class = zephyr_class.pk
|
||||
recipient.type = "class"
|
||||
recipient.save()
|
||||
|
||||
subscription = Subscription.objects.filter(userprofile_id=user_profile, recipient_id=zephyr_class.id)
|
||||
if subscription:
|
||||
subscription = subscription[0]
|
||||
subscription.active = True
|
||||
subscription.save()
|
||||
else:
|
||||
new_subscription = Subscription()
|
||||
new_subscription.userprofile_id = user_profile
|
||||
new_subscription.recipient_id = recipient
|
||||
new_subscription.save()
|
||||
|
||||
return HttpResponseRedirect(reverse('zephyr.views.subscriptions'))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user