From 912f3cca24da9d870aa191348fef901adcd55b7d Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Wed, 1 Nov 2017 15:17:35 +0100 Subject: get_parents() sélectionne aussi les groupes enfants dont le sous-groupe commence par la même chaîne que celui du groupe passé en paramètre. Correction cosmétique du code. --- models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'models.py') diff --git a/models.py b/models.py index c546737..c3118a3 100644 --- a/models.py +++ b/models.py @@ -71,7 +71,7 @@ class Timetable(SlugModel): class GroupManager(Manager): def get_parents(self, group): - groups_criteria = Q(subgroup__isnull=True) | \ + groups_criteria = Q(subgroup__isnull=True) | Q(subgroup__startswith=group.subgroup) | \ reduce(lambda x, y: x | y, [Q(subgroup=group.subgroup[:i]) for i in range(1, len(group.subgroup) + 1)]) @@ -80,7 +80,7 @@ class GroupManager(Manager): timetable=group.timetable) def get_relevant_groups(self, timetable, *args, **criteria): - sub = Group.objects.filter(timetable=timetable,mention=OuterRef("mention"), + sub = Group.objects.filter(timetable=timetable, mention=OuterRef("mention"), subgroup__startswith=OuterRef("subgroup")) \ .order_by().values("mention").annotate(c=Count("*")).values("c") -- cgit v1.2.1 From 9d364f627dc90f3a361cc9acbc2e91f64ee9edcf Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Wed, 1 Nov 2017 16:08:38 +0100 Subject: Utilisation de self.get_queryset() plutôt que Group.objects --- models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'models.py') diff --git a/models.py b/models.py index c3118a3..cb975ab 100644 --- a/models.py +++ b/models.py @@ -80,7 +80,7 @@ class GroupManager(Manager): timetable=group.timetable) def get_relevant_groups(self, timetable, *args, **criteria): - sub = Group.objects.filter(timetable=timetable, mention=OuterRef("mention"), + sub = self.get_queryset().filter(timetable=timetable, mention=OuterRef("mention"), subgroup__startswith=OuterRef("subgroup")) \ .order_by().values("mention").annotate(c=Count("*")).values("c") -- cgit v1.2.1 From bb973abfbd566a0f019822453d06f8b0ef3f6dac Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Fri, 3 Nov 2017 17:40:11 +0100 Subject: Prise en compte des groupes qui n’ont pas de sous-groupe dans la liste des groupes pertinents --- models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'models.py') diff --git a/models.py b/models.py index cb975ab..3af1c06 100644 --- a/models.py +++ b/models.py @@ -86,7 +86,7 @@ class GroupManager(Manager): return self.get_queryset().filter(*args, timetable=timetable, hidden=False, **criteria) \ .annotate(nbsub=Subquery(sub, output_field=models.IntegerField())) \ - .filter(nbsub=1).order_by("name") + .filter(Q(nbsub=1) | Q(nbsub__isnull=True)).order_by("name") class Group(models.Model): -- cgit v1.2.1