add ChangeSet.last_state_update
This commit is contained in:
parent
33d6727380
commit
cdbc88b48e
2 changed files with 40 additions and 0 deletions
|
@ -0,0 +1,36 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.2 on 2017-07-05 13:48
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
def forwards_func(apps, schema_editor):
|
||||
ChangeSet = apps.get_model('editor', 'ChangeSet')
|
||||
for changeset in ChangeSet.objects.all():
|
||||
try:
|
||||
changeset.last_state_update = changeset.updates.filter(state__isnull=False).latest()
|
||||
except ObjectDoesNotExist:
|
||||
pass
|
||||
changeset.save()
|
||||
|
||||
def reverse_func(apps, schema_editor):
|
||||
pass
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('editor', '0014_last_update_foreign_key'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='changeset',
|
||||
name='last_state_update',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='editor.ChangeSetUpdate', verbose_name='last state update'),
|
||||
),
|
||||
migrations.RunPython(forwards_func, reverse_func),
|
||||
]
|
|
@ -33,6 +33,8 @@ class ChangeSet(models.Model):
|
|||
verbose_name=_('last object change'))
|
||||
last_update = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
||||
verbose_name=_('last update'))
|
||||
last_state_update = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
||||
verbose_name=_('last state update'))
|
||||
state = models.CharField(max_length=20, db_index=True, choices=STATES, default='unproposed')
|
||||
author = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT, verbose_name=_('Author'))
|
||||
title = models.CharField(max_length=100, default='', verbose_name=_('Title'))
|
||||
|
@ -301,6 +303,7 @@ class ChangeSet(models.Model):
|
|||
update = self.updates.create(user=user, state=new_state)
|
||||
self.state = new_state
|
||||
self.last_update = update
|
||||
self.last_state_update = update
|
||||
self.save()
|
||||
|
||||
def unpropose(self, user):
|
||||
|
@ -308,6 +311,7 @@ class ChangeSet(models.Model):
|
|||
update = self.updates.create(user=user, state=new_state)
|
||||
self.state = new_state
|
||||
self.last_update = update
|
||||
self.last_state_update = update
|
||||
self.save()
|
||||
|
||||
def activate(self, request):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue