Add flag to enable liveblog

This commit is contained in:
Iacopo Spalletti 2016-06-05 23:11:58 +02:00
parent eab9083d90
commit 13a26650ad
No known key found for this signature in database
GPG key ID: BDCBC2EB289F60C6
4 changed files with 43 additions and 8 deletions

View file

@ -6,6 +6,7 @@ from copy import deepcopy
from aldryn_apphooks_config.admin import BaseAppHookConfig, ModelAppHookConfig
from cms.admin.placeholderadmin import FrontendEditableAdminMixin, PlaceholderAdminMixin
from django import forms
from django.apps import apps
from django.conf import settings
from django.conf.urls import url
from django.contrib import admin
@ -60,7 +61,12 @@ class PostAdmin(PlaceholderAdminMixin, FrontendEditableAdminMixin,
}),
('Info', {
'fields': (['slug', 'tags'],
('date_published', 'date_published_end', 'enable_comments')),
('date_published', 'date_published_end',),
(
'enable_comments',
'enable_liveblog' if apps.is_installed('djangocms_blog.liveblog')
else None
)),
'classes': ('collapse',)
}),
('Images', {

View file

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-06-05 21:05
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('djangocms_blog', '0018_post_liveblog'),
]
operations = [
migrations.AddField(
model_name='post',
name='enable_liveblog',
field=models.BooleanField(default=False, verbose_name='enable liveblog on post'),
),
migrations.AlterField(
model_name='post',
name='main_image_full',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='djangocms_blog_post_full', to='cmsplugin_filer_image.ThumbnailOption', verbose_name='main image full'),
),
migrations.AlterField(
model_name='post',
name='main_image_thumbnail',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='djangocms_blog_post_thumbnail', to='cmsplugin_filer_image.ThumbnailOption', verbose_name='main image thumbnail'),
),
]

View file

@ -164,6 +164,7 @@ class Post(KnockerModel, ModelMeta, TranslatableModel):
)
content = PlaceholderField('post_content', related_name='post_content')
liveblog = PlaceholderField('live_blog', related_name='live_blog')
enable_liveblog = models.BooleanField(verbose_name=_('enable liveblog on post'), default=False)
objects = GenericDateTaggedManager()
tags = TaggableManager(blank=True, related_name='djangocms_blog_tags')

View file

@ -4,6 +4,7 @@ from __future__ import absolute_import, print_function, unicode_literals
import os.path
from aldryn_apphooks_config.mixins import AppConfigMixin
from django.apps import apps
from django.contrib.auth import get_user_model
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse
@ -51,13 +52,6 @@ class BaseBlogView(AppConfigMixin, ViewUrlMixin):
template_path = (self.config and self.config.template_prefix) or 'djangocms_blog'
return os.path.join(template_path, self.base_template_name)
def liveblog_enabled(self):
try:
from django.apps import apps
return apps.is_installed('djangocms_blog.liveblog')
except ImportError:
return False
class BaseBlogListView(BaseBlogView):
context_object_name = 'post_list'
@ -79,6 +73,9 @@ class PostDetailView(TranslatableSlugMixin, BaseBlogView, DetailView):
view_url_name = 'djangocms_blog:post-detail'
instant_article = False
def liveblog_enabled(self):
return self.object.enable_liveblog and apps.is_installed('djangocms_blog.liveblog')
def get_template_names(self):
if self.instant_article:
template_path = (self.config and self.config.template_prefix) or 'djangocms_blog'