Files @ 5c4cc1e2e114
Branch filter:

Location: website/www/conservancy/apps/fundgoal/views.py

bkuhn
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.
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)