From e57822e9576218b8f9ce18b56f2dba9d566d36b4 Mon Sep 17 00:00:00 2001
From: Dorian Lesbre <dorian.lesbre@gmail.com>
Date: Mon, 13 Sep 2021 19:01:54 +0200
Subject: [PATCH] Clean initial migrations

---
 accounts/migrations/0001_initial.py      |  37 ++++++++
 home/migrations/0001_initial.py          | 108 +++++++++++++++++++++++
 site_settings/migrations/0001_initial.py |  49 ++++++++++
 3 files changed, 194 insertions(+)
 create mode 100644 accounts/migrations/0001_initial.py
 create mode 100644 home/migrations/0001_initial.py
 create mode 100644 site_settings/migrations/0001_initial.py

diff --git a/accounts/migrations/0001_initial.py b/accounts/migrations/0001_initial.py
new file mode 100644
index 0000000..dfcc765
--- /dev/null
+++ b/accounts/migrations/0001_initial.py
@@ -0,0 +1,37 @@
+# Generated by Django 3.2.7 on 2021-09-13 17:01
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('auth', '0012_alter_user_first_name_max_length'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='EmailUser',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('password', models.CharField(max_length=128, verbose_name='password')),
+                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
+                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
+                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
+                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
+                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
+                ('email', models.EmailField(max_length=254, unique=True, verbose_name='adresse email')),
+                ('first_name', models.CharField(max_length=100, verbose_name='prénom')),
+                ('last_name', models.CharField(max_length=100, verbose_name='nom')),
+                ('email_confirmed', models.BooleanField(default=False, verbose_name='email vérifié')),
+                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
+                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
+            ],
+            options={
+                'verbose_name': 'utilisateur',
+            },
+        ),
+    ]
diff --git a/home/migrations/0001_initial.py b/home/migrations/0001_initial.py
new file mode 100644
index 0000000..3f541a2
--- /dev/null
+++ b/home/migrations/0001_initial.py
@@ -0,0 +1,108 @@
+# Generated by Django 3.2.7 on 2021-09-13 17:01
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+import home.models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='ActivityModel',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('display', models.BooleanField(default=False, help_text="Si vrai, s'affiche sur la page activités", verbose_name='afficher dans la liste')),
+                ('title', models.CharField(max_length=200, verbose_name='Titre')),
+                ('act_type', models.CharField(choices=[('1 partie', 'Une partie'), ('2+ parties', 'Quelques parties'), ('Tournoi', 'Tournoi'), ('freeplay', 'Freeplay'), ('other', 'Autre')], max_length=12, verbose_name="Type d'activité")),
+                ('game_type', models.CharField(choices=[('jeu cartes', 'Jeu de cartes'), ('jeu plateau', 'Jeu de société'), ('table RPG', 'Jeu de rôle sur table'), ('large RPG', 'Jeu de rôle grandeur nature'), ('videogame', 'Jeu vidéo'), ('partygame', 'Party game'), ('puzzle', 'Puzzle ou analogue'), ('secret roles', 'Jeu à rôles secrets'), ('coop', 'Jeu coopératif'), ('other', 'Autre')], max_length=12, verbose_name='Type de jeu')),
+                ('description', models.TextField(help_text='Texte ou html selon la valeur de "Description HTML".\n', max_length=10000, verbose_name='description')),
+                ('desc_as_html', models.BooleanField(default=False, help_text='Assurer vous que le texte est bien formaté, cette option peut casser la page activités.', verbose_name='Description au format HTML')),
+                ('host_name', models.CharField(blank=True, help_text='Peut-être laissé vide pour des simples activités sans orga', max_length=50, null=True, verbose_name="nom de l'organisateur")),
+                ('host_email', models.EmailField(help_text='Utilisé pour communiquer la liste des participants si demandé', max_length=254, verbose_name="email de l'organisateur")),
+                ('host_info', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Autre orgas/contacts')),
+                ('must_subscribe', models.BooleanField(default=False, help_text="Informatif, il faut utiliser les créneaux pour ajouter dans la liste d'inscription", verbose_name='sur inscription')),
+                ('communicate_participants', models.BooleanField(verbose_name="communiquer la liste des participants à l'orga avant l'événement")),
+                ('max_participants', models.PositiveIntegerField(default=0, help_text='0 pour illimité', verbose_name='Nombre maximum de participants')),
+                ('min_participants', models.PositiveIntegerField(default=0, verbose_name='Nombre minimum de participants')),
+                ('duration', models.DurationField(help_text='format hh:mm:ss', verbose_name='Durée')),
+                ('desired_slot_nb', models.PositiveIntegerField(default=1, validators=[home.models.validate_nonzero], verbose_name='Nombre de créneaux souhaités')),
+                ('available_friday_evening', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau vendredi soir')),
+                ('available_friday_night', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau vendredi nuit')),
+                ('available_saturday_morning', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau samedi matin')),
+                ('available_saturday_afternoon', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau samedi après-midi')),
+                ('available_saturday_evening', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau samedi soir')),
+                ('available_saturday_night', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau samedi nuit')),
+                ('available_sunday_morning', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau dimanche matin')),
+                ('available_sunday_afternoon', models.CharField(choices=[('0', 'Idéal'), ('1', 'Acceptable'), ('2', 'Indisponible')], default='1', max_length=1, verbose_name='Crénau dimanche après-midi')),
+                ('constraints', models.TextField(blank=True, max_length=2000, null=True, verbose_name='Contraintes particulières')),
+                ('status', models.CharField(choices=[('P', 'En présentiel uniquement'), ('D', 'En distanciel uniquement'), ('2', 'Les deux')], max_length=1, verbose_name='Présentiel/distanciel')),
+                ('needs', models.TextField(blank=True, max_length=2000, null=True, verbose_name='Besoin particuliers')),
+                ('comments', models.TextField(blank=True, max_length=2000, null=True, verbose_name='Commentaires')),
+                ('host', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Organisateur')),
+            ],
+            options={
+                'verbose_name': 'activité',
+            },
+        ),
+        migrations.CreateModel(
+            name='SlotModel',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('title', models.CharField(default='{act_title}', help_text="Utilisez '{act_title}' pour insérer le titre de l'activité correspondante", max_length=200, verbose_name='Titre')),
+                ('start', models.DateTimeField(verbose_name='début')),
+                ('duration', models.DurationField(blank=True, help_text="Format 00:00:00. Laisser vide pour prendre la durée de l'activité correspondante", null=True, verbose_name='durée')),
+                ('room', models.CharField(blank=True, max_length=100, null=True, verbose_name='salle')),
+                ('on_planning', models.BooleanField(default=False, help_text='Nécessite de salle et heure de début non vide', verbose_name='afficher sur le planning')),
+                ('subscribing_open', models.BooleanField(default=False, help_text="Si vrai, apparaît dans la liste du formulaire d'inscription", verbose_name='ouvert aux inscriptions')),
+                ('color', models.CharField(choices=[('a', 'Rouge'), ('b', 'Orange'), ('c', 'Jaune'), ('d', 'Vert'), ('e', 'Bleu'), ('f', 'Bleu foncé'), ('g', 'Noir')], default='f', help_text='La légende des couleurs est modifiable dans les paramètres', max_length=1, verbose_name='Couleur')),
+                ('activity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='home.activitymodel', verbose_name='Activité')),
+            ],
+            options={
+                'verbose_name': 'créneau',
+                'verbose_name_plural': 'créneaux',
+            },
+        ),
+        migrations.CreateModel(
+            name='ParticipantModel',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('school', models.CharField(choices=[('U', 'ENS Ulm'), ('L', 'ENS Lyon'), ('R', 'ENS Rennes'), ('C', 'ENS Paris Saclay')], max_length=1, verbose_name='ENS de rattachement')),
+                ('is_registered', models.BooleanField(default=False, verbose_name='est inscrit')),
+                ('meal_friday_evening', models.BooleanField(default=False, verbose_name='repas de vendredi soir')),
+                ('meal_saturday_morning', models.BooleanField(default=False, verbose_name='repas de samedi matin')),
+                ('meal_saturday_midday', models.BooleanField(default=False, verbose_name='repas de samedi midi')),
+                ('meal_saturday_evening', models.BooleanField(default=False, verbose_name='repas de samedi soir')),
+                ('meal_sunday_morning', models.BooleanField(default=False, verbose_name='repas de dimanche matin')),
+                ('meal_sunday_midday', models.BooleanField(default=False, verbose_name='repas de dimanche soir')),
+                ('sleeps', models.BooleanField(default=False, verbose_name='dormir sur place')),
+                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='Utilisateur', to=settings.AUTH_USER_MODEL)),
+            ],
+            options={
+                'verbose_name': 'participant',
+            },
+        ),
+        migrations.CreateModel(
+            name='ActivityChoicesModel',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('priority', models.PositiveIntegerField(verbose_name='priorité')),
+                ('accepted', models.BooleanField(default=False, verbose_name='Obtenue')),
+                ('participant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='home.participantmodel', verbose_name='participant')),
+                ('slot', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='home.slotmodel', verbose_name='créneau')),
+            ],
+            options={
+                'verbose_name': "choix d'activités",
+                'verbose_name_plural': "choix d'activités",
+                'ordering': ('participant', 'priority'),
+                'unique_together': {('participant', 'slot'), ('priority', 'participant')},
+            },
+        ),
+    ]
diff --git a/site_settings/migrations/0001_initial.py b/site_settings/migrations/0001_initial.py
new file mode 100644
index 0000000..d98c22f
--- /dev/null
+++ b/site_settings/migrations/0001_initial.py
@@ -0,0 +1,49 @@
+# Generated by Django 3.2.7 on 2021-09-13 17:01
+
+from django.db import migrations, models
+import site_settings.models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='SiteSettings',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('contact_email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='Email contact')),
+                ('date_start', models.DateField(blank=True, null=True, verbose_name='Date de début')),
+                ('date_end', models.DateField(blank=True, null=True, verbose_name='Date de fin')),
+                ('registrations_open', models.BooleanField(default=True, verbose_name='Ouvrir la création de compte')),
+                ('inscriptions_open', models.BooleanField(default=False, verbose_name='Ouvrir les inscriptions')),
+                ('activity_submission_open', models.BooleanField(default=False, help_text='Permet de proposer une activité via le formulaire dédié', verbose_name="Ouvrir l'ajout d'activité")),
+                ('inscriptions_start', models.DateTimeField(blank=True, help_text="Cette date n'est qu'informative. Les inscription s'ouvrent via la checkbox uniquement", null=True, verbose_name='Ouverture des inscriptions')),
+                ('inscriptions_end', models.DateTimeField(blank=True, help_text="Cette date n'est qu'informative. Les inscription se ferment via la checkbox uniquement", null=True, verbose_name='Fermeture des inscriptions')),
+                ('display_planning', models.BooleanField(default=False, verbose_name='Afficher le planning')),
+                ('planning_file', models.FileField(blank=True, null=True, storage=site_settings.models.OverwriteStorage(), upload_to='', verbose_name='Version PDF du planning')),
+                ('activities_allocated', models.BooleanField(default=False, help_text="Suppose que l'allocation des activités a été effectuée.", verbose_name='Afficher les activités obtenues')),
+                ('discord_link', models.CharField(blank=True, max_length=200, null=True, verbose_name='Lien du serveur discord')),
+                ('allow_mass_mail', models.BooleanField(default=False, help_text="Par sécurité, n'activez ceci qu'au moment d'envoyer les emails et désactivez le après", verbose_name="Permettre l'envoi de mails collectifs (aux utilisateurs et orgas)")),
+                ('user_notified', models.BooleanField(default=False, help_text="Ce champ existe pour éviter l'envoie de plusieurs mails successifs. Le decocher permet de renvoyer tous les mails", verbose_name="L'email de répartition des activités a été envoyé")),
+                ('orga_notified', models.BooleanField(default=False, help_text="Ce champ existe pour éviter l'envoie de plusieurs mails successifs. Le decocher permet de renvoyer tous les mails", verbose_name="L'email de liste des participants a été envoyé")),
+                ('global_message', models.TextField(blank=True, help_text='Message affiché en haut de chaque page (si non vide)', null=True, verbose_name='Message global')),
+                ('global_message_as_html', models.BooleanField(default=False, help_text='Assurez vous que le message est bien formaté, cela peut casser toutes les pages du site', verbose_name='Message global au format HTML')),
+                ('caption_red', models.CharField(blank=True, default='Jeux de rôle grandeur nature', max_length=200, null=True, verbose_name='Légende planning (rouge)')),
+                ('caption_orange', models.CharField(blank=True, default='Jeux de rôle sur table', max_length=200, null=True, verbose_name='Légende planning (orange)')),
+                ('caption_yellow', models.CharField(blank=True, default='Activités libres', max_length=200, null=True, verbose_name='Légende planning (jaune)')),
+                ('caption_green', models.CharField(blank=True, default='Tournois', max_length=200, null=True, verbose_name='Légende planning (vert)')),
+                ('caption_blue', models.CharField(blank=True, default='Événements de début et fin', max_length=200, null=True, verbose_name='Légende planning (bleu)')),
+                ('caption_dark_blue', models.CharField(blank=True, default='Jeux vidéos', max_length=200, null=True, verbose_name='Légende planning (bleu foncé)')),
+                ('caption_black', models.CharField(blank=True, default='Autre', max_length=200, null=True, verbose_name='Légende planning (noir)')),
+            ],
+            options={
+                'verbose_name': 'paramètres',
+                'verbose_name_plural': 'paramètres',
+            },
+        ),
+    ]
-- 
GitLab