class Meta: verbose_name = 'inline' verbose_name_plural = 'inlines' def __unicode__(self): return self.title class Photo(models.Model): """ An article can have multiple photo's """ photo = models.ImageField(_('photo'), upload_to=upload_to_photo) title = models.CharField(_('title'), max_length=256, help_text=_('This will be shown when people hover above the photo.')) date_added = models.DateTimeField(_('date added'), auto_now_add=True) def __unicode__(self): return '%(title)s' % {'title': self.title } @property def slug(self): return slugify(self.title) class Meta: verbose_name = _('photo') verbose_name_plural = _('photo\'s') ordering = ['-date_added'] publisa.register(Article, allow_banners=True, admin_preview=True)
def get_absolute_url(self): return ('columnadia-column-detail', (), {'columnist': self.columnist.slug, 'column': self.slug}) def publish_banner_image(self): return self.columnist.headshot @property def publish_rss_title(self): return '%(author)s: %(title)s' % {'author': self.columnist, 'title': self.title } @property def publish_rss_description(self): return '%(description)s' % {'description': self.teaser_or_body } @property def teaser_or_body(self): """ If the teaser is not filled in, than return the body """ if not self.teaser: return self.body_html else: return self.teaser_html def save(self, force_insert=False, force_update=False): """ Overwrite the save model so the HTML parts get filled in """ self.teaser_html = markdown.markdown(self.teaser) self.body_html = markdown.markdown(self.body) super(Column, self).save(force_insert=force_insert, force_update=force_update) publisa.register(Column, allow_banners=True, admin_preview=True)