postedit.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  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', on_delete=models.CASCADE)
  7. thread = models.ForeignKey('misago_threads.Thread', on_delete=models.CASCADE)
  8. post = models.ForeignKey(
  9. 'misago_threads.Post',
  10. related_name='edits_record',
  11. on_delete=models.CASCADE,
  12. )
  13. edited_on = models.DateTimeField(default=timezone.now)
  14. editor = models.ForeignKey(
  15. settings.AUTH_USER_MODEL,
  16. blank=True,
  17. null=True,
  18. on_delete=models.SET_NULL,
  19. )
  20. editor_name = models.CharField(max_length=255)
  21. editor_slug = models.CharField(max_length=255)
  22. editor_ip = models.GenericIPAddressField()
  23. edited_from = models.TextField()
  24. edited_to = models.TextField()
  25. class Meta:
  26. ordering = ['-id']
  27. def get_diff(self):
  28. return difflib.ndiff(self.edited_from.splitlines(), self.edited_to.splitlines())