# -*- coding: utf-8 -*- # Generated by Django 1.10.4 on 2016-12-11 21:23 from __future__ import unicode_literals import django.db.models.deletion import jsonfield.fields from django.conf import settings from django.db import migrations, models import openslides.utils.models def change_label_of_state(apps, schema_editor): """ Changes the label of former state "commited a bill" to "refered to committee". """ # We get the model from the versioned app registry; # if we directly import it, it will be the wrong version. State = apps.get_model("motions", "State") try: state = State.objects.get(name="commited a bill") except State.DoesNotExist: # State does not exists, there is nothing to change. pass else: state.name = "refered to committee" state.action_word = "Refer to committee" state.save(skip_autoupdate=True) def add_recommendation_labels(apps, schema_editor): """ Adds recommendation labels to some of the built-in states. """ # We get the model from the versioned app registry; # if we directly import it, it will be the wrong version. State = apps.get_model("motions", "State") name_label_map = { "accepted": "Acceptance", "rejected": "Rejection", "not decided": "No decision", "permitted": "Permission", "adjourned": "Adjournment", "not concerned": "No concernment", "refered to committee": "Referral to committee", "rejected (not authorized)": "Rejection (not authorized)", } for state in State.objects.all(): if name_label_map.get(state.name): state.recommendation_label = name_label_map[state.name] state.save(skip_autoupdate=True) class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ("motions", "0001_initial"), ] operations = [ migrations.CreateModel( name="MotionBlock", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("title", models.CharField(max_length=255)), ], options={"default_permissions": ()}, bases=(openslides.utils.models.RESTModelMixin, models.Model), ), migrations.CreateModel( name="MotionChangeRecommendation", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("rejected", models.BooleanField(default=False)), ("type", models.PositiveIntegerField(default=0)), ("line_from", models.PositiveIntegerField()), ("line_to", models.PositiveIntegerField()), ("text", models.TextField(blank=True)), ("creation_time", models.DateTimeField(auto_now=True)), ( "author", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ( "motion_version", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="change_recommendations", to="motions.MotionVersion", ), ), ], options={"default_permissions": ()}, bases=(openslides.utils.models.RESTModelMixin, models.Model), ), migrations.AlterModelOptions( name="motion", options={ "default_permissions": (), "ordering": ("identifier",), "permissions": ( ("can_see", "Can see motions"), ("can_create", "Can create motions"), ("can_support", "Can support motions"), ("can_see_and_manage_comments", "Can see and manage comments"), ("can_manage", "Can manage motions"), ), "verbose_name": "Motion", }, ), migrations.AddField( model_name="motion", name="comments", field=jsonfield.fields.JSONField(null=True), ), migrations.AddField( model_name="motion", name="origin", field=models.CharField(blank=True, max_length=255), ), migrations.AddField( model_name="motion", name="recommendation", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to="motions.State", ), ), migrations.AddField( model_name="state", name="recommendation_label", field=models.CharField(max_length=255, null=True), ), migrations.AddField( model_name="state", name="show_recommendation_extension_field", field=models.BooleanField(default=False), ), migrations.AddField( model_name="state", name="show_state_extension_field", field=models.BooleanField(default=False), ), migrations.AlterField( model_name="motion", name="state", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to="motions.State", ), ), migrations.AddField( model_name="motion", name="motion_block", field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="motions.MotionBlock", ), ), migrations.RunPython(change_label_of_state), migrations.RunPython(add_recommendation_labels), ]