Add sitefundgoal to top level view context.

The base template now has access to the fund-raising goal that will be
displayed site-wide.  The view here must provide it in the context for
access everywhere.

Furthermore, we need a local context processor to make sure it's in
context everywhere, and we have to make sure that context is properly
passed along.

This code is a bit cargo-culted in, based on what I read in various
places about adding the Request context.
This commit is contained in:
Bradley M. Kuhn 2015-11-30 18:49:50 -08:00
parent e1dfd65c3a
commit 5c4cc1e2e1
12 changed files with 45 additions and 13 deletions

View file

@ -5,6 +5,7 @@ from django.views.generic.dates import YearArchiveView, MonthArchiveView, DayArc
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from conservancy.apps.staff.models import Person from conservancy.apps.staff.models import Person
from django.shortcuts import get_object_or_404, render_to_response from django.shortcuts import get_object_or_404, render_to_response
from django.template import RequestContext
from datetime import datetime from datetime import datetime
def OR_filter(field_name, objs): def OR_filter(field_name, objs):
@ -73,7 +74,7 @@ def custom_index(request, queryset, *args, **kwargs):
extra_context['blog_entries'] = blog_entries extra_context['blog_entries'] = blog_entries
return render_to_response('blog/entry_list.html', extra_context) return render_to_response('blog/entry_list.html', extra_context, context_instance=RequestContext(request))
def techblog_redirect(request): def techblog_redirect(request):
"""Redirect from the old 'techblog' to the new blog """Redirect from the old 'techblog' to the new blog
@ -112,7 +113,7 @@ def query(request):
key=last_name) key=last_name)
tags = EntryTag.objects.all().order_by('label') tags = EntryTag.objects.all().order_by('label')
return render_to_response('blog/query.html', return render_to_response('blog/query.html',
{'authors': authors, 'tags': tags}) {'authors': authors, 'tags': tags}, context_instance=RequestContext(request))
def relative_redirect(request, path): def relative_redirect(request, path):
from django import http from django import http

View file

@ -1,4 +1,6 @@
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from conservancy import context_processors as context_processors
from django.template import RequestContext
from django import forms from django import forms
from conservancy.apps.contacts.models import ContactEntry from conservancy.apps.contacts.models import ContactEntry
from django.forms import ModelForm from django.forms import ModelForm
@ -18,9 +20,9 @@ def subscribe(request):
if form.is_valid(): if form.is_valid():
form.save() form.save()
return render_to_response('contacts/subscribe_success.html', return render_to_response('contacts/subscribe_success.html',
{'form': form.cleaned_data}) {'form': form.cleaned_data}, context_instance=RequestContext(request))
else: else:
form = ContactEntryForm() form = ContactEntryForm()
return render_to_response('contacts/subscribe.html', return render_to_response('contacts/subscribe.html',
{'form': form}) {'form': form}, context_instance=RequestContext(request))

View file

@ -1,5 +1,7 @@
# from django.views.generic.list_detail import object_list # from django.views.generic.list_detail import object_list
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from conservancy import context_processors as context_processors
from django.template import RequestContext
from django.http import Http404, HttpResponse from django.http import Http404, HttpResponse
from django.template import loader from django.template import loader
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
@ -20,7 +22,7 @@ def event_detail(request, year, slug, queryset, **kwargs):
event = queryset.get(date__year=year, slug__exact=slug) event = queryset.get(date__year=year, slug__exact=slug)
except ObjectDoesNotExist: except ObjectDoesNotExist:
raise Http404, "Event does not exist" raise Http404, "Event does not exist"
return render_to_response('events/event_detail.html', {'event': event}) return render_to_response('events/event_detail.html', {'event': event}, context_instance=RequestContext(request))
def custom_index(request, queryset, *args, **kwargs): def custom_index(request, queryset, *args, **kwargs):
"""Scrollable index of future and past events, with date index. """Scrollable index of future and past events, with date index.

View file

@ -1,5 +1,7 @@
from conservancy.apps.fundgoal.models import FundraisingGoal from conservancy.apps.fundgoal.models import FundraisingGoal
from django.shortcuts import get_object_or_404, render_to_response from django.shortcuts import get_object_or_404, render_to_response
from conservancy import context_processors as context_processors
from django.template import RequestContext
from django.http import JsonResponse from django.http import JsonResponse

View file

@ -1,5 +1,7 @@
# from django.views.generic.list_detail import object_list # from django.views.generic.list_detail import object_list
from django.views.generic import ListView from django.views.generic import ListView
from django.template import RequestContext
from conservancy import context_processors as context_processors
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.views.generic.dates import YearArchiveView, MonthArchiveView, DayArchiveView, DateDetailView from django.views.generic.dates import YearArchiveView, MonthArchiveView, DayArchiveView, DateDetailView
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
@ -41,7 +43,7 @@ def listing(request, *args, **kwargs):
# If page is out of range (e.g. 9999), deliver last page of results. # If page is out of range (e.g. 9999), deliver last page of results.
news = paginator.page(paginator.num_pages) news = paginator.page(paginator.num_pages)
return render_to_response('news/pressrelease_list.html', {"news": news, "date_list" : date_list}) return render_to_response('news/pressrelease_list.html', {"news": news, "date_list" : date_list}, context_instance=RequestContext(request))
class NewsYearArchiveView(YearArchiveView): class NewsYearArchiveView(YearArchiveView):
# queryset = Article.objects.all() # queryset = Article.objects.all()

View file

@ -1,5 +1,8 @@
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from conservancy import context_processors as context_processors
from django.template import RequestContext
from django import forms from django import forms
from django.template import RequestContext
from conervancy.apps.summit_registration.models import SummitRegistration from conervancy.apps.summit_registration.models import SummitRegistration
def register(request): def register(request):
@ -20,9 +23,9 @@ def register(request):
if form.is_valid(): if form.is_valid():
form.save() form.save()
return render_to_response('summit_registration/register_success.html', return render_to_response('summit_registration/register_success.html',
{'form': form.cleaned_data}) {'form': form.cleaned_data}, context_instance=RequestContext(request))
else: else:
form = SummitForm() form = SummitForm()
return render_to_response('summit_registration/register.html', return render_to_response('summit_registration/register.html',
{'form': form}) {'form': form}, context_instance=RequestContext(request))

View file

@ -1,3 +1,5 @@
from conservancy.apps.supporters.models import Supporter from conservancy.apps.supporters.models import Supporter
from django.shortcuts import get_object_or_404, render_to_response from django.shortcuts import get_object_or_404, render_to_response
from conservancy import context_processors as context_processors
from django.template import RequestContext

View file

@ -2,7 +2,8 @@ from django.contrib.syndication.views import Feed
from django.utils.feedgenerator import Rss201rev2Feed from django.utils.feedgenerator import Rss201rev2Feed
from conservancy.apps.news.models import PressRelease from conservancy.apps.news.models import PressRelease
from conservancy.apps.blog.models import Entry as BlogEntry from conservancy.apps.blog.models import Entry as BlogEntry
from conservancy import context_processors as context_processors
from django.template import RequestContext
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.conf import settings from django.conf import settings
from datetime import datetime from datetime import datetime
@ -255,4 +256,4 @@ def view(request):
""" """
feeds = (PressReleaseFeed, BlogFeed, OmnibusFeed) feeds = (PressReleaseFeed, BlogFeed, OmnibusFeed)
return render_to_response("feeds.html", {'feeds': feeds}) return render_to_response("feeds.html", {'feeds': feeds}, context_instance=RequestContext(request))

View file

@ -1,4 +1,6 @@
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from conservancy import context_processors as context_processors
from django.template import RequestContext
from conservancy.apps.supporters.models import Supporter as Supporter from conservancy.apps.supporters.models import Supporter as Supporter
from conservancy.apps.news.models import PressRelease from conservancy.apps.news.models import PressRelease
from conservancy.apps.blog.models import Entry as BlogEntry from conservancy.apps.blog.models import Entry as BlogEntry
@ -19,4 +21,4 @@ def view(request):
'supporters_count': supporters_count, 'supporters_count': supporters_count,
'blog' : blog 'blog' : blog
} }
return render_to_response("frontpage.html", c) return render_to_response("frontpage.html", c, context_instance=RequestContext(request))

View file

@ -0,0 +1,11 @@
from conservancy.apps.fundgoal.models import FundraisingGoal as FundraisingGoal
def fundgoal_lookup(fundraiser_sought):
try:
return FundraisingGoal.objects.get(fundraiser_code_name=fundraiser_sought)
except FundraisingGoal.DoesNotExist:
# we have no object! do something
return None
def sitefundraiser(request):
return {'sitefundgoal': fundgoal_lookup('supporterrun') }

View file

@ -1,4 +1,6 @@
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from conservancy import context_processors as context_processors
from django.template import RequestContext
from conservancy.apps.supporters.models import Supporter as Supporter from conservancy.apps.supporters.models import Supporter as Supporter
from datetime import datetime, timedelta from datetime import datetime, timedelta
@ -18,4 +20,4 @@ def view(request):
'supporters_count' : supporters_count, 'supporters_count' : supporters_count,
'anonymous_count' : anonymous_count 'anonymous_count' : anonymous_count
} }
return render_to_response("sponsors.html", c) return render_to_response("sponsors.html", c, context_instance=RequestContext(request))

View file

@ -45,10 +45,12 @@ def index(request, *args, **kwargs):
return handler404(request) return handler404(request)
template = loader.get_template(path) template = loader.get_template(path)
kwargs = kwargs.copy()
if kwargs.has_key('fundraiser_sought'): if kwargs.has_key('fundraiser_sought'):
kwargs = kwargs.copy()
kwargs['fundgoal'] = fundgoal_lookup(kwargs['fundraiser_sought']) kwargs['fundgoal'] = fundgoal_lookup(kwargs['fundraiser_sought'])
kwargs['sitefundgoal'] = fundgoal_lookup('supporterrun')
context = RequestContext(request, kwargs) context = RequestContext(request, kwargs)
return HttpResponse(template.render(context)) return HttpResponse(template.render(context))