diff --git a/www/conservancy/apps/fundgoal/models.py b/www/conservancy/apps/fundgoal/models.py index 8eb2b10d68b740174e5d8a2e904f0bf159f3edf8..2bb5d6d71694b9352555aec99d15692d49ffe34e 100644 --- a/www/conservancy/apps/fundgoal/models.py +++ b/www/conservancy/apps/fundgoal/models.py @@ -1,3 +1,5 @@ +import random + from django.db import models class FundraisingGoal(models.Model): @@ -18,6 +20,18 @@ class FundraisingGoal(models.Model): 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(