diff options
Diffstat (limited to 'app/unused_apps/birds/views.py')
-rw-r--r-- | app/unused_apps/birds/views.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/app/unused_apps/birds/views.py b/app/unused_apps/birds/views.py new file mode 100644 index 0000000..4d7f59e --- /dev/null +++ b/app/unused_apps/birds/views.py @@ -0,0 +1,49 @@ +from django.views.generic.detail import DetailView +from django.contrib.auth.models import User +from utils.views import PaginatedListView +from birds.models import Bird, BirdAudio, BirdSighting + + +class BirdListView(PaginatedListView): + template_name = 'archives/birds.html' + + def get_queryset(self): + return BirdSighting.objects.all() + + +class BirdListUserView(PaginatedListView): + template_name = 'archives/birds.html' + + def get_queryset(self): + return BirdSighting.objects.filter( + seen_by__username=self.kwargs['user'] + ) + + def get_context_data(self, **kwargs): + # Call the base implementation first to get a context + context = super(BirdListUserView, self).get_context_data(**kwargs) + context['user'] = User.objects.get(username=self.kwargs['user']) + return context + + +class BirdDetailView(DetailView): + model = Bird + template_name = "details/bird.html" + slug_field = "slug" + + def get_context_data(self, **kwargs): + # Call the base implementation first to get a context + context = super(BirdDetailView, self).get_context_data(**kwargs) + try: + context['recording'] = BirdAudio.objects.get( + bird__slug=self.kwargs['slug'] + ) + except BirdAudio.DoesNotExist: + pass + try: + context['sighting'] = BirdSighting.objects.get( + bird__slug=self.kwargs['slug'] + ) + except BirdSighting.DoesNotExist: + pass + return context |