1 from blog.models import BlogEntry, BlogSection
2 from django.http import Http404, HttpResponse
3 from django.shortcuts import render
4 from django.template import RequestContext, loader
5 from django.core.paginator import Paginator
6 from django.conf import settings
8 def blog_index(request, section=None):
9 entries = BlogEntry.objects.all()
11 entries = entries.filter(sections__slug__exact=section)
12 entries = entries.order_by('-publish_date')
15 paginator = Paginator(entries, paginate_by)
17 page = int(request.GET.get('page', 1))
21 paginated_entries = paginator.page(page)
22 pages = paginator.page_range
24 "entries": paginated_entries.object_list,
25 "title": settings.BLOG_TITLE,
29 "has_more_than_one_page": (len(pages) > 1),
30 "has_next": paginated_entries.has_next(),
31 "has_prev": paginated_entries.has_previous(),
35 return render(request, 'blog/blog_index.html', c)
41 def blog_view(request, year=None, month=None, day=None, hour=None, minutes=None, section=None, slug=None):
42 # work out what we've got roughly
43 if year and month and day and slug:
44 # exact blog entry (woo!)
49 blog_entry = BlogEntry.objects.get(publish_date__year=year, publish_date__month=month, publish_date__day=day, slug__exact=slug)
50 template_name = "blog/single_entry_%s.html" %(blog_entry.format,)
53 "publish_date": blog_entry.publish_date
55 return render(request, template_name, c)
59 entries = BlogEntry.objects.all()
60 if year and month and day:
64 entries = entries.filter(publish_date__year=year, publish_date__month=month, publish_date__day=day)
68 entries = entries.filter(publish_date__year=year, publish_date__month=month)
71 entries = entries.filter(publish_date__year=year)
73 entries = entries.order_by('-publish_date')
75 paginator = Paginator(entries, paginate_by)
77 page = int(request.GET.get('page', 1))
81 paginated_entries = paginator.page(page)
82 pages = paginator.page_range
84 "entries": paginated_entries.object_list,
85 "title": settings.BLOG_TITLE,
89 "has_more_than_one_page": (len(pages) > 1),
90 "has_next": paginated_entries.has_next(),
91 "has_prev": paginated_entries.has_previous(),
95 return render(request, "blog/blog_index.html", c)