warnmodel.py 1.1 KB

123456789101112131415161718192021222324252627
  1. from django.db import models
  2. from misago.signals import rename_user
  3. class Warn(models.Model):
  4. user = models.ForeignKey('User')
  5. giver = models.ForeignKey('User', null=True, blank=True,
  6. on_delete=models.SET_NULL, related_name="warnings_given_set")
  7. giver_name = models.CharField(max_length=255)
  8. giver_slug = models.SlugField(max_length=255)
  9. date = models.DateTimeField()
  10. ip = models.GenericIPAddressField()
  11. agent = models.CharField(max_length=255)
  12. reason = models.TextField(null=True, blank=True)
  13. reason_preparsed = models.TextField(null=True, blank=True)
  14. canceled = models.BooleanField(default=False)
  15. class Meta:
  16. app_label = 'misago'
  17. def rename_user_handler(sender, **kwargs):
  18. Warn.objects.filter(giver=sender).update(
  19. giver_name=sender.username,
  20. giver_slug=sender.username_slug,
  21. )
  22. rename_user.connect(rename_user_handler, dispatch_uid="rename_user_warnings")