postedit.py 931 B

1234567891011121314151617181920212223242526272829303132
  1. import difflib
  2. from django.conf import settings
  3. from django.db import models
  4. from django.utils import timezone
  5. class PostEdit(models.Model):
  6. category = models.ForeignKey('misago_categories.Category')
  7. thread = models.ForeignKey('misago_threads.Thread')
  8. post = models.ForeignKey('misago_threads.Post', related_name='edits_record')
  9. edited_on = models.DateTimeField(default=timezone.now)
  10. editor = models.ForeignKey(
  11. settings.AUTH_USER_MODEL,
  12. blank=True,
  13. null=True,
  14. on_delete=models.SET_NULL,
  15. )
  16. editor_name = models.CharField(max_length=255)
  17. editor_slug = models.CharField(max_length=255)
  18. editor_ip = models.GenericIPAddressField()
  19. edited_from = models.TextField()
  20. edited_to = models.TextField()
  21. class Meta:
  22. ordering = ['-id']
  23. def get_diff(self):
  24. return difflib.ndiff(self.edited_from.splitlines(), self.edited_to.splitlines())