def notificationsettings(request, template_name='users/settings.html',settings_form=UserSettingsForm): user = get_object_or_404(SiteUser, id=request.user.id) try: instance = UserSettings.objects.get(pk=user.id) except UserSettings.DoesNotExist: instance = UserSettings() post_redirect = reverse('app.users.views.settings') selected_notifications = request.POST.getlist('notification') default_notifications = NotificationType.objects.all() for notification in default_notifications: if str(notification.id) in selected_notifications: notification.is_default_enabled = True else: notification.is_default_enabled = False instance.set_notification_settings(default_notifications) return redirect(post_redirect)
def settings(request, template_name='users/settings.html',settings_form=UserSettingsForm): user = get_object_or_404(SiteUser, id=request.user.id) try: instance = UserSettings.objects.get(pk=user.id) except UserSettings.DoesNotExist: instance = UserSettings() if request.method == "POST": form = settings_form(request.POST, instance=instance) if form.is_valid(): opts = {} opts['user']=user form.save(**opts) else: form = settings_form(instance=instance) return render_to_response(template_name, {'user': user, 'form':form, 'notifications':instance.get_notification_settings()}, context_instance=RequestContext(request))