add ChangeSet.last_state_update

This commit is contained in:
Laura Klünder 2017-07-05 16:17:09 +02:00
parent 33d6727380
commit cdbc88b48e
2 changed files with 40 additions and 0 deletions

View file

@ -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),
]

View file

@ -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):