62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.db import migrations
|
|
|
|
from dav_events.workflow import DEFAULT_EVENT_STATI
|
|
from dav_events.models.eventstatus import get_or_create_event_status
|
|
|
|
|
|
def create_stati(apps, schema_editor):
|
|
for c in DEFAULT_EVENT_STATI.keys():
|
|
get_or_create_event_status(c)
|
|
|
|
|
|
def create_flags(apps, schema_editor):
|
|
EventStatus = apps.get_model('dav_events', 'EventStatus')
|
|
EventFlag = apps.get_model('dav_events', 'EventFlag')
|
|
Event = apps.get_model('dav_events', 'Event')
|
|
for event in Event.objects.all():
|
|
if not len(event.flags.filter(status__code='draft')):
|
|
status = EventStatus.objects.get(code='draft')
|
|
flag = EventFlag(event=event, status=status, timestamp=event.created_at, user=event.owner)
|
|
flag.save()
|
|
|
|
if not len(event.flags.filter(status__code='submitted')):
|
|
status = EventStatus.objects.get(code='submitted')
|
|
flag = EventFlag(event=event, status=status, timestamp=event.created_at, user=event.owner)
|
|
flag.save()
|
|
|
|
if event.accepted and not len(event.flags.filter(status__code='accepted')):
|
|
status = EventStatus.objects.get(code='accepted')
|
|
flag = EventFlag(event=event, status=status, timestamp=event.accepted_at, user=event.accepted_by)
|
|
flag.save()
|
|
|
|
if event.publication_confirmed:
|
|
if event.planned_publication_date:
|
|
if not len(event.flags.filter(status__code='publishing')):
|
|
status = EventStatus.objects.get(code='publishing')
|
|
flag = EventFlag(event=event, status=status,
|
|
timestamp=event.publication_confirmed_at,
|
|
user=event.publication_confirmed_by)
|
|
flag.save()
|
|
else:
|
|
if not len(event.flags.filter(status__code='published')):
|
|
status = EventStatus.objects.get(code='published')
|
|
flag = EventFlag(event=event, status=status,
|
|
timestamp=event.publication_confirmed_at,
|
|
user=event.publication_confirmed_by)
|
|
flag.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('dav_events', '0020_auto_20180704_1202'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(create_stati),
|
|
migrations.RunPython(create_flags),
|
|
]
|