12345678910111213141516171819202122232425262728293031323334353637 |
- from django.db import models
- from misago.signals import rename_user
- class Warn(models.Model):
- user = models.ForeignKey('User', related_name="warning_set")
- reason = models.TextField(null=True, blank=True)
- reason_preparsed = models.TextField(null=True, blank=True)
- given_on = models.DateTimeField()
- giver = models.ForeignKey('User', null=True, blank=True,
- on_delete=models.SET_NULL, related_name="warnings_given_set")
- giver_username = models.CharField(max_length=255)
- giver_slug = models.SlugField(max_length=255)
- giver_ip = models.GenericIPAddressField()
- giver_agent = models.CharField(max_length=255)
- canceled = models.BooleanField(default=False)
- canceled_on = models.DateTimeField(null=True, blank=True)
- canceler = models.ForeignKey('User', null=True, blank=True,
- on_delete=models.SET_NULL, related_name="warnings_canceled_set")
- canceler_username = models.CharField(max_length=255, null=True, blank=True)
- canceler_slug = models.SlugField(max_length=255, null=True, blank=True)
- canceler_ip = models.GenericIPAddressField(null=True, blank=True)
- canceler_agent = models.CharField(max_length=255, null=True, blank=True)
- class Meta:
- app_label = 'misago'
- def rename_user_handler(sender, **kwargs):
- Warn.objects.filter(giver=sender).update(
- giver_username=sender.username,
- giver_slug=sender.username_slug,
- )
- Warn.objects.filter(canceler=sender).update(
- canceler_username=sender.username,
- canceler_slug=sender.username_slug,
- )
- rename_user.connect(rename_user_handler, dispatch_uid="rename_user_warnings")
|