Added featured date to post

This commit is contained in:
Iacopo Spalletti 2017-01-25 11:20:06 +01:00
parent b0434773fa
commit ee2f98776b
No known key found for this signature in database
GPG key ID: BDCBC2EB289F60C6
6 changed files with 42 additions and 1 deletions

View file

@ -20,6 +20,7 @@ History
* Improved category admin to avoid circular relationships. * Improved category admin to avoid circular relationships.
* Dropped strict dependency on aldryn-search, haystack. Install separately for search support. * Dropped strict dependency on aldryn-search, haystack. Install separately for search support.
* Improved admin filtering. * Improved admin filtering.
* Added featured date to post.
******************* *******************
0.8.10 (2017-01-02) 0.8.10 (2017-01-02)

View file

@ -90,7 +90,7 @@ class PostAdmin(PlaceholderAdminMixin, FrontendEditableAdminMixin,
}), }),
(_('Info'), { (_('Info'), {
'fields': [['slug', 'tags'], 'fields': [['slug', 'tags'],
['date_published', 'date_published_end'], ['date_published', 'date_published_end', 'date_featured'],
['enable_comments']], ['enable_comments']],
'classes': ('collapse',) 'classes': ('collapse',)
}), }),

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.5 on 2017-01-25 11:15
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('djangocms_blog', '0026_merge'),
]
operations = [
migrations.AddField(
model_name='post',
name='date_featured',
field=models.DateTimeField(blank=True, null=True, verbose_name='featured date'),
),
]

View file

@ -142,6 +142,7 @@ class Post(KnockerModel, ModelMeta, TranslatableModel):
date_modified = models.DateTimeField(_('last modified'), auto_now=True) date_modified = models.DateTimeField(_('last modified'), auto_now=True)
date_published = models.DateTimeField(_('published since'), null=True, blank=True) date_published = models.DateTimeField(_('published since'), null=True, blank=True)
date_published_end = models.DateTimeField(_('published until'), null=True, blank=True) date_published_end = models.DateTimeField(_('published until'), null=True, blank=True)
date_featured = models.DateTimeField(_('featured date'), null=True, blank=True)
publish = models.BooleanField(_('publish'), default=False) publish = models.BooleanField(_('publish'), default=False)
categories = models.ManyToManyField('djangocms_blog.BlogCategory', verbose_name=_('category'), categories = models.ManyToManyField('djangocms_blog.BlogCategory', verbose_name=_('category'),
related_name='blog_posts', blank=True) related_name='blog_posts', blank=True)
@ -237,6 +238,12 @@ class Post(KnockerModel, ModelMeta, TranslatableModel):
) )
return hashlib.sha256(force_bytes(base_string)).hexdigest() return hashlib.sha256(force_bytes(base_string)).hexdigest()
@property
def date(self):
if self.date_featured:
return self.date_featured
return self.date_published
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
""" """
Handle some auto configuration during save Handle some auto configuration during save

View file

@ -9,6 +9,11 @@
<li> <li>
{{ post.date_published|date:"DATE_FORMAT" }} {{ post.date_published|date:"DATE_FORMAT" }}
</li> </li>
{% if post.date_featured %}
<li>
{{ post.date_featured|date:"DATE_FORMAT" }}
</li>
{% endif %}
</ul> </ul>
<ul class="post-detail tags"> <ul class="post-detail tags">
{% if post.categories.exists %} {% if post.categories.exists %}

View file

@ -558,12 +558,20 @@ class ModelsTest(BaseTest):
self.app_config_1.app_data.config.gplus_author = 'RandomJoe' self.app_config_1.app_data.config.gplus_author = 'RandomJoe'
self.app_config_1.save() self.app_config_1.save()
featured_date = now() + timedelta(days=40)
post = self._get_post(self._post_data[0]['en']) post = self._get_post(self._post_data[0]['en'])
post = self._get_post(self._post_data[0]['it'], post, 'it') post = self._get_post(self._post_data[0]['it'], post, 'it')
post.main_image = self.create_filer_image_object() post.main_image = self.create_filer_image_object()
post.publish = True post.publish = True
post.save() post.save()
post.set_current_language('en') post.set_current_language('en')
self.assertEqual(post.date, post.date_published)
post.date_featured = featured_date
post.save()
self.assertEqual(post.date, featured_date)
meta_en = post.as_meta() meta_en = post.as_meta()
self.assertEqual(meta_en.og_type, get_setting('FB_TYPE')) self.assertEqual(meta_en.og_type, get_setting('FB_TYPE'))
self.assertEqual(meta_en.title, post.title) self.assertEqual(meta_en.title, post.title)