Add the ability to add new subscriptions.

(imported from commit 0a7fdc17087240b13631627a053c580c2e4b5319)
This commit is contained in:
Jessica McKellar 2012-08-30 14:00:04 -04:00
parent 7e56e7a0f4
commit 99925f4aaf
3 changed files with 52 additions and 1 deletions

View File

@ -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/')})

View File

@ -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 %}

View File

@ -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'))