signals.py 904 B

12345678910111213141516171819202122232425262728293031
  1. import django.dispatch
  2. from django.dispatch import receiver
  3. from misago.core import serializer
  4. from misago.forums.models import Forum, ForumRole
  5. delete_forum_content = django.dispatch.Signal()
  6. move_forum_content = django.dispatch.Signal()
  7. """
  8. Signal handlers
  9. """
  10. from misago.core.signals import secret_key_changed
  11. @receiver(secret_key_changed)
  12. def update_roles_pickles(sender, **kwargs):
  13. for role in ForumRole.objects.iterator():
  14. if role.pickled_permissions:
  15. role.pickled_permissions = serializer.regenerate_checksum(
  16. role.pickled_permissions)
  17. role.save(update_fields=['pickled_permissions'])
  18. from misago.users.signals import username_changed
  19. @receiver(username_changed)
  20. def update_usernames(sender, **kwargs):
  21. Forum.objects.filter(last_poster=sender).update(
  22. last_poster_name=sender.username,
  23. last_poster_slug=sender.slug)