warnmodel.py 1020 B

1234567891011121314151617181920212223242526
  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. canceled = models.BooleanField(default=False)
  14. class Meta:
  15. app_label = 'misago'
  16. def rename_user_handler(sender, **kwargs):
  17. Warn.objects.filter(giver=sender).update(
  18. giver_name=sender.username,
  19. giver_slug=sender.username_slug,
  20. )
  21. rename_user.connect(rename_user_handler, dispatch_uid="rename_user_warnings")