summaryrefslogtreecommitdiff
path: root/apps/blog/views.py
blob: 72c769eec41c4deb0a460bf7d9a61f4e2d8f362c (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
from django.shortcuts import render_to_response,get_object_or_404
from django.template import RequestContext
from django.views.generic.date_based import object_detail
from django.views.generic.list_detail import object_list
from django.http import Http404
from django.conf import settings


from blog.models import Entry, Topic
from locations.models import Region, Country
from photos.models import Photo, PhotoGallery
from chunks.models import Chunk

def home(request):
    featured = Entry.objects.filter(status__exact=1).select_related().latest()
    #gallery = PhotoGallery.objects.latest()
    context = {
        'featured': featured,
        #'gallery': gallery
    }    
    return render_to_response('archives/homepage.html', context, context_instance = RequestContext(request))


def entry_detail(request, year, month, day, 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
"""
def entry_list(request,page):
    request.page_url = '/writing/%d/'
    request.page = int(page)
    qs = Entry.objects.filter(status__exact=1).order_by('-pub_date').select_related()
    return object_list(request, queryset=qs, template_name='archives/writing.html', extra_context={'page':page})


"""
List of all writing
"""
def topic_list(request,slug,page):
    request.page_url = '/topics/'+slug+'/%d/'
    request.page = int(page)
    topic = Topic.objects.get(slug=slug)
    qs = Entry.objects.filter(status__exact=1,topics=topic).order_by('-pub_date').select_related()
    return object_list(request, queryset=qs, template_name='archives/topics.html',extra_context={'page':page})


"""
Grabs entries by region or country
"""
def entry_list_by_area(request,slug,page):
    request.page_url = '/writing/'+slug+'/%d/'
    request.page = int(page)
    try:
        region = Region.objects.get(slug__exact=slug)
        qs = Entry.objects.filter(status__exact=1,region = region).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,
    }
    return object_list(request, queryset=qs, template_name='archives/writing.html',
                       extra_context=context)

def about(request):
    qs = Chunk.objects.filter(key__in=['about_top','about_middle','about_bottom'])
    context = {
        'object_list':qs,
        'IMAGES_URL' : settings.IMAGES_URL
    }
    return render_to_response('details/about.html', context, context_instance=RequestContext(request))