Files
@ 2d078b0004fb
Branch filter:
Location: website/www/conservancy/apps/fundgoal/models.py - annotation
2d078b0004fb
1.5 KiB
text/x-python
Apply `futurize --stage-2` Python 2/3 compatibility transformations.
These changes specifically require the use of the "future" library.
These changes specifically require the use of the "future" library.
2d078b0004fb 2d078b0004fb 31e51a774223 4fd27245d6e4 4fd27245d6e4 d73018440a4d d73018440a4d d73018440a4d d73018440a4d d73018440a4d 1ddcb2e4badd 1ddcb2e4badd d73018440a4d 8b469cff1830 8b469cff1830 1ddcb2e4badd d73018440a4d d73018440a4d 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 621ace848827 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 __unicode__(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 __unicode__(self):
return self.provider_name
|