# 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 catalogue.forms import SearchForm
from dictionary.models import Note
+from django.views.generic.list import ListView
-def letter_notes(request, letter=None):
- form = SearchForm()
- 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.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