# Generated by Django 5.1.3 on 2025-05-28 11:14 import Subscriptions.models import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('Auth', '__first__'), ('Common', '0001_initial'), ('Establishment', '0001_initial'), ('School', '__first__'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Language', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('label', models.CharField(default='', max_length=200)), ], ), migrations.CreateModel( name='Student', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('photo', models.FileField(blank=True, null=True, upload_to=Subscriptions.models.registration_photo_upload_to)), ('last_name', models.CharField(default='', max_length=200)), ('first_name', models.CharField(default='', max_length=200)), ('gender', models.IntegerField(blank=True, choices=[(0, 'Sélection du genre'), (1, 'Garçon'), (2, 'Fille')], default=0)), ('nationality', models.CharField(blank=True, default='', max_length=200)), ('address', models.CharField(blank=True, default='', max_length=200)), ('birth_date', models.DateField(blank=True, null=True)), ('birth_place', models.CharField(blank=True, default='', max_length=200)), ('birth_postal_code', models.IntegerField(blank=True, default=0)), ('attending_physician', models.CharField(blank=True, default='', max_length=200)), ('associated_class', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='students', to='School.schoolclass')), ], ), migrations.CreateModel( name='RegistrationSchoolFileTemplate', fields=[ ('id', models.IntegerField(primary_key=True, serialize=False)), ('slug', models.CharField(default='', max_length=255)), ('name', models.CharField(default='', max_length=255)), ('file', models.FileField(blank=True, null=True, upload_to=Subscriptions.models.registration_school_file_upload_to)), ], ), migrations.CreateModel( name='Sibling', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('last_name', models.CharField(blank=True, max_length=200, null=True)), ('first_name', models.CharField(blank=True, max_length=200, null=True)), ('birth_date', models.DateField(blank=True, null=True)), ], ), migrations.CreateModel( name='Guardian', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('last_name', models.CharField(blank=True, max_length=200, null=True)), ('first_name', models.CharField(blank=True, max_length=200, null=True)), ('birth_date', models.DateField(blank=True, null=True)), ('address', models.CharField(blank=True, default='', max_length=200)), ('phone', models.CharField(blank=True, default='', max_length=200)), ('profession', models.CharField(blank=True, default='', max_length=200)), ('profile_role', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='guardian_profile', to='Auth.profilerole')), ], ), migrations.CreateModel( name='RegistrationFileGroup', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(default='', max_length=255)), ('description', models.TextField(blank=True, null=True)), ('establishment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='file_group', to='Establishment.establishment')), ], ), migrations.CreateModel( name='RegistrationForm', fields=[ ('student', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='Subscriptions.student')), ('status', models.IntegerField(choices=[(0, "Pas de dossier d'inscription"), (1, "Dossier d'inscription initialisé"), (2, "Dossier d'inscription envoyé"), (3, "Dossier d'inscription en cours de validation"), (4, "Dossier d'inscription à relancer"), (5, "Dossier d'inscription validé"), (6, "Dossier d'inscription archivé"), (7, 'Mandat SEPA envoyé'), (8, 'Mandat SEPA à envoyer')], default=0)), ('last_update', models.DateTimeField(auto_now=True)), ('school_year', models.CharField(blank=True, default='', max_length=9)), ('notes', models.CharField(blank=True, max_length=200)), ('registration_link_code', models.CharField(blank=True, default='', max_length=200)), ('registration_file', models.FileField(blank=True, null=True, upload_to=Subscriptions.models.registration_file_path)), ('sepa_file', models.FileField(blank=True, null=True, upload_to=Subscriptions.models.registration_file_path)), ('fusion_file', models.FileField(blank=True, null=True, upload_to=Subscriptions.models.registration_file_path)), ('associated_rf', models.CharField(blank=True, default='', max_length=200)), ('discounts', models.ManyToManyField(blank=True, related_name='register_forms', to='School.discount')), ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='register_forms', to='Establishment.establishment')), ('fees', models.ManyToManyField(blank=True, related_name='register_forms', to='School.fee')), ('fileGroup', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='register_forms', to='Subscriptions.registrationfilegroup')), ('registration_payment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='registration_payment_modes_forms', to='School.paymentmode')), ('registration_payment_plan', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='registration_payment_plans_forms', to='School.paymentplan')), ('tuition_payment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tuition_payment_modes_forms', to='School.paymentmode')), ('tuition_payment_plan', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tuition_payment_plans_forms', to='School.paymentplan')), ], ), migrations.AddField( model_name='student', name='guardians', field=models.ManyToManyField(blank=True, to='Subscriptions.guardian'), ), migrations.AddField( model_name='student', name='level', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='students', to='Common.level'), ), migrations.AddField( model_name='student', name='profiles', field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='student', name='spoken_languages', field=models.ManyToManyField(blank=True, to='Subscriptions.language'), ), migrations.CreateModel( name='BilanCompetence', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file', models.FileField(blank=True, null=True, upload_to=Subscriptions.models.registration_bilan_form_upload_to)), ('period', models.CharField(help_text='Période ex: T1-2024_2025, S1-2024_2025, A-2024_2025', max_length=20)), ('created_at', models.DateTimeField(auto_now_add=True)), ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='bilans', to='Subscriptions.student')), ], ), migrations.CreateModel( name='AbsenceManagement', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('day', models.DateField(blank=True, null=True)), ('moment', models.IntegerField(choices=[(1, 'Morning'), (2, 'Afternoon'), (3, 'Total')], default=3)), ('reason', models.IntegerField(choices=[(1, 'Justified Absence'), (2, 'Unjustified Absence'), (3, 'Justified Late'), (4, 'Unjustified Late')], default=2)), ('commentaire', models.TextField(blank=True, null=True)), ('establishment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='absences', to='Establishment.establishment')), ('student', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='absences', to='Subscriptions.student')), ], ), migrations.CreateModel( name='RegistrationParentFileMaster', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(default='', max_length=255)), ('description', models.CharField(blank=True, null=True)), ('is_required', models.BooleanField(default=False)), ('groups', models.ManyToManyField(blank=True, related_name='parent_file_masters', to='Subscriptions.registrationfilegroup')), ], ), migrations.CreateModel( name='RegistrationSchoolFileMaster', fields=[ ('id', models.IntegerField(primary_key=True, serialize=False)), ('name', models.CharField(default='', max_length=255)), ('is_required', models.BooleanField(default=False)), ('groups', models.ManyToManyField(blank=True, related_name='school_file_masters', to='Subscriptions.registrationfilegroup')), ], ), migrations.AddField( model_name='student', name='registration_files', field=models.ManyToManyField(blank=True, related_name='students', to='Subscriptions.registrationschoolfiletemplate'), ), migrations.AddField( model_name='registrationschoolfiletemplate', name='master', field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='school_file_templates', to='Subscriptions.registrationschoolfilemaster'), ), migrations.AddField( model_name='student', name='siblings', field=models.ManyToManyField(blank=True, to='Subscriptions.sibling'), ), migrations.AddField( model_name='registrationschoolfiletemplate', name='registration_form', field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='school_file_templates', to='Subscriptions.registrationform'), ), migrations.CreateModel( name='RegistrationParentFileTemplate', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file', models.FileField(blank=True, null=True, upload_to=Subscriptions.models.registration_parent_file_upload_to)), ('master', models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='parent_file_templates', to='Subscriptions.registrationparentfilemaster')), ('registration_form', models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='parent_file_templates', to='Subscriptions.registrationform')), ], ), migrations.CreateModel( name='StudentCompetency', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('score', models.IntegerField(blank=True, null=True)), ('comment', models.TextField(blank=True, null=True)), ('period', models.CharField(blank=True, default='', help_text="Période d'évaluation ex: T1-2024_2025, S1-2024_2025, A-2024_2025", max_length=20)), ('establishment_competency', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_scores', to='School.establishmentcompetency')), ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='competency_scores', to='Subscriptions.student')), ], options={ 'unique_together': {('student', 'establishment_competency', 'period')}, }, ), ]