示例#1
0
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)
示例#2
0
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))