From e46d62071a26b8a285c6c88cb681c308deddc286 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween Date: Wed, 21 Jan 2015 11:43:21 -0500 Subject: [PATCH] =?utf8?q?Optimisation=20de=20la=20requ=C3=AAte=20des=20ress?= =?utf8?q?ources=20valides?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- auf_savoirs_en_partage/savoirs/models.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/auf_savoirs_en_partage/savoirs/models.py b/auf_savoirs_en_partage/savoirs/models.py index 9be8418..f00e7a6 100644 --- a/auf_savoirs_en_partage/savoirs/models.py +++ b/auf_savoirs_en_partage/savoirs/models.py @@ -667,10 +667,14 @@ class RecordManager(SEPManager): def get_query_set(self): """Ne garder que les ressources validées et qui sont soit dans aucun listset ou au moins dans un listset validé.""" + ids_valides = ListSet.objects.filter(validated=True) \ + .values('record__id') + ids_invalides = ListSet.objects.filter(validated=False) \ + .values('record__id') qs = RecordQuerySet(self.model) qs = qs.filter(validated=True) - qs = qs.filter(Q(listsets__isnull=True) | Q(listsets__validated=True)) - return qs.distinct() + qs = qs.filter(Q(id__in=ids_valides) | ~Q(id__in=ids_invalides)) + return qs def get_sphinx_query_set(self): return RecordSphinxQuerySet(self.model) -- 1.7.10.4