hide.py 779 B

12345678910111213141516171819202122
  1. from . import PostingEndpoint, PostingMiddleware
  2. from ... import moderation
  3. class HideMiddleware(PostingMiddleware):
  4. def use_this_middleware(self):
  5. return self.mode == PostingEndpoint.START and 'hide' in self.request.data
  6. def post_save(self, serializer):
  7. if self.thread.category.acl['can_hide_threads']:
  8. try:
  9. hide = bool(self.request.data['hide'])
  10. except (TypeError, ValueError):
  11. hide = False
  12. if hide:
  13. moderation.hide_thread(self.request, self.thread)
  14. self.thread.update_all = True
  15. self.thread.save(update_fields=['is_hidden'])
  16. self.thread.category.synchronize()
  17. self.thread.category.update_all = True