From 5ead4f1bf16cb62408144e2bb7e81c5bce533108 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Fri, 14 Jan 2022 12:55:25 +0200 Subject: [PATCH] fix autohide filtering for feed --- webapp/views.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/webapp/views.py b/webapp/views.py index a157d7a..78a784c 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -281,22 +281,16 @@ class FeedViewSet(ModelViewSet): def get_queryset(self): if self.request.user.is_authenticated: - return Feed.objects.filter(deleted=False).order_by("-publish_time") + objs = Feed.objects.filter(deleted=False) else: - objs = Feed.objects.filter(deleted=False, visible=True).order_by( - "-publish_time" + objs = Feed.objects.filter( + deleted=False, visible=True, publish_time__lt=timezone.now() ) + objs = objs.filter(autohide_enabled=False) | objs.filter(autohide_enabled=True, autohide__gt=timezone.now()) - # TODO: Bad filtering. Rewrite! - result_ids = [] - for obj in objs: - if obj.autohide_enabled: - if obj.autohide > timezone.now(): - result_ids.append(obj.id) - else: - result_ids.append(obj.id) - - return Feed.objects.filter(id__in=result_ids).order_by("-publish_time") + return objs.order_by( + "-publish_time" + ) def destroy(self, request, pk=None, *args, **kwargs): try: