diff --git a/apps/news/models.py b/apps/news/models.py index 2316fc27..3a529cc4 100644 --- a/apps/news/models.py +++ b/apps/news/models.py @@ -128,8 +128,14 @@ class NewsQuerySet(TranslationQuerysetMixin): return self.exclude(models.Q(publication_date__isnull=True) | models.Q(publication_time__isnull=True)). \ filter(models.Q(models.Q(end__gte=now) | models.Q(end__isnull=True)), - state__in=self.model.PUBLISHED_STATES, publication_date__lte=date_now, - publication_time__lte=time_now) + state__in=self.model.PUBLISHED_STATES)\ + .annotate(visible_now=Case( + When(publication_date__gt=date_now, then=False), + When(Q(publication_date=date_now) & Q(publication_time__gt=time_now), then=False), + default=True, + output_field=models.BooleanField() + ))\ + .exclude(visible_now=False) # todo: filter by best score # todo: filter by country?