postedit.py 951 B

123456789101112131415161718192021222324252627282930
  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", related_name="edits_record", on_delete=models.CASCADE
  10. )
  11. edited_on = models.DateTimeField(default=timezone.now)
  12. editor = models.ForeignKey(
  13. settings.AUTH_USER_MODEL, blank=True, null=True, on_delete=models.SET_NULL
  14. )
  15. editor_name = models.CharField(max_length=255)
  16. editor_slug = models.CharField(max_length=255)
  17. edited_from = models.TextField()
  18. edited_to = models.TextField()
  19. class Meta:
  20. ordering = ["-id"]
  21. def get_diff(self):
  22. return difflib.ndiff(self.edited_from.splitlines(), self.edited_to.splitlines())