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,23 +281,17 @@ 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(
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())
return objs.order_by(
"-publish_time"
)
# 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")
def destroy(self, request, pk=None, *args, **kwargs):
try:
post = self.get_object()