# -*- coding: utf-8 -*- from __future__ import unicode_literals # Erik Stein , 2017 from django.http import HttpResponsePermanentRedirect from django.urls import reverse from django.views.generic import ListView from .models import Person class PersonListView(ListView): model = Person template_name = 'person/person_list.html' def get(self, request, *args, **kwargs): if 'letter' not in kwargs: return HttpResponsePermanentRedirect(reverse('person-list-letter', kwargs={'letter': 'a'})) else: return super(PersonListView, self).get(request, *args, **kwargs) def get_queryset(self): qs = super(PersonListView, self).get_queryset() letter = self.kwargs.get('letter', 'a') return qs.filter(sort_name__istartswith=letter) def get_context_data(self, **kwargs): context = super(PersonListView, self).get_context_data(**kwargs) context['selected_letter'] = 'a' context['alphabet'] = 'abcdefghijklmnopqrstuvwxyz' return context