123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- from datetime import datetime, timedelta
- from django.conf import settings
- from xml.dom import minidom
- from django.template.context import RequestContext
- from django.views.generic import list_detail
- from django.shortcuts import render_to_response, get_object_or_404
- from django.http import Http404
- from django.contrib.sites.models import Site
- from django.db.models import Q
- from almanac.models import WeatherConditions
- from newsroom.models import Story, WebEdition, Paper, Author, Document, AttachedDocument, ArchiveItem, ArchiveSection, Editorial
- from darkroom.models import Photo, Gallery, Webcam
- from directory.models import Town
- from taggit.models import Tag, TaggedItem
- def index(request):
- stories=Story.objects.filter(published=True, published_on__lte=datetime.now)[:9]
- return render_to_response('newsroom/index.html', locals(),
- context_instance=RequestContext(request))
- def archive_index(request):
- archives=ArchiveItem.objects.all().order_by('-modified')
- return render_to_response('newsroom/archive_index.html', locals(),
- context_instance=RequestContext(request))
- def archive_year(request, year):
- archives=ArchiveItem.objects.filter(published_on__year=year)
- return render_to_response('newsroom/archive_year.html', locals(),
- context_instance=RequestContext(request))
- def archive_detail(request, year, slug):
- archive=get_object_or_404(ArchiveSection, slug=slug)
- return render_to_response('newsroom/archive_detail.html', locals(),
- context_instance=RequestContext(request))
- def author_list(request):
- authors=Author.objects.all()
- return render_to_response('newsroom/author_list.html', locals(),
- context_instance=RequestContext(request))
- def author_detail(request, type_slug, slug):
- author=Author.objects.get(slug=slug)
- stories=Story.objects.filter(published=True, authors=author)
- return render_to_response('newsroom/author_detail.html', locals(),
- context_instance=RequestContext(request))
- def update_view_count(request, story):
- '''Take a story and a request and check the user agent against an exclusion file.
- By default, if no exclusion file has been set we just increment the view.'''
- if not request.excluded_ip:
- story.view_count += 1
- story.save()
- def story_detail(request, year, month, day, slug):
- try:
- object=Story.objects.get(slug=slug)
- update_view_count(request, object)
- except Story.DoesNotExist:
- raise Http404
- return render_to_response('newsroom/story_detail.html', locals(),
- context_instance=RequestContext(request))
- def story_old_redirect(request, year, monthdayyear, mangled_slug):
- paper = mangled_slug[0:2]
- mangled_slug.remove(mangled_slug[0])
- mangled_slug.remove(mangled_slug[-1])
- slug = '-'.join(mangled_slug)
- try:
- object=Story.objects.get(slug=slug, published_on__year=year, published_on__month=monthdayyear[0:2])
- update_view_count(request, object)
- except Story.DoesNotExist:
- raise Http404
- return render_to_response('newsroom/story_detail.html', locals(),
- context_instance=RequestContext(request))
- def editorial_detail(request, year, month, day, slug):
- try:
- object=Editorial.objects.get(slug=slug)
- update_view_count(request, object)
- except Editorial.DoesNotExist:
- raise Http404
- return render_to_response('newsroom/editorial_detail.html', locals(),
- context_instance=RequestContext(request))
- def tag_index(request):
- tags = Tag.objects.all()
- if request.GET:
- for name in request.GET['filter'].split('+'):
- qs.append(Q(tags__name=name))
- import operator
- stories=Story.objects.filter(reduce(operator.or_, qs))
- return render_to_response('newsroom/tag_index.html', locals(),
- context_instance=RequestContext(request))
- def tag_detail(request, name):
- tag=get_object_or_404(Tag, name=name)
- stories=Story.objects.filter(tags__name=name)
- qs = []
- if request.GET:
- filter_list=request.GET['filter'].split('+')
- for name in filter_list:
- qs.append(Q(tags__name=name))
- import operator
- stories=stories.filter(reduce(operator.or_, qs))
- return render_to_response('newsroom/tag_detail.html', locals(),
- context_instance=RequestContext(request))
- def paper_index(request):
- '''
- This view is awful. Hardcoded site ids for the various products.
- Really, its just part of a scaffold built around our previous
- site structure for transitional reasons.
- '''
- webcams=Webcam.objects.all()
- edition=WebEdition.objects.published().latest()
- prev_edition = WebEdition.objects.published().filter(published_on__lt=edition.published_on).latest()
- other_editions=WebEdition.objects.filter(published_on=edition.published_on).exclude(paper=edition.paper)
- prev_other_editions=WebEdition.objects.filter(published_on=prev_edition.published_on).exclude(paper=edition.paper)
- latest_editions=WebEdition.objects.published().filter(published_on__gte=datetime.now()-timedelta(weeks=2))
- latest_other_editions=WebEdition.objects.filter(published_on__gte=datetime.now()-timedelta(weeks=2)).exclude(paper=edition.paper)
-
- return render_to_response('newsroom/index.html', locals(),
- context_instance=RequestContext(request))
|