# -*- 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'}, ), ]