Use djangocms-apphook-setup for auto setup
This commit is contained in:
parent
d7eafe0c00
commit
f029608f0c
4 changed files with 11 additions and 54 deletions
|
@ -13,53 +13,3 @@ except ImportError:
|
||||||
class BlogAppConfig(AppConfig):
|
class BlogAppConfig(AppConfig):
|
||||||
name = 'djangocms_blog'
|
name = 'djangocms_blog'
|
||||||
verbose_name = _('django CMS 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)
|
|
||||||
|
|
|
@ -4,16 +4,24 @@ from __future__ import absolute_import, print_function, unicode_literals
|
||||||
from aldryn_apphooks_config.app_base import CMSConfigApp
|
from aldryn_apphooks_config.app_base import CMSConfigApp
|
||||||
from cms.apphook_pool import apphook_pool
|
from cms.apphook_pool import apphook_pool
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from djangocms_apphook_setup.base import AutoCMSAppMixin
|
||||||
|
|
||||||
from .cms_appconfig import BlogConfig
|
from .cms_appconfig import BlogConfig
|
||||||
from .menu import BlogCategoryMenu
|
from .menu import BlogCategoryMenu
|
||||||
|
from .settings import get_setting
|
||||||
|
|
||||||
|
|
||||||
class BlogApp(CMSConfigApp):
|
class BlogApp(AutoCMSAppMixin, CMSConfigApp):
|
||||||
name = _('Blog')
|
name = _('Blog')
|
||||||
urls = ['djangocms_blog.urls']
|
urls = ['djangocms_blog.urls']
|
||||||
app_name = 'djangocms_blog'
|
app_name = 'djangocms_blog'
|
||||||
app_config = BlogConfig
|
app_config = BlogConfig
|
||||||
menus = [BlogCategoryMenu]
|
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)
|
apphook_pool.register(BlogApp)
|
||||||
|
BlogApp.setup()
|
||||||
|
|
|
@ -6,7 +6,6 @@ from cms.toolbar_pool import toolbar_pool
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.utils.translation import override, ugettext_lazy as _
|
from django.utils.translation import override, ugettext_lazy as _
|
||||||
|
|
||||||
from .apps import BlogAppConfig
|
|
||||||
from .models import BLOG_CURRENT_NAMESPACE, BLOG_CURRENT_POST_IDENTIFIER
|
from .models import BLOG_CURRENT_NAMESPACE, BLOG_CURRENT_POST_IDENTIFIER
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,5 +51,3 @@ class BlogToolbar(CMSToolbar):
|
||||||
menu.remove_item(pagetags)
|
menu.remove_item(pagetags)
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
BlogAppConfig.setup()
|
|
||||||
|
|
|
@ -79,6 +79,8 @@ def get_setting(name):
|
||||||
'BLOG_AUTO_HOME_TITLE': getattr(settings, 'BLOG_AUTO_HOME_TITLE', 'Home'),
|
'BLOG_AUTO_HOME_TITLE': getattr(settings, 'BLOG_AUTO_HOME_TITLE', 'Home'),
|
||||||
'BLOG_AUTO_BLOG_TITLE': getattr(settings, 'BLOG_AUTO_BLOG_TITLE', 'Blog'),
|
'BLOG_AUTO_BLOG_TITLE': getattr(settings, 'BLOG_AUTO_BLOG_TITLE', 'Blog'),
|
||||||
'BLOG_AUTO_APP_TITLE': getattr(settings, 'BLOG_AUTO_APP_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),
|
'BLOG_ENABLE_SEARCH': getattr(settings, 'BLOG_ENABLE_SEARCH', True),
|
||||||
}
|
}
|
||||||
return default['BLOG_%s' % name]
|
return default['BLOG_%s' % name]
|
||||||
|
|
Loading…
Add table
Reference in a new issue