diff options
Diffstat (limited to 'app/utils/views.py')
-rw-r--r-- | app/utils/views.py | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/app/utils/views.py b/app/utils/views.py index 6b69b25..b678a33 100644 --- a/app/utils/views.py +++ b/app/utils/views.py @@ -6,16 +6,17 @@ from django.views.generic import ListView, DetailView from django.apps import apps from django.shortcuts import render from django.template import RequestContext +from django.template.defaultfilters import slugify from media.models import LuxImage, LuxVideo, LuxAudio BREADCRUMBS = { - 'SrcPost':'SRC', + 'AP':'dialogue', 'Book':'Book Notes', 'Entry':'Jrnl', 'NewsletterMailing':'lttr', - 'LuxImage':'lttr' + 'LuxImage':'lttr', } class PaginatedListView(ListView): @@ -35,13 +36,6 @@ class PaginatedListView(ListView): request.base_path = path return super(PaginatedListView, self).dispatch(request, *args, **kwargs) - def get_context_data(self, **kwargs): - ''' - Adds breadcrumb path to every view - ''' - # Call the base implementation first to get a context - context = super(PaginatedListView, self).get_context_data(**kwargs) - print('model=', self.model) try: context['breadcrumbs'] = (BREADCRUMBS[self.model.__name__],) except KeyError: @@ -61,22 +55,31 @@ class LuxDetailView(DetailView): context = super(LuxDetailView, self).get_context_data(**kwargs) print(self.object._meta.verbose_name_plural) try: - context['breadcrumbs'] = (BREADCRUMBS[self.object._meta.model],) + context['breadcrumbs'] = (BREADCRUMBS[self.object._meta.label.split(".")[1]],) except KeyError: if self.object._meta.verbose_name_plural == 'posts': - context['breadcrumbs'] = (self.object.get_post_type_display()+"s",) - context['crumb_url'] = "/%ss/" % self.object.get_post_type_display() + if self.object.get_post_type_display() != 'src': + context['breadcrumbs'] = (self.object.get_post_type_display()+"s",) + else: + context['breadcrumbs'] = (self.object.get_post_type_display(),) + context['crumb_url'] = "/%ss/" % slugify(self.object.get_post_type_display()) else: context['breadcrumbs'] = (self.object._meta.verbose_name_plural,) try: context['crumb_url'] except KeyError: try: - context['crumb_url'] = reverse('%s:list' % self.object._meta.verbose_name_plural.slugify()) + context['crumb_url'] = reverse('%s:list' % slugify(self.object._meta.verbose_name_plural)) except: - # special case for pages: - context['breadcrumbs'] = (self.object.title,) - context['crumb_url'] = None + # special case for books: + if self.object._meta.verbose_name_plural == 'books': + context['crumb_url'] = reverse('books:list') + elif self.object._meta.verbose_name_plural == 'Animal/Plant': + context['crumb_url'] = reverse('sightings:list') + else: + # special case for pages: + context['breadcrumbs'] = (self.object.title,) + context['crumb_url'] = None return context |