Compare commits

...

2 Commits

Author SHA1 Message Date
5221094333 Watchlist sort by score by default
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-24 18:55:23 +01:00
4851d50d7e Add basic support for sorting & filtering on the backend 2023-01-17 23:24:36 +01:00

View File

@ -29,7 +29,17 @@ class IndexView(generic.ListView):
model = models.Movie model = models.Movie
def get_queryset(self): def get_queryset(self):
return models.Movie.objects.filter(watched=False).order_by('id').all() qs = models.Movie.objects
# Filter
if self.request.GET.get("watched", False) != "true":
qs = qs.filter(watched=False)
# Sort
order = self.request.GET.get("sort", "score")
if order in ('id', '-id', 'name', '-name'):
qs = qs.order_by(order).all()
elif order == "score" or order == "-score":
qs = sorted(qs.all(), key=lambda x: x.score, reverse=True if order == "score" else False)
return qs
def get_context_data(self): def get_context_data(self):
context = super().get_context_data() context = super().get_context_data()