1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
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 GuideListView(PaginatedListView):
"""
Return a list of Entries in reverse chronological order
"""
model = Post
template_name = "posts/guide_base.html"
def get_queryset(self):
queryset = super(GuideListView, self).get_queryset()
return queryset.filter(status__exact=1).filter(post_type__in=[PostType.REVIEW,PostType.GUIDE]).order_by('-pub_date').prefetch_related('location').prefetch_related('featured_image')
class GuideTopicListView(PaginatedListView):
"""
Return a list of Posts by topic in reverse chronological order
"""
model = Post
template_name = "posts/guide_by_topic.html"
def get_queryset(self):
queryset = super(GuideTopicListView, self).get_queryset()
topic = Category.objects.get(slug=self.kwargs['topic'])
return queryset.filter(status__exact=1).filter(topics__slug=topic.slug).order_by('-pub_date').prefetch_related('featured_image')
def get_context_data(self, **kwargs):
context = super(GuideTopicListView, self).get_context_data(**kwargs)
topic = Category.objects.get(slug=self.kwargs['topic'])
context['topic'] = topic
context['breadcrumbs'] = ('Guides', topic.name )
context['crumb_url'] = reverse('guides:guide-base')
Category.objects.get(slug=self.kwargs['topic'])
return context
class GuideDetailView(LuxDetailView):
model = Post
slug_field = "slug"
def get_template_names(self):
obj = self.get_object()
return ["posts/%s_detail.html" % obj.get_post_type_display(), 'posts/post_detail.html']
def get_context_data(self, **kwargs):
context = super(GuideDetailView, 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
topic = Category.objects.get(slug=self.kwargs['topic'])
context['topic'] = topic
context['breadcrumbs'] = ('Guides', topic.name )
context['crumb_url'] = reverse('guides:guide-base')
return context
|