X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/7c8f6fe9ddb0285e0b7c80bc0ff8814304ac2f6e..b8e94e0e7cc7576cbaacd3c737d6ffca6b12db53:/apps/social/models.py diff --git a/apps/social/models.py b/apps/social/models.py index e1c7e379a..890280774 100644 --- a/apps/social/models.py +++ b/apps/social/models.py @@ -4,13 +4,14 @@ # from django.db import models from django.utils.translation import ugettext_lazy as _ +from django.conf import settings from django.core.urlresolvers import reverse - +from ssify import flush_ssi_includes from catalogue.models import Book class Cite(models.Model): - book = models.ForeignKey(Book, verbose_name=_('book')) + book = models.ForeignKey(Book, verbose_name=_('book'), null=True, blank=True) text = models.TextField(_('text')) small = models.BooleanField(_('small'), default=False, help_text=_('Make this cite display smaller.')) @@ -20,7 +21,10 @@ class Cite(models.Model): help_text=_('Sticky cites will take precedense.')) image = models.ImageField(_('image'), upload_to='social/cite', - null=True, blank=True) + null=True, blank=True, + help_text=_('Best image is exactly 975px wide and weights under 100kB.')) + image_shift = models.IntegerField(_('shift'), null=True, blank=True, + help_text=_(u'Vertical shift, in percents. 0 means top, 100 is bottom. Default is 50%.')) image_title = models.CharField(_('title'), max_length=255, null=True, blank=True) image_author = models.CharField(_('author'), @@ -41,3 +45,18 @@ class Cite(models.Model): def get_absolute_url(self): """This is used for testing.""" return "%s?choose_cite=%d" % (reverse('main_page'), self.id) + + def save(self, *args, **kwargs): + ret = super(Cite, self).save(*args, **kwargs) + self.flush_includes() + return ret + + def flush_includes(self): + flush_ssi_includes([ + template % (self.pk, lang) + for template in [ + '/ludzie/cite/%s.%s.html', + '/ludzie/cite_main/%s.%s.html', + ] + for lang in [lc for (lc, _ln) in settings.LANGUAGES]] + + ['/ludzie/cite_info/%s.html' % self.pk])