Files
@ 8716315b60c0
Branch filter:
Location: website/www/conservancy/apps/fundgoal/models.py - annotation
8716315b60c0
1.5 KiB
text/x-python
Put Karen's doctorate as our featured item.
The video may not work there, but going to try it.
The video may not work there, but going to try it.
2d078b0004fb 2d078b0004fb 31e51a774223 4fd27245d6e4 4fd27245d6e4 d73018440a4d d73018440a4d d73018440a4d d73018440a4d d73018440a4d 1ddcb2e4badd 1ddcb2e4badd d73018440a4d 8b469cff1830 8b469cff1830 1ddcb2e4badd d73018440a4d adf2229720fc d73018440a4d d73018440a4d 027964192a65 2d078b0004fb 027964192a65 31e51a774223 d73018440a4d 621ace848827 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 4fd27245d6e4 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 621ace848827 adf2229720fc 621ace848827 | from __future__ import division
from past.utils import old_div
from builtins import object
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()
fundraiser_endtime = models.DateTimeField(null=True)
def __str__(self):
return self.fundraiser_code_name
def percentage_there(self):
return (old_div(self.fundraiser_so_far_amount, self.fundraiser_goal_amount) ) * 100
class Meta(object):
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 __str__(self):
return self.provider_name
|