signals.py 913 B

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