team-3/src/c3nav/editor/models/changesetupdate.py
2017-07-06 13:07:05 +02:00

36 lines
1.4 KiB
Python

from collections import OrderedDict
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from c3nav.editor.models import ChangeSet
class ChangeSetUpdate(models.Model):
changeset = models.ForeignKey(ChangeSet, on_delete=models.CASCADE, related_name='updates')
datetime = models.DateTimeField(auto_now_add=True, verbose_name=_('datetime'))
comment = models.TextField(max_length=1000, null=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT, related_name='+')
state = models.CharField(null=None, db_index=True, choices=ChangeSet.STATES, max_length=20)
title = models.CharField(max_length=100, null=True)
description = models.TextField(max_length=1000, null=True)
assigned_to = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT, related_name='+')
objects_changed = models.BooleanField(default=False)
class Meta:
verbose_name = _('Change set update')
verbose_name_plural = _('Change set updates')
ordering = ['datetime', 'pk']
get_latest_by = 'datetime'
def __repr__(self):
return '<Update #%s on ChangeSet #%s>' % (str(self.pk), str(self.changeset_id))
def serialize_tiny(self):
return OrderedDict((
('datetime', self.datetime.isoformat()),
('comment', self.comment),
('user', self.user_id),
))