posting.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from django.core.urlresolvers import reverse
  2. from django.shortcuts import redirect
  3. from django.utils.translation import ugettext as _
  4. from misago.apps.threadtype.mixins import RedirectToPostMixin
  5. from misago.apps.threadtype.posting import NewThreadBaseView
  6. from misago.messages import Message
  7. from misago.models import Forum, Thread, Post
  8. from misago.apps.threads.mixins import TypeMixin
  9. class NewThreadView(NewThreadBaseView, TypeMixin):
  10. action = 'new_thread'
  11. def set_context(self):
  12. self.forum = Forum.objects.get(pk=self.kwargs.get('forum'), type='forum')
  13. self.request.acl.forums.allow_forum_view(self.forum)
  14. self.proxy = Forum.objects.parents_aware_forum(self.forum)
  15. self.request.acl.threads.allow_new_threads(self.proxy)
  16. def response(self):
  17. # Set flash and redirect user to his post
  18. if self.post.moderated:
  19. self.request.messages.set_flash(Message(_("New thread has been posted. It will be hidden from other members until moderator reviews it.")), 'success', 'threads')
  20. else:
  21. self.request.messages.set_flash(Message(_("New thread has been posted.")), 'success', 'threads')
  22. return redirect(reverse('thread', kwargs={'thread': self.thread.pk, 'slug': self.thread.slug}) + ('#post-%s' % self.post.pk))
  23. class EditThreadView(NewThreadBaseView, TypeMixin):
  24. pass
  25. class NewReplyView(NewThreadBaseView, TypeMixin):
  26. pass
  27. class EditReplyView(NewThreadBaseView, TypeMixin):
  28. pass