diff --git a/djangocms_blog/admin.py b/djangocms_blog/admin.py index 51d32a1..e74e6f1 100755 --- a/djangocms_blog/admin.py +++ b/djangocms_blog/admin.py @@ -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', { diff --git a/djangocms_blog/migrations/0019_auto_20160605_2305.py b/djangocms_blog/migrations/0019_auto_20160605_2305.py new file mode 100644 index 0000000..8d43417 --- /dev/null +++ b/djangocms_blog/migrations/0019_auto_20160605_2305.py @@ -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'), + ), + ] diff --git a/djangocms_blog/models.py b/djangocms_blog/models.py index afa8212..e8ef178 100644 --- a/djangocms_blog/models.py +++ b/djangocms_blog/models.py @@ -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') diff --git a/djangocms_blog/views.py b/djangocms_blog/views.py index ee6845f..10ee0b0 100644 --- a/djangocms_blog/views.py +++ b/djangocms_blog/views.py @@ -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'