File diff 28f3b8de08e7 → 79361cdf97dd
conservancy/fundgoal/models.py
Show inline comments
 
import datetime
 
import math
 
import random
 

	
 
from django.db import models
...
 
@@ -10,6 +12,9 @@ class FundraisingGoal(models.Model):
 
    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()
 
    # The number of new Sustainers that can be double-matched this fundraiser.
 
    # (No, this name makes no sense. We're repurposing an existing model field
 
    # for this new reason.)
 
    fundraiser_donation_count_disclose_threshold = models.IntegerField()
 
    fundraiser_endtime = models.DateTimeField(null=True)
 

	
...
 
@@ -34,6 +39,20 @@ class FundraisingGoal(models.Model):
 
        else:
 
            return random.sample(providers, k)
 

	
 
    def days_remaining(self):
 
        now = datetime.datetime.now()
 
        return (self.fundraiser_endtime - now).days
 

	
 
    def hours_remaining(self):
 
        now = datetime.datetime.now()
 
        return int(math.ceil((self.fundraiser_endtime - now).seconds / 3600))
 

	
 
    def match_remaining(self):
 
        return self.fundraiser_goal_amount - self.fundraiser_so_far_amount
 

	
 
    def match_exceeded_by(self):
 
        return self.fundraiser_so_far_amount - self.fundraiser_goal_amount
 

	
 

	
 
class GoalProvider(models.Model):
 
    fundraising_goal = models.ForeignKey(