From a057fa6774112373923c79f1a1815e34f171c19a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Mogu=C3=A9rou?= Date: Sat, 20 Apr 2024 03:23:29 +0200 Subject: [PATCH] ics permalink --- colloscope/admin.py | 1 + ...profil_id_alter_profil_colleur_and_more.py | 47 ++++++++++++++++ ...calendrier_id_alter_liencalendrier_code.py | 24 ++++++++ .../0010_alter_liencalendrier_code.py | 18 ++++++ .../0011_alter_liencalendrier_code.py | 18 ++++++ colloscope/models.py | 13 +++++ colloscope/templates/dashboard.html | 2 +- colloscope/views.py | 55 ++++++++++++------- 8 files changed, 156 insertions(+), 22 deletions(-) create mode 100644 colloscope/migrations/0008_remove_profil_id_alter_profil_colleur_and_more.py create mode 100644 colloscope/migrations/0009_liencalendrier_id_alter_liencalendrier_code.py create mode 100644 colloscope/migrations/0010_alter_liencalendrier_code.py create mode 100644 colloscope/migrations/0011_alter_liencalendrier_code.py diff --git a/colloscope/admin.py b/colloscope/admin.py index 7040222..2ee6296 100644 --- a/colloscope/admin.py +++ b/colloscope/admin.py @@ -14,3 +14,4 @@ admin.site.register(Creneau) admin.site.register(Rotation) admin.site.register(Amendement) admin.site.register(Profil) +admin.site.register(LienCalendrier) diff --git a/colloscope/migrations/0008_remove_profil_id_alter_profil_colleur_and_more.py b/colloscope/migrations/0008_remove_profil_id_alter_profil_colleur_and_more.py new file mode 100644 index 0000000..700312b --- /dev/null +++ b/colloscope/migrations/0008_remove_profil_id_alter_profil_colleur_and_more.py @@ -0,0 +1,47 @@ +# Generated by Django 5.0.4 on 2024-04-20 00:53 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('colloscope', '0007_profil_delete_utilisateur'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.RemoveField( + model_name='profil', + name='id', + ), + migrations.AlterField( + model_name='profil', + name='colleur', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='colloscope.colleur'), + ), + migrations.AlterField( + model_name='profil', + name='etudiant', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='colloscope.etudiant'), + ), + migrations.AlterField( + model_name='profil', + name='utilisateur', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL), + ), + migrations.CreateModel( + name='LienCalendrier', + fields=[ + ('code', models.CharField(max_length=50, primary_key=True, serialize=False)), + ('etudiant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='colloscope.etudiant')), + ('periode', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='colloscope.periode')), + ], + ), + migrations.AddConstraint( + model_name='liencalendrier', + constraint=models.UniqueConstraint(fields=('etudiant', 'periode'), name='unique_etudiant_periode_combination'), + ), + ] diff --git a/colloscope/migrations/0009_liencalendrier_id_alter_liencalendrier_code.py b/colloscope/migrations/0009_liencalendrier_id_alter_liencalendrier_code.py new file mode 100644 index 0000000..0a2be7b --- /dev/null +++ b/colloscope/migrations/0009_liencalendrier_id_alter_liencalendrier_code.py @@ -0,0 +1,24 @@ +# Generated by Django 5.0.4 on 2024-04-20 01:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('colloscope', '0008_remove_profil_id_alter_profil_colleur_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='liencalendrier', + name='id', + field=models.BigAutoField(auto_created=True, default=1, primary_key=True, serialize=False, verbose_name='ID'), + preserve_default=False, + ), + migrations.AlterField( + model_name='liencalendrier', + name='code', + field=models.CharField(max_length=50), + ), + ] diff --git a/colloscope/migrations/0010_alter_liencalendrier_code.py b/colloscope/migrations/0010_alter_liencalendrier_code.py new file mode 100644 index 0000000..eab10a3 --- /dev/null +++ b/colloscope/migrations/0010_alter_liencalendrier_code.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.4 on 2024-04-20 01:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('colloscope', '0009_liencalendrier_id_alter_liencalendrier_code'), + ] + + operations = [ + migrations.AlterField( + model_name='liencalendrier', + name='code', + field=models.CharField(max_length=50, unique=True), + ), + ] diff --git a/colloscope/migrations/0011_alter_liencalendrier_code.py b/colloscope/migrations/0011_alter_liencalendrier_code.py new file mode 100644 index 0000000..21cd143 --- /dev/null +++ b/colloscope/migrations/0011_alter_liencalendrier_code.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.4 on 2024-04-20 01:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('colloscope', '0010_alter_liencalendrier_code'), + ] + + operations = [ + migrations.AlterField( + model_name='liencalendrier', + name='code', + field=models.CharField(max_length=32, unique=True), + ), + ] diff --git a/colloscope/models.py b/colloscope/models.py index 38b7872..44c2230 100644 --- a/colloscope/models.py +++ b/colloscope/models.py @@ -362,3 +362,16 @@ class Profil(models.Model): return profil.colleur case _: raise ValueError("profil non choisi") + + +class LienCalendrier(models.Model): + code = models.CharField(max_length=32, unique=True) + etudiant = models.ForeignKey(Etudiant, on_delete=models.CASCADE) + periode = models.ForeignKey(Periode, on_delete=models.CASCADE) + + class Meta: + constraints = [ + models.UniqueConstraint( + fields=['etudiant', 'periode'], name='unique_etudiant_periode_combination' + ) + ] diff --git a/colloscope/templates/dashboard.html b/colloscope/templates/dashboard.html index 0d489d5..fab18a7 100644 --- a/colloscope/templates/dashboard.html +++ b/colloscope/templates/dashboard.html @@ -13,7 +13,7 @@ Bienvenue {{ etudiant }}. Votre lycée est {{ periode.classe.lycee.libelle }}, e

Période actuelle : {{ periode }}. Votre groupe de colle est {{ groupe }}. Consulter le colloscope

Mes colles

-Exporter en .ics +Exporter en .ics