Add flag to enable liveblog

This commit is contained in:
Iacopo Spalletti 2016-06-05 23:11:58 +02:00
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 aldryn_apphooks_config.admin import BaseAppHookConfig, ModelAppHookConfig
from cms.admin.placeholderadmin import FrontendEditableAdminMixin, PlaceholderAdminMixin from cms.admin.placeholderadmin import FrontendEditableAdminMixin, PlaceholderAdminMixin
from django import forms from django import forms
from django.apps import apps
from django.conf import settings from django.conf import settings
from django.conf.urls import url from django.conf.urls import url
from django.contrib import admin from django.contrib import admin
@ -60,7 +61,12 @@ class PostAdmin(PlaceholderAdminMixin, FrontendEditableAdminMixin,
}), }),
('Info', { ('Info', {
'fields': (['slug', 'tags'], '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',) 'classes': ('collapse',)
}), }),
('Images', { ('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') content = PlaceholderField('post_content', related_name='post_content')
liveblog = PlaceholderField('live_blog', related_name='live_blog') liveblog = PlaceholderField('live_blog', related_name='live_blog')
enable_liveblog = models.BooleanField(verbose_name=_('enable liveblog on post'), default=False)
objects = GenericDateTaggedManager() objects = GenericDateTaggedManager()
tags = TaggableManager(blank=True, related_name='djangocms_blog_tags') 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 import os.path
from aldryn_apphooks_config.mixins import AppConfigMixin from aldryn_apphooks_config.mixins import AppConfigMixin
from django.apps import apps
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse 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' template_path = (self.config and self.config.template_prefix) or 'djangocms_blog'
return os.path.join(template_path, self.base_template_name) 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): class BaseBlogListView(BaseBlogView):
context_object_name = 'post_list' context_object_name = 'post_list'
@ -79,6 +73,9 @@ class PostDetailView(TranslatableSlugMixin, BaseBlogView, DetailView):
view_url_name = 'djangocms_blog:post-detail' view_url_name = 'djangocms_blog:post-detail'
instant_article = False instant_article = False
def liveblog_enabled(self):
return self.object.enable_liveblog and apps.is_installed('djangocms_blog.liveblog')
def get_template_names(self): def get_template_names(self):
if self.instant_article: if self.instant_article:
template_path = (self.config and self.config.template_prefix) or 'djangocms_blog' template_path = (self.config and self.config.template_prefix) or 'djangocms_blog'