website/www/conservancy/apps/fundgoal/views.py
Bradley M. Kuhn 5c4cc1e2e1 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.
2015-11-30 19:19:46 -08:00

25 lines
976 B
Python

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
def view(request):
"""JSON version of request
"""
keysForJSON = [ 'fundraiser_goal_amount', 'fundraiser_so_far_amount', 'fundraiser_donation_count',
'fundraiser_donation_count_disclose_threshold' ]
GET = request.GET
codeNames = []
if 'code_name' in GET: codeNames += GET.getlist('code_name')
returnDict = {}
for fundGoal in FundraisingGoal.objects.filter(fundraiser_code_name__in=codeNames):
codeName = fundGoal.fundraiser_code_name
returnDict[codeName] = {}
for kk in keysForJSON:
if hasattr(fundGoal, kk):
returnDict[codeName][kk] = getattr(fundGoal, kk)
return JsonResponse( returnDict)