posting.py 1.6 KB

12345678910111213141516171819202122232425262728293031
  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.posting import NewThreadBaseView, EditThreadBaseView, NewReplyBaseView, EditReplyBaseView
  5. from misago.messages import Message
  6. from misago.models import Forum, Thread, Post
  7. from misago.apps.announcements.forms import NewThreadForm, EditThreadForm
  8. from misago.apps.announcements.mixins import TypeMixin
  9. class NewThreadView(NewThreadBaseView, TypeMixin):
  10. action = 'new_thread'
  11. form_type = NewThreadForm
  12. def set_forum_context(self):
  13. self.forum = Forum.objects.get(special='announcements')
  14. def response(self):
  15. if self.post.moderated:
  16. self.request.messages.set_flash(Message(_("New announcement has been posted. It will be hidden from other members until moderator reviews it.")), 'success', 'threads')
  17. else:
  18. self.request.messages.set_flash(Message(_("New announcement has been posted.")), 'success', 'threads')
  19. return redirect(reverse('announcement', kwargs={'thread': self.thread.pk, 'slug': self.thread.slug}) + ('#post-%s' % self.post.pk))
  20. class EditThreadView(EditThreadBaseView, TypeMixin):
  21. action = 'edit_thread'
  22. form_type = EditThreadForm
  23. def response(self):
  24. self.request.messages.set_flash(Message(_("Announcement has been edited.")), 'success', 'threads_%s' % self.post.pk)
  25. return redirect(reverse('announcement', kwargs={'thread': self.thread.pk, 'slug': self.thread.slug}) + ('#post-%s' % self.post.pk))