# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
#
-from datetime import date, datetime
+from datetime import date
from urllib.parse import urlencode
from django.conf import settings
from django.contrib.sites.models import Site
from django.template.loader import render_to_string
from django.urls import reverse
from django.utils.html import mark_safe
-from django.utils.timezone import utc
-from django.utils.translation import override
+from django.utils.timezone import now
+from django.utils.translation import gettext_lazy as _, override
from catalogue.models import Book
from catalogue.utils import get_random_hash
from polls.models import Poll
'remaining': self.remaining(),
'current': self.current(),
})
- self.notified_end = datetime.utcnow().replace(tzinfo=utc)
+ self.notified_end = now()
self.save()
def notify_near(self, force=False):
'sum': sum_,
'need': need,
})
- self.notified_near = datetime.utcnow().replace(tzinfo=utc)
+ self.notified_near = now()
self.save()
def notify_published(self):
class Spent(models.Model):
""" Some of the remaining money spent on a book. """
- book = models.ForeignKey(Book, models.PROTECT, null=True, blank=True)
- link = models.URLField(blank=True, help_text='zamiast książki, np. kolekcja')
+ book = models.ForeignKey(
+ Book, models.PROTECT, null=True, blank=True,
+ verbose_name='książka',
+ help_text='Książka, na którą zostały wydatkowane środki. '
+ 'Powinny tu być uwzględnione zarówno książki na które zbierano środki, jak i dodatkowe książki '
+ 'sfinansowane z nadwyżek ze zbiórek.'
+ )
+ link = models.URLField(
+ blank=True,
+ help_text="Jeśli wydatek nie dotyczy pojedynczej książki, to zamiast pola „Książka” "
+ "powinien zostać uzupełniony link do sfinansowanego obiektu (np. kolekcji)."
+ )
amount = models.DecimalField('kwota', decimal_places=2, max_digits=10)
timestamp = models.DateField('kiedy')
- annotation = models.CharField('adnotacja', max_length=255, blank=True, help_text="np. 'audiobook'")
+ annotation = models.CharField(
+ 'adnotacja', max_length=255, blank=True,
+ help_text="Adnotacja pojawi się w nawiasie w rozliczeniu, by wyjaśnić sytuację w której "
+ "do tej samej książki może być przypisany więcej niż jeden wydatek. "
+ "Np. osobny wydatek na audiobook może mieć adnotację „audiobook”.")
class Meta:
verbose_name = 'pieniądze wydane na książkę'
ordering = ['-timestamp']
def __str__(self):
- return "Spent: %s" % str(self.book)
+ return "Wydane na: %s" % str(self.book or self.link)