X-Git-Url: https://git.mdrn.pl/django-migdal.git/blobdiff_plain/3d174fac85fa8b2659c198fbec43f90104baf341..402a579c119c6494404699aa6e21b16579ca278b:/migdal/models.py diff --git a/migdal/models.py b/migdal/models.py index c98b74f..3ab375d 100644 --- a/migdal/models.py +++ b/migdal/models.py @@ -51,7 +51,9 @@ class Entry(models.Model): help_text=_('Used only to display gravatar and send notifications.')) image = models.ImageField(_('image'), upload_to='entry/image/', null=True, blank=True) promo = models.BooleanField(_('promoted'), default=False) + in_stream = models.BooleanField(_('in stream'), default=True) categories = models.ManyToManyField(Category, null=True, blank=True, verbose_name=_('categories')) + first_published_at = models.DateTimeField(_('published at'), null=True, blank=True) class Meta: verbose_name = _('entry') @@ -62,17 +64,18 @@ class Entry(models.Model): return self.title def save(self, *args, **kwargs): - if self.pk is not None: - orig = type(self).objects.get(pk=self.pk) - published_now = False - for lc, ln in settings.LANGUAGES: - if (getattr(self, "published_%s" % lc) - and getattr(self, "published_at_%s" % lc) is None): - setattr(self, "published_at_%s" % lc, datetime.now()) + published_now = False + for lc, ln in settings.LANGUAGES: + if (getattr(self, "published_%s" % lc) + and getattr(self, "published_at_%s" % lc) is None): + now = datetime.now() + setattr(self, "published_at_%s" % lc, now) + if self.first_published_at is None: + self.first_published_at = now published_now = True - if published_now: - self.notify_author_published() super(Entry, self).save(*args, **kwargs) + if published_now and self.pk is not None: + self.notify_author_published() def clean(self): for lc, ln in settings.LANGUAGES: @@ -102,6 +105,12 @@ class Entry(models.Model): mail_text, settings.SERVER_EMAIL, [self.author_email] ) + def inline_html(self): + for att in self.attachment_set.all(): + if att.file.name.endswith(".html"): + with open(att.file.path) as f: + yield f.read() + add_translatable(Entry, languages=app_settings.OPTIONAL_LANGUAGES, fields={ 'needed': models.CharField(_('needed'), max_length=1, db_index=True, choices=(