Fix ordering

This commit is contained in:
Nyymix 2025-08-05 21:43:56 +03:00
parent b59377471a
commit c7bf3f5316

View file

@ -18,6 +18,11 @@ class PhotosList(ListView):
model = Photo model = Photo
paginate_by = 30 paginate_by = 30
def get(self, request, *args, **kwargs):
# Aseta järjestys heti pyynnön käsittelyn alussa
self.order = self.request.GET.get('order', 'latest')
return super().get(request, *args, **kwargs)
def get_queryset(self): def get_queryset(self):
ordering_options = { ordering_options = {
'latest': '-taken_at', 'latest': '-taken_at',
@ -25,9 +30,8 @@ class PhotosList(ListView):
'popular': '-views', 'popular': '-views',
'favorite': '-is_favorite', 'favorite': '-is_favorite',
} }
selected_order = self.request.GET.get('order', 'latest') order_by = ordering_options.get(self.order, ordering_options['latest'])
order = ordering_options.get(selected_order, ordering_options['latest']) return Photo.objects.filter(album__is_public=True).order_by(order_by).select_related('album')
return Photo.objects.filter(album__is_public=True).order_by(order).select_related('album')
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
@ -37,11 +41,11 @@ class PhotosList(ListView):
canonical_url = build_canonical_url( canonical_url = build_canonical_url(
self.request, self.request,
reverse('gallery:photos_url'), reverse('gallery:photos_url'),
params={'page': page_obj.number, 'order': order} params={'page': page_obj.number, 'order': self.order}
) )
context.update({ context.update({
'order': self.request.GET.get('order', 'latest'), 'order': self.order,
'canonical_url': canonical_url, 'canonical_url': canonical_url,
}) })
return context return context