diff --git a/djangocms_blog/apps.py b/djangocms_blog/apps.py index 3da17b3..82f7b77 100644 --- a/djangocms_blog/apps.py +++ b/djangocms_blog/apps.py @@ -13,53 +13,3 @@ except ImportError: class BlogAppConfig(AppConfig): name = 'djangocms_blog' verbose_name = _('django CMS Blog') - - @staticmethod - def setup(): - from cms.api import create_page, create_title - from cms.exceptions import NoHomeFound - from cms.models import Page - from cms.utils import get_language_list - from cms.utils.conf import get_templates - from django.utils.translation import override - - from .cms_appconfig import BlogConfig - from .settings import get_setting - - if get_setting('AUTO_SETUP'): - configs = BlogConfig.objects.all() - if not configs.exists(): - config = BlogConfig.objects.create(namespace='Blog') - langs = get_language_list() - blog = None - for lang in langs: - with override(lang): - config.set_current_language(lang) - config.app_title = get_setting('AUTO_APP_TITLE') - config.save() - default_template = get_templates()[0][0] - try: - home = Page.objects.get_home() - except NoHomeFound: - home = None - if not home: - home = create_page( - get_setting('AUTO_HOME_TITLE'), language=lang, - template=default_template, in_navigation=True, published=True - ) - elif lang not in home.get_languages(): - create_title( - language=lang, title=get_setting('AUTO_HOME_TITLE'), page=home - ) - home.publish(lang) - if not blog: - blog = create_page( - get_setting('AUTO_BLOG_TITLE'), language=lang, apphook='BlogApp', - apphook_namespace=config.namespace, parent=home, - template=default_template, in_navigation=True, published=True - ) - else: - create_title( - language=lang, title=get_setting('AUTO_BLOG_TITLE'), page=blog - ) - blog.publish(lang) diff --git a/djangocms_blog/cms_app.py b/djangocms_blog/cms_app.py index 5209555..2f13026 100644 --- a/djangocms_blog/cms_app.py +++ b/djangocms_blog/cms_app.py @@ -4,16 +4,24 @@ from __future__ import absolute_import, print_function, unicode_literals from aldryn_apphooks_config.app_base import CMSConfigApp from cms.apphook_pool import apphook_pool from django.utils.translation import ugettext_lazy as _ +from djangocms_apphook_setup.base import AutoCMSAppMixin from .cms_appconfig import BlogConfig from .menu import BlogCategoryMenu +from .settings import get_setting -class BlogApp(CMSConfigApp): +class BlogApp(AutoCMSAppMixin, CMSConfigApp): name = _('Blog') urls = ['djangocms_blog.urls'] app_name = 'djangocms_blog' app_config = BlogConfig menus = [BlogCategoryMenu] + auto_setup = get_setting('AUTO_SETUP') + auto_app_title = get_setting('AUTO_APP_TITLE') + auto_home_title = get_setting('AUTO_HOME_TITLE') + auto_page_title = get_setting('AUTO_BLOG_TITLE') + auto_namespace = get_setting('AUTO_NAMESPACE') apphook_pool.register(BlogApp) +BlogApp.setup() diff --git a/djangocms_blog/cms_toolbar.py b/djangocms_blog/cms_toolbar.py index d42fed0..7787eea 100644 --- a/djangocms_blog/cms_toolbar.py +++ b/djangocms_blog/cms_toolbar.py @@ -6,7 +6,6 @@ from cms.toolbar_pool import toolbar_pool from django.core.urlresolvers import reverse from django.utils.translation import override, ugettext_lazy as _ -from .apps import BlogAppConfig from .models import BLOG_CURRENT_NAMESPACE, BLOG_CURRENT_POST_IDENTIFIER @@ -52,5 +51,3 @@ class BlogToolbar(CMSToolbar): menu.remove_item(pagetags) except ImportError: pass - -BlogAppConfig.setup() diff --git a/djangocms_blog/settings.py b/djangocms_blog/settings.py index 02d0564..7e55668 100644 --- a/djangocms_blog/settings.py +++ b/djangocms_blog/settings.py @@ -79,6 +79,8 @@ def get_setting(name): 'BLOG_AUTO_HOME_TITLE': getattr(settings, 'BLOG_AUTO_HOME_TITLE', 'Home'), 'BLOG_AUTO_BLOG_TITLE': getattr(settings, 'BLOG_AUTO_BLOG_TITLE', 'Blog'), 'BLOG_AUTO_APP_TITLE': getattr(settings, 'BLOG_AUTO_APP_TITLE', 'Blog'), + 'BLOG_AUTO_NAMESPACE': getattr(settings, 'BLOG_AUTO_NAMESPACE', 'Blog'), + 'BLOG_ENABLE_SEARCH': getattr(settings, 'BLOG_ENABLE_SEARCH', True), } return default['BLOG_%s' % name]