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