Files @ 4da324d74a6d
Branch filter:

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

Bradley M. Kuhn
Update verbs as needed for congruence with previous change.
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