From c525613145b9630623389a6b778bb2597d72693d Mon Sep 17 00:00:00 2001
From: Dorian Lesbre <dorian.lesbre@gmail.com>
Date: Sat, 6 Mar 2021 14:01:57 +0100
Subject: [PATCH] Added fields to models

---
 home/admin.py           | 15 ++++++++-------
 home/models.py          | 37 +++++++++++++++++++++++++++----------
 site_settings/models.py |  2 ++
 3 files changed, 37 insertions(+), 17 deletions(-)

diff --git a/home/admin.py b/home/admin.py
index e6e1aa1..e9b0297 100644
--- a/home/admin.py
+++ b/home/admin.py
@@ -28,25 +28,25 @@ class ExportCsvMixin:
 
 	export_as_csv.short_description = "Exporter au format CSV"
 
-	actions = ["export_as_csv"]
-
 
 @admin.register(InterludesActivity)
 class InterludesActivityAdmin(admin.ModelAdmin, ExportCsvMixin):
 	"""option d'affichage des activités dans la vue django admin"""
-	list_display = ("title", "host_name", "display", "must_subscribe",)
-	list_filter = ("display", "must_subscribe",)
+	list_display = ("title", "host_name", "display", "must_subscribe","on_planning")
+	list_filter = ("display", "must_subscribe", "on_planning")
 	ordering = ("title", "host_name",)
 	list_editable = ("display",)
 	list_per_page = 100
+	actions = ["export_as_csv"]
 
 @admin.register(InterludesParticipant)
 class InterludesParticipantAdmin(admin.ModelAdmin, ExportCsvMixin):
 	"""option d'affichage des participant dans la vue django admin"""
-	list_display = ("name", "school",)
-	list_filter = ("school",)
-	ordering = ("name",)
+	list_display = ("user", "school", "is_registered")
+	list_filter = ("school", "is_registered")
+	ordering = ("user",)
 	list_per_page = 200
+	actions = ["export_as_csv"]
 
 @admin.register(ActivityList)
 class ActivityListAdmin(admin.ModelAdmin, ExportCsvMixin):
@@ -55,3 +55,4 @@ class ActivityListAdmin(admin.ModelAdmin, ExportCsvMixin):
 	list_filter = ("activity", "participant",)
 	ordering = ("participant", "priority",)
 	list_per_page = 200
+	actions = ["export_as_csv"]
diff --git a/home/models.py b/home/models.py
index de4d430..5687f20 100644
--- a/home/models.py
+++ b/home/models.py
@@ -13,11 +13,16 @@ class InterludesActivity(models.Model):
 	min_paricipants = models.PositiveIntegerField(
 		"Nombre minimum de participants"
 	)
-	display = models.BooleanField("Afficher cette activité", default=False)
-	must_subscribe = models.BooleanField("Sur inscription", default=False)
-	host_name = models.CharField("Nom de l'organisateur", max_length=50)
-	host_email = models.EmailField("Email de l'organisateur")
-	description = models.TextField("Description", max_length=2000)
+	display = models.BooleanField("afficher cette activité", default=False)
+	must_subscribe = models.BooleanField("sur inscription", default=False)
+	host_name = models.CharField("nom de l'organisateur", max_length=50)
+	host_email = models.EmailField("email de l'organisateur")
+	description = models.TextField("description", max_length=2000)
+
+	on_planning = models.BooleanField("afficher sur le planning", default=False)
+	start = models.DateTimeField("début", null=True, blank=True)
+	room = models.CharField("salle", max_length=100, null=True, blank=True)
+
 	notes = models.TextField("Notes privées", max_length=2000)
 
 	@property
@@ -44,12 +49,23 @@ class InterludesParticipant(models.Model):
 		ENS_CACHAN = "C", _("ENS Paris Saclay")
 
 	user = models.OneToOneField(EmailUser, on_delete=models.CASCADE, related_name="Utilisateur")
-	name = models.CharField("Nom complet", max_length=200)
-	email = models.EmailField("email")
 	school = models.CharField("ENS de rattachement", choices=ENS.choices, max_length=1)
 
+	is_registered = models.BooleanField("est inscrit", default=False)
+
+	meal_friday_evening = models.BooleanField("repas de vendredi soir", default=False)
+	meal_saturday_morning = models.BooleanField("repas de samedi matin", default=False)
+	meal_saturday_midday = models.BooleanField("repas de samedi midi", default=False)
+	meal_saturday_evening = models.BooleanField("repas de samedi soir", default=False)
+	meal_sunday_morning = models.BooleanField("repas de dimanche matin", default=False)
+	meal_sunday_midday = models.BooleanField("repas de dimanche soir", default=False)
+
+	sleeps = models.BooleanField("dormir sur place", default=False)
+
+	mug = models.BooleanField("commander une tasse", default=False)
+
 	def __str__(self) -> str:
-		return "{} ({})".format(self.name, self.school)
+		return "{} {} ({})".format(self.user.first_name, self.user.last_name, self.school)
 
 	class Meta:
 		verbose_name = "participant"
@@ -65,10 +81,11 @@ class ActivityList(models.Model):
 	activity = models.ForeignKey(
 		InterludesActivity, on_delete=models.CASCADE, db_column="activité"
 	)
+	accepted = models.BooleanField(default=False)
 
 	class Meta:
-		# le couple participant, priority est unique
-		unique_together = (("priority", "participant"))
+		# couples uniques
+		unique_together = (("priority", "participant"), ("participant", "activity"))
 		ordering = ("participant", "priority")
 		verbose_name = "choix d'activités"
 		verbose_name_plural = "choix d'activités"
diff --git a/site_settings/models.py b/site_settings/models.py
index c36ef0e..f243cbb 100644
--- a/site_settings/models.py
+++ b/site_settings/models.py
@@ -39,6 +39,8 @@ class SiteSettings(SingletonModel):
 	registrations_open = models.BooleanField("Ouvrir la création de compte", default=False)
 	inscriptions_open = models.BooleanField("Ouvrir les inscriptions", default=False)
 
+	display_planning = models.BooleanField("Afficher le planning", default=False)
+
 	class Meta:
 		verbose_name = "paramètres"
 
-- 
GitLab