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:
parent
e1dfd65c3a
commit
5c4cc1e2e1
12 changed files with 45 additions and 13 deletions
|
@ -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
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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))
|
||||||
|
|
11
www/conservancy/local_context_processors.py
Normal file
11
www/conservancy/local_context_processors.py
Normal 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') }
|
|
@ -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))
|
||||||
|
|
|
@ -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))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue