Files
django-dav-events/dav_events/migrations/0021_create_flags.py

62 lines
2.4 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
from dav_events.models.eventstatus import get_event_status
def create_stati(apps, schema_editor):
l = ('draft', 'submitted', 'accepted', 'publishing', 'published', 'expired')
for c in l:
get_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),
]