From 8e20bdc3e3d5c89570326ab9c11e912f77cf625f Mon Sep 17 00:00:00 2001 From: jbdoderlein Date: Tue, 13 Aug 2024 10:03:40 +0000 Subject: [PATCH] Reset migrations --- .gitignore | 1 - apps/activity/migrations/0001_initial.py | 6 +- ..._auto_20220817_2253.py => 0002_initial.py} | 102 ++++---- .../migrations/0003_auto_20220818_1105.py | 24 -- apps/logs/migrations/0001_initial.py | 14 +- .../migrations/0002_replace_null_by_blank.py | 17 -- .../0003_remove_null_tag_on_charfields.py | 23 -- apps/member/migrations/0001_initial.py | 53 ++-- ..._auto_20220817_2253.py => 0002_initial.py} | 18 +- ...e_initial_club.py => 0003_initial_club.py} | 14 +- apps/note/migrations/0001_initial.py | 233 +++++++++--------- ...3_alter_note_polymorphic_ctype_and_more.py | 36 --- apps/permission/migrations/0001_initial.py | 57 ++--- apps/registration/forms.py | 6 + apps/treasury/migrations/0001_initial.py | 66 +++-- .../migrations/0002_auto_20220824_1919.py | 18 -- 16 files changed, 281 insertions(+), 407 deletions(-) rename apps/activity/migrations/{0002_auto_20220817_2253.py => 0002_initial.py} (80%) delete mode 100644 apps/activity/migrations/0003_auto_20220818_1105.py delete mode 100644 apps/logs/migrations/0002_replace_null_by_blank.py delete mode 100644 apps/logs/migrations/0003_remove_null_tag_on_charfields.py rename apps/member/migrations/{0002_auto_20220817_2253.py => 0002_initial.py} (78%) rename apps/member/migrations/{0003_create_initial_club.py => 0003_initial_club.py} (86%) delete mode 100644 apps/note/migrations/0003_alter_note_polymorphic_ctype_and_more.py delete mode 100644 apps/treasury/migrations/0002_auto_20220824_1919.py diff --git a/.gitignore b/.gitignore index 4420051..b31756b 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,3 @@ ansible/host_vars/*.yaml !ansible/host_vars/bde* ansible/hosts -apps/member/migrations diff --git a/apps/activity/migrations/0001_initial.py b/apps/activity/migrations/0001_initial.py index ab4e9bc..1ead0b8 100644 --- a/apps/activity/migrations/0001_initial.py +++ b/apps/activity/migrations/0001_initial.py @@ -1,7 +1,7 @@ -# Generated by Django 2.2.28 on 2022-08-17 20:53 +# Generated by Django 5.1 on 2024-08-13 09:26 -from django.db import migrations, models import django.utils.timezone +from django.db import migrations, models class Migration(migrations.Migration): @@ -18,7 +18,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, verbose_name='name')), ('description', models.TextField(verbose_name='description')), - ('location', models.CharField(blank=True, default='', help_text='Place where the activity is organized, eg. Kfet.', max_length=255, verbose_name='location')), + ('location', models.CharField(blank=True, default='', help_text='Place where the activity is organized, eg. BDE.', max_length=255, verbose_name='location')), ('date_start', models.DateTimeField(verbose_name='start date')), ('date_end', models.DateTimeField(verbose_name='end date')), ('valid', models.BooleanField(default=False, verbose_name='valid')), diff --git a/apps/activity/migrations/0002_auto_20220817_2253.py b/apps/activity/migrations/0002_initial.py similarity index 80% rename from apps/activity/migrations/0002_auto_20220817_2253.py rename to apps/activity/migrations/0002_initial.py index fa1be59..ca40bef 100644 --- a/apps/activity/migrations/0002_auto_20220817_2253.py +++ b/apps/activity/migrations/0002_initial.py @@ -1,8 +1,8 @@ -# Generated by Django 2.2.28 on 2022-08-17 20:53 +# Generated by Django 5.1 on 2024-08-13 09:26 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): @@ -10,59 +10,17 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('member', '0001_initial'), ('activity', '0001_initial'), + ('member', '0001_initial'), ('note', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ - migrations.CreateModel( - name='GuestTransaction', - fields=[ - ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.Transaction')), - ('entry', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to='activity.Entry')), - ], - options={ - 'abstract': False, - 'base_manager_name': 'objects', - }, - bases=('note.transaction',), - ), - migrations.AddField( - model_name='guest', - name='activity', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='activity.Activity'), - ), - migrations.AddField( - model_name='guest', - name='inviter', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='guests', to='note.NoteUser', verbose_name='inviter'), - ), - migrations.AddField( - model_name='entry', - name='activity', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='entries', to='activity.Activity', verbose_name='activity'), - ), - migrations.AddField( - model_name='entry', - name='guest', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.PROTECT, to='activity.Guest'), - ), - migrations.AddField( - model_name='entry', - name='note', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='note.NoteUser', verbose_name='note'), - ), - migrations.AddField( - model_name='activity', - name='activity_type', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='activity.ActivityType', verbose_name='type'), - ), migrations.AddField( model_name='activity', name='attendees_club', - field=models.ForeignKey(help_text='Club that is authorized to join the activity. Mostly the Kfet club.', on_delete=django.db.models.deletion.PROTECT, related_name='+', to='member.Club', verbose_name='attendees club'), + field=models.ForeignKey(help_text='Club that is authorized to join the activity.', on_delete=django.db.models.deletion.PROTECT, related_name='+', to='member.club', verbose_name='attendees club'), ), migrations.AddField( model_name='activity', @@ -72,7 +30,53 @@ class Migration(migrations.Migration): migrations.AddField( model_name='activity', name='organizer', - field=models.ForeignKey(help_text='Club that organizes the activity. The entry fees will go to this club.', on_delete=django.db.models.deletion.PROTECT, related_name='+', to='member.Club', verbose_name='organizer'), + field=models.ForeignKey(help_text='Club that organizes the activity. The entry fees will go to this club.', on_delete=django.db.models.deletion.PROTECT, related_name='+', to='member.club', verbose_name='organizer'), + ), + migrations.AddField( + model_name='activity', + name='activity_type', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='activity.activitytype', verbose_name='type'), + ), + migrations.AddField( + model_name='entry', + name='activity', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='entries', to='activity.activity', verbose_name='activity'), + ), + migrations.AddField( + model_name='entry', + name='note', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='note.noteuser', verbose_name='note'), + ), + migrations.AddField( + model_name='guest', + name='activity', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='activity.activity'), + ), + migrations.AddField( + model_name='guest', + name='inviter', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='guests', to='note.noteuser', verbose_name='inviter'), + ), + migrations.AddField( + model_name='entry', + name='guest', + field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.PROTECT, to='activity.guest'), + ), + migrations.CreateModel( + name='GuestTransaction', + fields=[ + ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.transaction')), + ('entry', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to='activity.entry')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('note.transaction',), + ), + migrations.AlterUniqueTogether( + name='activity', + unique_together={('name', 'date_start', 'date_end')}, ), migrations.AlterUniqueTogether( name='guest', @@ -82,8 +86,4 @@ class Migration(migrations.Migration): name='entry', unique_together={('activity', 'note', 'guest')}, ), - migrations.AlterUniqueTogether( - name='activity', - unique_together={('name', 'date_start', 'date_end')}, - ), ] diff --git a/apps/activity/migrations/0003_auto_20220818_1105.py b/apps/activity/migrations/0003_auto_20220818_1105.py deleted file mode 100644 index 26c4fe0..0000000 --- a/apps/activity/migrations/0003_auto_20220818_1105.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 2.2.28 on 2022-08-18 09:05 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('activity', '0002_auto_20220817_2253'), - ] - - operations = [ - migrations.AlterField( - model_name='activity', - name='attendees_club', - field=models.ForeignKey(help_text='Club that is authorized to join the activity.', on_delete=django.db.models.deletion.PROTECT, related_name='+', to='member.Club', verbose_name='attendees club'), - ), - migrations.AlterField( - model_name='activity', - name='location', - field=models.CharField(blank=True, default='', help_text='Place where the activity is organized, eg. BDE.', max_length=255, verbose_name='location'), - ), - ] diff --git a/apps/logs/migrations/0001_initial.py b/apps/logs/migrations/0001_initial.py index e517edf..73cafb9 100644 --- a/apps/logs/migrations/0001_initial.py +++ b/apps/logs/migrations/0001_initial.py @@ -1,9 +1,9 @@ -# Generated by Django 2.2.16 on 2020-09-04 21:41 +# Generated by Django 5.1 on 2024-08-13 09:26 -from django.conf import settings -from django.db import migrations, models import django.db.models.deletion import django.utils.timezone +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): @@ -11,8 +11,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('contenttypes', '0002_remove_content_type_name'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -22,11 +22,11 @@ class Migration(migrations.Migration): ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('ip', models.GenericIPAddressField(blank=True, null=True, verbose_name='IP Address')), ('instance_pk', models.CharField(max_length=255, verbose_name='identifier')), - ('previous', models.TextField(null=True, verbose_name='previous data')), - ('data', models.TextField(null=True, verbose_name='new data')), + ('previous', models.TextField(blank=True, default='', verbose_name='previous data')), + ('data', models.TextField(blank=True, default='', verbose_name='new data')), ('action', models.CharField(choices=[('create', 'create'), ('edit', 'edit'), ('delete', 'delete')], default='edit', max_length=16, verbose_name='action')), ('timestamp', models.DateTimeField(default=django.utils.timezone.now, verbose_name='timestamp')), - ('model', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='contenttypes.ContentType', verbose_name='model')), + ('model', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='contenttypes.contenttype', verbose_name='model')), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name='user')), ], options={ diff --git a/apps/logs/migrations/0002_replace_null_by_blank.py b/apps/logs/migrations/0002_replace_null_by_blank.py deleted file mode 100644 index 65fc4b1..0000000 --- a/apps/logs/migrations/0002_replace_null_by_blank.py +++ /dev/null @@ -1,17 +0,0 @@ -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('logs', '0001_initial'), - ] - - operations = [ - migrations.RunSQL( - "UPDATE logs_changelog SET previous = '' WHERE previous IS NULL;" - ), - migrations.RunSQL( - "UPDATE logs_changelog SET data = '' WHERE data IS NULL;" - ), - ] diff --git a/apps/logs/migrations/0003_remove_null_tag_on_charfields.py b/apps/logs/migrations/0003_remove_null_tag_on_charfields.py deleted file mode 100644 index a6e3a58..0000000 --- a/apps/logs/migrations/0003_remove_null_tag_on_charfields.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.2.16 on 2020-09-06 19:17 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('logs', '0002_replace_null_by_blank'), - ] - - operations = [ - migrations.AlterField( - model_name='changelog', - name='data', - field=models.TextField(blank=True, default='', verbose_name='new data'), - ), - migrations.AlterField( - model_name='changelog', - name='previous', - field=models.TextField(blank=True, default='', verbose_name='previous data'), - ), - ] diff --git a/apps/member/migrations/0001_initial.py b/apps/member/migrations/0001_initial.py index 2a7c29c..27b85dd 100644 --- a/apps/member/migrations/0001_initial.py +++ b/apps/member/migrations/0001_initial.py @@ -1,11 +1,10 @@ -# Generated by Django 2.2.28 on 2022-08-17 20:53 +# Generated by Django 5.1 on 2024-08-13 09:26 import datetime -from django.conf import settings -from django.db import migrations, models import django.db.models.deletion import django.utils.timezone import phonenumber_field.modelfields +from django.db import migrations, models class Migration(migrations.Migration): @@ -13,10 +12,29 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ + migrations.CreateModel( + name='Profile', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('phone_number', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=50, null=True, region=None, verbose_name='phone number')), + ('section', models.CharField(blank=True, default='', help_text='Auto generated', max_length=255, verbose_name='section')), + ('department', models.CharField(choices=[('INFO', 'Informatique'), ('MATH', 'Mathématiques'), ('DEM', 'Droit - économie - management'), ('MECATRO', 'Mécatronique'), ('2SEP', 'Sciences du sport et éducation physique'), ('SE', 'Sciences pour l’Environnement'), ('EXT', 'Externe')], max_length=8, verbose_name='department')), + ('promotion', models.PositiveSmallIntegerField(default=2024, help_text='Year of entry to the school (None if not ENS student)', null=True, verbose_name='promotion')), + ('address', models.CharField(blank=True, default='', max_length=255, verbose_name='address')), + ('paid', models.BooleanField(default=False, help_text='Tells if the user receive a salary.', verbose_name='paid')), + ('report_frequency', models.PositiveSmallIntegerField(default=0, verbose_name='report frequency (in days)')), + ('last_report', models.DateTimeField(default=django.utils.timezone.now, verbose_name='last report date')), + ('email_confirmed', models.BooleanField(default=False, verbose_name='email confirmed')), + ('registration_valid', models.BooleanField(default=False, verbose_name='registration valid')), + ], + options={ + 'verbose_name': 'user profile', + 'verbose_name_plural': 'user profile', + }, + ), migrations.CreateModel( name='Club', fields=[ @@ -29,36 +47,13 @@ class Migration(migrations.Migration): ('membership_duration', models.PositiveIntegerField(blank=True, help_text='The longest time (in days) a membership can last (NULL = infinite).', null=True, verbose_name='membership duration')), ('membership_start', models.DateField(blank=True, help_text='Date from which the members can renew their membership.', null=True, verbose_name='membership start')), ('membership_end', models.DateField(blank=True, help_text='Maximal date of a membership, after which members must renew it.', null=True, verbose_name='membership end')), + ('parent_club', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='member.club', verbose_name='parent club')), ], options={ 'verbose_name': 'club', 'verbose_name_plural': 'clubs', }, ), - migrations.CreateModel( - name='Profile', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('phone_number', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=50, null=True, region=None, verbose_name='phone number')), - ('section', models.CharField(blank=True, default='', help_text='e.g. "1A0", "9A♥", "SAPHIRE"', max_length=255, verbose_name='section')), - ('department', models.CharField(choices=[('INFO', 'Informatique'), ('MATH', 'Mathématiques'), ('DEM', 'Droit - économie - management'), ('MECATRO', 'Mécatronique'), ('2SEP', 'Sciences du sport et éducation physique'), ('SE', 'Sciences pour l’Environnement'), ('EXT', 'Externe')], max_length=8, verbose_name='department')), - ('promotion', models.PositiveSmallIntegerField(default=2022, help_text='Year of entry to the school (None if not ENS student)', null=True, verbose_name='promotion')), - ('address', models.CharField(blank=True, default='', max_length=255, verbose_name='address')), - ('paid', models.BooleanField(default=False, help_text='Tells if the user receive a salary.', verbose_name='paid')), - ('ml_events_registration', models.CharField(blank=True, choices=[('', 'No'), ('fr', 'Yes')], default='', max_length=2, verbose_name='Register on the mailing list to stay informed of the events of the campus (1 mail/week)')), - ('ml_sport_registration', models.BooleanField(default=False, verbose_name='Register on the mailing list to stay informed of the sport events of the campus (1 mail/week)')), - ('ml_art_registration', models.BooleanField(default=False, verbose_name='Register on the mailing list to stay informed of the art events of the campus (1 mail/week)')), - ('report_frequency', models.PositiveSmallIntegerField(default=0, verbose_name='report frequency (in days)')), - ('last_report', models.DateTimeField(default=django.utils.timezone.now, verbose_name='last report date')), - ('email_confirmed', models.BooleanField(default=False, verbose_name='email confirmed')), - ('registration_valid', models.BooleanField(default=False, verbose_name='registration valid')), - ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - 'verbose_name': 'user profile', - 'verbose_name_plural': 'user profile', - }, - ), migrations.CreateModel( name='Membership', fields=[ @@ -66,7 +61,7 @@ class Migration(migrations.Migration): ('date_start', models.DateField(default=datetime.date.today, verbose_name='membership starts on')), ('date_end', models.DateField(null=True, verbose_name='membership ends on')), ('fee', models.PositiveIntegerField(verbose_name='fee')), - ('club', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='member.Club', verbose_name='club')), + ('club', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='member.club', verbose_name='club')), ], options={ 'verbose_name': 'membership', diff --git a/apps/member/migrations/0002_auto_20220817_2253.py b/apps/member/migrations/0002_initial.py similarity index 78% rename from apps/member/migrations/0002_auto_20220817_2253.py rename to apps/member/migrations/0002_initial.py index a513e80..bd1b907 100644 --- a/apps/member/migrations/0002_auto_20220817_2253.py +++ b/apps/member/migrations/0002_initial.py @@ -1,8 +1,8 @@ -# Generated by Django 2.2.28 on 2022-08-17 20:53 +# Generated by Django 5.1 on 2024-08-13 09:26 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): @@ -19,7 +19,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='membership', name='roles', - field=models.ManyToManyField(related_name='memberships', to='permission.Role', verbose_name='roles'), + field=models.ManyToManyField(related_name='memberships', to='permission.role', verbose_name='roles'), ), migrations.AddField( model_name='membership', @@ -27,16 +27,16 @@ class Migration(migrations.Migration): field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='memberships', to=settings.AUTH_USER_MODEL, verbose_name='user'), ), migrations.AddField( - model_name='club', - name='parent_club', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='member.Club', verbose_name='parent club'), - ), - migrations.AddIndex( model_name='profile', - index=models.Index(fields=['user'], name='member_prof_user_id_30c316_idx'), + name='user', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddIndex( model_name='membership', index=models.Index(fields=['user'], name='member_memb_user_id_945dbc_idx'), ), + migrations.AddIndex( + model_name='profile', + index=models.Index(fields=['user'], name='member_prof_user_id_30c316_idx'), + ), ] diff --git a/apps/member/migrations/0003_create_initial_club.py b/apps/member/migrations/0003_initial_club.py similarity index 86% rename from apps/member/migrations/0003_create_initial_club.py rename to apps/member/migrations/0003_initial_club.py index 327e18a..b0bac76 100644 --- a/apps/member/migrations/0003_create_initial_club.py +++ b/apps/member/migrations/0003_initial_club.py @@ -49,6 +49,18 @@ def create_initial_club(apps, schema_editor): membership_end="2023-09-30", ) + Club.objects.get_or_create( + id=4, + name="Sinfonie", + email="tresorerie@sinfonie.com", + require_memberships=False, + membership_fee_paid=0, + membership_fee_unpaid=0, + membership_duration=396, + membership_start="2022-08-01", + membership_end="2023-09-30", + ) + NoteClub.objects.get_or_create( id=5, @@ -88,7 +100,7 @@ def create_initial_club(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('member', '0002_auto_20220817_2253'), + ('member', '0002_initial'), ('note', '0002_special_note'), ] diff --git a/apps/note/migrations/0001_initial.py b/apps/note/migrations/0001_initial.py index f58bc44..2eca3e2 100644 --- a/apps/note/migrations/0001_initial.py +++ b/apps/note/migrations/0001_initial.py @@ -1,9 +1,9 @@ -# Generated by Django 2.2.28 on 2022-08-17 20:53 +# Generated by Django 5.1 on 2024-08-13 09:26 -from django.conf import settings -from django.db import migrations, models import django.db.models.deletion import django.utils.timezone +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): @@ -11,12 +11,31 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('member', '0001_initial'), ('contenttypes', '0002_remove_content_type_name'), + ('member', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ + migrations.CreateModel( + name='Transaction', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('source_alias', models.CharField(default='', max_length=255, verbose_name='used alias')), + ('destination_alias', models.CharField(default='', max_length=255, verbose_name='used alias')), + ('created_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='created at')), + ('quantity', models.PositiveIntegerField(default=1, verbose_name='quantity')), + ('amount', models.PositiveIntegerField(verbose_name='amount')), + ('reason', models.CharField(max_length=255, verbose_name='reason')), + ('valid', models.BooleanField(default=True, verbose_name='valid')), + ('invalidity_reason', models.CharField(blank=True, default='', max_length=255, verbose_name='invalidity reason')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype')), + ], + options={ + 'verbose_name': 'transaction', + 'verbose_name_plural': 'transactions', + }, + ), migrations.CreateModel( name='Note', fields=[ @@ -27,7 +46,7 @@ class Migration(migrations.Migration): ('created_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='created at')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this note should be treated as active. Unselect this instead of deleting notes.', verbose_name='active')), ('inactivity_reason', models.CharField(blank=True, choices=[('manual', 'The user blocked his/her note manually, eg. when he/she left the school for holidays. It can be reactivated at any time.'), ('forced', "The note is blocked by the the BDE and can't be manually reactivated.")], default='', max_length=255)), - ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_note.note_set+', to='contenttypes.ContentType')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype')), ], options={ 'verbose_name': 'note', @@ -45,87 +64,10 @@ class Migration(migrations.Migration): 'verbose_name_plural': 'transaction categories', }, ), - migrations.CreateModel( - name='Transaction', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('source_alias', models.CharField(default='', max_length=255, verbose_name='used alias')), - ('destination_alias', models.CharField(default='', max_length=255, verbose_name='used alias')), - ('created_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='created at')), - ('quantity', models.PositiveIntegerField(default=1, verbose_name='quantity')), - ('amount', models.PositiveIntegerField(verbose_name='amount')), - ('reason', models.CharField(max_length=255, verbose_name='reason')), - ('valid', models.BooleanField(default=True, verbose_name='valid')), - ('invalidity_reason', models.CharField(blank=True, default='', max_length=255, verbose_name='invalidity reason')), - ('destination', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='note.Note', verbose_name='destination')), - ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_note.transaction_set+', to='contenttypes.ContentType')), - ('source', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='note.Note', verbose_name='source')), - ], - options={ - 'verbose_name': 'transaction', - 'verbose_name_plural': 'transactions', - }, - ), - migrations.CreateModel( - name='MembershipTransaction', - fields=[ - ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.Transaction')), - ], - options={ - 'verbose_name': 'membership transaction', - 'verbose_name_plural': 'membership transactions', - }, - bases=('note.transaction',), - ), - migrations.CreateModel( - name='NoteClub', - fields=[ - ('note_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.Note')), - ], - options={ - 'verbose_name': 'club note', - 'verbose_name_plural': 'clubs notes', - }, - bases=('note.note',), - ), - migrations.CreateModel( - name='NoteSpecial', - fields=[ - ('note_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.Note')), - ('special_type', models.CharField(max_length=255, unique=True, verbose_name='type')), - ], - options={ - 'verbose_name': 'special note', - 'verbose_name_plural': 'special notes', - }, - bases=('note.note',), - ), - migrations.CreateModel( - name='NoteUser', - fields=[ - ('note_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.Note')), - ], - options={ - 'verbose_name': "one's note", - 'verbose_name_plural': 'users note', - }, - bases=('note.note',), - ), - migrations.CreateModel( - name='RecurrentTransaction', - fields=[ - ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.Transaction')), - ], - options={ - 'verbose_name': 'recurrent transaction', - 'verbose_name_plural': 'recurrent transactions', - }, - bases=('note.transaction',), - ), migrations.CreateModel( name='SpecialTransaction', fields=[ - ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.Transaction')), + ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.transaction')), ('last_name', models.CharField(max_length=255, verbose_name='name')), ('first_name', models.CharField(max_length=255, verbose_name='first_name')), ], @@ -135,32 +77,53 @@ class Migration(migrations.Migration): }, bases=('note.transaction',), ), + migrations.CreateModel( + name='NoteClub', + fields=[ + ('note_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.note')), + ('club', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='note', to='member.club', verbose_name='club')), + ], + options={ + 'verbose_name': 'club note', + 'verbose_name_plural': 'clubs notes', + }, + bases=('note.note',), + ), + migrations.CreateModel( + name='NoteSpecial', + fields=[ + ('note_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.note')), + ('special_type', models.CharField(max_length=255, unique=True, verbose_name='type')), + ], + options={ + 'verbose_name': 'special note', + 'verbose_name_plural': 'special notes', + }, + bases=('note.note',), + ), + migrations.AddField( + model_name='transaction', + name='destination', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='note.note', verbose_name='destination'), + ), + migrations.AddField( + model_name='transaction', + name='source', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='note.note', verbose_name='source'), + ), migrations.CreateModel( name='Alias', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True, verbose_name='name')), ('normalized_name', models.CharField(editable=False, max_length=255, unique=True)), - ('note', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='alias', to='note.Note')), + ('note', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='alias', to='note.note')), ], options={ 'verbose_name': 'alias', 'verbose_name_plural': 'aliases', }, ), - migrations.CreateModel( - name='Trust', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('trusted', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trusted', to='note.Note', verbose_name='trusted')), - ('trusting', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trusting', to='note.Note', verbose_name='trusting')), - ], - options={ - 'verbose_name': 'frienship', - 'verbose_name_plural': 'friendships', - 'unique_together': {('trusting', 'trusted')}, - }, - ), migrations.CreateModel( name='TransactionTemplate', fields=[ @@ -170,14 +133,62 @@ class Migration(migrations.Migration): ('display', models.BooleanField(default=True, verbose_name='display')), ('highlighted', models.BooleanField(default=False, verbose_name='highlighted')), ('description', models.CharField(blank=True, max_length=255, verbose_name='description')), - ('category', models.ForeignKey(max_length=31, on_delete=django.db.models.deletion.PROTECT, related_name='templates', to='note.TemplateCategory', verbose_name='type')), - ('destination', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='note.NoteClub', verbose_name='destination')), + ('category', models.ForeignKey(max_length=31, on_delete=django.db.models.deletion.PROTECT, related_name='templates', to='note.templatecategory', verbose_name='type')), + ('destination', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='note.noteclub', verbose_name='destination')), ], options={ 'verbose_name': 'transaction template', 'verbose_name_plural': 'transaction templates', }, ), + migrations.CreateModel( + name='Trust', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('trusted', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trusted', to='note.note', verbose_name='trusted')), + ('trusting', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trusting', to='note.note', verbose_name='trusting')), + ], + options={ + 'verbose_name': 'frienship', + 'verbose_name_plural': 'friendships', + }, + ), + migrations.CreateModel( + name='MembershipTransaction', + fields=[ + ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.transaction')), + ('membership', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='transaction', to='member.membership')), + ], + options={ + 'verbose_name': 'membership transaction', + 'verbose_name_plural': 'membership transactions', + }, + bases=('note.transaction',), + ), + migrations.CreateModel( + name='RecurrentTransaction', + fields=[ + ('transaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.transaction')), + ('template', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='note.transactiontemplate')), + ], + options={ + 'verbose_name': 'recurrent transaction', + 'verbose_name_plural': 'recurrent transactions', + }, + bases=('note.transaction',), + ), + migrations.CreateModel( + name='NoteUser', + fields=[ + ('note_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='note.note')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='note', to=settings.AUTH_USER_MODEL, verbose_name='user')), + ], + options={ + 'verbose_name': "one's note", + 'verbose_name_plural': 'users note', + }, + bases=('note.note',), + ), migrations.AddIndex( model_name='transaction', index=models.Index(fields=['created_at'], name='note_transa_created_bea8b1_idx'), @@ -190,26 +201,6 @@ class Migration(migrations.Migration): model_name='transaction', index=models.Index(fields=['destination'], name='note_transa_destina_6e1bb4_idx'), ), - migrations.AddField( - model_name='recurrenttransaction', - name='template', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='note.TransactionTemplate'), - ), - migrations.AddField( - model_name='noteuser', - name='user', - field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='note', to=settings.AUTH_USER_MODEL, verbose_name='user'), - ), - migrations.AddField( - model_name='noteclub', - name='club', - field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='note', to='member.Club', verbose_name='club'), - ), - migrations.AddField( - model_name='membershiptransaction', - name='membership', - field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='transaction', to='member.Membership'), - ), migrations.AddIndex( model_name='alias', index=models.Index(fields=['name'], name='note_alias_name_a89405_idx'), @@ -218,4 +209,8 @@ class Migration(migrations.Migration): model_name='alias', index=models.Index(fields=['normalized_name'], name='note_alias_normali_bd52b4_idx'), ), + migrations.AlterUniqueTogether( + name='trust', + unique_together={('trusting', 'trusted')}, + ), ] diff --git a/apps/note/migrations/0003_alter_note_polymorphic_ctype_and_more.py b/apps/note/migrations/0003_alter_note_polymorphic_ctype_and_more.py deleted file mode 100644 index 0873339..0000000 --- a/apps/note/migrations/0003_alter_note_polymorphic_ctype_and_more.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 4.2.7 on 2023-11-07 13:06 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - dependencies = [ - ("contenttypes", "0002_remove_content_type_name"), - ("note", "0002_special_note"), - ] - - operations = [ - migrations.AlterField( - model_name="note", - name="polymorphic_ctype", - field=models.ForeignKey( - editable=False, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="polymorphic_%(app_label)s.%(class)s_set+", - to="contenttypes.contenttype", - ), - ), - migrations.AlterField( - model_name="transaction", - name="polymorphic_ctype", - field=models.ForeignKey( - editable=False, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="polymorphic_%(app_label)s.%(class)s_set+", - to="contenttypes.contenttype", - ), - ), - ] diff --git a/apps/permission/migrations/0001_initial.py b/apps/permission/migrations/0001_initial.py index d124c30..ab65e31 100644 --- a/apps/permission/migrations/0001_initial.py +++ b/apps/permission/migrations/0001_initial.py @@ -1,7 +1,7 @@ -# Generated by Django 2.2.28 on 2022-08-17 20:53 +# Generated by Django 5.1 on 2024-08-13 09:26 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): @@ -9,26 +9,11 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('member', '0001_initial'), ('contenttypes', '0002_remove_content_type_name'), + ('member', '0001_initial'), ] operations = [ - migrations.CreateModel( - name='Permission', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('query', models.TextField(verbose_name='query')), - ('type', models.CharField(choices=[('add', 'add'), ('view', 'view'), ('change', 'change'), ('delete', 'delete')], max_length=15, verbose_name='type')), - ('field', models.CharField(blank=True, max_length=255, verbose_name='field')), - ('permanent', models.BooleanField(default=False, help_text='Tells if the permission should be granted even if the membership of the user is expired.', verbose_name='permanent')), - ('description', models.CharField(blank=True, max_length=255, verbose_name='description')), - ], - options={ - 'verbose_name': 'permission', - 'verbose_name_plural': 'permissions', - }, - ), migrations.CreateModel( name='PermissionMask', fields=[ @@ -41,31 +26,35 @@ class Migration(migrations.Migration): 'verbose_name_plural': 'permission masks', }, ), + migrations.CreateModel( + name='Permission', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('query', models.TextField(verbose_name='query')), + ('type', models.CharField(choices=[('add', 'add'), ('view', 'view'), ('change', 'change'), ('delete', 'delete')], max_length=15, verbose_name='type')), + ('field', models.CharField(blank=True, max_length=255, verbose_name='field')), + ('permanent', models.BooleanField(default=False, help_text='Tells if the permission should be granted even if the membership of the user is expired.', verbose_name='permanent')), + ('description', models.CharField(blank=True, max_length=255, verbose_name='description')), + ('model', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='contenttypes.contenttype', verbose_name='model')), + ('mask', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='permissions', to='permission.permissionmask', verbose_name='mask')), + ], + options={ + 'verbose_name': 'permission', + 'verbose_name_plural': 'permissions', + 'unique_together': {('model', 'query', 'type', 'field')}, + }, + ), migrations.CreateModel( name='Role', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, verbose_name='name')), - ('for_club', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, to='member.Club', verbose_name='for club')), - ('permissions', models.ManyToManyField(to='permission.Permission', verbose_name='permissions')), + ('for_club', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, to='member.club', verbose_name='for club')), + ('permissions', models.ManyToManyField(to='permission.permission', verbose_name='permissions')), ], options={ 'verbose_name': 'role permissions', 'verbose_name_plural': 'role permissions', }, ), - migrations.AddField( - model_name='permission', - name='mask', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='permissions', to='permission.PermissionMask', verbose_name='mask'), - ), - migrations.AddField( - model_name='permission', - name='model', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='contenttypes.ContentType', verbose_name='model'), - ), - migrations.AlterUniqueTogether( - name='permission', - unique_together={('model', 'query', 'type', 'field')}, - ), ] diff --git a/apps/registration/forms.py b/apps/registration/forms.py index 48757eb..72cd922 100644 --- a/apps/registration/forms.py +++ b/apps/registration/forms.py @@ -92,3 +92,9 @@ class ValidationForm(forms.Form): initial=False, ) + join_sinfonie = forms.BooleanField( + label=_("Join Sinfonie Club"), + required=False, + initial=False, + ) + diff --git a/apps/treasury/migrations/0001_initial.py b/apps/treasury/migrations/0001_initial.py index aea6175..be88e61 100644 --- a/apps/treasury/migrations/0001_initial.py +++ b/apps/treasury/migrations/0001_initial.py @@ -1,10 +1,10 @@ -# Generated by Django 2.2.28 on 2022-08-17 20:53 +# Generated by Django 5.1 on 2024-08-13 09:26 import datetime import django.core.validators -from django.db import migrations, models import django.db.models.deletion import django.utils.timezone +from django.db import migrations, models class Migration(migrations.Migration): @@ -20,7 +20,7 @@ class Migration(migrations.Migration): name='Invoice', fields=[ ('id', models.PositiveIntegerField(primary_key=True, serialize=False, verbose_name='Invoice identifier')), - ('bde', models.CharField(choices=[('BDE', 'BDE')], default='BDE', max_length=32, verbose_name='BDE')), + ('bde', models.CharField(choices=[('BDE', 'BDE'), ('BDA', 'BDA'), ('BDS', 'BDS')], default='BDE', max_length=32, verbose_name='BD?')), ('object', models.CharField(max_length=255, verbose_name='Object')), ('description', models.TextField(verbose_name='Description')), ('name', models.CharField(max_length=255, verbose_name='Name')), @@ -35,6 +35,31 @@ class Migration(migrations.Migration): 'verbose_name_plural': 'invoices', }, ), + migrations.CreateModel( + name='Product', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('designation', models.CharField(max_length=255, verbose_name='Designation')), + ('quantity', models.DecimalField(decimal_places=2, max_digits=7, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Quantity')), + ('amount', models.IntegerField(verbose_name='Unit price')), + ('invoice', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='products', to='treasury.invoice', verbose_name='invoice')), + ], + options={ + 'verbose_name': 'product', + 'verbose_name_plural': 'products', + }, + ), + migrations.CreateModel( + name='RemittanceType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('note', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='note.notespecial')), + ], + options={ + 'verbose_name': 'remittance type', + 'verbose_name_plural': 'remittance types', + }, + ), migrations.CreateModel( name='Remittance', fields=[ @@ -42,6 +67,7 @@ class Migration(migrations.Migration): ('date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date')), ('comment', models.CharField(max_length=255, verbose_name='Comment')), ('closed', models.BooleanField(default=False, verbose_name='Closed')), + ('remittance_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='treasury.remittancetype', verbose_name='Type')), ], options={ 'verbose_name': 'remittance', @@ -52,42 +78,12 @@ class Migration(migrations.Migration): name='SpecialTransactionProxy', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('remittance', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='transaction_proxies', to='treasury.Remittance', verbose_name='Remittance')), - ('transaction', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='note.SpecialTransaction')), + ('remittance', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='transaction_proxies', to='treasury.remittance', verbose_name='Remittance')), + ('transaction', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='note.specialtransaction')), ], options={ 'verbose_name': 'special transaction proxy', 'verbose_name_plural': 'special transaction proxies', }, ), - migrations.CreateModel( - name='RemittanceType', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('note', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='note.NoteSpecial')), - ], - options={ - 'verbose_name': 'remittance type', - 'verbose_name_plural': 'remittance types', - }, - ), - migrations.AddField( - model_name='remittance', - name='remittance_type', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='treasury.RemittanceType', verbose_name='Type'), - ), - migrations.CreateModel( - name='Product', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('designation', models.CharField(max_length=255, verbose_name='Designation')), - ('quantity', models.DecimalField(decimal_places=2, max_digits=7, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Quantity')), - ('amount', models.IntegerField(verbose_name='Unit price')), - ('invoice', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='products', to='treasury.Invoice', verbose_name='invoice')), - ], - options={ - 'verbose_name': 'product', - 'verbose_name_plural': 'products', - }, - ), ] diff --git a/apps/treasury/migrations/0002_auto_20220824_1919.py b/apps/treasury/migrations/0002_auto_20220824_1919.py deleted file mode 100644 index 1491463..0000000 --- a/apps/treasury/migrations/0002_auto_20220824_1919.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.2.28 on 2022-08-24 17:19 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('treasury', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='invoice', - name='bde', - field=models.CharField(choices=[('BDE', 'BDE'), ('BDA', 'BDA'), ('BDS', 'BDS')], default='BDE', max_length=32, verbose_name='BD?'), - ), - ]