Ben Sturmfels
2ff551147c
Just a small structural change so that the related functionality is grouped together.
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from datetime import datetime
|
|
|
|
from django.shortcuts import render
|
|
|
|
from .. import ParameterValidator
|
|
from .models import Supporter
|
|
|
|
|
|
def sustainers(request):
|
|
with ParameterValidator(request.GET, 'upgrade_id') as validator:
|
|
try:
|
|
amount_param = float(request.GET['upgrade'])
|
|
except (KeyError, ValueError):
|
|
validator.fail()
|
|
else:
|
|
validator.validate('{:.2f}'.format(amount_param))
|
|
partial_amount = amount_param if validator.valid else 0
|
|
context = {
|
|
'partial_amount': partial_amount,
|
|
'minimum_amount': 120 - partial_amount,
|
|
}
|
|
return render(request, "supporters/sustainers.html", context)
|
|
|
|
|
|
def sponsors(request):
|
|
"""Conservancy Sponsors Page view
|
|
|
|
Performs object queries necessary to render the sponsors page.
|
|
"""
|
|
supporters = Supporter.objects.all().filter(display_until_date__gte=datetime.now())
|
|
supporters_count = len(supporters)
|
|
anonymous_count = len(supporters.filter(display_name='Anonymous'))
|
|
supporters = supporters.exclude(display_name='Anonymous').order_by('ledger_entity_id')
|
|
c = {
|
|
'supporters' : supporters,
|
|
'supporters_count' : supporters_count,
|
|
'anonymous_count' : anonymous_count
|
|
}
|
|
return render(request, "supporters/sponsors.html", c)
|