views.py 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. from django.core.urlresolvers import reverse
  2. from django.shortcuts import redirect
  3. from django.template import RequestContext
  4. from django.utils.translation import ugettext as _
  5. from misago.forms import FormLayout
  6. from misago.messages import Message
  7. from misago.authn.decorators import block_guest
  8. from misago.usercp.forms import UserForumOptionsForm
  9. @block_guest
  10. def options(request):
  11. message = request.messages.get_message('usercp_options')
  12. if request.method == 'POST':
  13. form = UserForumOptionsForm(request.POST, request=request)
  14. if form.is_valid():
  15. request.user.receive_newsletters = form.cleaned_data['newsletters']
  16. request.user.hide_activity = form.cleaned_data['hide_activity']
  17. request.user.timezone = form.cleaned_data['timezone']
  18. request.user.save(force_update=True)
  19. request.messages.set_flash(Message(_("Forum options have been changed.")), 'success', 'usercp_options')
  20. return redirect(reverse('usercp'))
  21. message = Message(form.non_field_errors()[0], 'error')
  22. else:
  23. form = UserForumOptionsForm(request=request,initial={
  24. 'newsletters': request.user.receive_newsletters,
  25. 'hide_activity': request.user.hide_activity,
  26. 'timezone': request.user.timezone,
  27. })
  28. return request.theme.render_to_response('usercp/options.html',
  29. {
  30. 'message': message,
  31. 'tab': 'options',
  32. 'form': FormLayout(form)
  33. },
  34. context_instance=RequestContext(request));
  35. @block_guest
  36. def credentials(request):
  37. return request.theme.render_to_response('usercp/credentials.html',
  38. {
  39. 'tab': 'credentials',
  40. },
  41. context_instance=RequestContext(request));
  42. @block_guest
  43. def username(request):
  44. return request.theme.render_to_response('usercp/username.html',
  45. {
  46. 'tab': 'username',
  47. },
  48. context_instance=RequestContext(request));
  49. @block_guest
  50. def avatar(request):
  51. # Intercept all requests if we cant use avatar
  52. if request.user.avatar_ban:
  53. return request.theme.render_to_response('usercp/avatar_banned.html',
  54. {'tab': 'avatar'},
  55. context_instance=RequestContext(request));
  56. return request.theme.render_to_response('usercp/avatar.html',
  57. {
  58. 'tab': 'avatar',
  59. },
  60. context_instance=RequestContext(request));
  61. @block_guest
  62. def signature(request):
  63. # Intercept all requests if we cant use signature
  64. if request.user.avatar_ban:
  65. return request.theme.render_to_response('usercp/signature_banned.html',
  66. {'tab': 'signature'},
  67. context_instance=RequestContext(request));
  68. return request.theme.render_to_response('usercp/signature.html',
  69. {
  70. 'tab': 'signature',
  71. },
  72. context_instance=RequestContext(request));
  73. @block_guest
  74. def ignored(request):
  75. return request.theme.render_to_response('usercp/ignored.html',
  76. {
  77. 'tab': 'ignored',
  78. },
  79. context_instance=RequestContext(request));