summaryrefslogtreecommitdiff
path: root/app/posts/views
diff options
context:
space:
mode:
authorluxagraf <sng@luxagraf.net>2023-05-26 09:53:56 -0500
committerluxagraf <sng@luxagraf.net>2023-05-26 09:53:56 -0500
commitccf5541458db1cc4c1b46de95ee877ac67a0684a (patch)
treee9719ece7fdef9c89b666c2253015531a7e5e999 /app/posts/views
parent28a613a8efda914eb5abb1d3d5551aa8be83a620 (diff)
posts: added the concept of trips and a template for displaying them
Diffstat (limited to 'app/posts/views')
-rw-r--r--app/posts/views/trip_views.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/app/posts/views/trip_views.py b/app/posts/views/trip_views.py
new file mode 100644
index 0000000..0079652
--- /dev/null
+++ b/app/posts/views/trip_views.py
@@ -0,0 +1,38 @@
+from django.views.generic import ListView
+from django.views.generic.detail import DetailView
+from django.contrib.syndication.views import Feed
+from django.apps import apps
+from django.conf import settings
+
+from utils.views import PaginatedListView, LuxDetailView
+
+from ..models import Post, Trip
+
+
+class TripListView(PaginatedListView):
+ """
+ Return a list of Entries in reverse chronological order
+ """
+ model = Trip
+ template_name = "posts/trips_list.html"
+
+class TripDetailView(LuxDetailView):
+ model = Post
+ slug_field = "slug"
+
+ def get_queryset(self):
+ queryset = super(PostDetailView, self).get_queryset()
+ return queryset.select_related('location').prefetch_related('field_notes')
+
+ def get_context_data(self, **kwargs):
+ context = super(PostDetailView, 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
+ return context
+
+ def get_template_names(self):
+ obj = self.get_object()
+ return ["posts/%s_detail.html" % obj.get_post_type_display(), 'posts/post_detail.html']