fix autohide filtering for feed

This commit is contained in:
Aarni Halinen
2022-01-14 12:55:25 +02:00
parent 8d7bd7067e
commit 5ead4f1bf1
+7 -13
View File
@@ -281,22 +281,16 @@ class FeedViewSet(ModelViewSet):
def get_queryset(self): def get_queryset(self):
if self.request.user.is_authenticated: if self.request.user.is_authenticated:
return Feed.objects.filter(deleted=False).order_by("-publish_time") objs = Feed.objects.filter(deleted=False)
else: else:
objs = Feed.objects.filter(deleted=False, visible=True).order_by( objs = Feed.objects.filter(
"-publish_time" 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! return objs.order_by(
result_ids = [] "-publish_time"
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")
def destroy(self, request, pk=None, *args, **kwargs): def destroy(self, request, pk=None, *args, **kwargs):
try: try: