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)