This is an automated email from the ASF dual-hosted git repository. gjm pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/bloodhound-core.git
commit 367f2190b9ca1e79cb8bdb707b0a473446ce7250 Author: Gary Martin <g...@apache.org> AuthorDate: Wed Jun 6 15:19:29 2018 +0000 Extract common model enforcing id & created fields git-svn-id: https://svn.apache.org/repos/asf/bloodhound/branches/bh_core_experimental@1833042 13f79535-47bb-0310-9956-ffa450edef68 --- trackers/models.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/trackers/models.py b/trackers/models.py index 1887e4e..2a2513c 100644 --- a/trackers/models.py +++ b/trackers/models.py @@ -24,14 +24,18 @@ from django.db import models logger = logging.getLogger(__name__) - -class Ticket(models.Model): +class ModelCommon(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) created = models.DateTimeField(auto_now_add=True, editable=False) + class Meta: + abstract = True + +class Ticket(ModelCommon): + def last_update(self): - last_event = self.changeevent_set.order_by('event_time').last() - return self.created if last_event is None else last_event.event_time + last_event = self.changeevent_set.order_by('created').last() + return self.created if last_event is None else last_event.created def add_field_event(self, field, newvalue): current_lines = self.get_field_value(field).splitlines(keepends=True) @@ -48,25 +52,16 @@ class Ticket(models.Model): except TicketField.DoesNotExist as e: return '' - event = self.changeevent_set.filter(field=tfield).order_by('event_time').last() + event = self.changeevent_set.filter(field=tfield).order_by('created').last() return '' if event is None else event.value() -class TicketField(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) +class TicketField(ModelCommon): name = models.CharField(max_length=32) -class Label(TicketField): - pass - -class SharedField(TicketField): - pass - -class ChangeEvent(models.Model): - id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) +class ChangeEvent(ModelCommon): ticket = models.ForeignKey(Ticket, models.CASCADE, editable=False, null=False) field = models.ForeignKey(TicketField, models.CASCADE, editable=False, null=False) - event_time = models.DateTimeField(auto_now_add=True, editable=False) diff = models.TextField(editable=False) def value(self, which=2):