diff options
Diffstat (limited to 'app/blog/views.py')
-rw-r--r-- | app/blog/views.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/app/blog/views.py b/app/blog/views.py new file mode 100644 index 0000000..72c769e --- /dev/null +++ b/app/blog/views.py @@ -0,0 +1,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))
\ No newline at end of file |