diff --git a/.readthedocs.yaml b/.readthedocs.yaml
new file mode 100644
index 00000000..4d74a9b9
--- /dev/null
+++ b/.readthedocs.yaml
@@ -0,0 +1,35 @@
+# Read the Docs configuration file for Sphinx projects
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Set the OS, Python version and other tools you might need
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "3.12"
+ # You can also specify other tool versions:
+ # nodejs: "20"
+ # rust: "1.70"
+ # golang: "1.20"
+
+# Build documentation in the "docs/" directory with Sphinx
+sphinx:
+ configuration: docs/conf.py
+ # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
+ # builder: "dirhtml"
+ # Fail on all warnings to avoid broken references
+ # fail_on_warning: true
+
+# Optionally build your docs in additional formats such as PDF and ePub
+formats:
+ - pdf
+ - epub
+
+# Optional but recommended, declare the Python requirements required
+# to build your documentation
+# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
+#python:
+# install:
+# - requirements: docs/requirements.txt
diff --git a/CHANGES.rst b/CHANGES.rst
index 7ef29e6e..25cdde4e 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,16 +1,20 @@
Changelog
=========
-6.3.2 (unreleased)
+6.3.3 (unreleased)
------------------
-Breaking changes:
+- Nothing changed yet.
--
+
+6.3.2 (2024-05-07)
+------------------
New features:
--
+- Add a starter subtemplate to initialize a Plone site with some sane default values
+ [erral]
+
Bug fixes:
@@ -24,10 +28,6 @@ Bug fixes:
6.3.1 (2023-10-31)
------------------
-Breaking changes:
-
--
-
New features:
- Add `icon_expr` for `content_type`` view/edit actions and ask for "Content type icon" when adding a `content_type`.
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..e1e166b9 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@
from setuptools import setup
-version = "6.3.2.dev0"
+version = "6.3.3.dev0"
long_description = "\n\n".join(
@@ -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",
]
},
)