X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/276656dcc680e1a35103d310dea046152ddc3785..5667153616be3469413bc0fe8925bbbc4937be70:/apps/dictionary/views.py?ds=sidebyside diff --git a/apps/dictionary/views.py b/apps/dictionary/views.py index 47204fd42..76c89cd85 100755 --- a/apps/dictionary/views.py +++ b/apps/dictionary/views.py @@ -2,15 +2,24 @@ # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # -from django.views.generic.list_detail import object_list from dictionary.models import Note +from django.views.generic.list import ListView -def letter_notes(request, letter=None): - letters = ["0-9"] + [chr(a) for a in range(ord('a'), ord('z')+1)] - objects = Note.objects.all() - if letter == "0-9": - objects = objects.filter(sort_key__regex=r"^[0-9]") - elif letter: - objects = objects.filter(sort_key__startswith=letter) - return object_list(request, queryset=objects, extra_context=locals()) +class NotesView(ListView): + def get_queryset(self): + self.letters = ["0-9"] + [chr(a) for a in range(ord('a'), ord('z')+1)] + self.letter = self.kwargs.get('letter') + + objects = Note.objects.select_related('book').all() + if self.letter == "0-9": + objects = objects.filter(sort_key__regex=r"^[0-9]") + elif self.letter: + objects = objects.filter(sort_key__startswith=self.letter) + return objects + + def get_context_data(self, **kwargs): + context = super(NotesView, self).get_context_data(**kwargs) + context['letter'] = self.letter + context['letters'] = self.letters + return context