Experimental preview of 2022 book detail page.
[wolnelektury.git] / src / funding / models.py
index b439ebf..289ec33 100644 (file)
@@ -10,6 +10,7 @@ from django.db import models
 from django.dispatch import receiver
 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 ugettext_lazy as _, override
 import getpaid
@@ -38,9 +39,8 @@ class Offer(models.Model):
     notified_end = models.DateTimeField(_('End notifications sent'), blank=True, null=True)
 
     def cover_img_tag(self):
-        return u'<img src="%s" />' % self.cover.url
+        return mark_safe('<img src="%s" />' % self.cover.url)
     cover_img_tag.short_description = _('Cover preview')
-    cover_img_tag.allow_tags = True
 
     class Meta:
         verbose_name = _('offer')
@@ -48,7 +48,7 @@ class Offer(models.Model):
         ordering = ['-end']
 
     def __str__(self):
-        return u"%s - %s" % (self.author, self.title)
+        return "%s - %s" % (self.author, self.title)
 
     def get_absolute_url(self):
         return reverse('funding_offer', args=[self.slug])
@@ -258,7 +258,7 @@ class Perk(models.Model):
         ordering = ['-price']
 
     def __str__(self):
-        return "%s (%s%s)" % (self.name, self.price, u" for %s" % self.offer if self.offer else "")
+        return "%s (%s%s)" % (self.name, self.price, " for %s" % self.offer if self.offer else "")
 
 
 class Funding(models.Model):
@@ -304,6 +304,9 @@ class Funding(models.Model):
                 'key': self.notify_key,
             }))
 
+    def wl_optout_url(self):
+        return 'https://wolnelektury.pl' + self.get_disable_notifications_url()
+
     def save(self, *args, **kwargs):
         if self.email and not self.notify_key:
             self.notify_key = get_random_hash(self.email)
@@ -358,7 +361,7 @@ class Spent(models.Model):
         ordering = ['-timestamp']
 
     def __str__(self):
-        return u"Spent: %s" % str(self.book)
+        return "Spent: %s" % str(self.book)
 
 
 @receiver(getpaid.signals.new_payment_query)