From b3e7b599033f918bd0a44ad8c054c213410b248f Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Wed, 17 Jul 2019 17:50:53 +0200 Subject: [PATCH] Migrations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Une migration pour les modèles, et une pour créer le groupe du Burô du BDS --- bds/migrations/0001_initial.py | 141 +++++++++++++++++++++++++++++++ bds/migrations/0002_bds_group.py | 30 +++++++ cof/settings/common.py | 1 + 3 files changed, 172 insertions(+) create mode 100644 bds/migrations/0001_initial.py create mode 100644 bds/migrations/0002_bds_group.py diff --git a/bds/migrations/0001_initial.py b/bds/migrations/0001_initial.py new file mode 100644 index 00000000..fe721897 --- /dev/null +++ b/bds/migrations/0001_initial.py @@ -0,0 +1,141 @@ +# Generated by Django 2.2 on 2019-07-17 12:48 + +import bds.models +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [migrations.swappable_dependency(settings.AUTH_USER_MODEL)] + + operations = [ + migrations.CreateModel( + name="BDSProfile", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "phone", + models.CharField( + blank=True, max_length=20, verbose_name="Téléphone" + ), + ), + ( + "occupation", + models.CharField( + choices=[ + ("EXT", "Extérieur"), + ("1A", "1A"), + ("2A", "2A"), + ("3A", "3A"), + ("4A", "4A"), + ("MAG", "Magistérien"), + ("ARC", "Archicube"), + ("DOC", "Doctorant"), + ("CST", "CST"), + ("PER", "Personnel ENS"), + ], + default="1A", + max_length=3, + verbose_name="Occupation", + ), + ), + ( + "departement", + models.CharField( + blank=True, max_length=50, verbose_name="Département" + ), + ), + ( + "birthdate", + models.DateField( + blank=True, null=True, verbose_name="Date de naissance" + ), + ), + ( + "mails_bds", + models.BooleanField( + default=False, verbose_name="Recevoir les mails du BDS" + ), + ), + ( + "is_buro", + models.BooleanField( + default=False, verbose_name="Membre du Burô du BDS" + ), + ), + ( + "has_certificate", + models.BooleanField( + default=False, verbose_name="Certificat médical" + ), + ), + ( + "certificate_file", + models.FileField( + blank=True, + upload_to=bds.models.BDSProfile.get_certificate_filename, + verbose_name="Fichier de certificat médical", + ), + ), + ( + "ASPSL_number", + models.CharField( + blank=True, + max_length=50, + null=True, + verbose_name="Numéro AS PSL", + ), + ), + ( + "FFSU_number", + models.CharField( + blank=True, max_length=50, null=True, verbose_name="Numéro FFSU" + ), + ), + ( + "cotisation_period", + models.CharField( + choices=[ + ("ANN", "Année"), + ("SE1", "Premier semestre"), + ("SE2", "Deuxième semestre"), + ("NO", "Aucune"), + ], + default="NO", + max_length=3, + verbose_name="Inscription", + ), + ), + ( + "registration_date", + models.DateField( + auto_now_add=True, verbose_name="Date d'inscription" + ), + ), + ( + "user", + models.OneToOneField( + on_delete=django.db.models.deletion.CASCADE, + related_name="bds", + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + "verbose_name": "Profil BDS", + "verbose_name_plural": "Profils BDS", + }, + ) + ] diff --git a/bds/migrations/0002_bds_group.py b/bds/migrations/0002_bds_group.py new file mode 100644 index 00000000..9b54d35c --- /dev/null +++ b/bds/migrations/0002_bds_group.py @@ -0,0 +1,30 @@ +# Generated by Django 2.2 on 2019-07-17 14:56 + +from django.contrib.auth.management import create_permissions +from django.db import migrations +from django.db.models import Q + + +def create_bds_buro_group(apps, schema_editor): + for app_config in apps.get_app_configs(): + create_permissions(app_config, apps=apps, verbosity=0) + + Group = apps.get_model("auth", "Group") + Permission = apps.get_model("auth", "Permission") + group, created = Group.objects.get_or_create(name="Burô du BDS") + if created: + perms = Permission.objects.filter( + Q(content_type__app_label="bds") + | Q(content_type__app_label="auth") & Q(content_type__model="user") + ) + group.permissions.set(perms) + group.save() + + +class Migration(migrations.Migration): + + dependencies = [("bds", "0001_initial")] + + operations = [ + migrations.RunPython(create_bds_buro_group, migrations.RunPython.noop) + ] diff --git a/cof/settings/common.py b/cof/settings/common.py index 1b6f3bd1..dc59d0f1 100644 --- a/cof/settings/common.py +++ b/cof/settings/common.py @@ -103,6 +103,7 @@ INSTALLED_APPS = [ "kfet.auth", "kfet.cms", "gestioncof.cms", + "bds", ]