From a6c5bfa4796081747e04ae4047007d5c8ad23164 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Mon, 4 Sep 2017 18:35:26 +0200 Subject: Ajout d’un champ « groupe parent » au modèle Group pour n’afficher que les groupes qui n’ont pas d’enfants. Par exemple, le groupe TPA21 aura comme parent le groupe TDA2, qui aura le groupe CMA comme parent. Pour l’instant, le parseur d’emploi du temps ne créée pas de telles relations. --- models.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'models.py') diff --git a/models.py b/models.py index 876160b..53bcef7 100644 --- a/models.py +++ b/models.py @@ -56,7 +56,14 @@ class LastUpdate(models.Model): verbose_name_plural = "dernières mises à jour" +class GroupManager(Manager): + def get_relevant_groups(self): + return self.get_queryset().annotate(children_count=Count("children")).filter(children_count=0) + + class Group(models.Model): + objects = GroupManager() + name = models.CharField(max_length=255, verbose_name="nom") celcat_name = models.CharField(max_length=255, verbose_name="nom dans Celcat") timetable = models.ForeignKey(Timetable, on_delete=models.CASCADE, verbose_name="emploi du temps") @@ -65,6 +72,7 @@ class Group(models.Model): subgroup = models.CharField(max_length=1, verbose_name="sous-groupe", null=True) td = models.IntegerField(verbose_name="groupe de TD", null=True) tp = models.IntegerField(verbose_name="groupe de TP", null=True) + parent_group = models.ForeignKey("self", verbose_name="groupe parent", null=True, default=None, related_name="children") slug = models.SlugField(max_length=64, default="") -- cgit v1.2.1