views.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django.core.urlresolvers import reverse
  2. from django.shortcuts import redirect
  3. from django.utils.translation import ugettext as _
  4. from misago.authn.decorators import block_guest
  5. from misago.forms import FormLayout
  6. from misago.markdown import signature_markdown
  7. from misago.messages import Message
  8. from misago.usercp.template import RequestContext
  9. from misago.usercp.signature.forms import SignatureForm
  10. from misago.views import error404
  11. @block_guest
  12. def signature(request):
  13. # Intercept all requests if we cant use signature
  14. if request.user.signature_ban:
  15. return request.theme.render_to_response('usercp/signature_banned.html',
  16. context_instance=RequestContext(request, {
  17. 'tab': 'signature',
  18. }));
  19. siggy_text = ''
  20. message = request.messages.get_message('usercp_signature')
  21. if request.method == 'POST':
  22. form = SignatureForm(request.POST, request=request, initial={'signature': request.user.signature})
  23. if form.is_valid():
  24. request.user.signature = form.cleaned_data['signature']
  25. if request.user.signature:
  26. request.user.signature_preparsed = signature_markdown(request.acl,
  27. request.user.signature)
  28. else:
  29. request.user.signature_preparsed = None
  30. request.user.save(force_update=True)
  31. request.messages.set_flash(Message(_("Your signature has been changed.")), 'success', 'usercp_signature')
  32. return redirect(reverse('usercp_signature'))
  33. else:
  34. message = Message(form.non_field_errors()[0], 'error')
  35. else:
  36. form = SignatureForm(request=request, initial={'signature': request.user.signature})
  37. return request.theme.render_to_response('usercp/signature.html',
  38. context_instance=RequestContext(request, {
  39. 'message': message,
  40. 'tab': 'signature',
  41. 'form': FormLayout(form),
  42. }));