diff --git a/taskapp/models.py b/taskapp/models.py index b709342..497cef7 100644 --- a/taskapp/models.py +++ b/taskapp/models.py @@ -39,6 +39,23 @@ TASK_TYPES = ( ) +class ChangeLog(models.Model): + task = models.ForeignKey(Task) + ACT_CHOICES = ( + (b'e', u'Изменение задачи'), + (b'c', u'Создание задачи'), + (b'd', u'Удаление задачи'), + (b'f', u'Завершение задачи'), + (b'b', u'Задача начата') + ) + act_type = models.CharField(max_length=1, choices=ACT_CHOICES) + when = models.DateTimeField(auto_now_add=True) + who = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') + + def __unicode__(self): + return self.get_act_type_display() + + class Task(models.Model): descr = models.CharField(max_length=128) recipients = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='them_task') @@ -61,26 +78,23 @@ class Task(models.Model): ) def finish(self, current_user): - self.state = 'F' # Выполнена + self.state = b'F' # Выполнена self.out_date = datetime.now() # Время завершения + ChangeLog.objects.create( + task=self, + act_type=b'f', + who=current_user + ) + self.save(update_fields=['state', 'out_date']) def begin(self, current_user): - self.state = 'C' # Начата - - -class ChangeLog(models.Model): - task = models.ForeignKey(Task) - ACT_CHOICES = ( - (b'e', u'Изменение задачи'), - (b'c', u'Создание задачи'), - (b'd', u'Удаление задачи') - ) - act_type = models.CharField(max_length=1, choices=ACT_CHOICES) - when = models.DateTimeField(auto_now_add=True) - who = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') - - def __unicode__(self): - return self.get_act_type_display() + self.state = b'C' # Начата + ChangeLog.objects.create( + task=self, + act_type=b'b', + who=current_user + ) + self.save(update_fields=['state']) def task_handler(sender, instance, **kwargs):