savechanges.py 852 B

12345678910111213141516171819202122232425262728
  1. from misago.threads.posting import PostingMiddleware
  2. class SaveChangesMiddleware(PostingMiddleware):
  3. def __init__(self, **kwargs):
  4. super(SaveChangesMiddleware, self).__init__(**kwargs)
  5. self.user.save_model = False
  6. self.forum.save_model = False
  7. self.thread.save_model = False
  8. self.post.save_model = False
  9. self.user.update_fields = []
  10. self.forum.update_fields = []
  11. self.thread.update_fields = []
  12. self.post.update_fields = []
  13. def save(self, form):
  14. self.save_model(self.user)
  15. self.save_model(self.forum)
  16. self.save_model(self.thread)
  17. self.save_model(self.post)
  18. def save_model(self, model):
  19. if model.save_model:
  20. model.save()
  21. elif model.update_fields:
  22. model.save(update_fields=model.update_fields)