views.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.core.urlresolvers import reverse
  2. from django.shortcuts import redirect
  3. from django.utils.translation import ugettext as _
  4. from misago import messages
  5. from misago.decorators import block_guest
  6. from misago.messages import Message
  7. from misago.shortcuts import render_to_response
  8. from misago.apps.usercp.options.forms import UserForumOptionsForm
  9. from misago.apps.usercp.template import RequestContext
  10. @block_guest
  11. def options(request):
  12. message = request.messages.get_message('usercp_options')
  13. if request.method == 'POST':
  14. form = UserForumOptionsForm(request.POST, request=request)
  15. if form.is_valid():
  16. request.user.hide_activity = form.cleaned_data['hide_activity']
  17. request.user.allow_pds = form.cleaned_data['allow_pds']
  18. request.user.receive_newsletters = form.cleaned_data['newsletters']
  19. request.user.timezone = form.cleaned_data['timezone']
  20. request.user.subscribe_start = form.cleaned_data['subscribe_start']
  21. request.user.subscribe_reply = form.cleaned_data['subscribe_reply']
  22. request.user.save(force_update=True)
  23. messages.success(request, _("Forum options have been changed."), 'usercp_options')
  24. return redirect(reverse('usercp'))
  25. message = Message(form.non_field_errors()[0], messages.ERROR)
  26. else:
  27. form = UserForumOptionsForm(request=request, initial={
  28. 'newsletters': request.user.receive_newsletters,
  29. 'hide_activity': request.user.hide_activity,
  30. 'allow_pds': request.user.allow_pds,
  31. 'timezone': request.user.timezone,
  32. 'subscribe_start': request.user.subscribe_start,
  33. 'subscribe_reply': request.user.subscribe_reply,
  34. })
  35. return render_to_response('usercp/options.html',
  36. context_instance=RequestContext(request, {
  37. 'message': message,
  38. 'tab': 'options',
  39. 'form': form}));