Files
@ b4c438322cad
Branch filter:
Location: website/www/conservancy/apps/fundgoal/models.py - annotation
b4c438322cad
1.3 KiB
text/x-python
Fix markup errors on "What We Do" causing layout issues.
4fd27245d6e4 4fd27245d6e4 d73018440a4d d73018440a4d d73018440a4d d73018440a4d d73018440a4d d73018440a4d d73018440a4d d73018440a4d 8b469cff1830 8b469cff1830 d73018440a4d d73018440a4d d73018440a4d d73018440a4d 027964192a65 2461bc19b17c 027964192a65 d73018440a4d d73018440a4d 621ace848827 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 | import random
from django.db import models
class FundraisingGoal(models.Model):
"""Conservancy fundraiser Goal"""
fundraiser_code_name = models.CharField(max_length=200, blank=False, unique=True)
fundraiser_goal_amount = models.DecimalField(max_digits=10, decimal_places=2)
fundraiser_so_far_amount = models.DecimalField(max_digits=10, decimal_places=2)
fundraiser_donation_count = models.IntegerField()
fundraiser_donation_count_disclose_threshold = models.IntegerField()
def __unicode__(self):
return self.fundraiser_code_name
def percentage_there(self):
return (self.fundraiser_so_far_amount / self.fundraiser_goal_amount ) * 100
class Meta:
ordering = ('fundraiser_code_name',)
def providers(self):
return GoalProvider.objects.filter(fundraising_goal=self)
def random_providers(self, k=None):
providers = self.providers()
if not providers.exists():
return None
elif k is None:
return random.choice(providers)
else:
return random.sample(providers, k)
class GoalProvider(models.Model):
fundraising_goal = models.ForeignKey(
'FundraisingGoal',
on_delete=models.CASCADE,
)
provider_name = models.CharField(max_length=512)
def __unicode__(self):
return self.provider_name
|