diff --git a/backend/news/+dsgvo.feature b/backend/news/+dsgvo.feature deleted file mode 100644 index 2dd540c..0000000 --- a/backend/news/+dsgvo.feature +++ /dev/null @@ -1 +0,0 @@ -Add control panel for GDPR / DSGVO settings. @davisagli diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 6ec2f41..a7be5ee 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -182,8 +182,6 @@ lint.select = [ lint.ignore = [ # DoNotAssignLambda "E731", - # https://docs.astral.sh/ruff/rules/suppressible-exception/ - "SIM105", ] [tool.ruff.lint.isort] diff --git a/backend/src/kitconcept/website/controlpanels/configure.zcml b/backend/src/kitconcept/website/controlpanels/configure.zcml index a7dc44d..fb8b793 100644 --- a/backend/src/kitconcept/website/controlpanels/configure.zcml +++ b/backend/src/kitconcept/website/controlpanels/configure.zcml @@ -1,12 +1,3 @@ - - - diff --git a/backend/src/kitconcept/website/controlpanels/dsgvo.py b/backend/src/kitconcept/website/controlpanels/dsgvo.py deleted file mode 100644 index 19c063a..0000000 --- a/backend/src/kitconcept/website/controlpanels/dsgvo.py +++ /dev/null @@ -1,85 +0,0 @@ -from kitconcept.website import _ -from kitconcept.website.interfaces import IBrowserLayer -from plone.registry.interfaces import IRegistry -from plone.restapi.controlpanels import RegistryConfigletPanel -from plone.restapi.interfaces import ISiteEndpointExpander -from zope import schema -from zope.component import adapter -from zope.component import getUtility -from zope.interface import Interface -from zope.interface import implementer -from zope.schema.vocabulary import SimpleVocabulary - - -# These are the modules supported in -# https://github.com/kitconcept/volto-dsgvo-banner/blob/main/packages/volto-dsgvo-banner/src/components/Block/View.jsx -DSGVO_MODULES = SimpleVocabulary.fromValues([ - "tracking", - "youtube", - "facebook", - "google", - "vimeo", - "twitter", -]) - - -class IDSGVOSettings(Interface): - """Settings for @kitconcept/volto-dsgvo-banner""" - - show_banner = schema.Bool( - title=_("label_dsgvo_show_banner", default="Show GDPR banner on first visit"), - description=_( - "help_dsgvo_show_banner", - default="If true, the cookie consent banner will be shown immediately. " - "If false, users will be prompted to accept cookies only in the context " - "of blocks where they are needed.", - ), - default=True, - ) - - modules = schema.List( - title=_("label_dsgvo_modules", default="Show privacy settings for"), - description=_( - "help_dsgvo_modules", - default="List of 3rd-party sites to be shown in privacy preferences.", - ), - value_type=schema.Choice( - vocabulary=DSGVO_MODULES, - ), - default=["tracking", "youtube", "facebook", "google"], - required=True, - ) - - -@adapter(Interface, Interface) -class DSGVOControlpanel(RegistryConfigletPanel): - """REST API control panel for DSGVO settings.""" - - schema = IDSGVOSettings - configlet_id = "dsgvo-settings" - configlet_category_id = "plone-general" - schema_prefix = "kitconcept.website.dsgvo" - - -@adapter(Interface, IBrowserLayer) -@implementer(ISiteEndpointExpander) -class DSGVOSiteEndpointExpander: - """Add DSGVO settings to the @site endpoint.""" - - def __init__(self, context, request): - self.context = context - self.request = request - - def __call__(self, data): - registry = getUtility(IRegistry) - settings = registry.forInterface( - IDSGVOSettings, prefix="kitconcept.website.dsgvo", check=False - ) - try: - data["kitconcept.website.dsgvo"] = { - "show_banner": settings.show_banner, - "modules": settings.modules, - } - except AttributeError: - # Probably the upgrade step wasn't run yet, so the records don't exist. - pass diff --git a/backend/src/kitconcept/website/locales/de/LC_MESSAGES/kitconcept.website.po b/backend/src/kitconcept/website/locales/de/LC_MESSAGES/kitconcept.website.po deleted file mode 100644 index 4cfe56f..0000000 --- a/backend/src/kitconcept/website/locales/de/LC_MESSAGES/kitconcept.website.po +++ /dev/null @@ -1,55 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-05-13 10:56+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" -"Language-Code: de\n" -"Language-Name: German\n" -"Preferred-Encodings: utf-8 latin1\n" -"Domain: kitconcept.website\n" - -#: kitconcept/website/distributions.zcml:17 -msgid "A CMS solution for public websites. Created by kitconcept." -msgstr "" - -#: kitconcept/website/profiles.zcml:14 -msgid "Configure a new site based on kitconcept.website" -msgstr "" - -#: kitconcept/website/profiles/default/controlpanel.xml -msgid "GDPR Settings" -msgstr "DSGVO-Einstellungen" - -#. Default: "List of 3rd-party sites to be shown in privacy preferences." -#: kitconcept/website/controlpanels/dsgvo.py:42 -msgid "help_dsgvo_modules" -msgstr "Liste der Drittanbieter-Dienste, die in den Datenschutzeinstellungen angezeigt werden." - -#. Default: "If true, the cookie consent banner will be shown immediately. If false, users will be prompted to accept cookies only in the context of blocks where they are needed." -#: kitconcept/website/controlpanels/dsgvo.py:31 -msgid "help_dsgvo_show_banner" -msgstr "Wenn aktiviert, wird das Cookie-Zustimmungsbanner sofort angezeigt. Wenn deaktiviert, werden Benutzer nur im Kontext von Blöcken, in denen Cookies benötigt werden, zur Zustimmung aufgefordert." - -#: kitconcept/website/distributions.zcml:17 -msgid "kitconcept Website" -msgstr "" - -#: kitconcept/website/profiles.zcml:14 -msgid "kitconcept.website" -msgstr "" - -#. Default: "Show privacy settings for" -#: kitconcept/website/controlpanels/dsgvo.py:41 -msgid "label_dsgvo_modules" -msgstr "Datenschutzeinstellungen anzeigen für" - -#. Default: "Show GDPR banner on first visit" -#: kitconcept/website/controlpanels/dsgvo.py:30 -msgid "label_dsgvo_show_banner" -msgstr "DSGVO-Banner beim ersten Besuch anzeigen" diff --git a/backend/src/kitconcept/website/locales/en/LC_MESSAGES/kitconcept.site.po b/backend/src/kitconcept/website/locales/en/LC_MESSAGES/kitconcept.site.po new file mode 100644 index 0000000..a9830da --- /dev/null +++ b/backend/src/kitconcept/website/locales/en/LC_MESSAGES/kitconcept.site.po @@ -0,0 +1,31 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-28 08:40+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"Language-Code: en\n" +"Language-Name: English\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: kitconcept.website\n" + +#: kitconcept/website/distributions.zcml:16 +msgid "A CMS solution for public websites. Created by kitconcept." +msgstr "" + +#: kitconcept/website/profiles.zcml:14 +msgid "Policy package to install our site" +msgstr "" + +#: kitconcept/website/distributions.zcml:16 +msgid "kitconcept Site" +msgstr "" + +#: kitconcept/website/profiles.zcml:14 +msgid "kitconcept.website: Install" +msgstr "" diff --git a/backend/src/kitconcept/website/locales/en/LC_MESSAGES/kitconcept.website.po b/backend/src/kitconcept/website/locales/en/LC_MESSAGES/kitconcept.website.po deleted file mode 100644 index 0e5fbc9..0000000 --- a/backend/src/kitconcept/website/locales/en/LC_MESSAGES/kitconcept.website.po +++ /dev/null @@ -1,55 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-05-13 10:56+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" -"Language-Code: en\n" -"Language-Name: English\n" -"Preferred-Encodings: utf-8 latin1\n" -"Domain: kitconcept.website\n" - -#: kitconcept/website/distributions.zcml:17 -msgid "A CMS solution for public websites. Created by kitconcept." -msgstr "" - -#: kitconcept/website/profiles.zcml:14 -msgid "Configure a new site based on kitconcept.website" -msgstr "" - -#: kitconcept/website/profiles/default/controlpanel.xml -msgid "GDPR Settings" -msgstr "" - -#. Default: "List of 3rd-party sites to be shown in privacy preferences." -#: kitconcept/website/controlpanels/dsgvo.py:42 -msgid "help_dsgvo_modules" -msgstr "" - -#. Default: "If true, the cookie consent banner will be shown immediately. If false, users will be prompted to accept cookies only in the context of blocks where they are needed." -#: kitconcept/website/controlpanels/dsgvo.py:31 -msgid "help_dsgvo_show_banner" -msgstr "" - -#: kitconcept/website/distributions.zcml:17 -msgid "kitconcept Website" -msgstr "" - -#: kitconcept/website/profiles.zcml:14 -msgid "kitconcept.website" -msgstr "" - -#. Default: "Show privacy settings for" -#: kitconcept/website/controlpanels/dsgvo.py:41 -msgid "label_dsgvo_modules" -msgstr "" - -#. Default: "Show GDPR banner on first visit" -#: kitconcept/website/controlpanels/dsgvo.py:30 -msgid "label_dsgvo_show_banner" -msgstr "" diff --git a/backend/src/kitconcept/website/locales/kitconcept.site.pot b/backend/src/kitconcept/website/locales/kitconcept.site.pot new file mode 100644 index 0000000..1965224 --- /dev/null +++ b/backend/src/kitconcept/website/locales/kitconcept.site.pot @@ -0,0 +1,34 @@ +#--- PLEASE EDIT THE LINES BELOW CORRECTLY --- +#SOME DESCRIPTIVE TITLE. +#FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-28 08:40+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"Language-Code: en\n" +"Language-Name: English\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: kitconcept.website\n" + +#: kitconcept/website/distributions.zcml:16 +msgid "A CMS solution for public websites. Created by kitconcept." +msgstr "" + +#: kitconcept/website/profiles.zcml:14 +msgid "Policy package to install our site" +msgstr "" + +#: kitconcept/website/distributions.zcml:16 +msgid "kitconcept Site" +msgstr "" + +#: kitconcept/website/profiles.zcml:14 +msgid "kitconcept.website: Install" +msgstr "" diff --git a/backend/src/kitconcept/website/locales/kitconcept.website.pot b/backend/src/kitconcept/website/locales/kitconcept.website.pot deleted file mode 100644 index 8bf9b2f..0000000 --- a/backend/src/kitconcept/website/locales/kitconcept.website.pot +++ /dev/null @@ -1,58 +0,0 @@ -#--- PLEASE EDIT THE LINES BELOW CORRECTLY --- -#SOME DESCRIPTIVE TITLE. -#FIRST AUTHOR , YEAR. -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-05-13 10:56+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" -"Language-Code: en\n" -"Language-Name: English\n" -"Preferred-Encodings: utf-8 latin1\n" -"Domain: kitconcept.website\n" - -#: kitconcept/website/distributions.zcml:17 -msgid "A CMS solution for public websites. Created by kitconcept." -msgstr "" - -#: kitconcept/website/profiles.zcml:14 -msgid "Configure a new site based on kitconcept.website" -msgstr "" - -#: kitconcept/website/profiles/default/controlpanel.xml -msgid "GDPR Settings" -msgstr "" - -#. Default: "List of 3rd-party sites to be shown in privacy preferences." -#: kitconcept/website/controlpanels/dsgvo.py:42 -msgid "help_dsgvo_modules" -msgstr "" - -#. Default: "If true, the cookie consent banner will be shown immediately. If false, users will be prompted to accept cookies only in the context of blocks where they are needed." -#: kitconcept/website/controlpanels/dsgvo.py:31 -msgid "help_dsgvo_show_banner" -msgstr "" - -#: kitconcept/website/distributions.zcml:17 -msgid "kitconcept Website" -msgstr "" - -#: kitconcept/website/profiles.zcml:14 -msgid "kitconcept.website" -msgstr "" - -#. Default: "Show privacy settings for" -#: kitconcept/website/controlpanels/dsgvo.py:41 -msgid "label_dsgvo_modules" -msgstr "" - -#. Default: "Show GDPR banner on first visit" -#: kitconcept/website/controlpanels/dsgvo.py:30 -msgid "label_dsgvo_show_banner" -msgstr "" diff --git a/backend/src/kitconcept/website/profiles/default/controlpanel.xml b/backend/src/kitconcept/website/profiles/default/controlpanel.xml index 294cd03..39d3bda 100644 --- a/backend/src/kitconcept/website/profiles/default/controlpanel.xml +++ b/backend/src/kitconcept/website/profiles/default/controlpanel.xml @@ -2,18 +2,6 @@ - - Manage portal - diff --git a/backend/src/kitconcept/website/profiles/default/metadata.xml b/backend/src/kitconcept/website/profiles/default/metadata.xml index e38de23..29d383d 100644 --- a/backend/src/kitconcept/website/profiles/default/metadata.xml +++ b/backend/src/kitconcept/website/profiles/default/metadata.xml @@ -1,6 +1,6 @@ - 20260511001 + 20260304001 profile-kitconcept.contactblock:default diff --git a/backend/src/kitconcept/website/profiles/default/registry/kitconcept.website.controlpanels.dsgvo.IDSGVOSettings.xml b/backend/src/kitconcept/website/profiles/default/registry/kitconcept.website.controlpanels.dsgvo.IDSGVOSettings.xml deleted file mode 100644 index 40a11ff..0000000 --- a/backend/src/kitconcept/website/profiles/default/registry/kitconcept.website.controlpanels.dsgvo.IDSGVOSettings.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/backend/src/kitconcept/website/profiles/default/registry/plone.i18n.interfaces.ILanguageSchema.xml b/backend/src/kitconcept/website/profiles/default/registry/plone.i18n.interfaces.ILanguageSchema.xml new file mode 100644 index 0000000..cd2730f --- /dev/null +++ b/backend/src/kitconcept/website/profiles/default/registry/plone.i18n.interfaces.ILanguageSchema.xml @@ -0,0 +1,12 @@ + + + + + en + + en + + diff --git a/backend/src/kitconcept/website/upgrades/configure.zcml b/backend/src/kitconcept/website/upgrades/configure.zcml index 0a3b54d..3272bca 100644 --- a/backend/src/kitconcept/website/upgrades/configure.zcml +++ b/backend/src/kitconcept/website/upgrades/configure.zcml @@ -4,6 +4,5 @@ > - diff --git a/backend/src/kitconcept/website/upgrades/v20260511001/__init__.py b/backend/src/kitconcept/website/upgrades/v20260511001/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/backend/src/kitconcept/website/upgrades/v20260511001/configure.zcml b/backend/src/kitconcept/website/upgrades/v20260511001/configure.zcml deleted file mode 100644 index 71a8b18..0000000 --- a/backend/src/kitconcept/website/upgrades/v20260511001/configure.zcml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/backend/tests/settings/test_dsgvo_settings.py b/backend/tests/settings/test_dsgvo_settings.py deleted file mode 100644 index a2a6864..0000000 --- a/backend/tests/settings/test_dsgvo_settings.py +++ /dev/null @@ -1,20 +0,0 @@ -class TestDSGVOSettings: - def test_dsgvo_controlpanel(self, manager_request): - resp = manager_request.get("/@controlpanels/dsgvo-settings") - assert resp.status_code == 200 - properties = resp.json()["schema"]["properties"] - assert "show_banner" in properties - assert "modules" in properties - - def test_dsgvo_settings_in_site_endpoint(self, anon_request): - resp = anon_request.get("/@site") - assert resp.status_code == 200 - data = resp.json() - assert "kitconcept.website.dsgvo" in data - assert data["kitconcept.website.dsgvo"]["show_banner"] is True - assert data["kitconcept.website.dsgvo"]["modules"] == [ - "tracking", - "youtube", - "facebook", - "google", - ] diff --git a/frontend/packages/kitconcept-website/news/+dsgvo.feature b/frontend/packages/kitconcept-website/news/+dsgvo.feature deleted file mode 100644 index 2dd540c..0000000 --- a/frontend/packages/kitconcept-website/news/+dsgvo.feature +++ /dev/null @@ -1 +0,0 @@ -Add control panel for GDPR / DSGVO settings. @davisagli diff --git a/frontend/packages/kitconcept-website/src/config/settings.ts b/frontend/packages/kitconcept-website/src/config/settings.ts index fd6de8d..1a5d99c 100644 --- a/frontend/packages/kitconcept-website/src/config/settings.ts +++ b/frontend/packages/kitconcept-website/src/config/settings.ts @@ -1,18 +1,8 @@ import { ConfigType } from '@plone/registry'; -import newsSVG from '@plone/volto/icons/news.svg'; export default function install(config: ConfigType) { config.settings.supportedLanguages = ['de', 'en']; - // Clear DSGVO add-on settings so it gets them from the `@site` endpoint - const dsgvoSettings = config.settings.DSGVOBanner as { - showBanner?: boolean; - modules?: Array; - }; - delete dsgvoSettings.showBanner; - delete dsgvoSettings.modules; - config.settings.controlPanelsIcons['dsgvo-settings'] = newsSVG; - // Volto Light Theme Configuration config.settings.siteHeader = true; config.settings.siteLabel = 'Site';