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…
	
	Add table
		
		Reference in a new issue
	
	 Bradley M. Kuhn
						Bradley M. Kuhn