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 conservancy.apps.staff.models import Person
from django.shortcuts import get_object_or_404, render_to_response
from django.template import RequestContext
from datetime import datetime
def OR_filter(field_name, objs):
@ -73,7 +74,7 @@ def custom_index(request, queryset, *args, **kwargs):
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):
"""Redirect from the old 'techblog' to the new blog
@ -112,7 +113,7 @@ def query(request):
key=last_name)
tags = EntryTag.objects.all().order_by('label')
return render_to_response('blog/query.html',
{'authors': authors, 'tags': tags})
{'authors': authors, 'tags': tags}, context_instance=RequestContext(request))
def relative_redirect(request, path):
from django import http

View file

@ -1,4 +1,6 @@
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 conservancy.apps.contacts.models import ContactEntry
from django.forms import ModelForm
@ -18,9 +20,9 @@ def subscribe(request):
if form.is_valid():
form.save()
return render_to_response('contacts/subscribe_success.html',
{'form': form.cleaned_data})
{'form': form.cleaned_data}, context_instance=RequestContext(request))
else:
form = ContactEntryForm()
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.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.template import loader
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)
except ObjectDoesNotExist:
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):
"""Scrollable index of future and past events, with date index.

View file

@ -1,5 +1,7 @@
from conservancy.apps.fundgoal.models import FundraisingGoal
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

View file

@ -1,5 +1,7 @@
# from django.views.generic.list_detail import object_list
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.views.generic.dates import YearArchiveView, MonthArchiveView, DayArchiveView, DateDetailView
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.
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):
# queryset = Article.objects.all()

View file

@ -1,5 +1,8 @@
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.template import RequestContext
from conervancy.apps.summit_registration.models import SummitRegistration
def register(request):
@ -20,9 +23,9 @@ def register(request):
if form.is_valid():
form.save()
return render_to_response('summit_registration/register_success.html',
{'form': form.cleaned_data})
{'form': form.cleaned_data}, context_instance=RequestContext(request))
else:
form = SummitForm()
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 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 conservancy.apps.news.models import PressRelease
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.conf import settings
from datetime import datetime
@ -255,4 +256,4 @@ def view(request):
"""
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 conservancy import context_processors as context_processors
from django.template import RequestContext
from conservancy.apps.supporters.models import Supporter as Supporter
from conservancy.apps.news.models import PressRelease
from conservancy.apps.blog.models import Entry as BlogEntry
@ -19,4 +21,4 @@ def view(request):
'supporters_count': supporters_count,
'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 conservancy import context_processors as context_processors
from django.template import RequestContext
from conservancy.apps.supporters.models import Supporter as Supporter
from datetime import datetime, timedelta
@ -18,4 +20,4 @@ def view(request):
'supporters_count' : supporters_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)
template = loader.get_template(path)
kwargs = kwargs.copy()
if kwargs.has_key('fundraiser_sought'):
kwargs = kwargs.copy()
kwargs['fundgoal'] = fundgoal_lookup(kwargs['fundraiser_sought'])
kwargs['sitefundgoal'] = fundgoal_lookup('supporterrun')
context = RequestContext(request, kwargs)
return HttpResponse(template.render(context))