# -*- coding: utf-8 -*- # Generated by Django 1.10.7 on 2018-07-21 20:01 from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion from django.contrib.auth.management import create_permissions import re2o.field_permissions import re2o.mixins def reattribute_ids(apps, schema_editor): Facture = apps.get_model("cotisations", "Facture") BaseInvoice = apps.get_model("cotisations", "BaseInvoice") for f in Facture.objects.all(): base = BaseInvoice.objects.create(id=f.pk) base.date = f.date base.save() f.baseinvoice_ptr = base f.save() def update_rights(apps, schema_editor): Permission = apps.get_model("auth", "Permission") # creates needed permissions app = apps.get_app_config("cotisations") app.models_module = True create_permissions(app) app.models_module = False ContentType = apps.get_model("contenttypes", "ContentType") content_type = ContentType.objects.get_for_model(Permission) former, created = Permission.objects.get_or_create( codename="change_facture_pdf", content_type=content_type ) new_1 = Permission.objects.get(codename="add_custominvoice") new_2 = Permission.objects.get(codename="change_custominvoice") new_3 = Permission.objects.get(codename="view_custominvoice") new_4 = Permission.objects.get(codename="delete_custominvoice") for group in former.group_set.all(): group.permissions.remove(former) group.permissions.add(new_1) group.permissions.add(new_2) group.permissions.add(new_3) group.permissions.add(new_4) group.save() class Migration(migrations.Migration): dependencies = [("cotisations", "0031_comnpaypayment_production")] operations = [ migrations.CreateModel( name="BaseInvoice", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("date", models.DateTimeField(auto_now_add=True, verbose_name="Date")), ], bases=( re2o.mixins.RevMixin, re2o.mixins.AclMixin, re2o.field_permissions.FieldPermissionModelMixin, models.Model, ), ), migrations.CreateModel( name="CustomInvoice", fields=[ ( "baseinvoice_ptr", models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to="cotisations.BaseInvoice", ), ), ( "recipient", models.CharField(max_length=255, verbose_name="Recipient"), ), ( "payment", models.CharField(max_length=255, verbose_name="Payment type"), ), ("address", models.CharField(max_length=255, verbose_name="Address")), ("paid", models.BooleanField(verbose_name="Paid")), ], bases=("cotisations.baseinvoice",), options={ "permissions": (("view_custominvoice", "Can view a custom invoice"),) }, ), migrations.AddField( model_name="facture", name="baseinvoice_ptr", field=models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, to="cotisations.BaseInvoice", null=True, ), preserve_default=False, ), migrations.RunPython(reattribute_ids), migrations.AlterField( model_name="vente", name="facture", field=models.ForeignKey( on_delete=models.CASCADE, verbose_name="Invoice", to="cotisations.BaseInvoice", ), ), migrations.RemoveField(model_name="facture", name="id"), migrations.RemoveField(model_name="facture", name="date"), migrations.AlterField( model_name="facture", name="baseinvoice_ptr", field=models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to="cotisations.BaseInvoice", ), ), migrations.RunPython(update_rights), migrations.AlterModelOptions( name="facture", options={ "permissions": ( ("change_facture_control", 'Can change the "controlled" state'), ("view_facture", "Can see an invoice's details"), ("change_all_facture", "Can edit all the previous invoices"), ), "verbose_name": "Invoice", "verbose_name_plural": "Invoices", }, ), ]