Hi,

Added a few little updates, a previous one was mostly about fixing the 
README.md so some of the suggestions in there actually work. This one adds an 
abstract model to factor out a common definition for id and created fields for 
all models.

Cheers,
  Gary

On Wed, 6 Jun 2018, at 4:19 PM, [email protected] wrote:
> Author: gjm
> Date: Wed Jun  6 15:19:29 2018
> New Revision: 1833042
> 
> URL: http://svn.apache.org/viewvc?rev=1833042&view=rev
> Log:
> Extract common model enforcing id & created fields
> 
> Modified:
>     bloodhound/branches/bh_core_experimental/trackers/models.py
> 
> Modified: bloodhound/branches/bh_core_experimental/trackers/models.py
> URL: 
> http://svn.apache.org/viewvc/bloodhound/branches/bh_core_experimental/trackers/models.py?rev=1833042&r1=1833041&r2=1833042&view=diff
> ==============================================================================
> --- bloodhound/branches/bh_core_experimental/trackers/models.py 
> (original)
> +++ bloodhound/branches/bh_core_experimental/trackers/models.py Wed Jun  
> 6 15:19:29 2018
> @@ -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):
> 
> 

Reply via email to