Files @ 52b676e3dc39
Branch filter:

Location: website/www/conservancy/local_context_processors.py

Bradley M. Kuhn
Substantial update of Member Project Application page.

This page had much out of date material, particularly the timeline
and the types of projects we seek, but also the FAQ section did not
include standard information that we're now regularly giving projects
during intake.

This update attempts to address many of those issues.
from datetime import datetime as DateTime
from pytz import utc as UTC

import conservancy.settings
from conservancy.apps.fundgoal.models import FundraisingGoal as FundraisingGoal

SITE_FUNDGOAL = 'cy2019-end-year-match'
# FIXME: Move this information into the model.
FUNDGOAL_ENDTIMES = {
    # Noon UTC = the end of the previous day anywhere on Earth (AOE)
    'cy2018-end-year-match': DateTime(2019, 1, 16, 12, tzinfo=UTC),
    'cy2019-end-year-match': DateTime(2020, 1, 16, 12, tzinfo=UTC),
}

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 {
        'datetime_now': DateTime.now(UTC),
        'sitefundgoal': fundgoal_lookup(SITE_FUNDGOAL),
        'sitefundgoal_endtime': FUNDGOAL_ENDTIMES[SITE_FUNDGOAL],
    }

if conservancy.settings.FORCE_CANONICAL_HOSTNAME:
    _HOST_URL_VAR = {'host_url': 'https://' + conservancy.settings.FORCE_CANONICAL_HOSTNAME}
    def host_url(request):
        return _HOST_URL_VAR
else:
    def host_url(request):
        return {'host_url': request.build_absolute_uri('/').rstrip('/')}