123456789101112131415161718192021222324252627282930313233343536373839 |
- import textwrap
- from django.db import models
- from django.contrib.auth import get_user_model
- from tickets.models.ticket import Ticket
- class Comment(models.Model):
- author = models.ForeignKey(
- get_user_model(), on_delete=models.CASCADE, blank=True, null=True,
- related_name="tickets_comments"
- )
- ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
- date = models.DateTimeField(auto_now_add=True)
- email_from = models.CharField(max_length=320, blank=True, null=True)
- email_message_id = models.CharField(max_length=255, blank=True, null=True)
- body = models.TextField(blank=True)
- class Meta:
- unique_together = ("ticket", "email_message_id")
- @property
- def author_text(self):
- if self.author is not None:
- return str(self.author)
- assert self.email_message_id is not None
- return str(self.email_from)
- @property
- def snippet(self):
- body_snippet = textwrap.shorten(self.body, width=35, placeholder="...")
- # Define here rather than in __str__ so we can use it in the admin list_display
- return "{author} - {snippet}...".format(author=self.author_text, snippet=body_snippet)
- def __str__(self):
- return self.snippet
|