Files @ 7fe9c07cebc4
Branch filter:

Location: website/www/conservancy/apps/fundgoal/models.py

Bradley M. Kuhn
Add holiday card to banner at top for next few days

Also, fix a few URLs .
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