From 4fd27245d6e49250be6e4e7a26e91db8464411bc Mon Sep 17 00:00:00 2001 From: Brett Smith Date: Sun, 18 Nov 2018 14:32:07 -0500 Subject: [PATCH] fundgoal: Add provider convenience methods to FundraisingGoal. --- www/conservancy/apps/fundgoal/models.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/www/conservancy/apps/fundgoal/models.py b/www/conservancy/apps/fundgoal/models.py index 8eb2b10d..2bb5d6d7 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(