diff --git a/src/core/models/conference.py b/src/core/models/conference.py index 0b8be5714120146fe5d6d130bfbb1d53cdcc2abd..f1d5bbe2abbf68f5255a0c6949fbb7cf364f62c1 100644 --- a/src/core/models/conference.py +++ b/src/core/models/conference.py @@ -179,14 +179,12 @@ class ConferenceManager(models.Manager): return qs # limit on the public ones - qs = qs.filter(is_public=True) + public_query = qs.filter(is_public=True).values('id') # for logged-in members, add all non-public conferences in which the user has the staff flag set - conf_ids = ConferenceMember.objects.filter(user=user, is_staff=True, conference__is_public=False).values_list('conference_id', flat=True) - if len(conf_ids) > 0: - qs = qs.union(self.get_queryset().filter(id__in=conf_ids)) + conf_staff_query = ConferenceMember.objects.filter(user=user, is_staff=True, conference__is_public=False).values('conference_id') - return qs + return qs.filter(id__in=public_query.union(conf_staff_query)) def public_accessible(self): return self.get_queryset().filter(is_public=True)