Fix ordering
This commit is contained in:
parent
b59377471a
commit
c7bf3f5316
1 changed files with 9 additions and 5 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue