summaryrefslogtreecommitdiff
path: root/app/blog/views.py
blob: c360ef3383482462819eb6423c7c6efef3d2f025 (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import Http404
from django.conf import settings
# from django.views.generic import ListView

from blog.models import Entry, HomepageCurrator
from locations.models import Region, Country
from photos.models import Photo


def home(request):
    obj = HomepageCurrator.objects.get(pk=1)
    template = obj.template_name
    recent = Entry.objects.filter(status__exact=1)[:4]
    context = {
        'IMAGES_URL': settings.IMAGES_URL,
        'homepage': obj,
        'recent': recent,
    }
    return render_to_response(template, context, context_instance=RequestContext(request))


def entry_detail(request, year, month, slug):
    obj = get_object_or_404(Entry, slug__exact=slug)
    photos = {}
    # if obj.photo_gallery:
    #    photos = Photo.objects.filter(set__exact=obj.get().photo_gallery.id)[:9]
    extra = {'photos': photos, }
    return render_to_response('details/entry.html', {'object': obj, 'photos': photos}, context_instance=RequestContext(request))

"""
List of all writing
class BlogEntryListView(ListView):
    template_name="archives/writing.html"
    model = Entry
    def get_context_data(self, **kwargs):
        context = super(BlogEntryListView, self).get_context_data(**kwargs)
        context.update({
            'page': self.kwargs['page']
        })
        self.request.page_url = '/writing/%d/'
        self.request.page = self.kwargs['page']
        return context

"""

def date_list(request, year, month=None):
    import datetime
    if month:
        month_name = datetime.datetime.strptime(month,'%m').strftime('%B')
        context = {
            'object_list': Entry.objects.filter(status__exact=1, pub_date__year=year, pub_date__month=month).order_by('pub_date'),
            'type': 'monthly', 
            'year': year,
            'month': month_name 
        }
    else:
        context = {
            'object_list': Entry.objects.filter(status__exact=1, pub_date__year=year).order_by('-pub_date'),
            'type': 'year', 
            'year': year,
        }
    return render_to_response("archives/writing_date.html", context, context_instance=RequestContext(request))


def entry_list(request, page):
    request.page_url = '/jrnl/%d/'
    request.page = int(page)
    try:
        is_build = request.POST['builder']
        extra_context={
            'page':page,
            'MEDIA_URL': settings.BAKED_MEDIA_URL
        }
    except:
        extra_context={'page':page}
    context = {
        'object_list': Entry.objects.filter(status__exact=1).order_by('-pub_date').select_related(),
        'page': page
    }
    return render_to_response("archives/writing.html", context, context_instance=RequestContext(request))


def entry_list_by_area(request, slug, page):
    """ Grabs entries by region or country"""
    request.page_url = '/jrnl/' + slug + '/%d/'
    request.page = int(page)
    try:
        region = Region.objects.get(slug__exact=slug)
        qs = Entry.objects.filter(status__exact=1, location__state__country__lux_region=region.id).order_by('-pub_date')
    except:
        region = Country.objects.get(slug__exact=slug)
        qs = Entry.objects.filter(
            status__exact=1, location__state__country=region).order_by('-pub_date')
        if not region:
            raise Http404
    context = {
        'region': region,
        'object_list': qs,
        'page': page
    }
    return render_to_response("archives/writing.html", context, context_instance=RequestContext(request))