diff options
author | luxagraf <sng@luxagraf.net> | 2024-12-27 09:47:42 -0600 |
---|---|---|
committer | luxagraf <sng@luxagraf.net> | 2024-12-27 09:47:42 -0600 |
commit | 8c7b0e1abe1983fac38322c3bc01165c4c693d7e (patch) | |
tree | 2f91e32f0dae419fe46f773fe9a11817b809fcf0 /app/posts/views/photo_essay_views.py | |
parent | 05b386315c09c735201566cf8945fc8ff78d2741 (diff) |
jrnl: added a photo essay post type and new url/template/views. also cleared out some old unneeded files
Diffstat (limited to 'app/posts/views/photo_essay_views.py')
-rw-r--r-- | app/posts/views/photo_essay_views.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/app/posts/views/photo_essay_views.py b/app/posts/views/photo_essay_views.py new file mode 100644 index 0000000..4f08910 --- /dev/null +++ b/app/posts/views/photo_essay_views.py @@ -0,0 +1,57 @@ +from django.views.generic import ListView +from django.views.generic.detail import DetailView +from django.contrib.syndication.views import Feed +from django.urls import reverse +from django.apps import apps +from django.conf import settings + +from utils.views import PaginatedListView, LuxDetailView + +from ..models import Post, PostType +from taxonomy.models import Category + + +class PhotoEssayListView(PaginatedListView): + model = Post + # TODO: change this when I have an actual archive to show + template_name = "photo_essay_detail.html" + + def get_queryset(self): + queryset = super(PhotoEssayListView, self).get_queryset() + return queryset.get(slug="dawn") + # real queryset + #return queryset.filter(site__domain='luxagraf.net').filter(post_type__in=[PostType.PHOTO_ESSAY]).filter(status__exact=1).order_by('-pub_date').prefetch_related('location').prefetch_related('featured_image') + + def get_context_data(self, **kwargs): + ''' + override for custom breadcrumb path + ''' + # Call the base implementation first to get a context + context = super(PhotoEssayListView, self).get_context_data(**kwargs) + context['breadcrumbs'] = ('Photos',) + return context + + +class PhotoEssayDetailView(LuxDetailView): + model = Post + slug_field = "slug" + + def get_queryset(self): + queryset = super(PhotoEssayDetailView, self).get_queryset() + return queryset.select_related('location').prefetch_related('field_notes') + + def get_context_data(self, **kwargs): + context = super(PhotoEssayDetailView, self).get_context_data(**kwargs) + related = [] + for obj in self.object.related.all(): + model = apps.get_model(obj.model_name.app_label, obj.model_name.model) + related.append(model.objects.get(slug=obj.slug, pub_date=obj.pub_date)) + context['related'] = related + context['breadcrumbs'] = ('Photos',) + context['crumb_url'] = reverse('posts:photo-essay-list') + return context + + def get_template_names(self): + obj = self.get_object() + return ["film_detail.html"] + |