moderationqueue.py 943 B

1234567891011121314151617181920212223242526
  1. from misago.categories import PRIVATE_THREADS_ROOT_NAME
  2. from . import PostingEndpoint, PostingMiddleware
  3. class ModerationQueueMiddleware(PostingMiddleware):
  4. def use_this_middleware(self):
  5. try:
  6. tree_name = self.tree_name
  7. except AttributeError:
  8. tree_name = self.thread.category.thread_type.root_name
  9. return tree_name != PRIVATE_THREADS_ROOT_NAME
  10. def save(self, serializer):
  11. if self.mode == PostingEndpoint.START:
  12. self.post.is_unapproved = self.thread.category.acl['require_threads_approval']
  13. if self.mode == PostingEndpoint.REPLY:
  14. self.post.is_unapproved = self.thread.category.acl['require_replies_approval']
  15. if self.mode == PostingEndpoint.EDIT:
  16. self.post.is_unapproved = self.thread.category.acl['require_edits_approval']
  17. if self.post.is_unapproved:
  18. self.post.update_fields.append('is_unapproved')