X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/9a5423b58158ae6d970cdd7a3dc25e5559aa374a..91296ca8836e12620c8df5363d115e7d1b91bf48:/apps/funding/models.py diff --git a/apps/funding/models.py b/apps/funding/models.py index ac652b18e..b853181f1 100644 --- a/apps/funding/models.py +++ b/apps/funding/models.py @@ -15,6 +15,7 @@ from catalogue.models import Book from catalogue.utils import get_random_hash from polls.models import Poll from django.contrib.sites.models import Site +from . import app_settings class Offer(models.Model): @@ -26,14 +27,15 @@ class Offer(models.Model): target = models.DecimalField(_('target'), decimal_places=2, max_digits=10) start = models.DateField(_('start'), db_index=True) end = models.DateField(_('end'), db_index=True) - due = models.DateField(_('due'), - help_text=_('When will it be published if the money is raised.')) redakcja_url = models.URLField(_('redakcja URL'), blank=True) book = models.ForeignKey(Book, null=True, blank=True, help_text=_('Published book.')) cover = models.ImageField(_('Cover'), upload_to = 'funding/covers') poll = models.ForeignKey(Poll, help_text = _('Poll'), null = True, blank = True, on_delete = models.SET_NULL) - + + notified_near = models.DateTimeField(_('Near-end notifications sent'), blank=True, null=True) + notified_end = models.DateTimeField(_('End notifications sent'), blank=True, null=True) + def cover_img_tag(self): return u'' % self.cover.url cover_img_tag.short_description = _('Cover preview') @@ -122,7 +124,8 @@ class Offer(models.Model): query_filter=models.Q(offer=self) ) - def notify_end(self): + def notify_end(self, force=False): + if not force and self.notified_end: return assert not self.is_current() self.notify_all( _('The fundraiser has ended!'), @@ -132,8 +135,11 @@ class Offer(models.Model): 'remaining': self.remaining(), 'current': self.current(), }) + self.notified_end = datetime.now() + self.save() - def notify_near(self): + def notify_near(self, force=False): + if not force and self.notified_near: return assert self.is_current() sum_ = self.sum() need = self.target - sum_ @@ -146,6 +152,8 @@ class Offer(models.Model): 'sum': sum_, 'need': need, }) + self.notified_near = datetime.now() + self.save() def notify_published(self): assert self.book is not None @@ -244,8 +252,9 @@ class Funding(models.Model): 'funding': self, 'site': Site.objects.get_current(), } - context.update(extra_context) - with override(self.language_code or 'pl'): + if extra_context: + context.update(extra_context) + with override(self.language_code or app_settings.DEFAULT_LANGUAGE): send_mail(subject, render_to_string(template_name, context), getattr(settings, 'CONTACT_EMAIL', 'wolnelektury@nowoczesnapolska.org.pl'),