diff --git a/CHANGES.rst b/CHANGES.rst index 2c2a9d3d..bfe7367d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -125,6 +125,9 @@ New features: 6.2 (2022-10-28) ---------------- +- Add a starter subtemplate to initialize a Plone site with some sane default values + [erral] + - Improve namespace support #419 [mamico] diff --git a/bobtemplates/plone/bobregistry.py b/bobtemplates/plone/bobregistry.py index c5b56750..b597b67c 100644 --- a/bobtemplates/plone/bobregistry.py +++ b/bobtemplates/plone/bobregistry.py @@ -158,3 +158,11 @@ def plone_form(): reg.plonecli_alias = "form" reg.depend_on = "plone_addon" return reg + + +def plone_site_initialization(): + reg = RegEntry() + reg.template = "bobtemplates.plone:site_initialization" + reg.plonecli_alias = "site_initialization" + reg.depend_on = "plone_addon" + return reg diff --git a/bobtemplates/plone/site_initialization.py b/bobtemplates/plone/site_initialization.py new file mode 100644 index 00000000..26190851 --- /dev/null +++ b/bobtemplates/plone/site_initialization.py @@ -0,0 +1,16 @@ +from bobtemplates.plone.base import base_prepare_renderer +from bobtemplates.plone.base import git_commit +from bobtemplates.plone.base import git_support + + +def prepare_renderer(configurator): + """Prepare rendering.""" + configurator = base_prepare_renderer(configurator) + + configurator.target_directory = configurator.variables["package_folder"] + + +def post_renderer(configurator): + """Post rendering.""" + if git_support(configurator): + git_commit(configurator, "Add Plone site initialization configuration") diff --git a/bobtemplates/plone/site_initialization/.mrbob.ini b/bobtemplates/plone/site_initialization/.mrbob.ini new file mode 100644 index 00000000..1c3e8743 --- /dev/null +++ b/bobtemplates/plone/site_initialization/.mrbob.ini @@ -0,0 +1,24 @@ +[questions] +subtemplate_warning.question = Please commit your changes, before using a sub-template! Continue anyway? [N/y] +subtemplate_warning.required = True +subtemplate_warning.default = n +subtemplate_warning.pre_ask_question = bobtemplates.plone.base:git_clean_state_check +subtemplate_warning.post_ask_question = mrbob.hooks:validate_choices bobtemplates.plone.base:subtemplate_warning_post_question +subtemplate_warning.choices = y|n +subtemplate_warning.choices_delimiter = | + +language.question = Enter the 2 letter language code for your site +language.help = Shold be something like 'en' +language.required = True +language.default = 'en' + +site_name.question = Enter the name of your site +site_name.help = Should be something like 'My new site' +site_name.required = True +site_name.default = New Plone Site + + +[template] +post_ask = bobtemplates.plone.base:set_global_vars +pre_render = bobtemplates.plone.site_initialization:prepare_renderer +post_render = bobtemplates.plone.site_initialization:post_renderer diff --git a/bobtemplates/plone/site_initialization/profiles/default/registry/plone.base.interfaces.controlpanel.IMailSchema.xml.bob b/bobtemplates/plone/site_initialization/profiles/default/registry/plone.base.interfaces.controlpanel.IMailSchema.xml.bob new file mode 100644 index 00000000..5c7468a6 --- /dev/null +++ b/bobtemplates/plone/site_initialization/profiles/default/registry/plone.base.interfaces.controlpanel.IMailSchema.xml.bob @@ -0,0 +1,6 @@ + + + + {{{ site_name }}} + + diff --git a/bobtemplates/plone/site_initialization/profiles/default/registry/plone.base.interfaces.controlpanel.ISiteSchema.xml.bob b/bobtemplates/plone/site_initialization/profiles/default/registry/plone.base.interfaces.controlpanel.ISiteSchema.xml.bob new file mode 100644 index 00000000..cf6a16c4 --- /dev/null +++ b/bobtemplates/plone/site_initialization/profiles/default/registry/plone.base.interfaces.controlpanel.ISiteSchema.xml.bob @@ -0,0 +1,6 @@ + + + + {{{ site_name }}} + + diff --git a/bobtemplates/plone/site_initialization/profiles/default/registry/plone.i18n.interfaces.ILanguageSchema.xml.bob b/bobtemplates/plone/site_initialization/profiles/default/registry/plone.i18n.interfaces.ILanguageSchema.xml.bob new file mode 100644 index 00000000..4fa418b4 --- /dev/null +++ b/bobtemplates/plone/site_initialization/profiles/default/registry/plone.i18n.interfaces.ILanguageSchema.xml.bob @@ -0,0 +1,9 @@ + + + + + {{{ language }}} + + {{{ language }}} + + diff --git a/constraints.txt b/constraints.txt index 4011332b..93f4cbda 100644 --- a/constraints.txt +++ b/constraints.txt @@ -3,7 +3,7 @@ # Pin Versions / Version Ranges if necessary. setuptools==57.0.0 tox==4.11.3 -isort>=5 +isort>=5.12.0 flake8==5.0.4 flake8-html==0.4.2 black==22.8.0 diff --git a/package_tests/test_site_initialization.py b/package_tests/test_site_initialization.py new file mode 100644 index 00000000..e69de29b diff --git a/setup.py b/setup.py index 89a180ac..ba8ecb41 100644 --- a/setup.py +++ b/setup.py @@ -90,6 +90,7 @@ "plone_vocabulary = bobtemplates.plone.bobregistry:plone_vocabulary", "plone_controlpanel = bobtemplates.plone.bobregistry:plone_controlpanel", "plone_form = bobtemplates.plone.bobregistry:plone_form", + "plone_site_initialization = bobtemplates.plone.bobregistry:plone_site_initialization", ] }, )