|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | +from __future__ import unicode_literals |
| 3 | + |
| 4 | +from django.db import migrations |
| 5 | + |
| 6 | +def forward_materials_state(apps, schema_editor): |
| 7 | + StateType = apps.get_model('doc', 'StateType') |
| 8 | + State = apps.get_model('doc', 'State') |
| 9 | + |
| 10 | + StateType.objects.create(slug='reuse_policy',label='Policy') |
| 11 | + |
| 12 | + single = State.objects.create(type_id='reuse_policy',slug='single',name='Single Meeting') |
| 13 | + multiple = State.objects.create(type_id='reuse_policy',slug='multiple',name='Multiple Meetings') |
| 14 | + |
| 15 | + Document = apps.get_model('doc', 'Document') |
| 16 | + for doc in Document.objects.filter(type='slides'): |
| 17 | + if doc.group.type.slug=='team': |
| 18 | + doc.states.add(multiple) |
| 19 | + else: |
| 20 | + doc.states.add(single) |
| 21 | + |
| 22 | + # Expected to be a no-op on current database, but just for completeness |
| 23 | + for doc in Document.objects.filter(type='slides'): |
| 24 | + doc.states.filter(type='slides',slug='sessonly').update(slug='active') |
| 25 | + |
| 26 | + State.objects.filter(type_id='slides',slug='sessonly').delete() |
| 27 | + |
| 28 | + |
| 29 | +def reverse_materials_state(apps, schema_editor): |
| 30 | + Document = apps.get_model('doc', 'Document') |
| 31 | + for doc in Document.objects.filter(type='slides'): |
| 32 | + doc.states.filter(type='update_policy').delete() |
| 33 | + |
| 34 | + StateType = apps.get_model('doc', 'StateType') |
| 35 | + StateType.objects.filter(slug='update_policy').delete() |
| 36 | + |
| 37 | + State = apps.get_model('doc', 'State') |
| 38 | + State.objects.create(type='slides',slug='sessonly',name='Session Only') |
| 39 | + |
| 40 | + |
| 41 | +class Migration(migrations.Migration): |
| 42 | + |
| 43 | + dependencies = [ |
| 44 | + ('doc', '0002_auto_20141222_1749'), |
| 45 | + ('group', '0003_auto_20150304_0743'), |
| 46 | + ] |
| 47 | + |
| 48 | + operations = [ |
| 49 | + migrations.RunPython(forward_materials_state,reverse_materials_state), |
| 50 | + ] |
0 commit comments