Files
@ 46c50ec0b192
Branch filter:
Location: website/www/conservancy/apps/fundgoal/models.py - annotation
46c50ec0b192
1.3 KiB
text/x-python
Copyleft Compliance: Minor rewrite of strategy & firmware liberation
This rewrite should improve the stand-alone nature of these documents
and allow for better integration with other summary text and
announcements on the website.
Note that they have now drifted heavily from the original formulation
of the items as grant proposals.
This rewrite should improve the stand-alone nature of these documents
and allow for better integration with other summary text and
announcements on the website.
Note that they have now drifted heavily from the original formulation
of the items as grant proposals.
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
|