From 218e64d6889cf2b12012d83212ae76e90d90d11d Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Sun, 19 Jan 2025 20:04:15 +0500 Subject: [PATCH 01/10] add query param to search registry records. --- news/1859.feature | 1 + src/plone/restapi/serializer/registry.py | 12 ++-- src/plone/restapi/services/registry/get.py | 12 +++- .../registry_get_list_filtered.req | 3 + .../registry_get_list_filtered.resp | 57 +++++++++++++++++++ src/plone/restapi/tests/test_documentation.py | 4 ++ .../restapi/tests/test_registry_serializer.py | 13 +++++ 7 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 news/1859.feature create mode 100644 src/plone/restapi/tests/http-examples/registry_get_list_filtered.req create mode 100644 src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp diff --git a/news/1859.feature b/news/1859.feature new file mode 100644 index 0000000000..04526ce6a9 --- /dev/null +++ b/news/1859.feature @@ -0,0 +1 @@ +Add search param to querystring for registry listing. @Faakhir30 \ No newline at end of file diff --git a/src/plone/restapi/serializer/registry.py b/src/plone/restapi/serializer/registry.py index 943033ad57..81a78983ad 100644 --- a/src/plone/restapi/serializer/registry.py +++ b/src/plone/restapi/serializer/registry.py @@ -6,19 +6,19 @@ from zope.component import getMultiAdapter from zope.interface import implementer from zope.publisher.interfaces import IRequest +from zope.interface import Interface @implementer(ISerializeToJson) -@adapter(IRegistry, IRequest) +@adapter(IRegistry, IRequest, Interface) class SerializeRegistryToJson: - def __init__(self, registry, request): + def __init__(self, registry, request, records=None): self.registry = registry self.request = request + self.records = records or registry.records def __call__(self): - records = self.registry.records - # Batch keys, because that is a simple BTree - batch = HypermediaBatch(self.request, list(records)) + batch = HypermediaBatch(self.request, list(self.records.keys())) results = {} results["@id"] = batch.canonical_url @@ -27,7 +27,7 @@ def __call__(self): results["batching"] = batch.links def make_item(key): - record = records[key] + record = self.records[key] schema = getMultiAdapter( (record.field, record, self.request), IJsonSchemaProvider ) diff --git a/src/plone/restapi/services/registry/get.py b/src/plone/restapi/services/registry/get.py index b75ecc07a4..1b0257c439 100644 --- a/src/plone/restapi/services/registry/get.py +++ b/src/plone/restapi/services/registry/get.py @@ -35,5 +35,15 @@ def reply(self): value = registry[self._get_record_name] return json_compatible(value) else: # batched listing - serializer = getMultiAdapter((registry, self.request), ISerializeToJson) + records_dict = dict(**registry.records) + if q := self.request.form.get("q"): + filtered_records = {} + for key in records_dict.keys(): + if key.startswith(q): + filtered_records[key] = records_dict[key] + records_dict = filtered_records + serializer = getMultiAdapter( + (registry, self.request, records_dict), + ISerializeToJson, + ) return serializer() diff --git a/src/plone/restapi/tests/http-examples/registry_get_list_filtered.req b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.req new file mode 100644 index 0000000000..f9cfd8b3c8 --- /dev/null +++ b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.req @@ -0,0 +1,3 @@ +GET /plone/@registry?q=Products.CMFPlone HTTP/1.1 +Accept: application/json +Authorization: Basic YWRtaW46c2VjcmV0 diff --git a/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp new file mode 100644 index 0000000000..8962fb5d70 --- /dev/null +++ b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp @@ -0,0 +1,57 @@ +HTTP/1.1 200 OK +Content-Type: application/json + +{ + "@id": "http://localhost:55001/plone/@registry?q=Products.CMFPlone", + "items": [ + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.Enabled", + "schema": { + "properties": { + "description": "Override the translation machinery", + "factory": "Yes/No", + "title": "Enabled", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_long", + "schema": { + "properties": { + "description": "Default value: %Y-%m-%d %H:%M (2038-01-19 03:14)", + "factory": "Text line (String)", + "title": "old ZMI property: localLongTimeFormat", + "type": "string" + } + }, + "value": "%Y-%m-%d %H:%M" + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_short", + "schema": { + "properties": { + "description": "Default value: %Y-%m-%d (2038-01-19)", + "factory": "Text line (String)", + "title": "old ZMI property: localTimeFormat", + "type": "string" + } + }, + "value": "%Y-%m-%d" + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.time_format", + "schema": { + "properties": { + "description": "Default value: %H:%M (03:14)", + "factory": "Text line (String)", + "title": "old ZMI property: localTimeOnlyFormat", + "type": "string" + } + }, + "value": "%H:%M" + } + ], + "items_total": 4 +} diff --git a/src/plone/restapi/tests/test_documentation.py b/src/plone/restapi/tests/test_documentation.py index 774bbd94b5..a3fbc09a0f 100644 --- a/src/plone/restapi/tests/test_documentation.py +++ b/src/plone/restapi/tests/test_documentation.py @@ -517,6 +517,10 @@ def test_documentation_registry_get_list(self): response = self.api_session.get("/@registry") save_request_and_response_for_docs("registry_get_list", response) + def test_documentation_registry_get_list_filtered(self): + response = self.api_session.get("/@registry?q=Products.CMFPlone") + save_request_and_response_for_docs("registry_get_list_filtered", response) + def test_documentation_types(self): response = self.api_session.get("/@types") save_request_and_response_for_docs("types", response) diff --git a/src/plone/restapi/tests/test_registry_serializer.py b/src/plone/restapi/tests/test_registry_serializer.py index 01565854c1..8386d87bb9 100644 --- a/src/plone/restapi/tests/test_registry_serializer.py +++ b/src/plone/restapi/tests/test_registry_serializer.py @@ -51,3 +51,16 @@ def test_structure(self): self.assertEqual(set(item["schema"]), {"properties"}) self.assertEqual(item["name"], "foo.bar") self.assertEqual(item["value"], "Lorem Ipsum") + + def test_filtered(self): + registry = Registry() + registry.records["foo.bar"] = Record( + field.TextLine(title="Foo Bar"), "Lorem Ipsum" + ) + registry.records["foo.baz"] = Record( + field.TextLine(title="Foo Baz"), "Lorem Ipsum" + ) + obj = self.serialize(registry, [registry.records["foo.bar"]]) + self.assertEqual(len(obj["items"]), 1) + self.assertEqual(obj["items"][0]["name"], "foo.bar") + self.assertEqual(obj["items"][0]["value"], "Lorem Ipsum") From 7b3f3601b4068118e138416537f1ffb141a46d71 Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Mon, 20 Jan 2025 02:54:35 +0500 Subject: [PATCH 02/10] refactor serializer. --- news/{1859.feature => 1861.feature} | 0 src/plone/restapi/serializer/registry.py | 57 +++++++++++++++--------- 2 files changed, 36 insertions(+), 21 deletions(-) rename news/{1859.feature => 1861.feature} (100%) diff --git a/news/1859.feature b/news/1861.feature similarity index 100% rename from news/1859.feature rename to news/1861.feature diff --git a/src/plone/restapi/serializer/registry.py b/src/plone/restapi/serializer/registry.py index 81a78983ad..95a27f426e 100644 --- a/src/plone/restapi/serializer/registry.py +++ b/src/plone/restapi/serializer/registry.py @@ -8,33 +8,48 @@ from zope.publisher.interfaces import IRequest from zope.interface import Interface +class SerializeRegistryMixin: + def serialize(self): + batch = HypermediaBatch(self.request, list(self.records.keys())) + results = { + "@id": batch.canonical_url, + "items_total": batch.items_total, + "batching": batch.links if batch.links else {}, + "items": [ + self.make_item(key) for key in batch + ] + } + return results + + def make_item(self, key): + record = self.records[key] + schema = getMultiAdapter( + (record.field, record, self.request), IJsonSchemaProvider + ) + return { + "name": key, + "value": self.records[key], + "schema": {"properties": schema.get_schema()}, + } @implementer(ISerializeToJson) @adapter(IRegistry, IRequest, Interface) -class SerializeRegistryToJson: - def __init__(self, registry, request, records=None): +class SerializeRegistryToJsonWithFilters(SerializeRegistryMixin): + def __init__(self, registry, request, records): self.registry = registry self.request = request - self.records = records or registry.records - + self.records = records def __call__(self): - batch = HypermediaBatch(self.request, list(self.records.keys())) + return self.serialize() - results = {} - results["@id"] = batch.canonical_url - results["items_total"] = batch.items_total - if batch.links: - results["batching"] = batch.links - def make_item(key): - record = self.records[key] - schema = getMultiAdapter( - (record.field, record, self.request), IJsonSchemaProvider - ) - data = {"name": key, "value": self.registry[key]} - __traceback_info__ = (record, record.field, schema) - data["schema"] = {"properties": schema.get_schema()} - return data +@implementer(ISerializeToJson) +@adapter(IRegistry, IRequest) +class SerializeRegistryToJson(SerializeRegistryMixin): + def __init__(self, registry, request): + self.registry = registry + self.request = request + self.records = registry.records - results["items"] = [make_item(key) for key in batch] - return results + def __call__(self): + return self.serialize() From 315ec566c0cf0d617f91b42d4e17cd3322db9f04 Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Mon, 20 Jan 2025 02:56:49 +0500 Subject: [PATCH 03/10] format using black. --- src/plone/restapi/serializer/registry.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plone/restapi/serializer/registry.py b/src/plone/restapi/serializer/registry.py index 95a27f426e..481b7316b9 100644 --- a/src/plone/restapi/serializer/registry.py +++ b/src/plone/restapi/serializer/registry.py @@ -8,6 +8,7 @@ from zope.publisher.interfaces import IRequest from zope.interface import Interface + class SerializeRegistryMixin: def serialize(self): batch = HypermediaBatch(self.request, list(self.records.keys())) @@ -15,9 +16,7 @@ def serialize(self): "@id": batch.canonical_url, "items_total": batch.items_total, "batching": batch.links if batch.links else {}, - "items": [ - self.make_item(key) for key in batch - ] + "items": [self.make_item(key) for key in batch], } return results @@ -32,6 +31,7 @@ def make_item(self, key): "schema": {"properties": schema.get_schema()}, } + @implementer(ISerializeToJson) @adapter(IRegistry, IRequest, Interface) class SerializeRegistryToJsonWithFilters(SerializeRegistryMixin): @@ -39,6 +39,7 @@ def __init__(self, registry, request, records): self.registry = registry self.request = request self.records = records + def __call__(self): return self.serialize() From eb775d4597610c599287c5256b3428e1d498ce7d Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Mon, 20 Jan 2025 03:40:17 +0500 Subject: [PATCH 04/10] use tmp registry isntead of seperate serializer class. --- src/plone/restapi/serializer/registry.py | 62 +-- src/plone/restapi/services/registry/get.py | 20 +- .../http-examples/registry_get_list.resp | 459 ++---------------- .../registry_get_list_filtered.resp | 89 ++-- src/plone/restapi/tests/test_registry.py | 9 + .../restapi/tests/test_registry_serializer.py | 13 - 6 files changed, 120 insertions(+), 532 deletions(-) diff --git a/src/plone/restapi/serializer/registry.py b/src/plone/restapi/serializer/registry.py index 481b7316b9..943033ad57 100644 --- a/src/plone/restapi/serializer/registry.py +++ b/src/plone/restapi/serializer/registry.py @@ -6,51 +6,35 @@ from zope.component import getMultiAdapter from zope.interface import implementer from zope.publisher.interfaces import IRequest -from zope.interface import Interface - - -class SerializeRegistryMixin: - def serialize(self): - batch = HypermediaBatch(self.request, list(self.records.keys())) - results = { - "@id": batch.canonical_url, - "items_total": batch.items_total, - "batching": batch.links if batch.links else {}, - "items": [self.make_item(key) for key in batch], - } - return results - - def make_item(self, key): - record = self.records[key] - schema = getMultiAdapter( - (record.field, record, self.request), IJsonSchemaProvider - ) - return { - "name": key, - "value": self.records[key], - "schema": {"properties": schema.get_schema()}, - } - - -@implementer(ISerializeToJson) -@adapter(IRegistry, IRequest, Interface) -class SerializeRegistryToJsonWithFilters(SerializeRegistryMixin): - def __init__(self, registry, request, records): - self.registry = registry - self.request = request - self.records = records - - def __call__(self): - return self.serialize() @implementer(ISerializeToJson) @adapter(IRegistry, IRequest) -class SerializeRegistryToJson(SerializeRegistryMixin): +class SerializeRegistryToJson: def __init__(self, registry, request): self.registry = registry self.request = request - self.records = registry.records def __call__(self): - return self.serialize() + records = self.registry.records + # Batch keys, because that is a simple BTree + batch = HypermediaBatch(self.request, list(records)) + + results = {} + results["@id"] = batch.canonical_url + results["items_total"] = batch.items_total + if batch.links: + results["batching"] = batch.links + + def make_item(key): + record = records[key] + schema = getMultiAdapter( + (record.field, record, self.request), IJsonSchemaProvider + ) + data = {"name": key, "value": self.registry[key]} + __traceback_info__ = (record, record.field, schema) + data["schema"] = {"properties": schema.get_schema()} + return data + + results["items"] = [make_item(key) for key in batch] + return results diff --git a/src/plone/restapi/services/registry/get.py b/src/plone/restapi/services/registry/get.py index 1b0257c439..80c7f9e06d 100644 --- a/src/plone/restapi/services/registry/get.py +++ b/src/plone/restapi/services/registry/get.py @@ -1,3 +1,4 @@ +from plone.registry import Registry from plone.registry.interfaces import IRegistry from plone.restapi.interfaces import ISerializeToJson from plone.restapi.serializer.converters import json_compatible @@ -6,6 +7,8 @@ from zope.component import getUtility from zope.interface import implementer from zope.publisher.interfaces import IPublishTraverse +import plone.protect.interfaces +from zope.interface import alsoProvides @implementer(IPublishTraverse) @@ -35,15 +38,20 @@ def reply(self): value = registry[self._get_record_name] return json_compatible(value) else: # batched listing - records_dict = dict(**registry.records) if q := self.request.form.get("q"): - filtered_records = {} - for key in records_dict.keys(): + # Disable CSRF protection + if "IDisableCSRFProtection" in dir(plone.protect.interfaces): + alsoProvides( + self.request, plone.protect.interfaces.IDisableCSRFProtection + ) + + tmp_registry = Registry() + for key in registry.records.keys(): if key.startswith(q): - filtered_records[key] = records_dict[key] - records_dict = filtered_records + tmp_registry.records[key] = registry.records[key] + registry = tmp_registry serializer = getMultiAdapter( - (registry, self.request, records_dict), + (registry, self.request), ISerializeToJson, ) return serializer() diff --git a/src/plone/restapi/tests/http-examples/registry_get_list.resp b/src/plone/restapi/tests/http-examples/registry_get_list.resp index f172b2c8d1..5643d0301b 100644 --- a/src/plone/restapi/tests/http-examples/registry_get_list.resp +++ b/src/plone/restapi/tests/http-examples/registry_get_list.resp @@ -1,427 +1,42 @@ -HTTP/1.1 200 OK +HTTP/1.1 500 Internal Server Error Content-Type: application/json { - "@id": "http://localhost:55001/plone/@registry", - "batching": { - "@id": "http://localhost:55001/plone/@registry", - "first": "http://localhost:55001/plone/@registry?b_start=0", - "last": "http://localhost:55001/plone/@registry?b_start=2950", - "next": "http://localhost:55001/plone/@registry?b_start=25" - }, - "items": [ - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.Enabled", - "schema": { - "properties": { - "description": "Override the translation machinery", - "factory": "Yes/No", - "title": "Enabled", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_long", - "schema": { - "properties": { - "description": "Default value: %Y-%m-%d %H:%M (2038-01-19 03:14)", - "factory": "Text line (String)", - "title": "old ZMI property: localLongTimeFormat", - "type": "string" - } - }, - "value": "%Y-%m-%d %H:%M" - }, - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_short", - "schema": { - "properties": { - "description": "Default value: %Y-%m-%d (2038-01-19)", - "factory": "Text line (String)", - "title": "old ZMI property: localTimeFormat", - "type": "string" - } - }, - "value": "%Y-%m-%d" - }, - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.time_format", - "schema": { - "properties": { - "description": "Default value: %H:%M (03:14)", - "factory": "Text line (String)", - "title": "old ZMI property: localTimeOnlyFormat", - "type": "string" - } - }, - "value": "%H:%M" - }, - { - "name": "plone.alignment_styles", - "schema": { - "properties": { - "additionalItems": true, - "default": [ - "Left|alignleft|align-left", - "Center|aligncenter|align-center", - "Right|alignright|align-right", - "Justify|alignjustify|align-justify" - ], - "description": "Name|format|icon", - "factory": "List", - "items": { - "description": "", - "factory": "Text line (String)", - "title": "", - "type": "string" - }, - "title": "Alignment styles", - "type": "array", - "uniqueItems": false - } - }, - "value": [ - "Left|alignleft|align-left", - "Center|aligncenter|align-center", - "Right|alignright|align-right", - "Justify|alignjustify|align-justify" - ] - }, - { - "name": "plone.allow_anon_views_about", - "schema": { - "properties": { - "default": false, - "description": "If not selected only logged-in users will be able to view information about who created an item and when it was modified.", - "factory": "Yes/No", - "title": "Allow anyone to view 'about' information", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.allow_external_login_sites", - "schema": { - "properties": { - "additionalItems": true, - "default": [], - "description": "", - "factory": "Tuple", - "items": { - "description": "", - "factory": "Text line (String)", - "title": "", - "type": "string" - }, - "title": "Allow external login sites", - "type": "array", - "uniqueItems": true - } - }, - "value": [] - }, - { - "name": "plone.allowed_sizes", - "schema": { - "properties": { - "additionalItems": true, - "default": [ - "huge 1600:65536", - "great 1200:65536", - "larger 1000:65536", - "large 800:65536", - "teaser 600:65536", - "preview 400:65536", - "mini 200:65536", - "thumb 128:128", - "tile 64:64", - "icon 32:32", - "listing 16:16" - ], - "description": "Specify all allowed maximum image dimensions, one per line. The required format is <name> <width>:<height>.", - "factory": "List", - "items": { - "description": "", - "factory": "Text line (String)", - "title": "", - "type": "string" - }, - "title": "Allowed image sizes", - "type": "array", - "uniqueItems": false - } - }, - "value": [ - "huge 1600:65536", - "great 1200:65536", - "larger 1000:65536", - "large 800:65536", - "teaser 600:65536", - "preview 400:65536", - "mini 200:65536", - "thumb 128:128", - "tile 64:64", - "icon 32:32", - "listing 16:16" - ] - }, - { - "name": "plone.allowed_types", - "schema": { - "properties": { - "additionalItems": true, - "default": [ - "text/html", - "text/x-web-textile" - ], - "description": "Select which formats are available for users as alternative to the default format. Note that if new formats are installed, they will be enabled for text fields by default unless explicitly turned off here or by the relevant installer.", - "factory": "Tuple", - "items": { - "description": "", - "factory": "Choice", - "title": "", - "type": "string", - "vocabulary": { - "@id": "http://localhost:55001/plone/@vocabularies/plone.app.vocabularies.AllowableContentTypes" - } - }, - "title": "Alternative formats", - "type": "array", - "uniqueItems": true - } - }, - "value": [ - "text/html", - "text/x-web-textile" - ] - }, - { - "name": "plone.always_show_selector", - "schema": { - "properties": { - "default": false, - "description": "", - "factory": "Yes/No", - "title": "Always show language selector", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.anonymous_comments", - "schema": { - "properties": { - "default": false, - "description": "If selected, anonymous users are able to post comments without logging in. It is highly recommended to use a captcha solution to prevent spam if this setting is enabled.", - "factory": "Yes/No", - "title": "Enable anonymous comments", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.anonymous_email_enabled", - "schema": { - "properties": { - "default": false, - "description": "If selected, anonymous user will have to give their email.", - "factory": "Yes/No", - "title": "Enable anonymous email field", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.captcha", - "schema": { - "properties": { - "default": "disabled", - "description": "Use this setting to enable or disable Captcha validation for comments. Install plone.formwidget.captcha, plone.formwidget.recaptcha, plone.formwidget.hcaptcha, collective.akismet, or collective.z3cform.norobots if there are no options available.", - "factory": "Choice", - "title": "Captcha", - "type": "string", - "vocabulary": { - "@id": "http://localhost:55001/plone/@vocabularies/plone.app.discussion.vocabularies.CaptchaVocabulary" - } - } - }, - "value": "disabled" - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.delete_own_comment_enabled", - "schema": { - "properties": { - "default": false, - "description": "If selected, supports deleting of own comments for users with the \"Delete own comments\" permission.", - "factory": "Yes/No", - "title": "Enable deleting own comments", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.edit_comment_enabled", - "schema": { - "properties": { - "default": false, - "description": "If selected, supports editing of comments for users with the \"Edit comments\" permission.", - "factory": "Yes/No", - "title": "Enable editing of comments", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.globally_enabled", - "schema": { - "properties": { - "default": false, - "description": "If selected, users are able to post comments on the site. However, you will still need to enable comments for specific content types, folders or content objects before users will be able to post comments.", - "factory": "Yes/No", - "title": "Globally enable comments", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.moderation_enabled", - "schema": { - "properties": { - "default": false, - "description": "If selected, comments will enter a \"Pending\" state in which they are invisible to the public. A user with the \"Review comments\" permission (\"Reviewer\" or \"Manager\") can approve comments to make them visible to the public. If you want to enable a custom comment workflow, you have to go to the types control panel.", - "factory": "Yes/No", - "title": "Enable comment moderation", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.moderator_email", - "schema": { - "properties": { - "description": "Address to which moderator notifications will be sent.", - "factory": "Text line (String)", - "title": "Moderator Email Address", - "type": "string" - } - }, - "value": null - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.moderator_notification_enabled", - "schema": { - "properties": { - "default": false, - "description": "If selected, the moderator is notified if a comment needs attention. The moderator email address can be set below.", - "factory": "Yes/No", - "title": "Enable moderator email notification", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.show_commenter_image", - "schema": { - "properties": { - "default": true, - "description": "If selected, an image of the user is shown next to the comment.", - "factory": "Yes/No", - "title": "Show commenter image", - "type": "boolean" - } - }, - "value": true - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.text_transform", - "schema": { - "properties": { - "default": "text/plain", - "description": "Use this setting to choose if the comment text should be transformed in any way. You can choose between \"Plain text\" and \"Intelligent text\". \"Intelligent text\" converts plain text into HTML where line breaks and indentation is preserved, and web and email addresses are made into clickable links.", - "factory": "Choice", - "title": "Comment text transform", - "type": "string", - "vocabulary": { - "@id": "http://localhost:55001/plone/@vocabularies/plone.app.discussion.vocabularies.TextTransformVocabulary" - } - } - }, - "value": "text/plain" - }, - { - "name": "plone.app.discussion.interfaces.IDiscussionSettings.user_notification_enabled", - "schema": { - "properties": { - "default": false, - "description": "If selected, users can choose to be notified of new comments by email.", - "factory": "Yes/No", - "title": "Enable user email notification", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "plone.app.layout.globals.bodyClass.depth", - "schema": { - "properties": { - "description": "Depth relative the site root that body class are generated for.\n ", - "factory": "Integer", - "title": "Body class path depth", - "type": "integer" - } - }, - "value": 4 - }, - { - "name": "plone.app.portlets.PortletManagerBlacklist", - "schema": { - "properties": { - "additionalItems": true, - "description": "A list of portlet manager names that will not be shown in the toolbar dropdown", - "factory": "List", - "items": { - "description": "", - "factory": "Text line (String)", - "title": "", - "type": "string" - }, - "title": "Toolbar Portlet Manager Blacklist", - "type": "array", - "uniqueItems": false - } - }, - "value": [ - "plone.dashboard1", - "plone.dashboard2", - "plone.dashboard3", - "plone.dashboard4" - ] - }, - { - "name": "plone.app.querystring.field.Creator.description", - "schema": { - "properties": { - "description": "", - "factory": "Text", - "title": "Description", - "type": "string", - "widget": "textarea" - } - }, - "value": "The person that created an item" - } + "message": "((>, , {'Products.CMFPlone.i18nl10n.override_dateformat.Enabled': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_long': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_short': , 'Products.CMFPlone.i18nl10n.override_dateformat.time_format': , 'plone.alignment_styles': , 'plone.allow_anon_views_about': , 'plone.allow_external_login_sites': , 'plone.allowed_sizes': , 'plone.allowed_types': , 'plone.always_show_selector': , 'plone.app.discussion.interfaces.IDiscussionSettings.anonymous_comments': , 'plone.app.discussion.interfaces.IDiscussionSettings.anonymous_email_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.captcha': , 'plone.app.discussion.interfaces.IDiscussionSettings.delete_own_comment_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.edit_comment_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.globally_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.moderation_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.moderator_email': , 'plone.app.discussion.interfaces.IDiscussionSettings.moderator_notification_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.show_commenter_image': , 'plone.app.discussion.interfaces.IDiscussionSettings.text_transform': , 'plone.app.discussion.interfaces.IDiscussionSettings.user_notification_enabled': , 'plone.app.layout.globals.bodyClass.depth': , 'plone.app.portlets.PortletManagerBlacklist': , 'plone.app.querystring.field.Creator.description': , 'plone.app.querystring.field.Creator.enabled': , 'plone.app.querystring.field.Creator.fetch_vocabulary': , 'plone.app.querystring.field.Creator.group': , 'plone.app.querystring.field.Creator.operations': , 'plone.app.querystring.field.Creator.sortable': , 'plone.app.querystring.field.Creator.title': , 'plone.app.querystring.field.Creator.vocabulary': , 'plone.app.querystring.field.Description.description': , 'plone.app.querystring.field.Description.enabled': , 'plone.app.querystring.field.Description.fetch_vocabulary': , 'plone.app.querystring.field.Description.group': , 'plone.app.querystring.field.Description.operations': , 'plone.app.querystring.field.Description.sortable': , 'plone.app.querystring.field.Description.title': , 'plone.app.querystring.field.Description.vocabulary': , 'plone.app.querystring.field.SearchableText.description': , 'plone.app.querystring.field.SearchableText.enabled': , 'plone.app.querystring.field.SearchableText.fetch_vocabulary': , 'plone.app.querystring.field.SearchableText.group': , 'plone.app.querystring.field.SearchableText.operations': , 'plone.app.querystring.field.SearchableText.sortable': , 'plone.app.querystring.field.SearchableText.title': , 'plone.app.querystring.field.SearchableText.vocabulary': , 'plone.app.querystring.field.Subject.description': , 'plone.app.querystring.field.Subject.enabled': , 'plone.app.querystring.field.Subject.fetch_vocabulary': , 'plone.app.querystring.field.Subject.group': , 'plone.app.querystring.field.Subject.operations': , 'plone.app.querystring.field.Subject.sortable': , 'plone.app.querystring.field.Subject.title': , 'plone.app.querystring.field.Subject.vocabulary': , 'plone.app.querystring.field.Title.description': , 'plone.app.querystring.field.Title.enabled': , 'plone.app.querystring.field.Title.fetch_vocabulary': , 'plone.app.querystring.field.Title.group': , 'plone.app.querystring.field.Title.operations': , 'plone.app.querystring.field.Title.sortable': , 'plone.app.querystring.field.Title.title': , 'plone.app.querystring.field.Title.vocabulary': , 'plone.app.querystring.field.created.description': , 'plone.app.querystring.field.created.enabled': , 'plone.app.querystring.field.created.fetch_vocabulary': , 'plone.app.querystring.field.created.group': , 'plone.app.querystring.field.created.operations': , 'plone.app.querystring.field.created.sortable': , 'plone.app.querystring.field.created.title': , 'plone.app.querystring.field.created.vocabulary': , 'plone.app.querystring.field.effective.description': , 'plone.app.querystring.field.effective.enabled': , 'plone.app.querystring.field.effective.fetch_vocabulary': , 'plone.app.querystring.field.effective.group': , 'plone.app.querystring.field.effective.operations': , 'plone.app.querystring.field.effective.sortable': , 'plone.app.querystring.field.effective.title': , 'plone.app.querystring.field.effective.vocabulary': , 'plone.app.querystring.field.effectiveRange.description': , 'plone.app.querystring.field.effectiveRange.enabled': , 'plone.app.querystring.field.effectiveRange.fetch_vocabulary': , 'plone.app.querystring.field.effectiveRange.group': , 'plone.app.querystring.field.effectiveRange.operations': , 'plone.app.querystring.field.effectiveRange.sortable': , 'plone.app.querystring.field.effectiveRange.title': , 'plone.app.querystring.field.effectiveRange.vocabulary': , 'plone.app.querystring.field.end.description': , 'plone.app.querystring.field.end.enabled': , 'plone.app.querystring.field.end.fetch_vocabulary': , 'plone.app.querystring.field.end.group': , 'plone.app.querystring.field.end.operations': , 'plone.app.querystring.field.end.sortable': , 'plone.app.querystring.field.end.title': , 'plone.app.querystring.field.end.vocabulary': , 'plone.app.querystring.field.expires.description': , 'plone.app.querystring.field.expires.enabled': , 'plone.app.querystring.field.expires.fetch_vocabulary': , 'plone.app.querystring.field.expires.group': , 'plone.app.querystring.field.expires.operations': , 'plone.app.querystring.field.expires.sortable': , 'plone.app.querystring.field.expires.title': , 'plone.app.querystring.field.expires.vocabulary': , 'plone.app.querystring.field.getId.description': , 'plone.app.querystring.field.getId.enabled': , 'plone.app.querystring.field.getId.fetch_vocabulary': , 'plone.app.querystring.field.getId.group': , 'plone.app.querystring.field.getId.operations': , 'plone.app.querystring.field.getId.sortable': , 'plone.app.querystring.field.getId.title': , 'plone.app.querystring.field.getId.vocabulary': , 'plone.app.querystring.field.getObjPositionInParent.description': , 'plone.app.querystring.field.getObjPositionInParent.enabled': , 'plone.app.querystring.field.getObjPositionInParent.fetch_vocabulary': , 'plone.app.querystring.field.getObjPositionInParent.group': , 'plone.app.querystring.field.getObjPositionInParent.operations': , 'plone.app.querystring.field.getObjPositionInParent.sortable': , 'plone.app.querystring.field.getObjPositionInParent.title': , 'plone.app.querystring.field.getObjPositionInParent.vocabulary': , 'plone.app.querystring.field.getRawRelatedItems.description': , 'plone.app.querystring.field.getRawRelatedItems.enabled': , 'plone.app.querystring.field.getRawRelatedItems.fetch_vocabulary': , 'plone.app.querystring.field.getRawRelatedItems.group': , 'plone.app.querystring.field.getRawRelatedItems.operations': , 'plone.app.querystring.field.getRawRelatedItems.sortable': , 'plone.app.querystring.field.getRawRelatedItems.title': , 'plone.app.querystring.field.getRawRelatedItems.vocabulary': , 'plone.app.querystring.field.isDefaultPage.description': , 'plone.app.querystring.field.isDefaultPage.enabled': , 'plone.app.querystring.field.isDefaultPage.fetch_vocabulary': , 'plone.app.querystring.field.isDefaultPage.group': , 'plone.app.querystring.field.isDefaultPage.operations': , 'plone.app.querystring.field.isDefaultPage.sortable': , 'plone.app.querystring.field.isDefaultPage.title': , 'plone.app.querystring.field.isDefaultPage.vocabulary': , 'plone.app.querystring.field.isFolderish.description': , 'plone.app.querystring.field.isFolderish.enabled': , 'plone.app.querystring.field.isFolderish.fetch_vocabulary': , 'plone.app.querystring.field.isFolderish.group': , 'plone.app.querystring.field.isFolderish.operations': , 'plone.app.querystring.field.isFolderish.sortable': , 'plone.app.querystring.field.isFolderish.title': , 'plone.app.querystring.field.isFolderish.vocabulary': , 'plone.app.querystring.field.modified.description': , 'plone.app.querystring.field.modified.enabled': , 'plone.app.querystring.field.modified.fetch_vocabulary': , 'plone.app.querystring.field.modified.group': , 'plone.app.querystring.field.modified.operations': , 'plone.app.querystring.field.modified.sortable': , 'plone.app.querystring.field.modified.title': , 'plone.app.querystring.field.modified.vocabulary': , 'plone.app.querystring.field.path.description': , 'plone.app.querystring.field.path.enabled': , 'plone.app.querystring.field.path.fetch_vocabulary': , 'plone.app.querystring.field.path.group': , 'plone.app.querystring.field.path.operations': , 'plone.app.querystring.field.path.sortable': , 'plone.app.querystring.field.path.title': , 'plone.app.querystring.field.path.vocabulary': , 'plone.app.querystring.field.portal_type.description': , 'plone.app.querystring.field.portal_type.enabled': , 'plone.app.querystring.field.portal_type.fetch_vocabulary': , 'plone.app.querystring.field.portal_type.group': , 'plone.app.querystring.field.portal_type.operations': , 'plone.app.querystring.field.portal_type.sortable': , 'plone.app.querystring.field.portal_type.title': , 'plone.app.querystring.field.portal_type.vocabulary': , 'plone.app.querystring.field.review_state.description': , 'plone.app.querystring.field.review_state.enabled': , 'plone.app.querystring.field.review_state.fetch_vocabulary': , 'plone.app.querystring.field.review_state.group': , 'plone.app.querystring.field.review_state.operations': , 'plone.app.querystring.field.review_state.sortable': , 'plone.app.querystring.field.review_state.title': , 'plone.app.querystring.field.review_state.vocabulary': , 'plone.app.querystring.field.show_inactive.description': , 'plone.app.querystring.field.show_inactive.enabled': , 'plone.app.querystring.field.show_inactive.fetch_vocabulary': , 'plone.app.querystring.field.show_inactive.group': , 'plone.app.querystring.field.show_inactive.operations': , 'plone.app.querystring.field.show_inactive.sortable': , 'plone.app.querystring.field.show_inactive.title': , 'plone.app.querystring.field.show_inactive.vocabulary': , 'plone.app.querystring.field.sortable_title.description': , 'plone.app.querystring.field.sortable_title.enabled': , 'plone.app.querystring.field.sortable_title.fetch_vocabulary': , 'plone.app.querystring.field.sortable_title.group': , 'plone.app.querystring.field.sortable_title.operations': , 'plone.app.querystring.field.sortable_title.sortable': , 'plone.app.querystring.field.sortable_title.title': , 'plone.app.querystring.field.sortable_title.vocabulary': , 'plone.app.querystring.field.start.description': , 'plone.app.querystring.field.start.enabled': , 'plone.app.querystring.field.start.fetch_vocabulary': , 'plone.app.querystring.field.start.group': , 'plone.app.querystring.field.start.operations': , 'plone.app.querystring.field.start.sortable': , 'plone.app.querystring.field.start.title': , 'plone.app.querystring.field.start.vocabulary': , 'plone.app.querystring.operation.boolean.isFalse.description': , 'plone.app.querystring.operation.boolean.isFalse.operation': , 'plone.app.querystring.operation.boolean.isFalse.title': , 'plone.app.querystring.operation.boolean.isFalse.widget': , 'plone.app.querystring.operation.boolean.isTrue.description': , 'plone.app.querystring.operation.boolean.isTrue.operation': , 'plone.app.querystring.operation.boolean.isTrue.title': , 'plone.app.querystring.operation.boolean.isTrue.widget': , 'plone.app.querystring.operation.date.afterRelativeDate.description': , 'plone.app.querystring.operation.date.afterRelativeDate.operation': , 'plone.app.querystring.operation.date.afterRelativeDate.title': , 'plone.app.querystring.operation.date.afterRelativeDate.widget': , 'plone.app.querystring.operation.date.afterToday.description': , 'plone.app.querystring.operation.date.afterToday.operation': , 'plone.app.querystring.operation.date.afterToday.title': , 'plone.app.querystring.operation.date.afterToday.widget': , 'plone.app.querystring.operation.date.beforeRelativeDate.description': , 'plone.app.querystring.operation.date.beforeRelativeDate.operation': , 'plone.app.querystring.operation.date.beforeRelativeDate.title': , 'plone.app.querystring.operation.date.beforeRelativeDate.widget': , 'plone.app.querystring.operation.date.beforeToday.description': , 'plone.app.querystring.operation.date.beforeToday.operation': , 'plone.app.querystring.operation.date.beforeToday.title': , 'plone.app.querystring.operation.date.beforeToday.widget': , 'plone.app.querystring.operation.date.between.description': , 'plone.app.querystring.operation.date.between.operation': , 'plone.app.querystring.operation.date.between.title': , 'plone.app.querystring.operation.date.between.widget': , 'plone.app.querystring.operation.date.largerThan.description': , 'plone.app.querystring.operation.date.largerThan.operation': , 'plone.app.querystring.operation.date.largerThan.title': , 'plone.app.querystring.operation.date.largerThan.widget': , 'plone.app.querystring.operation.date.largerThanRelativeDate.description': , 'plone.app.querystring.operation.date.largerThanRelativeDate.operation': , 'plone.app.querystring.operation.date.largerThanRelativeDate.title': , 'plone.app.querystring.operation.date.largerThanRelativeDate.widget': , 'plone.app.querystring.operation.date.lessThan.description': , 'plone.app.querystring.operation.date.lessThan.operation': , 'plone.app.querystring.operation.date.lessThan.title': , 'plone.app.querystring.operation.date.lessThan.widget': , 'plone.app.querystring.operation.date.lessThanRelativeDate.description': , 'plone.app.querystring.operation.date.lessThanRelativeDate.operation': , 'plone.app.querystring.operation.date.lessThanRelativeDate.title': , 'plone.app.querystring.operation.date.lessThanRelativeDate.widget': , 'plone.app.querystring.operation.date.today.description': , 'plone.app.querystring.operation.date.today.operation': , 'plone.app.querystring.operation.date.today.title': , 'plone.app.querystring.operation.date.today.widget': , 'plone.app.querystring.operation.int.is.description': , 'plone.app.querystring.operation.int.is.operation': , 'plone.app.querystring.operation.int.is.title': , 'plone.app.querystring.operation.int.is.widget': , 'plone.app.querystring.operation.int.largerThan.description': , 'plone.app.querystring.operation.int.largerThan.operation': , 'plone.app.querystring.operation.int.largerThan.title': , 'plone.app.querystring.operation.int.largerThan.widget': , 'plone.app.querystring.operation.int.lessThan.description': , 'plone.app.querystring.operation.int.lessThan.operation': , 'plone.app.querystring.operation.int.lessThan.title': , 'plone.app.querystring.operation.int.lessThan.widget': , 'plone.app.querystring.operation.intselection.is.description': , 'plone.app.querystring.operation.intselection.is.operation': , 'plone.app.querystring.operation.intselection.is.title': , 'plone.app.querystring.operation.intselection.is.widget': , 'plone.app.querystring.operation.list.contains.description': , 'plone.app.querystring.operation.list.contains.operation': , 'plone.app.querystring.operation.list.contains.title': , 'plone.app.querystring.operation.list.contains.widget': , 'plone.app.querystring.operation.path.isWithin.description': , 'plone.app.querystring.operation.path.isWithin.operation': , 'plone.app.querystring.operation.path.isWithin.title': , 'plone.app.querystring.operation.path.isWithin.widget': , 'plone.app.querystring.operation.path.isWithinRelative.description': , 'plone.app.querystring.operation.path.isWithinRelative.operation': , 'plone.app.querystring.operation.path.isWithinRelative.title': , 'plone.app.querystring.operation.path.isWithinRelative.widget': , 'plone.app.querystring.operation.reference.is.description': , 'plone.app.querystring.operation.reference.is.operation': , 'plone.app.querystring.operation.reference.is.title': , 'plone.app.querystring.operation.reference.is.widget': , 'plone.app.querystring.operation.selection.all.description': , 'plone.app.querystring.operation.selection.all.operation': , 'plone.app.querystring.operation.selection.all.title': , 'plone.app.querystring.operation.selection.all.widget': , 'plone.app.querystring.operation.selection.any.description': , 'plone.app.querystring.operation.selection.any.operation': , 'plone.app.querystring.operation.selection.any.title': , 'plone.app.querystring.operation.selection.any.widget': , 'plone.app.querystring.operation.selection.is.description': , 'plone.app.querystring.operation.selection.is.operation': , 'plone.app.querystring.operation.selection.is.title': , 'plone.app.querystring.operation.selection.is.widget': , 'plone.app.querystring.operation.selection.none.description': , 'plone.app.querystring.operation.selection.none.operation': , 'plone.app.querystring.operation.selection.none.title': , 'plone.app.querystring.operation.selection.none.widget': , 'plone.app.querystring.operation.string.absolutePath.description': , 'plone.app.querystring.operation.string.absolutePath.operation': , 'plone.app.querystring.operation.string.absolutePath.title': , 'plone.app.querystring.operation.string.absolutePath.widget': , 'plone.app.querystring.operation.string.contains.description': , 'plone.app.querystring.operation.string.contains.operation': , 'plone.app.querystring.operation.string.contains.title': , 'plone.app.querystring.operation.string.contains.widget': , 'plone.app.querystring.operation.string.currentUser.description': , 'plone.app.querystring.operation.string.currentUser.operation': , 'plone.app.querystring.operation.string.currentUser.title': , 'plone.app.querystring.operation.string.currentUser.widget': , 'plone.app.querystring.operation.string.is.description': , 'plone.app.querystring.operation.string.is.operation': , 'plone.app.querystring.operation.string.is.title': , 'plone.app.querystring.operation.string.is.widget': , 'plone.app.querystring.operation.string.isNot.description': , 'plone.app.querystring.operation.string.isNot.operation': , 'plone.app.querystring.operation.string.isNot.title': , 'plone.app.querystring.operation.string.isNot.widget': , 'plone.app.querystring.operation.string.path.description': , 'plone.app.querystring.operation.string.path.operation': , 'plone.app.querystring.operation.string.path.title': , 'plone.app.querystring.operation.string.path.widget': , 'plone.app.querystring.operation.string.relativePath.description': , 'plone.app.querystring.operation.string.relativePath.operation': , 'plone.app.querystring.operation.string.relativePath.title': , 'plone.app.querystring.operation.string.relativePath.widget': , 'plone.app.querystring.operation.string.showInactive.description': , 'plone.app.querystring.operation.string.showInactive.operation': , 'plone.app.querystring.operation.string.showInactive.title': , 'plone.app.querystring.operation.string.showInactive.widget': , 'plone.app.theming.interfaces.IThemeSettings.absolutePrefix': , 'plone.app.theming.interfaces.IThemeSettings.currentTheme': , 'plone.app.theming.interfaces.IThemeSettings.custom_css': , 'plone.app.theming.interfaces.IThemeSettings.custom_css_timestamp': , 'plone.app.theming.interfaces.IThemeSettings.doctype': , 'plone.app.theming.interfaces.IThemeSettings.enabled': , 'plone.app.theming.interfaces.IThemeSettings.hostnameBlacklist': , 'plone.app.theming.interfaces.IThemeSettings.parameterExpressions': , 'plone.app.theming.interfaces.IThemeSettings.readNetwork': , 'plone.app.theming.interfaces.IThemeSettings.rules': , 'plone.auth_cookie_length': , 'plone.authenticated_users_only': , 'plone.autologin_after_password_reset': , 'plone.autoresize': , 'plone.available_editors': , 'plone.available_languages': , 'plone.available_timezones': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.allowed': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.allowed_feed_types': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.default_enabled': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.max_items': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.render_body': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.search_rss_enabled': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.show_author_info': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.show_syndication_button': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.show_syndication_link': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.site_rss_items': , 'plone.block_styles': , 'plone.bundles/eventedit.compile': , 'plone.bundles/eventedit.csscompilation': , 'plone.bundles/eventedit.depends': , 'plone.bundles/eventedit.develop_css': , 'plone.bundles/eventedit.develop_javascript': , 'plone.bundles/eventedit.enabled': , 'plone.bundles/eventedit.expression': , 'plone.bundles/eventedit.jscompilation': , 'plone.bundles/eventedit.last_compilation': , 'plone.bundles/eventedit.load_async': , 'plone.bundles/eventedit.load_defer': , 'plone.bundles/eventedit.merge_with': , 'plone.bundles/eventedit.resources': , 'plone.bundles/eventedit.stub_js_modules': , 'plone.bundles/plone-fullscreen.compile': , 'plone.bundles/plone-fullscreen.csscompilation': , 'plone.bundles/plone-fullscreen.depends': , 'plone.bundles/plone-fullscreen.develop_css': , 'plone.bundles/plone-fullscreen.develop_javascript': , 'plone.bundles/plone-fullscreen.enabled': , 'plone.bundles/plone-fullscreen.expression': , 'plone.bundles/plone-fullscreen.jscompilation': , 'plone.bundles/plone-fullscreen.last_compilation': , 'plone.bundles/plone-fullscreen.load_async': , 'plone.bundles/plone-fullscreen.load_defer': , 'plone.bundles/plone-fullscreen.merge_with': , 'plone.bundles/plone-fullscreen.resources': , 'plone.bundles/plone-fullscreen.stub_js_modules': , 'plone.bundles/plone.compile': , 'plone.bundles/plone.csscompilation': , 'plone.bundles/plone.depends': , 'plone.bundles/plone.develop_css': , 'plone.bundles/plone.develop_javascript': , 'plone.bundles/plone.enabled': , 'plone.bundles/plone.expression': , 'plone.bundles/plone.jscompilation': , 'plone.bundles/plone.last_compilation': , 'plone.bundles/plone.load_async': , 'plone.bundles/plone.load_defer': , 'plone.bundles/plone.merge_with': , 'plone.bundles/plone.resources': , 'plone.bundles/plone.stub_js_modules': , 'plone.contains_objects': , 'plone.content_css': , 'plone.custom_attributes': , 'plone.custom_buttons': , 'plone.custom_plugins': , 'plone.days': , 'plone.default_editor': , 'plone.default_language': , 'plone.default_page': , 'plone.default_page_types': , 'plone.default_type': , 'plone.disable_filtering': , 'plone.display_flags': , 'plone.display_publication_date_in_byline': , 'plone.displayed_types': , 'plone.editor_height': , 'plone.editor_width': , 'plone.email_charset': , 'plone.email_from_address': , 'plone.email_from_name': , 'plone.enable_link_integrity_checks': , 'plone.enable_livesearch': , 'plone.enable_self_reg': , 'plone.enable_sitemap': , 'plone.enable_user_folders': , 'plone.enable_user_pwd_choice': , 'plone.entity_encoding': , 'plone.exposeDCMetaTags': , 'plone.ext_editor': , 'plone.external_links_open_new_window': , 'plone.external_login_iframe': , 'plone.external_login_url': , 'plone.external_logout_url': , 'plone.facebook_app_id': , 'plone.facebook_username': , 'plone.filter_on_workflow': , 'plone.first_weekday': , 'plone.formats': , 'plone.generate_tabs': , 'plone.header_styles': , 'plone.highpixeldensity_scales': , 'plone.icon.0-circle': , 'plone.icon.0-circle-fill': , 'plone.icon.0-square': , 'plone.icon.0-square-fill': , 'plone.icon.1-circle': , 'plone.icon.1-circle-fill': , 'plone.icon.1-square': , 'plone.icon.1-square-fill': , 'plone.icon.123': , 'plone.icon.2-circle': , 'plone.icon.2-circle-fill': , 'plone.icon.2-square': , 'plone.icon.2-square-fill': , 'plone.icon.3-circle': , 'plone.icon.3-circle-fill': , 'plone.icon.3-square': , 'plone.icon.3-square-fill': , 'plone.icon.4-circle': , 'plone.icon.4-circle-fill': , 'plone.icon.4-square': , 'plone.icon.4-square-fill': , 'plone.icon.5-circle': , 'plone.icon.5-circle-fill': , 'plone.icon.5-square': , 'plone.icon.5-square-fill': , 'plone.icon.6-circle': , 'plone.icon.6-circle-fill': , 'plone.icon.6-square': , 'plone.icon.6-square-fill': , 'plone.icon.7-circle': , 'plone.icon.7-circle-fill': , 'plone.icon.7-square': , 'plone.icon.7-square-fill': , 'plone.icon.8-circle': , 'plone.icon.8-circle-fill': , 'plone.icon.8-square': , 'plone.icon.8-square-fill': , 'plone.icon.9-circle': , 'plone.icon.9-circle-fill': , 'plone.icon.9-square': , 'plone.icon.9-square-fill': , 'plone.icon.activity': , 'plone.icon.airplane': , 'plone.icon.airplane-engines': , 'plone.icon.airplane-engines-fill': , 'plone.icon.airplane-fill': , 'plone.icon.alarm': , 'plone.icon.alarm-fill': , 'plone.icon.alexa': , 'plone.icon.align-bottom': , 'plone.icon.align-center': , 'plone.icon.align-end': , 'plone.icon.align-middle': , 'plone.icon.align-start': , 'plone.icon.align-top': , 'plone.icon.alipay': , 'plone.icon.alphabet': , 'plone.icon.alphabet-uppercase': , 'plone.icon.alt': , 'plone.icon.amazon': , 'plone.icon.amd': , 'plone.icon.android': , 'plone.icon.android2': , 'plone.icon.app': , 'plone.icon.app-indicator': , 'plone.icon.apple': , 'plone.icon.archive': , 'plone.icon.archive-fill': , 'plone.icon.arrow-90deg-down': , 'plone.icon.arrow-90deg-left': , 'plone.icon.arrow-90deg-right': , 'plone.icon.arrow-90deg-up': , 'plone.icon.arrow-bar-down': , 'plone.icon.arrow-bar-left': , 'plone.icon.arrow-bar-right': , 'plone.icon.arrow-bar-up': , 'plone.icon.arrow-clockwise': , 'plone.icon.arrow-counterclockwise': , 'plone.icon.arrow-down': , 'plone.icon.arrow-down-circle': , 'plone.icon.arrow-down-circle-fill': , 'plone.icon.arrow-down-left': , 'plone.icon.arrow-down-left-circle': , 'plone.icon.arrow-down-left-circle-fill': , 'plone.icon.arrow-down-left-square': , 'plone.icon.arrow-down-left-square-fill': , 'plone.icon.arrow-down-right': , 'plone.icon.arrow-down-right-circle': , 'plone.icon.arrow-down-right-circle-fill': , 'plone.icon.arrow-down-right-square': , 'plone.icon.arrow-down-right-square-fill': , 'plone.icon.arrow-down-short': , 'plone.icon.arrow-down-square': , 'plone.icon.arrow-down-square-fill': , 'plone.icon.arrow-down-up': , 'plone.icon.arrow-left': , 'plone.icon.arrow-left-circle': , 'plone.icon.arrow-left-circle-fill': , 'plone.icon.arrow-left-right': , 'plone.icon.arrow-left-short': , 'plone.icon.arrow-left-square': , 'plone.icon.arrow-left-square-fill': , 'plone.icon.arrow-repeat': , 'plone.icon.arrow-return-left': , 'plone.icon.arrow-return-right': , 'plone.icon.arrow-right': , 'plone.icon.arrow-right-circle': , 'plone.icon.arrow-right-circle-fill': , 'plone.icon.arrow-right-short': , 'plone.icon.arrow-right-square': , 'plone.icon.arrow-right-square-fill': , 'plone.icon.arrow-through-heart': , 'plone.icon.arrow-through-heart-fill': , 'plone.icon.arrow-up': , 'plone.icon.arrow-up-circle': , 'plone.icon.arrow-up-circle-fill': , 'plone.icon.arrow-up-left': , 'plone.icon.arrow-up-left-circle': , 'plone.icon.arrow-up-left-circle-fill': , 'plone.icon.arrow-up-left-square': , 'plone.icon.arrow-up-left-square-fill': , 'plone.icon.arrow-up-right': , 'plone.icon.arrow-up-right-circle': , 'plone.icon.arrow-up-right-circle-fill': , 'plone.icon.arrow-up-right-square': , 'plone.icon.arrow-up-right-square-fill': , 'plone.icon.arrow-up-short': , 'plone.icon.arrow-up-square': , 'plone.icon.arrow-up-square-fill': , 'plone.icon.arrows': , 'plone.icon.arrows-angle-contract': , 'plone.icon.arrows-angle-expand': , 'plone.icon.arrows-collapse': , 'plone.icon.arrows-collapse-vertical': , 'plone.icon.arrows-expand': , 'plone.icon.arrows-expand-vertical': , 'plone.icon.arrows-fullscreen': , 'plone.icon.arrows-move': , 'plone.icon.arrows-vertical': , 'plone.icon.aspect-ratio': , 'plone.icon.aspect-ratio-fill': , 'plone.icon.asterisk': , 'plone.icon.at': , 'plone.icon.award': , 'plone.icon.award-fill': , 'plone.icon.back': , 'plone.icon.backpack': , 'plone.icon.backpack-fill': , 'plone.icon.backpack2': , 'plone.icon.backpack2-fill': , 'plone.icon.backpack3': , 'plone.icon.backpack3-fill': , 'plone.icon.backpack4': , 'plone.icon.backpack4-fill': , 'plone.icon.backspace': , 'plone.icon.backspace-fill': , 'plone.icon.backspace-reverse': , 'plone.icon.backspace-reverse-fill': , 'plone.icon.badge-3d': , 'plone.icon.badge-3d-fill': , 'plone.icon.badge-4k': , 'plone.icon.badge-4k-fill': , 'plone.icon.badge-8k': , 'plone.icon.badge-8k-fill': , 'plone.icon.badge-ad': , 'plone.icon.badge-ad-fill': , 'plone.icon.badge-ar': , 'plone.icon.badge-ar-fill': , 'plone.icon.badge-cc': , 'plone.icon.badge-cc-fill': , 'plone.icon.badge-hd': , 'plone.icon.badge-hd-fill': , 'plone.icon.badge-sd': , 'plone.icon.badge-sd-fill': , 'plone.icon.badge-tm': , 'plone.icon.badge-tm-fill': , 'plone.icon.badge-vo': , 'plone.icon.badge-vo-fill': , 'plone.icon.badge-vr': , 'plone.icon.badge-vr-fill': , 'plone.icon.badge-wc': , 'plone.icon.badge-wc-fill': , 'plone.icon.bag': , 'plone.icon.bag-check': , 'plone.icon.bag-check-fill': , 'plone.icon.bag-dash': , 'plone.icon.bag-dash-fill': , 'plone.icon.bag-fill': , 'plone.icon.bag-heart': , 'plone.icon.bag-heart-fill': , 'plone.icon.bag-plus': , 'plone.icon.bag-plus-fill': , 'plone.icon.bag-x': , 'plone.icon.bag-x-fill': , 'plone.icon.balloon': , 'plone.icon.balloon-fill': , 'plone.icon.balloon-heart': , 'plone.icon.balloon-heart-fill': , 'plone.icon.ban': , 'plone.icon.ban-fill': , 'plone.icon.bandaid': , 'plone.icon.bandaid-fill': , 'plone.icon.bank': , 'plone.icon.bank2': , 'plone.icon.bar-chart': , 'plone.icon.bar-chart-fill': , 'plone.icon.bar-chart-line': , 'plone.icon.bar-chart-line-fill': , 'plone.icon.bar-chart-steps': , 'plone.icon.basket': , 'plone.icon.basket-fill': , 'plone.icon.basket2': , 'plone.icon.basket2-fill': , 'plone.icon.basket3': , 'plone.icon.basket3-fill': , 'plone.icon.battery': , 'plone.icon.battery-charging': , 'plone.icon.battery-full': , 'plone.icon.battery-half': , 'plone.icon.behance': , 'plone.icon.bell': , 'plone.icon.bell-fill': , 'plone.icon.bell-slash': , 'plone.icon.bell-slash-fill': , 'plone.icon.bezier': , 'plone.icon.bezier2': , 'plone.icon.bicycle': , 'plone.icon.bing': , 'plone.icon.binoculars': , 'plone.icon.binoculars-fill': , 'plone.icon.blockquote-left': , 'plone.icon.blockquote-right': , 'plone.icon.bluetooth': , 'plone.icon.body-text': , 'plone.icon.book': , 'plone.icon.book-fill': , 'plone.icon.book-half': , 'plone.icon.bookmark': , 'plone.icon.bookmark-check': , 'plone.icon.bookmark-check-fill': , 'plone.icon.bookmark-dash': , 'plone.icon.bookmark-dash-fill': , 'plone.icon.bookmark-fill': , 'plone.icon.bookmark-heart': , 'plone.icon.bookmark-heart-fill': , 'plone.icon.bookmark-plus': , 'plone.icon.bookmark-plus-fill': , 'plone.icon.bookmark-star': , 'plone.icon.bookmark-star-fill': , 'plone.icon.bookmark-x': , 'plone.icon.bookmark-x-fill': , 'plone.icon.bookmarks': , 'plone.icon.bookmarks-fill': , 'plone.icon.bookshelf': , 'plone.icon.boombox': , 'plone.icon.boombox-fill': , 'plone.icon.bootstrap': , 'plone.icon.bootstrap-fill': , 'plone.icon.bootstrap-reboot': , 'plone.icon.border': , 'plone.icon.border-all': , 'plone.icon.border-bottom': , 'plone.icon.border-center': , 'plone.icon.border-inner': , 'plone.icon.border-left': , 'plone.icon.border-middle': , 'plone.icon.border-outer': , 'plone.icon.border-right': , 'plone.icon.border-style': , 'plone.icon.border-top': , 'plone.icon.border-width': , 'plone.icon.bounding-box': , 'plone.icon.bounding-box-circles': , 'plone.icon.box': , 'plone.icon.box-arrow-down': , 'plone.icon.box-arrow-down-left': , 'plone.icon.box-arrow-down-right': , 'plone.icon.box-arrow-in-down': , 'plone.icon.box-arrow-in-down-left': , 'plone.icon.box-arrow-in-down-right': , 'plone.icon.box-arrow-in-left': , 'plone.icon.box-arrow-in-right': , 'plone.icon.box-arrow-in-up': , 'plone.icon.box-arrow-in-up-left': , 'plone.icon.box-arrow-in-up-right': , 'plone.icon.box-arrow-left': , 'plone.icon.box-arrow-right': , 'plone.icon.box-arrow-up': , 'plone.icon.box-arrow-up-left': , 'plone.icon.box-arrow-up-right': , 'plone.icon.box-fill': , 'plone.icon.box-seam': , 'plone.icon.box-seam-fill': , 'plone.icon.box2': , 'plone.icon.box2-fill': , 'plone.icon.box2-heart': , 'plone.icon.box2-heart-fill': , 'plone.icon.boxes': , 'plone.icon.braces': , 'plone.icon.braces-asterisk': , 'plone.icon.bricks': , 'plone.icon.briefcase': , 'plone.icon.briefcase-fill': , 'plone.icon.brightness-alt-high': , 'plone.icon.brightness-alt-high-fill': , 'plone.icon.brightness-alt-low': , 'plone.icon.brightness-alt-low-fill': , 'plone.icon.brightness-high': , 'plone.icon.brightness-high-fill': , 'plone.icon.brightness-low': , 'plone.icon.brightness-low-fill': , 'plone.icon.brilliance': , 'plone.icon.broadcast': , 'plone.icon.broadcast-pin': , 'plone.icon.browser-chrome': , 'plone.icon.browser-edge': , 'plone.icon.browser-firefox': , 'plone.icon.browser-safari': , 'plone.icon.brush': , 'plone.icon.brush-fill': , 'plone.icon.bucket': , 'plone.icon.bucket-fill': , 'plone.icon.bug': , 'plone.icon.bug-fill': , 'plone.icon.building': , 'plone.icon.building-add': , 'plone.icon.building-check': , 'plone.icon.building-dash': , 'plone.icon.building-down': , 'plone.icon.building-exclamation': , 'plone.icon.building-fill': , 'plone.icon.building-fill-add': , 'plone.icon.building-fill-check': , 'plone.icon.building-fill-dash': , 'plone.icon.building-fill-down': , 'plone.icon.building-fill-exclamation': , 'plone.icon.building-fill-gear': , 'plone.icon.building-fill-lock': , 'plone.icon.building-fill-slash': , 'plone.icon.building-fill-up': , 'plone.icon.building-fill-x': , 'plone.icon.building-gear': , 'plone.icon.building-lock': , 'plone.icon.building-slash': , 'plone.icon.building-up': , 'plone.icon.building-x': , 'plone.icon.buildings': , 'plone.icon.buildings-fill': , 'plone.icon.bullseye': , 'plone.icon.bus-front': , 'plone.icon.bus-front-fill': , 'plone.icon.c-circle': , 'plone.icon.c-circle-fill': , 'plone.icon.c-square': , 'plone.icon.c-square-fill': , 'plone.icon.cake': , 'plone.icon.cake-fill': , 'plone.icon.cake2': , 'plone.icon.cake2-fill': , 'plone.icon.calculator': , 'plone.icon.calculator-fill': , 'plone.icon.calendar': , 'plone.icon.calendar-check': , 'plone.icon.calendar-check-fill': , 'plone.icon.calendar-date': , 'plone.icon.calendar-date-fill': , 'plone.icon.calendar-day': , 'plone.icon.calendar-day-fill': , 'plone.icon.calendar-event': , 'plone.icon.calendar-event-fill': , 'plone.icon.calendar-fill': , 'plone.icon.calendar-heart': , 'plone.icon.calendar-heart-fill': , 'plone.icon.calendar-minus': , 'plone.icon.calendar-minus-fill': , 'plone.icon.calendar-month': , 'plone.icon.calendar-month-fill': , 'plone.icon.calendar-plus': , 'plone.icon.calendar-plus-fill': , 'plone.icon.calendar-range': , 'plone.icon.calendar-range-fill': , 'plone.icon.calendar-week': , 'plone.icon.calendar-week-fill': , 'plone.icon.calendar-x': , 'plone.icon.calendar-x-fill': , 'plone.icon.calendar2': , 'plone.icon.calendar2-check': , 'plone.icon.calendar2-check-fill': , 'plone.icon.calendar2-date': , 'plone.icon.calendar2-date-fill': , 'plone.icon.calendar2-day': , 'plone.icon.calendar2-day-fill': , 'plone.icon.calendar2-event': , 'plone.icon.calendar2-event-fill': , 'plone.icon.calendar2-fill': , 'plone.icon.calendar2-heart': , 'plone.icon.calendar2-heart-fill': , 'plone.icon.calendar2-minus': , 'plone.icon.calendar2-minus-fill': , 'plone.icon.calendar2-month': , 'plone.icon.calendar2-month-fill': , 'plone.icon.calendar2-plus': , 'plone.icon.calendar2-plus-fill': , 'plone.icon.calendar2-range': , 'plone.icon.calendar2-range-fill': , 'plone.icon.calendar2-week': , 'plone.icon.calendar2-week-fill': , 'plone.icon.calendar2-x': , 'plone.icon.calendar2-x-fill': , 'plone.icon.calendar3': , 'plone.icon.calendar3-event': , 'plone.icon.calendar3-event-fill': , 'plone.icon.calendar3-fill': , 'plone.icon.calendar3-range': , 'plone.icon.calendar3-range-fill': , 'plone.icon.calendar3-week': , 'plone.icon.calendar3-week-fill': , 'plone.icon.calendar4': , 'plone.icon.calendar4-event': , 'plone.icon.calendar4-range': , 'plone.icon.calendar4-week': , 'plone.icon.camera': , 'plone.icon.camera-fill': , 'plone.icon.camera-reels': , 'plone.icon.camera-reels-fill': , 'plone.icon.camera-video': , 'plone.icon.camera-video-fill': , 'plone.icon.camera-video-off': , 'plone.icon.camera-video-off-fill': , 'plone.icon.camera2': , 'plone.icon.capslock': , 'plone.icon.capslock-fill': , 'plone.icon.capsule': , 'plone.icon.capsule-pill': , 'plone.icon.car-front': , 'plone.icon.car-front-fill': , 'plone.icon.card-checklist': , 'plone.icon.card-heading': , 'plone.icon.card-image': , 'plone.icon.card-list': , 'plone.icon.card-text': , 'plone.icon.caret-down': , 'plone.icon.caret-down-fill': , 'plone.icon.caret-down-square': , 'plone.icon.caret-down-square-fill': , 'plone.icon.caret-left': , 'plone.icon.caret-left-fill': , 'plone.icon.caret-left-square': , 'plone.icon.caret-left-square-fill': , 'plone.icon.caret-right': , 'plone.icon.caret-right-fill': , 'plone.icon.caret-right-square': , 'plone.icon.caret-right-square-fill': , 'plone.icon.caret-up': , 'plone.icon.caret-up-fill': , 'plone.icon.caret-up-square': , 'plone.icon.caret-up-square-fill': , 'plone.icon.cart': , 'plone.icon.cart-check': , 'plone.icon.cart-check-fill': , 'plone.icon.cart-dash': , 'plone.icon.cart-dash-fill': , 'plone.icon.cart-fill': , 'plone.icon.cart-plus': , 'plone.icon.cart-plus-fill': , 'plone.icon.cart-x': , 'plone.icon.cart-x-fill': , 'plone.icon.cart2': , 'plone.icon.cart3': , 'plone.icon.cart4': , 'plone.icon.cash': , 'plone.icon.cash-coin': , 'plone.icon.cash-stack': , 'plone.icon.cassette': , 'plone.icon.cassette-fill': , 'plone.icon.cast': , 'plone.icon.cc-circle': , 'plone.icon.cc-circle-fill': , 'plone.icon.cc-square': , 'plone.icon.cc-square-fill': , 'plone.icon.chat': , 'plone.icon.chat-dots': , 'plone.icon.chat-dots-fill': , 'plone.icon.chat-fill': , 'plone.icon.chat-heart': , 'plone.icon.chat-heart-fill': , 'plone.icon.chat-left': , 'plone.icon.chat-left-dots': , 'plone.icon.chat-left-dots-fill': , 'plone.icon.chat-left-fill': , 'plone.icon.chat-left-heart': , 'plone.icon.chat-left-heart-fill': , 'plone.icon.chat-left-quote': , 'plone.icon.chat-left-quote-fill': , 'plone.icon.chat-left-text': , 'plone.icon.chat-left-text-fill': , 'plone.icon.chat-quote': , 'plone.icon.chat-quote-fill': , 'plone.icon.chat-right': , 'plone.icon.chat-right-dots': , 'plone.icon.chat-right-dots-fill': , 'plone.icon.chat-right-fill': , 'plone.icon.chat-right-heart': , 'plone.icon.chat-right-heart-fill': , 'plone.icon.chat-right-quote': , 'plone.icon.chat-right-quote-fill': , 'plone.icon.chat-right-text': , 'plone.icon.chat-right-text-fill': , 'plone.icon.chat-square': , 'plone.icon.chat-square-dots': , 'plone.icon.chat-square-dots-fill': , 'plone.icon.chat-square-fill': , 'plone.icon.chat-square-heart': , 'plone.icon.chat-square-heart-fill': , 'plone.icon.chat-square-quote': , 'plone.icon.chat-square-quote-fill': , 'plone.icon.chat-square-text': , 'plone.icon.chat-square-text-fill': , 'plone.icon.chat-text': , 'plone.icon.chat-text-fill': , 'plone.icon.check': , 'plone.icon.check-all': , 'plone.icon.check-circle': , 'plone.icon.check-circle-fill': , 'plone.icon.check-lg': , 'plone.icon.check-square': , 'plone.icon.check-square-fill': , 'plone.icon.check2': , 'plone.icon.check2-all': , 'plone.icon.check2-circle': , 'plone.icon.check2-square': , 'plone.icon.chevron-bar-contract': , 'plone.icon.chevron-bar-down': , 'plone.icon.chevron-bar-expand': , 'plone.icon.chevron-bar-left': , 'plone.icon.chevron-bar-right': , 'plone.icon.chevron-bar-up': , 'plone.icon.chevron-compact-down': , 'plone.icon.chevron-compact-left': , 'plone.icon.chevron-compact-right': , 'plone.icon.chevron-compact-up': , 'plone.icon.chevron-contract': , 'plone.icon.chevron-double-down': , 'plone.icon.chevron-double-left': , 'plone.icon.chevron-double-right': , 'plone.icon.chevron-double-up': , 'plone.icon.chevron-down': , 'plone.icon.chevron-expand': , 'plone.icon.chevron-left': , 'plone.icon.chevron-right': , 'plone.icon.chevron-up': , 'plone.icon.circle': , 'plone.icon.circle-fill': , 'plone.icon.circle-half': , 'plone.icon.circle-square': , 'plone.icon.clipboard': , 'plone.icon.clipboard-check': , 'plone.icon.clipboard-check-fill': , 'plone.icon.clipboard-data': , 'plone.icon.clipboard-data-fill': , 'plone.icon.clipboard-fill': , 'plone.icon.clipboard-heart': , 'plone.icon.clipboard-heart-fill': , 'plone.icon.clipboard-minus': , 'plone.icon.clipboard-minus-fill': , 'plone.icon.clipboard-plus': , 'plone.icon.clipboard-plus-fill': , 'plone.icon.clipboard-pulse': , 'plone.icon.clipboard-x': , 'plone.icon.clipboard-x-fill': , 'plone.icon.clipboard2': , 'plone.icon.clipboard2-check': , 'plone.icon.clipboard2-check-fill': , 'plone.icon.clipboard2-data': , 'plone.icon.clipboard2-data-fill': , 'plone.icon.clipboard2-fill': , 'plone.icon.clipboard2-heart': , 'plone.icon.clipboard2-heart-fill': , 'plone.icon.clipboard2-minus': , 'plone.icon.clipboard2-minus-fill': , 'plone.icon.clipboard2-plus': , 'plone.icon.clipboard2-plus-fill': , 'plone.icon.clipboard2-pulse': , 'plone.icon.clipboard2-pulse-fill': , 'plone.icon.clipboard2-x': , 'plone.icon.clipboard2-x-fill': , 'plone.icon.clock': , 'plone.icon.clock-fill': , 'plone.icon.clock-history': , 'plone.icon.cloud': , 'plone.icon.cloud-arrow-down': , 'plone.icon.cloud-arrow-down-fill': , 'plone.icon.cloud-arrow-up': , 'plone.icon.cloud-arrow-up-fill': , 'plone.icon.cloud-check': , 'plone.icon.cloud-check-fill': , 'plone.icon.cloud-download': , 'plone.icon.cloud-download-fill': , 'plone.icon.cloud-drizzle': , 'plone.icon.cloud-drizzle-fill': , 'plone.icon.cloud-fill': , 'plone.icon.cloud-fog': , 'plone.icon.cloud-fog-fill': , 'plone.icon.cloud-fog2': , 'plone.icon.cloud-fog2-fill': , 'plone.icon.cloud-hail': , 'plone.icon.cloud-hail-fill': , 'plone.icon.cloud-haze': , 'plone.icon.cloud-haze-1': , 'plone.icon.cloud-haze-fill': , 'plone.icon.cloud-haze2': , 'plone.icon.cloud-haze2-fill': , 'plone.icon.cloud-lightning': , 'plone.icon.cloud-lightning-fill': , 'plone.icon.cloud-lightning-rain': , 'plone.icon.cloud-lightning-rain-fill': , 'plone.icon.cloud-minus': , 'plone.icon.cloud-minus-fill': , 'plone.icon.cloud-moon': , 'plone.icon.cloud-moon-fill': , 'plone.icon.cloud-plus': , 'plone.icon.cloud-plus-fill': , 'plone.icon.cloud-rain': , 'plone.icon.cloud-rain-fill': , 'plone.icon.cloud-rain-heavy': , 'plone.icon.cloud-rain-heavy-fill': , 'plone.icon.cloud-slash': , 'plone.icon.cloud-slash-fill': , 'plone.icon.cloud-sleet': , 'plone.icon.cloud-sleet-fill': , 'plone.icon.cloud-snow': , 'plone.icon.cloud-snow-fill': , 'plone.icon.cloud-sun': , 'plone.icon.cloud-sun-fill': , 'plone.icon.cloud-upload': , 'plone.icon.cloud-upload-fill': , 'plone.icon.clouds': , 'plone.icon.clouds-fill': , 'plone.icon.cloudy': , 'plone.icon.cloudy-fill': , 'plone.icon.code': , 'plone.icon.code-slash': , 'plone.icon.code-square': , 'plone.icon.coin': , 'plone.icon.collection': , 'plone.icon.collection-fill': , 'plone.icon.collection-play': , 'plone.icon.collection-play-fill': , 'plone.icon.columns': , 'plone.icon.columns-gap': , 'plone.icon.command': , 'plone.icon.compass': , 'plone.icon.compass-fill': , 'plone.icon.cone': , 'plone.icon.cone-striped': , 'plone.icon.contenttype': , 'plone.icon.contenttype/collection': , 'plone.icon.contenttype/document': , 'plone.icon.contenttype/event': , 'plone.icon.contenttype/file': , 'plone.icon.contenttype/folder': , 'plone.icon.contenttype/image': , 'plone.icon.contenttype/link': , 'plone.icon.contenttype/news-item': , 'plone.icon.controller': , 'plone.icon.cookie': , 'plone.icon.copy': , 'plone.icon.countryflag': , 'plone.icon.countryflag/ad': , 'plone.icon.countryflag/ae': , 'plone.icon.countryflag/af': , 'plone.icon.countryflag/ag': , 'plone.icon.countryflag/ai': , 'plone.icon.countryflag/al': , 'plone.icon.countryflag/am': , 'plone.icon.countryflag/ao': , 'plone.icon.countryflag/aq': , 'plone.icon.countryflag/ar': , 'plone.icon.countryflag/as': , 'plone.icon.countryflag/at': , 'plone.icon.countryflag/au': , 'plone.icon.countryflag/aw': , 'plone.icon.countryflag/ax': , 'plone.icon.countryflag/az': , 'plone.icon.countryflag/ba': , 'plone.icon.countryflag/bb': , 'plone.icon.countryflag/bd': , 'plone.icon.countryflag/be': , 'plone.icon.countryflag/bf': , 'plone.icon.countryflag/bg': , 'plone.icon.countryflag/bh': , 'plone.icon.countryflag/bi': , 'plone.icon.countryflag/bj': , 'plone.icon.countryflag/bl': , 'plone.icon.countryflag/bm': , 'plone.icon.countryflag/bn': , 'plone.icon.countryflag/bo': , 'plone.icon.countryflag/bq': , 'plone.icon.countryflag/br': , 'plone.icon.countryflag/bs': , 'plone.icon.countryflag/bt': , 'plone.icon.countryflag/bv': , 'plone.icon.countryflag/bw': , 'plone.icon.countryflag/by': , 'plone.icon.countryflag/bz': , 'plone.icon.countryflag/ca': , 'plone.icon.countryflag/cc': , 'plone.icon.countryflag/cd': , 'plone.icon.countryflag/cf': , 'plone.icon.countryflag/cg': , 'plone.icon.countryflag/ch': , 'plone.icon.countryflag/ci': , 'plone.icon.countryflag/ck': , 'plone.icon.countryflag/cl': , 'plone.icon.countryflag/cm': , 'plone.icon.countryflag/cn': , 'plone.icon.countryflag/co': , 'plone.icon.countryflag/cr': , 'plone.icon.countryflag/cu': , 'plone.icon.countryflag/cv': , 'plone.icon.countryflag/cw': , 'plone.icon.countryflag/cx': , 'plone.icon.countryflag/cy': , 'plone.icon.countryflag/cz': , 'plone.icon.countryflag/de': , 'plone.icon.countryflag/dj': , 'plone.icon.countryflag/dk': , 'plone.icon.countryflag/dm': , 'plone.icon.countryflag/do': , 'plone.icon.countryflag/dz': , 'plone.icon.countryflag/ec': , 'plone.icon.countryflag/ee': , 'plone.icon.countryflag/eg': , 'plone.icon.countryflag/eh': , 'plone.icon.countryflag/er': , 'plone.icon.countryflag/es': , 'plone.icon.countryflag/et': , 'plone.icon.countryflag/eu': , 'plone.icon.countryflag/fi': , 'plone.icon.countryflag/fj': , 'plone.icon.countryflag/fk': , 'plone.icon.countryflag/fm': , 'plone.icon.countryflag/fo': , 'plone.icon.countryflag/fr': , 'plone.icon.countryflag/ga': , 'plone.icon.countryflag/gb': , 'plone.icon.countryflag/gb-eng': , 'plone.icon.countryflag/gb-nir': , 'plone.icon.countryflag/gb-sct': , 'plone.icon.countryflag/gb-wls': , 'plone.icon.countryflag/gd': , 'plone.icon.countryflag/ge': , 'plone.icon.countryflag/gf': , 'plone.icon.countryflag/gg': , 'plone.icon.countryflag/gh': , 'plone.icon.countryflag/gi': , 'plone.icon.countryflag/gl': , 'plone.icon.countryflag/gm': , 'plone.icon.countryflag/gn': , 'plone.icon.countryflag/gp': , 'plone.icon.countryflag/gq': , 'plone.icon.countryflag/gr': , 'plone.icon.countryflag/gs': , 'plone.icon.countryflag/gt': , 'plone.icon.countryflag/gu': , 'plone.icon.countryflag/gw': , 'plone.icon.countryflag/gy': , 'plone.icon.countryflag/hk': , 'plone.icon.countryflag/hm': , 'plone.icon.countryflag/hn': , 'plone.icon.countryflag/hr': , 'plone.icon.countryflag/ht': , 'plone.icon.countryflag/hu': , 'plone.icon.countryflag/id': , 'plone.icon.countryflag/ie': , 'plone.icon.countryflag/il': , 'plone.icon.countryflag/im': , 'plone.icon.countryflag/in': , 'plone.icon.countryflag/io': , 'plone.icon.countryflag/iq': , 'plone.icon.countryflag/ir': , 'plone.icon.countryflag/is': , 'plone.icon.countryflag/it': , 'plone.icon.countryflag/je': , 'plone.icon.countryflag/jm': , 'plone.icon.countryflag/jo': , 'plone.icon.countryflag/jp': , 'plone.icon.countryflag/ke': , 'plone.icon.countryflag/kg': , 'plone.icon.countryflag/kh': , 'plone.icon.countryflag/ki': , 'plone.icon.countryflag/km': , 'plone.icon.countryflag/kn': , 'plone.icon.countryflag/kp': , 'plone.icon.countryflag/kr': , 'plone.icon.countryflag/kw': , 'plone.icon.countryflag/ky': , 'plone.icon.countryflag/kz': , 'plone.icon.countryflag/la': , 'plone.icon.countryflag/lb': , 'plone.icon.countryflag/lc': , 'plone.icon.countryflag/li': , 'plone.icon.countryflag/lk': , 'plone.icon.countryflag/lr': , 'plone.icon.countryflag/ls': , 'plone.icon.countryflag/lt': , 'plone.icon.countryflag/lu': , 'plone.icon.countryflag/lv': , 'plone.icon.countryflag/ly': , 'plone.icon.countryflag/ma': , 'plone.icon.countryflag/mc': , 'plone.icon.countryflag/md': , 'plone.icon.countryflag/me': , 'plone.icon.countryflag/mf': , 'plone.icon.countryflag/mg': , 'plone.icon.countryflag/mh': , 'plone.icon.countryflag/mk': , 'plone.icon.countryflag/ml': , 'plone.icon.countryflag/mm': , 'plone.icon.countryflag/mn': , 'plone.icon.countryflag/mo': , 'plone.icon.countryflag/mp': , 'plone.icon.countryflag/mq': , 'plone.icon.countryflag/mr': , 'plone.icon.countryflag/ms': , 'plone.icon.countryflag/mt': , 'plone.icon.countryflag/mu': , 'plone.icon.countryflag/mv': , 'plone.icon.countryflag/mw': , 'plone.icon.countryflag/mx': , 'plone.icon.countryflag/my': , 'plone.icon.countryflag/mz': , 'plone.icon.countryflag/na': , 'plone.icon.countryflag/nc': , 'plone.icon.countryflag/ne': , 'plone.icon.countryflag/nf': , 'plone.icon.countryflag/ng': , 'plone.icon.countryflag/ni': , 'plone.icon.countryflag/nl': , 'plone.icon.countryflag/no': , 'plone.icon.countryflag/np': , 'plone.icon.countryflag/nr': , 'plone.icon.countryflag/nu': , 'plone.icon.countryflag/nz': , 'plone.icon.countryflag/om': , 'plone.icon.countryflag/pa': , 'plone.icon.countryflag/pe': , 'plone.icon.countryflag/pf': , 'plone.icon.countryflag/pg': , 'plone.icon.countryflag/ph': , 'plone.icon.countryflag/pk': , 'plone.icon.countryflag/pl': , 'plone.icon.countryflag/pm': , 'plone.icon.countryflag/pn': , 'plone.icon.countryflag/pr': , 'plone.icon.countryflag/ps': , 'plone.icon.countryflag/pt': , 'plone.icon.countryflag/pw': , 'plone.icon.countryflag/py': , 'plone.icon.countryflag/qa': , 'plone.icon.countryflag/re': , 'plone.icon.countryflag/ro': , 'plone.icon.countryflag/rs': , 'plone.icon.countryflag/ru': , 'plone.icon.countryflag/rw': , 'plone.icon.countryflag/sa': , 'plone.icon.countryflag/sb': , 'plone.icon.countryflag/sc': , 'plone.icon.countryflag/sd': , 'plone.icon.countryflag/se': , 'plone.icon.countryflag/sg': , 'plone.icon.countryflag/sh': , 'plone.icon.countryflag/si': , 'plone.icon.countryflag/sj': , 'plone.icon.countryflag/sk': , 'plone.icon.countryflag/sl': , 'plone.icon.countryflag/sm': , 'plone.icon.countryflag/sn': , 'plone.icon.countryflag/so': , 'plone.icon.countryflag/sr': , 'plone.icon.countryflag/ss': , 'plone.icon.countryflag/st': , 'plone.icon.countryflag/sv': , 'plone.icon.countryflag/sx': , 'plone.icon.countryflag/sy': , 'plone.icon.countryflag/sz': , 'plone.icon.countryflag/tc': , 'plone.icon.countryflag/td': , 'plone.icon.countryflag/tf': , 'plone.icon.countryflag/tg': , 'plone.icon.countryflag/th': , 'plone.icon.countryflag/tj': , 'plone.icon.countryflag/tk': , 'plone.icon.countryflag/tl': , 'plone.icon.countryflag/tm': , 'plone.icon.countryflag/tn': , 'plone.icon.countryflag/to': , 'plone.icon.countryflag/tr': , 'plone.icon.countryflag/tt': , 'plone.icon.countryflag/tv': , 'plone.icon.countryflag/tw': , 'plone.icon.countryflag/tz': , 'plone.icon.countryflag/ua': , 'plone.icon.countryflag/ug': , 'plone.icon.countryflag/um': , 'plone.icon.countryflag/us': , 'plone.icon.countryflag/uy': , 'plone.icon.countryflag/uz': , 'plone.icon.countryflag/va': , 'plone.icon.countryflag/vc': , 'plone.icon.countryflag/ve': , 'plone.icon.countryflag/vg': , 'plone.icon.countryflag/vi': , 'plone.icon.countryflag/vn': , 'plone.icon.countryflag/vu': , 'plone.icon.countryflag/wf': , 'plone.icon.countryflag/ws': , 'plone.icon.countryflag/xk': , 'plone.icon.countryflag/ye': , 'plone.icon.countryflag/yt': , 'plone.icon.countryflag/za': , 'plone.icon.countryflag/zm': , 'plone.icon.countryflag/zw': , 'plone.icon.cpu': , 'plone.icon.cpu-fill': , 'plone.icon.credit-card': , 'plone.icon.credit-card-2-back': , 'plone.icon.credit-card-2-back-fill': , 'plone.icon.credit-card-2-front': , 'plone.icon.credit-card-2-front-fill': , 'plone.icon.credit-card-fill': , 'plone.icon.crop': , 'plone.icon.crosshair': , 'plone.icon.crosshair2': , 'plone.icon.cup': , 'plone.icon.cup-fill': , 'plone.icon.cup-hot': , 'plone.icon.cup-hot-fill': , 'plone.icon.cup-straw': , 'plone.icon.currency-bitcoin': , 'plone.icon.currency-dollar': , 'plone.icon.currency-euro': , 'plone.icon.currency-exchange': , 'plone.icon.currency-pound': , 'plone.icon.currency-rupee': , 'plone.icon.currency-yen': , 'plone.icon.cursor': , 'plone.icon.cursor-fill': , 'plone.icon.cursor-text': , 'plone.icon.dash': , 'plone.icon.dash-circle': , 'plone.icon.dash-circle-dotted': , 'plone.icon.dash-circle-fill': , 'plone.icon.dash-lg': , 'plone.icon.dash-square': , 'plone.icon.dash-square-dotted': , 'plone.icon.dash-square-fill': , 'plone.icon.database': , 'plone.icon.database-add': , 'plone.icon.database-check': , 'plone.icon.database-dash': , 'plone.icon.database-down': , 'plone.icon.database-exclamation': , 'plone.icon.database-fill': , 'plone.icon.database-fill-add': , 'plone.icon.database-fill-check': , 'plone.icon.database-fill-dash': , 'plone.icon.database-fill-down': , 'plone.icon.database-fill-exclamation': , 'plone.icon.database-fill-gear': , 'plone.icon.database-fill-lock': , 'plone.icon.database-fill-slash': , 'plone.icon.database-fill-up': , 'plone.icon.database-fill-x': , 'plone.icon.database-gear': , 'plone.icon.database-lock': , 'plone.icon.database-slash': , 'plone.icon.database-up': , 'plone.icon.database-x': , 'plone.icon.device-hdd': , 'plone.icon.device-hdd-fill': , 'plone.icon.device-ssd': , 'plone.icon.device-ssd-fill': , 'plone.icon.diagram-2': , 'plone.icon.diagram-2-fill': , 'plone.icon.diagram-3': , 'plone.icon.diagram-3-fill': , 'plone.icon.diamond': , 'plone.icon.diamond-fill': , 'plone.icon.diamond-half': , 'plone.icon.dice-1': , 'plone.icon.dice-1-fill': , 'plone.icon.dice-2': , 'plone.icon.dice-2-fill': , 'plone.icon.dice-3': , 'plone.icon.dice-3-fill': , 'plone.icon.dice-4': , 'plone.icon.dice-4-fill': , 'plone.icon.dice-5': , 'plone.icon.dice-5-fill': , 'plone.icon.dice-6': , 'plone.icon.dice-6-fill': , 'plone.icon.disc': , 'plone.icon.disc-fill': , 'plone.icon.discord': , 'plone.icon.display': , 'plone.icon.display-fill': , 'plone.icon.displayport': , 'plone.icon.displayport-fill': , 'plone.icon.distribute-horizontal': , 'plone.icon.distribute-vertical': , 'plone.icon.door-closed': , 'plone.icon.door-closed-fill': , 'plone.icon.door-open': , 'plone.icon.door-open-fill': , 'plone.icon.dot': , 'plone.icon.download': , 'plone.icon.dpad': , 'plone.icon.dpad-fill': , 'plone.icon.dribbble': , 'plone.icon.dropbox': , 'plone.icon.droplet': , 'plone.icon.droplet-fill': , 'plone.icon.droplet-half': , 'plone.icon.duffle': , 'plone.icon.duffle-fill': , 'plone.icon.ear': , 'plone.icon.ear-fill': , 'plone.icon.earbuds': , 'plone.icon.easel': , 'plone.icon.easel-fill': , 'plone.icon.easel2': , 'plone.icon.easel2-fill': , 'plone.icon.easel3': , 'plone.icon.easel3-fill': , 'plone.icon.egg': , 'plone.icon.egg-fill': , 'plone.icon.egg-fried': , 'plone.icon.eject': , 'plone.icon.eject-fill': , 'plone.icon.emoji-angry': , 'plone.icon.emoji-angry-fill': , 'plone.icon.emoji-astonished': , 'plone.icon.emoji-astonished-fill': , 'plone.icon.emoji-dizzy': , 'plone.icon.emoji-dizzy-fill': , 'plone.icon.emoji-expressionless': , 'plone.icon.emoji-expressionless-fill': , 'plone.icon.emoji-frown': , 'plone.icon.emoji-frown-fill': , 'plone.icon.emoji-grimace': , 'plone.icon.emoji-grimace-fill': , 'plone.icon.emoji-grin': , 'plone.icon.emoji-grin-fill': , 'plone.icon.emoji-heart-eyes': , 'plone.icon.emoji-heart-eyes-fill': , 'plone.icon.emoji-kiss': , 'plone.icon.emoji-kiss-fill': , 'plone.icon.emoji-laughing': , 'plone.icon.emoji-laughing-fill': , 'plone.icon.emoji-neutral': , 'plone.icon.emoji-neutral-fill': , 'plone.icon.emoji-smile': , 'plone.icon.emoji-smile-fill': , 'plone.icon.emoji-smile-upside-down': , 'plone.icon.emoji-smile-upside-down-fill': , 'plone.icon.emoji-sunglasses': , 'plone.icon.emoji-sunglasses-fill': , 'plone.icon.emoji-surprise': , 'plone.icon.emoji-surprise-fill': , 'plone.icon.emoji-tear': , 'plone.icon.emoji-tear-fill': , 'plone.icon.emoji-wink': , 'plone.icon.emoji-wink-fill': , 'plone.icon.envelope': , 'plone.icon.envelope-arrow-down': , 'plone.icon.envelope-arrow-down-fill': , 'plone.icon.envelope-arrow-up': , 'plone.icon.envelope-arrow-up-fill': , 'plone.icon.envelope-at': , 'plone.icon.envelope-at-fill': , 'plone.icon.envelope-check': , 'plone.icon.envelope-check-fill': , 'plone.icon.envelope-dash': , 'plone.icon.envelope-dash-fill': , 'plone.icon.envelope-exclamation': , 'plone.icon.envelope-exclamation-fill': , 'plone.icon.envelope-fill': , 'plone.icon.envelope-heart': , 'plone.icon.envelope-heart-fill': , 'plone.icon.envelope-open': , 'plone.icon.envelope-open-fill': , 'plone.icon.envelope-open-heart': , 'plone.icon.envelope-open-heart-fill': , 'plone.icon.envelope-paper': , 'plone.icon.envelope-paper-fill': , 'plone.icon.envelope-paper-heart': , 'plone.icon.envelope-paper-heart-fill': , 'plone.icon.envelope-plus': , 'plone.icon.envelope-plus-fill': , 'plone.icon.envelope-slash': , 'plone.icon.envelope-slash-fill': , 'plone.icon.envelope-x': , 'plone.icon.envelope-x-fill': , 'plone.icon.eraser': , 'plone.icon.eraser-fill': , 'plone.icon.escape': , 'plone.icon.ethernet': , 'plone.icon.ev-front': , 'plone.icon.ev-front-fill': , 'plone.icon.ev-station': , 'plone.icon.ev-station-fill': , 'plone.icon.exclamation': , 'plone.icon.exclamation-circle': , 'plone.icon.exclamation-circle-fill': , 'plone.icon.exclamation-diamond': , 'plone.icon.exclamation-diamond-fill': , 'plone.icon.exclamation-lg': , 'plone.icon.exclamation-octagon': , 'plone.icon.exclamation-octagon-fill': , 'plone.icon.exclamation-square': , 'plone.icon.exclamation-square-fill': , 'plone.icon.exclamation-triangle': , 'plone.icon.exclamation-triangle-fill': , 'plone.icon.exclude': , 'plone.icon.explicit': , 'plone.icon.explicit-fill': , 'plone.icon.exposure': , 'plone.icon.eye': , 'plone.icon.eye-fill': , 'plone.icon.eye-slash': , 'plone.icon.eye-slash-fill': , 'plone.icon.eyedropper': , 'plone.icon.eyeglasses': , 'plone.icon.facebook': , 'plone.icon.fan': , 'plone.icon.fast-forward': , 'plone.icon.fast-forward-btn': , 'plone.icon.fast-forward-btn-fill': , 'plone.icon.fast-forward-circle': , 'plone.icon.fast-forward-circle-fill': , 'plone.icon.fast-forward-fill': , 'plone.icon.feather': , 'plone.icon.feather2': , 'plone.icon.file': , 'plone.icon.file-arrow-down': , 'plone.icon.file-arrow-down-fill': , 'plone.icon.file-arrow-up': , 'plone.icon.file-arrow-up-fill': , 'plone.icon.file-bar-graph': , 'plone.icon.file-bar-graph-fill': , 'plone.icon.file-binary': , 'plone.icon.file-binary-fill': , 'plone.icon.file-break': , 'plone.icon.file-break-fill': , 'plone.icon.file-check': , 'plone.icon.file-check-fill': , 'plone.icon.file-code': , 'plone.icon.file-code-fill': , 'plone.icon.file-diff': , 'plone.icon.file-diff-fill': , 'plone.icon.file-earmark': , 'plone.icon.file-earmark-arrow-down': , 'plone.icon.file-earmark-arrow-down-fill': , 'plone.icon.file-earmark-arrow-up': , 'plone.icon.file-earmark-arrow-up-fill': , 'plone.icon.file-earmark-bar-graph': , 'plone.icon.file-earmark-bar-graph-fill': , 'plone.icon.file-earmark-binary': , 'plone.icon.file-earmark-binary-fill': , 'plone.icon.file-earmark-break': , 'plone.icon.file-earmark-break-fill': , 'plone.icon.file-earmark-check': , 'plone.icon.file-earmark-check-fill': , 'plone.icon.file-earmark-code': , 'plone.icon.file-earmark-code-fill': , 'plone.icon.file-earmark-diff': , 'plone.icon.file-earmark-diff-fill': , 'plone.icon.file-earmark-easel': , 'plone.icon.file-earmark-easel-fill': , 'plone.icon.file-earmark-excel': , 'plone.icon.file-earmark-excel-fill': , 'plone.icon.file-earmark-fill': , 'plone.icon.file-earmark-font': , 'plone.icon.file-earmark-font-fill': , 'plone.icon.file-earmark-image': , 'plone.icon.file-earmark-image-fill': , 'plone.icon.file-earmark-lock': , 'plone.icon.file-earmark-lock-fill': , 'plone.icon.file-earmark-lock2': , 'plone.icon.file-earmark-lock2-fill': , 'plone.icon.file-earmark-medical': , 'plone.icon.file-earmark-medical-fill': , 'plone.icon.file-earmark-minus': , 'plone.icon.file-earmark-minus-fill': , 'plone.icon.file-earmark-music': , 'plone.icon.file-earmark-music-fill': , 'plone.icon.file-earmark-pdf': , 'plone.icon.file-earmark-pdf-fill': , 'plone.icon.file-earmark-person': , 'plone.icon.file-earmark-person-fill': , 'plone.icon.file-earmark-play': , 'plone.icon.file-earmark-play-fill': , 'plone.icon.file-earmark-plus': , 'plone.icon.file-earmark-plus-fill': , 'plone.icon.file-earmark-post': , 'plone.icon.file-earmark-post-fill': , 'plone.icon.file-earmark-ppt': , 'plone.icon.file-earmark-ppt-fill': , 'plone.icon.file-earmark-richtext': , 'plone.icon.file-earmark-richtext-fill': , 'plone.icon.file-earmark-ruled': , 'plone.icon.file-earmark-ruled-fill': , 'plone.icon.file-earmark-slides': , 'plone.icon.file-earmark-slides-fill': , 'plone.icon.file-earmark-spreadsheet': , 'plone.icon.file-earmark-spreadsheet-fill': , 'plone.icon.file-earmark-text': , 'plone.icon.file-earmark-text-fill': , 'plone.icon.file-earmark-word': , 'plone.icon.file-earmark-word-fill': , 'plone.icon.file-earmark-x': , 'plone.icon.file-earmark-x-fill': , 'plone.icon.file-earmark-zip': , 'plone.icon.file-earmark-zip-fill': , 'plone.icon.file-easel': , 'plone.icon.file-easel-fill': , 'plone.icon.file-excel': , 'plone.icon.file-excel-fill': , 'plone.icon.file-fill': , 'plone.icon.file-font': , 'plone.icon.file-font-fill': , 'plone.icon.file-image': , 'plone.icon.file-image-fill': , 'plone.icon.file-lock': , 'plone.icon.file-lock-fill': , 'plone.icon.file-lock2': , 'plone.icon.file-lock2-fill': , 'plone.icon.file-medical': , 'plone.icon.file-medical-fill': , 'plone.icon.file-minus': , 'plone.icon.file-minus-fill': , 'plone.icon.file-music': , 'plone.icon.file-music-fill': , 'plone.icon.file-pdf': , 'plone.icon.file-pdf-fill': , 'plone.icon.file-person': , 'plone.icon.file-person-fill': , 'plone.icon.file-play': , 'plone.icon.file-play-fill': , 'plone.icon.file-plus': , 'plone.icon.file-plus-fill': , 'plone.icon.file-post': , 'plone.icon.file-post-fill': , 'plone.icon.file-ppt': , 'plone.icon.file-ppt-fill': , 'plone.icon.file-richtext': , 'plone.icon.file-richtext-fill': , 'plone.icon.file-ruled': , 'plone.icon.file-ruled-fill': , 'plone.icon.file-slides': , 'plone.icon.file-slides-fill': , 'plone.icon.file-spreadsheet': , 'plone.icon.file-spreadsheet-fill': , 'plone.icon.file-text': , 'plone.icon.file-text-fill': , 'plone.icon.file-word': , 'plone.icon.file-word-fill': , 'plone.icon.file-x': , 'plone.icon.file-x-fill': , 'plone.icon.file-zip': , 'plone.icon.file-zip-fill': , 'plone.icon.files': , 'plone.icon.files-alt': , 'plone.icon.filetype-aac': , 'plone.icon.filetype-ai': , 'plone.icon.filetype-bmp': , 'plone.icon.filetype-cs': , 'plone.icon.filetype-css': , 'plone.icon.filetype-csv': , 'plone.icon.filetype-doc': , 'plone.icon.filetype-docx': , 'plone.icon.filetype-exe': , 'plone.icon.filetype-gif': , 'plone.icon.filetype-heic': , 'plone.icon.filetype-html': , 'plone.icon.filetype-java': , 'plone.icon.filetype-jpg': , 'plone.icon.filetype-js': , 'plone.icon.filetype-json': , 'plone.icon.filetype-jsx': , 'plone.icon.filetype-key': , 'plone.icon.filetype-m4p': , 'plone.icon.filetype-md': , 'plone.icon.filetype-mdx': , 'plone.icon.filetype-mov': , 'plone.icon.filetype-mp3': , 'plone.icon.filetype-mp4': , 'plone.icon.filetype-otf': , 'plone.icon.filetype-pdf': , 'plone.icon.filetype-php': , 'plone.icon.filetype-png': , 'plone.icon.filetype-ppt': , 'plone.icon.filetype-pptx': , 'plone.icon.filetype-psd': , 'plone.icon.filetype-py': , 'plone.icon.filetype-raw': , 'plone.icon.filetype-rb': , 'plone.icon.filetype-sass': , 'plone.icon.filetype-scss': , 'plone.icon.filetype-sh': , 'plone.icon.filetype-sql': , 'plone.icon.filetype-svg': , 'plone.icon.filetype-tiff': , 'plone.icon.filetype-tsx': , 'plone.icon.filetype-ttf': , 'plone.icon.filetype-txt': , 'plone.icon.filetype-wav': , 'plone.icon.filetype-woff': , 'plone.icon.filetype-xls': , 'plone.icon.filetype-xlsx': , 'plone.icon.filetype-xml': , 'plone.icon.filetype-yml': , 'plone.icon.film': , 'plone.icon.filter': , 'plone.icon.filter-circle': , 'plone.icon.filter-circle-fill': , 'plone.icon.filter-left': , 'plone.icon.filter-right': , 'plone.icon.filter-square': , 'plone.icon.filter-square-fill': , 'plone.icon.fingerprint': , 'plone.icon.fire': , 'plone.icon.flag': , 'plone.icon.flag-fill': , 'plone.icon.floppy': , 'plone.icon.floppy-fill': , 'plone.icon.floppy2': , 'plone.icon.floppy2-fill': , 'plone.icon.flower1': , 'plone.icon.flower2': , 'plone.icon.flower3': , 'plone.icon.folder': , 'plone.icon.folder-check': , 'plone.icon.folder-fill': , 'plone.icon.folder-minus': , 'plone.icon.folder-plus': , 'plone.icon.folder-symlink': , 'plone.icon.folder-symlink-fill': , 'plone.icon.folder-x': , 'plone.icon.folder2': , 'plone.icon.folder2-open': , 'plone.icon.fonts': , 'plone.icon.forward': , 'plone.icon.forward-fill': , 'plone.icon.front': , 'plone.icon.fuel-pump': , 'plone.icon.fuel-pump-diesel': , 'plone.icon.fuel-pump-diesel-fill': , 'plone.icon.fuel-pump-fill': , 'plone.icon.fullscreen': , 'plone.icon.fullscreen-exit': , 'plone.icon.funnel': , 'plone.icon.funnel-fill': , 'plone.icon.gear': , 'plone.icon.gear-fill': , 'plone.icon.gear-wide': , 'plone.icon.gear-wide-connected': , 'plone.icon.gem': , 'plone.icon.gender-ambiguous': , 'plone.icon.gender-female': , 'plone.icon.gender-male': , 'plone.icon.gender-neuter': , 'plone.icon.gender-trans': , 'plone.icon.geo': , 'plone.icon.geo-alt': , 'plone.icon.geo-alt-fill': , 'plone.icon.geo-fill': , 'plone.icon.gift': , 'plone.icon.gift-fill': , 'plone.icon.git': , 'plone.icon.github': , 'plone.icon.gitlab': , 'plone.icon.globe': , 'plone.icon.globe-americas': , 'plone.icon.globe-asia-australia': , 'plone.icon.globe-central-south-asia': , 'plone.icon.globe-europe-africa': , 'plone.icon.globe2': , 'plone.icon.google': , 'plone.icon.google-play': , 'plone.icon.gpu-card': , 'plone.icon.graph-down': , 'plone.icon.graph-down-arrow': , 'plone.icon.graph-up': , 'plone.icon.graph-up-arrow': , 'plone.icon.grid': , 'plone.icon.grid-1x2': , 'plone.icon.grid-1x2-fill': , 'plone.icon.grid-3x2': , 'plone.icon.grid-3x2-gap': , 'plone.icon.grid-3x2-gap-fill': , 'plone.icon.grid-3x3': , 'plone.icon.grid-3x3-gap': , 'plone.icon.grid-3x3-gap-fill': , 'plone.icon.grid-fill': , 'plone.icon.grip-horizontal': , 'plone.icon.grip-vertical': , 'plone.icon.h-circle': , 'plone.icon.h-circle-fill': , 'plone.icon.h-square': , 'plone.icon.h-square-fill': , 'plone.icon.hammer': , 'plone.icon.hand-index': , 'plone.icon.hand-index-fill': , 'plone.icon.hand-index-thumb': , 'plone.icon.hand-index-thumb-fill': , 'plone.icon.hand-thumbs-down': , 'plone.icon.hand-thumbs-down-fill': , 'plone.icon.hand-thumbs-up': , 'plone.icon.hand-thumbs-up-fill': , 'plone.icon.handbag': , 'plone.icon.handbag-fill': , 'plone.icon.hash': , 'plone.icon.hdd': , 'plone.icon.hdd-fill': , 'plone.icon.hdd-network': , 'plone.icon.hdd-network-fill': , 'plone.icon.hdd-rack': , 'plone.icon.hdd-rack-fill': , 'plone.icon.hdd-stack': , 'plone.icon.hdd-stack-fill': , 'plone.icon.hdmi': , 'plone.icon.hdmi-fill': , 'plone.icon.headphones': , 'plone.icon.headset': , 'plone.icon.headset-vr': , 'plone.icon.heart': , 'plone.icon.heart-arrow': , 'plone.icon.heart-fill': , 'plone.icon.heart-half': , 'plone.icon.heart-pulse': , 'plone.icon.heart-pulse-fill': , 'plone.icon.heartbreak': , 'plone.icon.heartbreak-fill': , 'plone.icon.hearts': , 'plone.icon.heptagon': , 'plone.icon.heptagon-fill': , 'plone.icon.heptagon-half': , 'plone.icon.hexagon': , 'plone.icon.hexagon-fill': , 'plone.icon.hexagon-half': , 'plone.icon.highlighter': , 'plone.icon.highlights': , 'plone.icon.hospital': , 'plone.icon.hospital-fill': , 'plone.icon.hourglass': , 'plone.icon.hourglass-bottom': , 'plone.icon.hourglass-split': , 'plone.icon.hourglass-top': , 'plone.icon.house': , 'plone.icon.house-add': , 'plone.icon.house-add-fill': , 'plone.icon.house-check': , 'plone.icon.house-check-fill': , 'plone.icon.house-dash': , 'plone.icon.house-dash-fill': , 'plone.icon.house-door': , 'plone.icon.house-door-fill': , 'plone.icon.house-down': , 'plone.icon.house-down-fill': , 'plone.icon.house-exclamation': , 'plone.icon.house-exclamation-fill': , 'plone.icon.house-fill': , 'plone.icon.house-gear': , 'plone.icon.house-gear-fill': , 'plone.icon.house-heart': , 'plone.icon.house-heart-fill': , 'plone.icon.house-lock': , 'plone.icon.house-lock-fill': , 'plone.icon.house-slash': , 'plone.icon.house-slash-fill': , 'plone.icon.house-up': , 'plone.icon.house-up-fill': , 'plone.icon.house-x': , 'plone.icon.house-x-fill': , 'plone.icon.houses': , 'plone.icon.houses-fill': , 'plone.icon.hr': , 'plone.icon.hurricane': , 'plone.icon.hypnotize': , 'plone.icon.image': , 'plone.icon.image-alt': , 'plone.icon.image-fill': , 'plone.icon.images': , 'plone.icon.inbox': , 'plone.icon.inbox-fill': , 'plone.icon.inboxes': , 'plone.icon.inboxes-fill': , 'plone.icon.incognito': , 'plone.icon.indent': , 'plone.icon.infinity': , 'plone.icon.info': , 'plone.icon.info-circle': , 'plone.icon.info-circle-fill': , 'plone.icon.info-lg': , 'plone.icon.info-square': , 'plone.icon.info-square-fill': , 'plone.icon.input-cursor': , 'plone.icon.input-cursor-text': , 'plone.icon.instagram': , 'plone.icon.intersect': , 'plone.icon.journal': , 'plone.icon.journal-album': , 'plone.icon.journal-arrow-down': , 'plone.icon.journal-arrow-up': , 'plone.icon.journal-bookmark': , 'plone.icon.journal-bookmark-fill': , 'plone.icon.journal-check': , 'plone.icon.journal-code': , 'plone.icon.journal-medical': , 'plone.icon.journal-minus': , 'plone.icon.journal-plus': , 'plone.icon.journal-richtext': , 'plone.icon.journal-text': , 'plone.icon.journal-x': , 'plone.icon.journals': , 'plone.icon.joystick': , 'plone.icon.justify': , 'plone.icon.justify-left': , 'plone.icon.justify-right': , 'plone.icon.kanban': , 'plone.icon.kanban-fill': , 'plone.icon.key': , 'plone.icon.key-fill': , 'plone.icon.keyboard': , 'plone.icon.keyboard-fill': , 'plone.icon.ladder': , 'plone.icon.lamp': , 'plone.icon.lamp-fill': , 'plone.icon.languageflag': , 'plone.icon.languageflag/ar': , 'plone.icon.languageflag/ca': , 'plone.icon.languageflag/cy': , 'plone.icon.languageflag/eo': , 'plone.icon.languageflag/eu': , 'plone.icon.laptop': , 'plone.icon.laptop-fill': , 'plone.icon.layer-backward': , 'plone.icon.layer-forward': , 'plone.icon.layers': , 'plone.icon.layers-fill': , 'plone.icon.layers-half': , 'plone.icon.layout-sidebar': , 'plone.icon.layout-sidebar-inset': , 'plone.icon.layout-sidebar-inset-reverse': , 'plone.icon.layout-sidebar-reverse': , 'plone.icon.layout-split': , 'plone.icon.layout-text-sidebar': , 'plone.icon.layout-text-sidebar-reverse': , 'plone.icon.layout-text-window': , 'plone.icon.layout-text-window-reverse': , 'plone.icon.layout-three-columns': , 'plone.icon.layout-wtf': , 'plone.icon.life-preserver': , 'plone.icon.lightbulb': , 'plone.icon.lightbulb-fill': , 'plone.icon.lightbulb-off': , 'plone.icon.lightbulb-off-fill': , 'plone.icon.lightning': , 'plone.icon.lightning-charge': , 'plone.icon.lightning-charge-fill': , 'plone.icon.lightning-fill': , 'plone.icon.line': , 'plone.icon.link': , 'plone.icon.link-45deg': , 'plone.icon.linkedin': , 'plone.icon.list': , 'plone.icon.list-check': , 'plone.icon.list-columns': , 'plone.icon.list-columns-reverse': , 'plone.icon.list-nested': , 'plone.icon.list-ol': , 'plone.icon.list-stars': , 'plone.icon.list-task': , 'plone.icon.list-ul': , 'plone.icon.lock': , 'plone.icon.lock-fill': , 'plone.icon.luggage': , 'plone.icon.luggage-fill': , 'plone.icon.lungs': , 'plone.icon.lungs-fill': , 'plone.icon.magic': , 'plone.icon.magnet': , 'plone.icon.magnet-fill': , 'plone.icon.mailbox': , 'plone.icon.mailbox-flag': , 'plone.icon.mailbox2': , 'plone.icon.mailbox2-flag': , 'plone.icon.map': , 'plone.icon.map-fill': , 'plone.icon.markdown': , 'plone.icon.markdown-fill': , 'plone.icon.marker-tip': , 'plone.icon.mask': , 'plone.icon.mastodon': , 'plone.icon.medium': , 'plone.icon.megaphone': , 'plone.icon.megaphone-fill': , 'plone.icon.memory': , 'plone.icon.menu-app': , 'plone.icon.menu-app-fill': , 'plone.icon.menu-button': , 'plone.icon.menu-button-fill': , 'plone.icon.menu-button-wide': , 'plone.icon.menu-button-wide-fill': , 'plone.icon.menu-down': , 'plone.icon.menu-up': , 'plone.icon.messenger': , 'plone.icon.meta': , 'plone.icon.mic': , 'plone.icon.mic-fill': , 'plone.icon.mic-mute': , 'plone.icon.mic-mute-fill': , 'plone.icon.microsoft': , 'plone.icon.microsoft-teams': , 'plone.icon.mimetype-application': , 'plone.icon.mimetype-application/msword': , 'plone.icon.mimetype-application/pdf': , 'plone.icon.mimetype-application/vnd.apple.keynote': , 'plone.icon.mimetype-application/vnd.ms-excel': , 'plone.icon.mimetype-application/vnd.ms-powerpoint': , 'plone.icon.mimetype-application/vnd.oasis.opendocument.presentation': , 'plone.icon.mimetype-application/vnd.oasis.opendocument.spreadsheet': , 'plone.icon.mimetype-application/vnd.oasis.opendocument.text': , 'plone.icon.mimetype-application/vnd.openxmlformats-officedocument.presentationml.presentation': , 'plone.icon.mimetype-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': , 'plone.icon.mimetype-application/vnd.openxmlformats-officedocument.wordprocessingml.document': , 'plone.icon.mimetype-application/x-tar': , 'plone.icon.mimetype-application/xml': , 'plone.icon.mimetype-application/zip': , 'plone.icon.mimetype-audio': , 'plone.icon.mimetype-image': , 'plone.icon.mimetype-image/jpeg': , 'plone.icon.mimetype-message': , 'plone.icon.mimetype-multipart': , 'plone.icon.mimetype-text': , 'plone.icon.mimetype-video': , 'plone.icon.minecart': , 'plone.icon.minecart-loaded': , 'plone.icon.modem': , 'plone.icon.modem-fill': , 'plone.icon.moisture': , 'plone.icon.moon': , 'plone.icon.moon-fill': , 'plone.icon.moon-stars': , 'plone.icon.moon-stars-fill': , 'plone.icon.mortarboard': , 'plone.icon.mortarboard-fill': , 'plone.icon.motherboard': , 'plone.icon.motherboard-fill': , 'plone.icon.mouse': , 'plone.icon.mouse-fill': , 'plone.icon.mouse2': , 'plone.icon.mouse2-fill': , 'plone.icon.mouse3': , 'plone.icon.mouse3-fill': , 'plone.icon.music-note': , 'plone.icon.music-note-beamed': , 'plone.icon.music-note-list': , 'plone.icon.music-player': , 'plone.icon.music-player-fill': , 'plone.icon.newspaper': , 'plone.icon.nintendo-switch': , 'plone.icon.node-minus': , 'plone.icon.node-minus-fill': , 'plone.icon.node-plus': , 'plone.icon.node-plus-fill': , 'plone.icon.noise-reduction': , 'plone.icon.nut': , 'plone.icon.nut-fill': , 'plone.icon.nvidia': , 'plone.icon.nvme': , 'plone.icon.nvme-fill': , 'plone.icon.octagon': , 'plone.icon.octagon-fill': , 'plone.icon.octagon-half': , 'plone.icon.opencollective': , 'plone.icon.optical-audio': , 'plone.icon.optical-audio-fill': , 'plone.icon.option': , 'plone.icon.outlet': , 'plone.icon.p-circle': , 'plone.icon.p-circle-fill': , 'plone.icon.p-square': , 'plone.icon.p-square-fill': , 'plone.icon.paint-bucket': , 'plone.icon.palette': , 'plone.icon.palette-fill': , 'plone.icon.palette2': , 'plone.icon.paperclip': , 'plone.icon.paragraph': , 'plone.icon.pass': , 'plone.icon.pass-fill': , 'plone.icon.passport': , 'plone.icon.passport-fill': , 'plone.icon.patch-check': , 'plone.icon.patch-check-fill': , 'plone.icon.patch-exclamation': , 'plone.icon.patch-exclamation-fill': , 'plone.icon.patch-minus': , 'plone.icon.patch-minus-fill': , 'plone.icon.patch-plus': , 'plone.icon.patch-plus-fill': , 'plone.icon.patch-question': , 'plone.icon.patch-question-fill': , 'plone.icon.pause': , 'plone.icon.pause-btn': , 'plone.icon.pause-btn-fill': , 'plone.icon.pause-circle': , 'plone.icon.pause-circle-fill': , 'plone.icon.pause-fill': , 'plone.icon.paypal': , 'plone.icon.pc': , 'plone.icon.pc-display': , 'plone.icon.pc-display-horizontal': , 'plone.icon.pc-horizontal': , 'plone.icon.pci-card': , 'plone.icon.pci-card-network': , 'plone.icon.pci-card-sound': , 'plone.icon.peace': , 'plone.icon.peace-fill': , 'plone.icon.pen': , 'plone.icon.pen-fill': , 'plone.icon.pencil': , 'plone.icon.pencil-fill': , 'plone.icon.pencil-square': , 'plone.icon.pentagon': , 'plone.icon.pentagon-fill': , 'plone.icon.pentagon-half': , 'plone.icon.people': , 'plone.icon.people-fill': , 'plone.icon.percent': , 'plone.icon.person': , 'plone.icon.person-add': , 'plone.icon.person-arms-up': , 'plone.icon.person-badge': , 'plone.icon.person-badge-fill': , 'plone.icon.person-bounding-box': , 'plone.icon.person-check': , 'plone.icon.person-check-fill': , 'plone.icon.person-circle': , 'plone.icon.person-dash': , 'plone.icon.person-dash-fill': , 'plone.icon.person-down': , 'plone.icon.person-exclamation': , 'plone.icon.person-fill': , 'plone.icon.person-fill-add': , 'plone.icon.person-fill-check': , 'plone.icon.person-fill-dash': , 'plone.icon.person-fill-down': , 'plone.icon.person-fill-exclamation': , 'plone.icon.person-fill-gear': , 'plone.icon.person-fill-lock': , 'plone.icon.person-fill-slash': , 'plone.icon.person-fill-up': , 'plone.icon.person-fill-x': , 'plone.icon.person-gear': , 'plone.icon.person-heart': , 'plone.icon.person-hearts': , 'plone.icon.person-lines-fill': , 'plone.icon.person-lock': , 'plone.icon.person-plus': , 'plone.icon.person-plus-fill': , 'plone.icon.person-raised-hand': , 'plone.icon.person-rolodex': , 'plone.icon.person-slash': , 'plone.icon.person-square': , 'plone.icon.person-standing': , 'plone.icon.person-standing-dress': , 'plone.icon.person-up': , 'plone.icon.person-vcard': , 'plone.icon.person-vcard-fill': , 'plone.icon.person-video': , 'plone.icon.person-video2': , 'plone.icon.person-video3': , 'plone.icon.person-walking': , 'plone.icon.person-wheelchair': , 'plone.icon.person-workspace': , 'plone.icon.person-x': , 'plone.icon.person-x-fill': , 'plone.icon.phone': , 'plone.icon.phone-fill': , 'plone.icon.phone-flip': , 'plone.icon.phone-landscape': , 'plone.icon.phone-landscape-fill': , 'plone.icon.phone-vibrate': , 'plone.icon.phone-vibrate-fill': , 'plone.icon.pie-chart': , 'plone.icon.pie-chart-fill': , 'plone.icon.piggy-bank': , 'plone.icon.piggy-bank-fill': , 'plone.icon.pin': , 'plone.icon.pin-angle': , 'plone.icon.pin-angle-fill': , 'plone.icon.pin-fill': , 'plone.icon.pin-map': , 'plone.icon.pin-map-fill': , 'plone.icon.pinterest': , 'plone.icon.pip': , 'plone.icon.pip-fill': , 'plone.icon.play': , 'plone.icon.play-btn': , 'plone.icon.play-btn-fill': , 'plone.icon.play-circle': , 'plone.icon.play-circle-fill': , 'plone.icon.play-fill': , 'plone.icon.playstation': , 'plone.icon.plone-accessibility': , 'plone.icon.plone-action': , 'plone.icon.plone-addon': , 'plone.icon.plone-alert': , 'plone.icon.plone-archive': , 'plone.icon.plone-book': , 'plone.icon.plone-brush': , 'plone.icon.plone-caching': , 'plone.icon.plone-calendar': , 'plone.icon.plone-chat': , 'plone.icon.plone-chevron-down': , 'plone.icon.plone-chevron-left': , 'plone.icon.plone-chevron-right': , 'plone.icon.plone-chevron-up': , 'plone.icon.plone-clock': , 'plone.icon.plone-contact-info': , 'plone.icon.plone-content': , 'plone.icon.plone-controlpanel': , 'plone.icon.plone-copy': , 'plone.icon.plone-cubes': , 'plone.icon.plone-cut': , 'plone.icon.plone-dashboard': , 'plone.icon.plone-database': , 'plone.icon.plone-date': , 'plone.icon.plone-delete': , 'plone.icon.plone-design': , 'plone.icon.plone-dexterity': , 'plone.icon.plone-direction': , 'plone.icon.plone-discussion': , 'plone.icon.plone-docs': , 'plone.icon.plone-down-circle': , 'plone.icon.plone-edit': , 'plone.icon.plone-equalizer': , 'plone.icon.plone-error': , 'plone.icon.plone-eye': , 'plone.icon.plone-filter': , 'plone.icon.plone-flash': , 'plone.icon.plone-flow': , 'plone.icon.plone-group': , 'plone.icon.plone-home': , 'plone.icon.plone-info': , 'plone.icon.plone-language': , 'plone.icon.plone-left-circle': , 'plone.icon.plone-link': , 'plone.icon.plone-link/external': , 'plone.icon.plone-link/mail': , 'plone.icon.plone-lock': , 'plone.icon.plone-login': , 'plone.icon.plone-logout': , 'plone.icon.plone-mail': , 'plone.icon.plone-maintenance': , 'plone.icon.plone-management': , 'plone.icon.plone-markup': , 'plone.icon.plone-megaphone': , 'plone.icon.plone-navigation': , 'plone.icon.plone-network': , 'plone.icon.plone-paste': , 'plone.icon.plone-pencil': , 'plone.icon.plone-picture': , 'plone.icon.plone-plus': , 'plone.icon.plone-portlet': , 'plone.icon.plone-print': , 'plone.icon.plone-rearrange': , 'plone.icon.plone-redirection': , 'plone.icon.plone-register': , 'plone.icon.plone-rename': , 'plone.icon.plone-resources': , 'plone.icon.plone-right-circle': , 'plone.icon.plone-rss': , 'plone.icon.plone-rules': , 'plone.icon.plone-search': , 'plone.icon.plone-security': , 'plone.icon.plone-selection': , 'plone.icon.plone-settings': , 'plone.icon.plone-signal': , 'plone.icon.plone-sitemap': , 'plone.icon.plone-sliders': , 'plone.icon.plone-socialmedia': , 'plone.icon.plone-statusmessage-danger': , 'plone.icon.plone-statusmessage-error': , 'plone.icon.plone-statusmessage-info': , 'plone.icon.plone-statusmessage-warning': , 'plone.icon.plone-target': , 'plone.icon.plone-theme': , 'plone.icon.plone-three-dots': , 'plone.icon.plone-three-dots-vertical': , 'plone.icon.plone-tinymce': , 'plone.icon.plone-undo': , 'plone.icon.plone-up-circle': , 'plone.icon.plone-user': , 'plone.icon.plone-view': , 'plone.icon.plone-website': , 'plone.icon.plone-wrench': , 'plone.icon.plug': , 'plone.icon.plug-fill': , 'plone.icon.plugin': , 'plone.icon.plus': , 'plone.icon.plus-circle': , 'plone.icon.plus-circle-dotted': , 'plone.icon.plus-circle-fill': , 'plone.icon.plus-lg': , 'plone.icon.plus-slash-minus': , 'plone.icon.plus-square': , 'plone.icon.plus-square-dotted': , 'plone.icon.plus-square-fill': , 'plone.icon.postage': , 'plone.icon.postage-fill': , 'plone.icon.postage-heart': , 'plone.icon.postage-heart-fill': , 'plone.icon.postcard': , 'plone.icon.postcard-fill': , 'plone.icon.postcard-heart': , 'plone.icon.postcard-heart-fill': , 'plone.icon.power': , 'plone.icon.prescription': , 'plone.icon.prescription2': , 'plone.icon.printer': , 'plone.icon.printer-fill': , 'plone.icon.projector': , 'plone.icon.projector-fill': , 'plone.icon.puzzle': , 'plone.icon.puzzle-fill': , 'plone.icon.qr-code': , 'plone.icon.qr-code-scan': , 'plone.icon.question': , 'plone.icon.question-circle': , 'plone.icon.question-circle-fill': , 'plone.icon.question-diamond': , 'plone.icon.question-diamond-fill': , 'plone.icon.question-lg': , 'plone.icon.question-octagon': , 'plone.icon.question-octagon-fill': , 'plone.icon.question-square': , 'plone.icon.question-square-fill': , 'plone.icon.quora': , 'plone.icon.quote': , 'plone.icon.r-circle': , 'plone.icon.r-circle-fill': , 'plone.icon.r-square': , 'plone.icon.r-square-fill': , 'plone.icon.radar': , 'plone.icon.radioactive': , 'plone.icon.rainbow': , 'plone.icon.receipt': , 'plone.icon.receipt-cutoff': , 'plone.icon.reception-0': , 'plone.icon.reception-1': , 'plone.icon.reception-2': , 'plone.icon.reception-3': , 'plone.icon.reception-4': , 'plone.icon.record': , 'plone.icon.record-btn': , 'plone.icon.record-btn-fill': , 'plone.icon.record-circle': , 'plone.icon.record-circle-fill': , 'plone.icon.record-fill': , 'plone.icon.record2': , 'plone.icon.record2-fill': , 'plone.icon.recycle': , 'plone.icon.reddit': , 'plone.icon.regex': , 'plone.icon.repeat': , 'plone.icon.repeat-1': , 'plone.icon.reply': , 'plone.icon.reply-all': , 'plone.icon.reply-all-fill': , 'plone.icon.reply-fill': , 'plone.icon.rewind': , 'plone.icon.rewind-btn': , 'plone.icon.rewind-btn-fill': , 'plone.icon.rewind-circle': , 'plone.icon.rewind-circle-fill': , 'plone.icon.rewind-fill': , 'plone.icon.robot': , 'plone.icon.rocket': , 'plone.icon.rocket-fill': , 'plone.icon.rocket-takeoff': , 'plone.icon.rocket-takeoff-fill': , 'plone.icon.router': , 'plone.icon.router-fill': , 'plone.icon.rss': , 'plone.icon.rss-fill': , 'plone.icon.rulers': , 'plone.icon.safe': , 'plone.icon.safe-fill': , 'plone.icon.safe2': , 'plone.icon.safe2-fill': , 'plone.icon.save': , 'plone.icon.save-fill': , 'plone.icon.save2': , 'plone.icon.save2-fill': , 'plone.icon.scissors': , 'plone.icon.scooter': , 'plone.icon.screwdriver': , 'plone.icon.sd-card': , 'plone.icon.sd-card-fill': , 'plone.icon.search': , 'plone.icon.search-heart': , 'plone.icon.search-heart-fill': , 'plone.icon.segmented-nav': , 'plone.icon.send': , 'plone.icon.send-arrow-down': , 'plone.icon.send-arrow-down-fill': , 'plone.icon.send-arrow-up': , 'plone.icon.send-arrow-up-fill': , 'plone.icon.send-check': , 'plone.icon.send-check-fill': , 'plone.icon.send-dash': , 'plone.icon.send-dash-fill': , 'plone.icon.send-exclamation': , 'plone.icon.send-exclamation-fill': , 'plone.icon.send-fill': , 'plone.icon.send-plus': , 'plone.icon.send-plus-fill': , 'plone.icon.send-slash': , 'plone.icon.send-slash-fill': , 'plone.icon.send-x': , 'plone.icon.send-x-fill': , 'plone.icon.server': , 'plone.icon.shadows': , 'plone.icon.share': , 'plone.icon.share-fill': , 'plone.icon.shield': , 'plone.icon.shield-check': , 'plone.icon.shield-exclamation': , 'plone.icon.shield-fill': , 'plone.icon.shield-fill-check': , 'plone.icon.shield-fill-exclamation': , 'plone.icon.shield-fill-minus': , 'plone.icon.shield-fill-plus': , 'plone.icon.shield-fill-x': , 'plone.icon.shield-lock': , 'plone.icon.shield-lock-fill': , 'plone.icon.shield-minus': , 'plone.icon.shield-plus': , 'plone.icon.shield-shaded': , 'plone.icon.shield-slash': , 'plone.icon.shield-slash-fill': , 'plone.icon.shield-x': , 'plone.icon.shift': , 'plone.icon.shift-fill': , 'plone.icon.shop': , 'plone.icon.shop-window': , 'plone.icon.shuffle': , 'plone.icon.sign-dead-end': , 'plone.icon.sign-dead-end-fill': , 'plone.icon.sign-do-not-enter': , 'plone.icon.sign-do-not-enter-fill': , 'plone.icon.sign-intersection': , 'plone.icon.sign-intersection-fill': , 'plone.icon.sign-intersection-side': , 'plone.icon.sign-intersection-side-fill': , 'plone.icon.sign-intersection-t': , 'plone.icon.sign-intersection-t-fill': , 'plone.icon.sign-intersection-y': , 'plone.icon.sign-intersection-y-fill': , 'plone.icon.sign-merge-left': , 'plone.icon.sign-merge-left-fill': , 'plone.icon.sign-merge-right': , 'plone.icon.sign-merge-right-fill': , 'plone.icon.sign-no-left-turn': , 'plone.icon.sign-no-left-turn-fill': , 'plone.icon.sign-no-parking': , 'plone.icon.sign-no-parking-fill': , 'plone.icon.sign-no-right-turn': , 'plone.icon.sign-no-right-turn-fill': , 'plone.icon.sign-railroad': , 'plone.icon.sign-railroad-fill': , 'plone.icon.sign-stop': , 'plone.icon.sign-stop-fill': , 'plone.icon.sign-stop-lights': , 'plone.icon.sign-stop-lights-fill': , 'plone.icon.sign-turn-left': , 'plone.icon.sign-turn-left-fill': , 'plone.icon.sign-turn-right': , 'plone.icon.sign-turn-right-fill': , 'plone.icon.sign-turn-slight-left': , 'plone.icon.sign-turn-slight-left-fill': , 'plone.icon.sign-turn-slight-right': , 'plone.icon.sign-turn-slight-right-fill': , 'plone.icon.sign-yield': , 'plone.icon.sign-yield-fill': , 'plone.icon.signal': , 'plone.icon.signpost': , 'plone.icon.signpost-2': , 'plone.icon.signpost-2-fill': , 'plone.icon.signpost-fill': , 'plone.icon.signpost-split': , 'plone.icon.signpost-split-fill': , 'plone.icon.sim': , 'plone.icon.sim-fill': , 'plone.icon.sim-slash': , 'plone.icon.sim-slash-fill': , 'plone.icon.sina-weibo': , 'plone.icon.skip-backward': , 'plone.icon.skip-backward-btn': , 'plone.icon.skip-backward-btn-fill': , 'plone.icon.skip-backward-circle': , 'plone.icon.skip-backward-circle-fill': , 'plone.icon.skip-backward-fill': , 'plone.icon.skip-end': , 'plone.icon.skip-end-btn': , 'plone.icon.skip-end-btn-fill': , 'plone.icon.skip-end-circle': , 'plone.icon.skip-end-circle-fill': , 'plone.icon.skip-end-fill': , 'plone.icon.skip-forward': , 'plone.icon.skip-forward-btn': , 'plone.icon.skip-forward-btn-fill': , 'plone.icon.skip-forward-circle': , 'plone.icon.skip-forward-circle-fill': , 'plone.icon.skip-forward-fill': , 'plone.icon.skip-start': , 'plone.icon.skip-start-btn': , 'plone.icon.skip-start-btn-fill': , 'plone.icon.skip-start-circle': , 'plone.icon.skip-start-circle-fill': , 'plone.icon.skip-start-fill': , 'plone.icon.skype': , 'plone.icon.slack': , 'plone.icon.slash': , 'plone.icon.slash-circle': , 'plone.icon.slash-circle-fill': , 'plone.icon.slash-lg': , 'plone.icon.slash-square': , 'plone.icon.slash-square-fill': , 'plone.icon.sliders': , 'plone.icon.sliders2': , 'plone.icon.sliders2-vertical': , 'plone.icon.smartwatch': , 'plone.icon.snapchat': , 'plone.icon.snow': , 'plone.icon.snow2': , 'plone.icon.snow3': , 'plone.icon.sort-alpha-down': , 'plone.icon.sort-alpha-down-alt': , 'plone.icon.sort-alpha-up': , 'plone.icon.sort-alpha-up-alt': , 'plone.icon.sort-down': , 'plone.icon.sort-down-alt': , 'plone.icon.sort-numeric-down': , 'plone.icon.sort-numeric-down-alt': , 'plone.icon.sort-numeric-up': , 'plone.icon.sort-numeric-up-alt': , 'plone.icon.sort-up': , 'plone.icon.sort-up-alt': , 'plone.icon.soundwave': , 'plone.icon.sourceforge': , 'plone.icon.speaker': , 'plone.icon.speaker-fill': , 'plone.icon.speedometer': , 'plone.icon.speedometer2': , 'plone.icon.spellcheck': , 'plone.icon.spotify': , 'plone.icon.square': , 'plone.icon.square-fill': , 'plone.icon.square-half': , 'plone.icon.stack': , 'plone.icon.stack-overflow': , 'plone.icon.star': , 'plone.icon.star-fill': , 'plone.icon.star-half': , 'plone.icon.stars': , 'plone.icon.steam': , 'plone.icon.stickies': , 'plone.icon.stickies-fill': , 'plone.icon.sticky': , 'plone.icon.sticky-fill': , 'plone.icon.stop': , 'plone.icon.stop-btn': , 'plone.icon.stop-btn-fill': , 'plone.icon.stop-circle': , 'plone.icon.stop-circle-fill': , 'plone.icon.stop-fill': , 'plone.icon.stoplights': , 'plone.icon.stoplights-fill': , 'plone.icon.stopwatch': , 'plone.icon.stopwatch-fill': , 'plone.icon.strava': , 'plone.icon.stripe': , 'plone.icon.subscript': , 'plone.icon.substack': , 'plone.icon.subtract': , 'plone.icon.suit-club': , 'plone.icon.suit-club-fill': , 'plone.icon.suit-diamond': , 'plone.icon.suit-diamond-fill': , 'plone.icon.suit-heart': , 'plone.icon.suit-heart-fill': , 'plone.icon.suit-spade': , 'plone.icon.suit-spade-fill': , 'plone.icon.suitcase': , 'plone.icon.suitcase-fill': , 'plone.icon.suitcase-lg': , 'plone.icon.suitcase-lg-fill': , 'plone.icon.suitcase2': , 'plone.icon.suitcase2-fill': , 'plone.icon.sun': , 'plone.icon.sun-fill': , 'plone.icon.sunglasses': , 'plone.icon.sunrise': , 'plone.icon.sunrise-fill': , 'plone.icon.sunset': , 'plone.icon.sunset-fill': , 'plone.icon.superscript': , 'plone.icon.symmetry-horizontal': , 'plone.icon.symmetry-vertical': , 'plone.icon.table': , 'plone.icon.tablet': , 'plone.icon.tablet-fill': , 'plone.icon.tablet-landscape': , 'plone.icon.tablet-landscape-fill': , 'plone.icon.tag': , 'plone.icon.tag-fill': , 'plone.icon.tags': , 'plone.icon.tags-fill': , 'plone.icon.taxi-front': , 'plone.icon.taxi-front-fill': , 'plone.icon.telegram': , 'plone.icon.telephone': , 'plone.icon.telephone-fill': , 'plone.icon.telephone-forward': , 'plone.icon.telephone-forward-fill': , 'plone.icon.telephone-inbound': , 'plone.icon.telephone-inbound-fill': , 'plone.icon.telephone-minus': , 'plone.icon.telephone-minus-fill': , 'plone.icon.telephone-outbound': , 'plone.icon.telephone-outbound-fill': , 'plone.icon.telephone-plus': , 'plone.icon.telephone-plus-fill': , 'plone.icon.telephone-x': , 'plone.icon.telephone-x-fill': , 'plone.icon.tencent-qq': , 'plone.icon.terminal': , 'plone.icon.terminal-dash': , 'plone.icon.terminal-fill': , 'plone.icon.terminal-plus': , 'plone.icon.terminal-split': , 'plone.icon.terminal-x': , 'plone.icon.text-center': , 'plone.icon.text-indent-left': , 'plone.icon.text-indent-right': , 'plone.icon.text-left': , 'plone.icon.text-paragraph': , 'plone.icon.text-right': , 'plone.icon.text-wrap': , 'plone.icon.textarea': , 'plone.icon.textarea-resize': , 'plone.icon.textarea-t': , 'plone.icon.thermometer': , 'plone.icon.thermometer-half': , 'plone.icon.thermometer-high': , 'plone.icon.thermometer-low': , 'plone.icon.thermometer-snow': , 'plone.icon.thermometer-sun': , 'plone.icon.threads': , 'plone.icon.threads-fill': , 'plone.icon.three-dots': , 'plone.icon.three-dots-vertical': , 'plone.icon.thunderbolt': , 'plone.icon.thunderbolt-fill': , 'plone.icon.ticket': , 'plone.icon.ticket-detailed': , 'plone.icon.ticket-detailed-fill': , 'plone.icon.ticket-fill': , 'plone.icon.ticket-perforated': , 'plone.icon.ticket-perforated-fill': , 'plone.icon.tiktok': , 'plone.icon.toggle-off': , 'plone.icon.toggle-on': , 'plone.icon.toggle2-off': , 'plone.icon.toggle2-on': , 'plone.icon.toggles': , 'plone.icon.toggles2': , 'plone.icon.toolbar-action': , 'plone.icon.toolbar-action/actions': , 'plone.icon.toolbar-action/display': , 'plone.icon.toolbar-action/edit': , 'plone.icon.toolbar-action/factories': , 'plone.icon.toolbar-action/folderContents': , 'plone.icon.toolbar-action/history': , 'plone.icon.toolbar-action/personaltools': , 'plone.icon.toolbar-action/portlets': , 'plone.icon.toolbar-action/sharing': , 'plone.icon.toolbar-action/state': , 'plone.icon.toolbar-action/view': , 'plone.icon.toolbar-action/workflow': , 'plone.icon.tools': , 'plone.icon.tornado': , 'plone.icon.train-freight-front': , 'plone.icon.train-freight-front-fill': , 'plone.icon.train-front': , 'plone.icon.train-front-fill': , 'plone.icon.train-lightrail-front': , 'plone.icon.train-lightrail-front-fill': , 'plone.icon.translate': , 'plone.icon.transparency': , 'plone.icon.trash': , 'plone.icon.trash-fill': , 'plone.icon.trash2': , 'plone.icon.trash2-fill': , 'plone.icon.trash3': , 'plone.icon.trash3-fill': , 'plone.icon.tree': , 'plone.icon.tree-fill': , 'plone.icon.trello': , 'plone.icon.triangle': , 'plone.icon.triangle-fill': , 'plone.icon.triangle-half': , 'plone.icon.trophy': , 'plone.icon.trophy-fill': , 'plone.icon.tropical-storm': , 'plone.icon.truck': , 'plone.icon.truck-flatbed': , 'plone.icon.truck-front': , 'plone.icon.truck-front-fill': , 'plone.icon.tsunami': , 'plone.icon.tv': , 'plone.icon.tv-fill': , 'plone.icon.twitch': , 'plone.icon.twitter': , 'plone.icon.twitter-x': , 'plone.icon.type': , 'plone.icon.type-bold': , 'plone.icon.type-h1': , 'plone.icon.type-h2': , 'plone.icon.type-h3': , 'plone.icon.type-h4': , 'plone.icon.type-h5': , 'plone.icon.type-h6': , 'plone.icon.type-italic': , 'plone.icon.type-strikethrough': , 'plone.icon.type-underline': , 'plone.icon.ubuntu': , 'plone.icon.ui-checks': , 'plone.icon.ui-checks-grid': , 'plone.icon.ui-radios': , 'plone.icon.ui-radios-grid': , 'plone.icon.umbrella': , 'plone.icon.umbrella-fill': , 'plone.icon.unindent': , 'plone.icon.union': , 'plone.icon.unity': , 'plone.icon.universal-access': , 'plone.icon.universal-access-circle': , 'plone.icon.unlock': , 'plone.icon.unlock-fill': , 'plone.icon.upc': , 'plone.icon.upc-scan': , 'plone.icon.upload': , 'plone.icon.usb': , 'plone.icon.usb-c': , 'plone.icon.usb-c-fill': , 'plone.icon.usb-drive': , 'plone.icon.usb-drive-fill': , 'plone.icon.usb-fill': , 'plone.icon.usb-micro': , 'plone.icon.usb-micro-fill': , 'plone.icon.usb-mini': , 'plone.icon.usb-mini-fill': , 'plone.icon.usb-plug': , 'plone.icon.usb-plug-fill': , 'plone.icon.usb-symbol': , 'plone.icon.valentine': , 'plone.icon.valentine2': , 'plone.icon.vector-pen': , 'plone.icon.view-list': , 'plone.icon.view-stacked': , 'plone.icon.vignette': , 'plone.icon.vimeo': , 'plone.icon.vinyl': , 'plone.icon.vinyl-fill': , 'plone.icon.virus': , 'plone.icon.virus2': , 'plone.icon.voicemail': , 'plone.icon.volume-down': , 'plone.icon.volume-down-fill': , 'plone.icon.volume-mute': , 'plone.icon.volume-mute-fill': , 'plone.icon.volume-off': , 'plone.icon.volume-off-fill': , 'plone.icon.volume-up': , 'plone.icon.volume-up-fill': , 'plone.icon.vr': , 'plone.icon.wallet': , 'plone.icon.wallet-fill': , 'plone.icon.wallet2': , 'plone.icon.watch': , 'plone.icon.water': , 'plone.icon.webcam': , 'plone.icon.webcam-fill': , 'plone.icon.wechat': , 'plone.icon.whatsapp': , 'plone.icon.wifi': , 'plone.icon.wifi-1': , 'plone.icon.wifi-2': , 'plone.icon.wifi-off': , 'plone.icon.wikipedia': , 'plone.icon.wind': , 'plone.icon.window': , 'plone.icon.window-dash': , 'plone.icon.window-desktop': , 'plone.icon.window-dock': , 'plone.icon.window-fullscreen': , 'plone.icon.window-plus': , 'plone.icon.window-sidebar': , 'plone.icon.window-split': , 'plone.icon.window-stack': , 'plone.icon.window-x': , 'plone.icon.windows': , 'plone.icon.wordpress': , 'plone.icon.wrench': , 'plone.icon.wrench-adjustable': , 'plone.icon.wrench-adjustable-circle': , 'plone.icon.wrench-adjustable-circle-fill': , 'plone.icon.x': , 'plone.icon.x-circle': , 'plone.icon.x-circle-fill': , 'plone.icon.x-diamond': , 'plone.icon.x-diamond-fill': , 'plone.icon.x-lg': , 'plone.icon.x-octagon': , 'plone.icon.x-octagon-fill': , 'plone.icon.x-square': , 'plone.icon.x-square-fill': , 'plone.icon.xbox': , 'plone.icon.yelp': , 'plone.icon.yin-yang': , 'plone.icon.youtube': , 'plone.icon.zoom-in': , 'plone.icon.zoom-out': , 'plone.icon_visibility': , 'plone.image_captioning': , 'plone.image_objects': , 'plone.inline': , 'plone.inline_styles': , 'plone.libraries_atd_ignore_strings': , 'plone.libraries_atd_service_url': , 'plone.libraries_atd_show_types': , 'plone.libraries_spellchecker_choice': , 'plone.lock_on_ttw_edit': , 'plone.many_groups': , 'plone.many_users': , 'plone.mark_special_links': , 'plone.markdown_extensions': , 'plone.menu': , 'plone.menubar': , 'plone.nasty_tags': , 'plone.navigation_depth': , 'plone.no_thumbs_lists': , 'plone.no_thumbs_portlet': , 'plone.no_thumbs_summary': , 'plone.no_thumbs_tables': , 'plone.nonfolderish_tabs': , 'plone.other_settings': , 'plone.parent_types_not_to_query': , 'plone.patternoptions': , 'plone.picture_variants': , 'plone.plugins': , 'plone.portal_timezone': , 'plone.quality': , 'plone.quality_2x': , 'plone.quality_3x': , 'plone.redirect_links': , 'plone.resizing': , 'plone.resources.development': , 'plone.robots_txt': , 'plone.roles_allowed_to_add_keywords': , 'plone.root': , 'plone.search_image_scale': , 'plone.search_results_description_length': , 'plone.search_show_images': , 'plone.set_cookie_always': , 'plone.share_social_data': , 'plone.show_excluded_items': , 'plone.site_favicon': , 'plone.site_favicon_mimetype': , 'plone.site_logo': , 'plone.site_title': , 'plone.sitemap_depth': , 'plone.smtp_host': , 'plone.smtp_pass': , 'plone.smtp_port': , 'plone.smtp_userid': , 'plone.sort_on': , 'plone.sort_tabs_on': , 'plone.sort_tabs_reversed': , 'plone.subjects_of_navigation_root': , 'plone.table_styles': , 'plone.templates': , 'plone.thumb_scale_listing': , 'plone.thumb_scale_portlet': , 'plone.thumb_scale_summary': , 'plone.thumb_scale_table': , 'plone.thumb_visibility': , 'plone.toolbar': , 'plone.toolbar_logo': , 'plone.toolbar_position': , 'plone.twitter_username': , 'plone.types_not_searched': , 'plone.types_use_view_action_in_listings': , 'plone.use_cctld_negotiation': , 'plone.use_combined_language_codes': , 'plone.use_content_negotiation': , 'plone.use_cookie_negotiation': , 'plone.use_email_as_login': , 'plone.use_path_negotiation': , 'plone.use_request_negotiation': , 'plone.use_subdomain_negotiation': , 'plone.use_uuid_as_userid': , 'plone.valid_tags': , 'plone.verify_login_name': , 'plone.webstats_head_js': , 'plone.webstats_js': , 'plone.workflow_states_to_show': }), , '')", + "traceback": [ + "File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 181, in transaction_pubevents", + " yield", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 391, in publish_module", + " response = _publish(request, new_mod_info)", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 285, in publish", + " result = mapply(obj,", + " ^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/mapply.py\", line 98, in mapply", + " return debug(object, args, context)", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 68, in call_object", + " return obj(*args)", + " ^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/plone.rest-4.1.3-py3.12.egg/plone/rest/service.py\", line 21, in __call__", + " return self.render()", + " ^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/__init__.py\", line 19, in render", + " content = self.reply()", + " ^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/registry/get.py\", line 45, in reply", + " serializer = getMultiAdapter(", + " ^^^^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/zope.component-6.0-py3.12.egg/zope/component/_api.py\", line 113, in getMultiAdapter", + " raise ComponentLookupError(objects, interface, name)" ], - "items_total": 2973 + "type": "ComponentLookupError" } diff --git a/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp index 8962fb5d70..dcafa863c5 100644 --- a/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp +++ b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp @@ -1,57 +1,42 @@ -HTTP/1.1 200 OK +HTTP/1.1 500 Internal Server Error Content-Type: application/json { - "@id": "http://localhost:55001/plone/@registry?q=Products.CMFPlone", - "items": [ - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.Enabled", - "schema": { - "properties": { - "description": "Override the translation machinery", - "factory": "Yes/No", - "title": "Enabled", - "type": "boolean" - } - }, - "value": false - }, - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_long", - "schema": { - "properties": { - "description": "Default value: %Y-%m-%d %H:%M (2038-01-19 03:14)", - "factory": "Text line (String)", - "title": "old ZMI property: localLongTimeFormat", - "type": "string" - } - }, - "value": "%Y-%m-%d %H:%M" - }, - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_short", - "schema": { - "properties": { - "description": "Default value: %Y-%m-%d (2038-01-19)", - "factory": "Text line (String)", - "title": "old ZMI property: localTimeFormat", - "type": "string" - } - }, - "value": "%Y-%m-%d" - }, - { - "name": "Products.CMFPlone.i18nl10n.override_dateformat.time_format", - "schema": { - "properties": { - "description": "Default value: %H:%M (03:14)", - "factory": "Text line (String)", - "title": "old ZMI property: localTimeOnlyFormat", - "type": "string" - } - }, - "value": "%H:%M" - } + "message": "((>, , {'Products.CMFPlone.i18nl10n.override_dateformat.Enabled': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_long': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_short': , 'Products.CMFPlone.i18nl10n.override_dateformat.time_format': }), , '')", + "traceback": [ + "File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 181, in transaction_pubevents", + " yield", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 391, in publish_module", + " response = _publish(request, new_mod_info)", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 285, in publish", + " result = mapply(obj,", + " ^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/mapply.py\", line 98, in mapply", + " return debug(object, args, context)", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 68, in call_object", + " return obj(*args)", + " ^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/plone.rest-4.1.3-py3.12.egg/plone/rest/service.py\", line 21, in __call__", + " return self.render()", + " ^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/__init__.py\", line 19, in render", + " content = self.reply()", + " ^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/registry/get.py\", line 45, in reply", + " serializer = getMultiAdapter(", + " ^^^^^^^^^^^^^^^^", + "", + " File \"/home/f/w/oss/plone/plone.restapi/eggs/zope.component-6.0-py3.12.egg/zope/component/_api.py\", line 113, in getMultiAdapter", + " raise ComponentLookupError(objects, interface, name)" ], - "items_total": 4 + "type": "ComponentLookupError" } diff --git a/src/plone/restapi/tests/test_registry.py b/src/plone/restapi/tests/test_registry.py index 61a266b644..069ca363cb 100644 --- a/src/plone/restapi/tests/test_registry.py +++ b/src/plone/restapi/tests/test_registry.py @@ -107,3 +107,12 @@ def test_get_listing(self): self.assertIn("items", response) self.assertIn("batching", response) self.assertIn("next", response["batching"]) + + def test_get_filtered_listing(self): + response = self.api_session.get("/@registry?q=foo.bar1") + self.assertEqual(response.status_code, 200) + response = response.json() + # 10 records from foo.bar10 to foo.bar19 and 1 record foo.bar1 + self.assertEqual(len(response["items"]), 11) + self.assertEqual(response["items"][0]["name"], "foo.bar1") + self.assertEqual(response["items"][0]["value"], "Lorem Ipsum") diff --git a/src/plone/restapi/tests/test_registry_serializer.py b/src/plone/restapi/tests/test_registry_serializer.py index 8386d87bb9..01565854c1 100644 --- a/src/plone/restapi/tests/test_registry_serializer.py +++ b/src/plone/restapi/tests/test_registry_serializer.py @@ -51,16 +51,3 @@ def test_structure(self): self.assertEqual(set(item["schema"]), {"properties"}) self.assertEqual(item["name"], "foo.bar") self.assertEqual(item["value"], "Lorem Ipsum") - - def test_filtered(self): - registry = Registry() - registry.records["foo.bar"] = Record( - field.TextLine(title="Foo Bar"), "Lorem Ipsum" - ) - registry.records["foo.baz"] = Record( - field.TextLine(title="Foo Baz"), "Lorem Ipsum" - ) - obj = self.serialize(registry, [registry.records["foo.bar"]]) - self.assertEqual(len(obj["items"]), 1) - self.assertEqual(obj["items"][0]["name"], "foo.bar") - self.assertEqual(obj["items"][0]["value"], "Lorem Ipsum") From e18916425c38394fb516c9bccc23fe7956905a54 Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Mon, 20 Jan 2025 03:44:23 +0500 Subject: [PATCH 05/10] udpate http resp files --- .../http-examples/registry_get_list.resp | 459 ++++++++++++++++-- .../registry_get_list_filtered.resp | 89 ++-- 2 files changed, 474 insertions(+), 74 deletions(-) diff --git a/src/plone/restapi/tests/http-examples/registry_get_list.resp b/src/plone/restapi/tests/http-examples/registry_get_list.resp index 5643d0301b..f172b2c8d1 100644 --- a/src/plone/restapi/tests/http-examples/registry_get_list.resp +++ b/src/plone/restapi/tests/http-examples/registry_get_list.resp @@ -1,42 +1,427 @@ -HTTP/1.1 500 Internal Server Error +HTTP/1.1 200 OK Content-Type: application/json { - "message": "((>, , {'Products.CMFPlone.i18nl10n.override_dateformat.Enabled': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_long': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_short': , 'Products.CMFPlone.i18nl10n.override_dateformat.time_format': , 'plone.alignment_styles': , 'plone.allow_anon_views_about': , 'plone.allow_external_login_sites': , 'plone.allowed_sizes': , 'plone.allowed_types': , 'plone.always_show_selector': , 'plone.app.discussion.interfaces.IDiscussionSettings.anonymous_comments': , 'plone.app.discussion.interfaces.IDiscussionSettings.anonymous_email_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.captcha': , 'plone.app.discussion.interfaces.IDiscussionSettings.delete_own_comment_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.edit_comment_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.globally_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.moderation_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.moderator_email': , 'plone.app.discussion.interfaces.IDiscussionSettings.moderator_notification_enabled': , 'plone.app.discussion.interfaces.IDiscussionSettings.show_commenter_image': , 'plone.app.discussion.interfaces.IDiscussionSettings.text_transform': , 'plone.app.discussion.interfaces.IDiscussionSettings.user_notification_enabled': , 'plone.app.layout.globals.bodyClass.depth': , 'plone.app.portlets.PortletManagerBlacklist': , 'plone.app.querystring.field.Creator.description': , 'plone.app.querystring.field.Creator.enabled': , 'plone.app.querystring.field.Creator.fetch_vocabulary': , 'plone.app.querystring.field.Creator.group': , 'plone.app.querystring.field.Creator.operations': , 'plone.app.querystring.field.Creator.sortable': , 'plone.app.querystring.field.Creator.title': , 'plone.app.querystring.field.Creator.vocabulary': , 'plone.app.querystring.field.Description.description': , 'plone.app.querystring.field.Description.enabled': , 'plone.app.querystring.field.Description.fetch_vocabulary': , 'plone.app.querystring.field.Description.group': , 'plone.app.querystring.field.Description.operations': , 'plone.app.querystring.field.Description.sortable': , 'plone.app.querystring.field.Description.title': , 'plone.app.querystring.field.Description.vocabulary': , 'plone.app.querystring.field.SearchableText.description': , 'plone.app.querystring.field.SearchableText.enabled': , 'plone.app.querystring.field.SearchableText.fetch_vocabulary': , 'plone.app.querystring.field.SearchableText.group': , 'plone.app.querystring.field.SearchableText.operations': , 'plone.app.querystring.field.SearchableText.sortable': , 'plone.app.querystring.field.SearchableText.title': , 'plone.app.querystring.field.SearchableText.vocabulary': , 'plone.app.querystring.field.Subject.description': , 'plone.app.querystring.field.Subject.enabled': , 'plone.app.querystring.field.Subject.fetch_vocabulary': , 'plone.app.querystring.field.Subject.group': , 'plone.app.querystring.field.Subject.operations': , 'plone.app.querystring.field.Subject.sortable': , 'plone.app.querystring.field.Subject.title': , 'plone.app.querystring.field.Subject.vocabulary': , 'plone.app.querystring.field.Title.description': , 'plone.app.querystring.field.Title.enabled': , 'plone.app.querystring.field.Title.fetch_vocabulary': , 'plone.app.querystring.field.Title.group': , 'plone.app.querystring.field.Title.operations': , 'plone.app.querystring.field.Title.sortable': , 'plone.app.querystring.field.Title.title': , 'plone.app.querystring.field.Title.vocabulary': , 'plone.app.querystring.field.created.description': , 'plone.app.querystring.field.created.enabled': , 'plone.app.querystring.field.created.fetch_vocabulary': , 'plone.app.querystring.field.created.group': , 'plone.app.querystring.field.created.operations': , 'plone.app.querystring.field.created.sortable': , 'plone.app.querystring.field.created.title': , 'plone.app.querystring.field.created.vocabulary': , 'plone.app.querystring.field.effective.description': , 'plone.app.querystring.field.effective.enabled': , 'plone.app.querystring.field.effective.fetch_vocabulary': , 'plone.app.querystring.field.effective.group': , 'plone.app.querystring.field.effective.operations': , 'plone.app.querystring.field.effective.sortable': , 'plone.app.querystring.field.effective.title': , 'plone.app.querystring.field.effective.vocabulary': , 'plone.app.querystring.field.effectiveRange.description': , 'plone.app.querystring.field.effectiveRange.enabled': , 'plone.app.querystring.field.effectiveRange.fetch_vocabulary': , 'plone.app.querystring.field.effectiveRange.group': , 'plone.app.querystring.field.effectiveRange.operations': , 'plone.app.querystring.field.effectiveRange.sortable': , 'plone.app.querystring.field.effectiveRange.title': , 'plone.app.querystring.field.effectiveRange.vocabulary': , 'plone.app.querystring.field.end.description': , 'plone.app.querystring.field.end.enabled': , 'plone.app.querystring.field.end.fetch_vocabulary': , 'plone.app.querystring.field.end.group': , 'plone.app.querystring.field.end.operations': , 'plone.app.querystring.field.end.sortable': , 'plone.app.querystring.field.end.title': , 'plone.app.querystring.field.end.vocabulary': , 'plone.app.querystring.field.expires.description': , 'plone.app.querystring.field.expires.enabled': , 'plone.app.querystring.field.expires.fetch_vocabulary': , 'plone.app.querystring.field.expires.group': , 'plone.app.querystring.field.expires.operations': , 'plone.app.querystring.field.expires.sortable': , 'plone.app.querystring.field.expires.title': , 'plone.app.querystring.field.expires.vocabulary': , 'plone.app.querystring.field.getId.description': , 'plone.app.querystring.field.getId.enabled': , 'plone.app.querystring.field.getId.fetch_vocabulary': , 'plone.app.querystring.field.getId.group': , 'plone.app.querystring.field.getId.operations': , 'plone.app.querystring.field.getId.sortable': , 'plone.app.querystring.field.getId.title': , 'plone.app.querystring.field.getId.vocabulary': , 'plone.app.querystring.field.getObjPositionInParent.description': , 'plone.app.querystring.field.getObjPositionInParent.enabled': , 'plone.app.querystring.field.getObjPositionInParent.fetch_vocabulary': , 'plone.app.querystring.field.getObjPositionInParent.group': , 'plone.app.querystring.field.getObjPositionInParent.operations': , 'plone.app.querystring.field.getObjPositionInParent.sortable': , 'plone.app.querystring.field.getObjPositionInParent.title': , 'plone.app.querystring.field.getObjPositionInParent.vocabulary': , 'plone.app.querystring.field.getRawRelatedItems.description': , 'plone.app.querystring.field.getRawRelatedItems.enabled': , 'plone.app.querystring.field.getRawRelatedItems.fetch_vocabulary': , 'plone.app.querystring.field.getRawRelatedItems.group': , 'plone.app.querystring.field.getRawRelatedItems.operations': , 'plone.app.querystring.field.getRawRelatedItems.sortable': , 'plone.app.querystring.field.getRawRelatedItems.title': , 'plone.app.querystring.field.getRawRelatedItems.vocabulary': , 'plone.app.querystring.field.isDefaultPage.description': , 'plone.app.querystring.field.isDefaultPage.enabled': , 'plone.app.querystring.field.isDefaultPage.fetch_vocabulary': , 'plone.app.querystring.field.isDefaultPage.group': , 'plone.app.querystring.field.isDefaultPage.operations': , 'plone.app.querystring.field.isDefaultPage.sortable': , 'plone.app.querystring.field.isDefaultPage.title': , 'plone.app.querystring.field.isDefaultPage.vocabulary': , 'plone.app.querystring.field.isFolderish.description': , 'plone.app.querystring.field.isFolderish.enabled': , 'plone.app.querystring.field.isFolderish.fetch_vocabulary': , 'plone.app.querystring.field.isFolderish.group': , 'plone.app.querystring.field.isFolderish.operations': , 'plone.app.querystring.field.isFolderish.sortable': , 'plone.app.querystring.field.isFolderish.title': , 'plone.app.querystring.field.isFolderish.vocabulary': , 'plone.app.querystring.field.modified.description': , 'plone.app.querystring.field.modified.enabled': , 'plone.app.querystring.field.modified.fetch_vocabulary': , 'plone.app.querystring.field.modified.group': , 'plone.app.querystring.field.modified.operations': , 'plone.app.querystring.field.modified.sortable': , 'plone.app.querystring.field.modified.title': , 'plone.app.querystring.field.modified.vocabulary': , 'plone.app.querystring.field.path.description': , 'plone.app.querystring.field.path.enabled': , 'plone.app.querystring.field.path.fetch_vocabulary': , 'plone.app.querystring.field.path.group': , 'plone.app.querystring.field.path.operations': , 'plone.app.querystring.field.path.sortable': , 'plone.app.querystring.field.path.title': , 'plone.app.querystring.field.path.vocabulary': , 'plone.app.querystring.field.portal_type.description': , 'plone.app.querystring.field.portal_type.enabled': , 'plone.app.querystring.field.portal_type.fetch_vocabulary': , 'plone.app.querystring.field.portal_type.group': , 'plone.app.querystring.field.portal_type.operations': , 'plone.app.querystring.field.portal_type.sortable': , 'plone.app.querystring.field.portal_type.title': , 'plone.app.querystring.field.portal_type.vocabulary': , 'plone.app.querystring.field.review_state.description': , 'plone.app.querystring.field.review_state.enabled': , 'plone.app.querystring.field.review_state.fetch_vocabulary': , 'plone.app.querystring.field.review_state.group': , 'plone.app.querystring.field.review_state.operations': , 'plone.app.querystring.field.review_state.sortable': , 'plone.app.querystring.field.review_state.title': , 'plone.app.querystring.field.review_state.vocabulary': , 'plone.app.querystring.field.show_inactive.description': , 'plone.app.querystring.field.show_inactive.enabled': , 'plone.app.querystring.field.show_inactive.fetch_vocabulary': , 'plone.app.querystring.field.show_inactive.group': , 'plone.app.querystring.field.show_inactive.operations': , 'plone.app.querystring.field.show_inactive.sortable': , 'plone.app.querystring.field.show_inactive.title': , 'plone.app.querystring.field.show_inactive.vocabulary': , 'plone.app.querystring.field.sortable_title.description': , 'plone.app.querystring.field.sortable_title.enabled': , 'plone.app.querystring.field.sortable_title.fetch_vocabulary': , 'plone.app.querystring.field.sortable_title.group': , 'plone.app.querystring.field.sortable_title.operations': , 'plone.app.querystring.field.sortable_title.sortable': , 'plone.app.querystring.field.sortable_title.title': , 'plone.app.querystring.field.sortable_title.vocabulary': , 'plone.app.querystring.field.start.description': , 'plone.app.querystring.field.start.enabled': , 'plone.app.querystring.field.start.fetch_vocabulary': , 'plone.app.querystring.field.start.group': , 'plone.app.querystring.field.start.operations': , 'plone.app.querystring.field.start.sortable': , 'plone.app.querystring.field.start.title': , 'plone.app.querystring.field.start.vocabulary': , 'plone.app.querystring.operation.boolean.isFalse.description': , 'plone.app.querystring.operation.boolean.isFalse.operation': , 'plone.app.querystring.operation.boolean.isFalse.title': , 'plone.app.querystring.operation.boolean.isFalse.widget': , 'plone.app.querystring.operation.boolean.isTrue.description': , 'plone.app.querystring.operation.boolean.isTrue.operation': , 'plone.app.querystring.operation.boolean.isTrue.title': , 'plone.app.querystring.operation.boolean.isTrue.widget': , 'plone.app.querystring.operation.date.afterRelativeDate.description': , 'plone.app.querystring.operation.date.afterRelativeDate.operation': , 'plone.app.querystring.operation.date.afterRelativeDate.title': , 'plone.app.querystring.operation.date.afterRelativeDate.widget': , 'plone.app.querystring.operation.date.afterToday.description': , 'plone.app.querystring.operation.date.afterToday.operation': , 'plone.app.querystring.operation.date.afterToday.title': , 'plone.app.querystring.operation.date.afterToday.widget': , 'plone.app.querystring.operation.date.beforeRelativeDate.description': , 'plone.app.querystring.operation.date.beforeRelativeDate.operation': , 'plone.app.querystring.operation.date.beforeRelativeDate.title': , 'plone.app.querystring.operation.date.beforeRelativeDate.widget': , 'plone.app.querystring.operation.date.beforeToday.description': , 'plone.app.querystring.operation.date.beforeToday.operation': , 'plone.app.querystring.operation.date.beforeToday.title': , 'plone.app.querystring.operation.date.beforeToday.widget': , 'plone.app.querystring.operation.date.between.description': , 'plone.app.querystring.operation.date.between.operation': , 'plone.app.querystring.operation.date.between.title': , 'plone.app.querystring.operation.date.between.widget': , 'plone.app.querystring.operation.date.largerThan.description': , 'plone.app.querystring.operation.date.largerThan.operation': , 'plone.app.querystring.operation.date.largerThan.title': , 'plone.app.querystring.operation.date.largerThan.widget': , 'plone.app.querystring.operation.date.largerThanRelativeDate.description': , 'plone.app.querystring.operation.date.largerThanRelativeDate.operation': , 'plone.app.querystring.operation.date.largerThanRelativeDate.title': , 'plone.app.querystring.operation.date.largerThanRelativeDate.widget': , 'plone.app.querystring.operation.date.lessThan.description': , 'plone.app.querystring.operation.date.lessThan.operation': , 'plone.app.querystring.operation.date.lessThan.title': , 'plone.app.querystring.operation.date.lessThan.widget': , 'plone.app.querystring.operation.date.lessThanRelativeDate.description': , 'plone.app.querystring.operation.date.lessThanRelativeDate.operation': , 'plone.app.querystring.operation.date.lessThanRelativeDate.title': , 'plone.app.querystring.operation.date.lessThanRelativeDate.widget': , 'plone.app.querystring.operation.date.today.description': , 'plone.app.querystring.operation.date.today.operation': , 'plone.app.querystring.operation.date.today.title': , 'plone.app.querystring.operation.date.today.widget': , 'plone.app.querystring.operation.int.is.description': , 'plone.app.querystring.operation.int.is.operation': , 'plone.app.querystring.operation.int.is.title': , 'plone.app.querystring.operation.int.is.widget': , 'plone.app.querystring.operation.int.largerThan.description': , 'plone.app.querystring.operation.int.largerThan.operation': , 'plone.app.querystring.operation.int.largerThan.title': , 'plone.app.querystring.operation.int.largerThan.widget': , 'plone.app.querystring.operation.int.lessThan.description': , 'plone.app.querystring.operation.int.lessThan.operation': , 'plone.app.querystring.operation.int.lessThan.title': , 'plone.app.querystring.operation.int.lessThan.widget': , 'plone.app.querystring.operation.intselection.is.description': , 'plone.app.querystring.operation.intselection.is.operation': , 'plone.app.querystring.operation.intselection.is.title': , 'plone.app.querystring.operation.intselection.is.widget': , 'plone.app.querystring.operation.list.contains.description': , 'plone.app.querystring.operation.list.contains.operation': , 'plone.app.querystring.operation.list.contains.title': , 'plone.app.querystring.operation.list.contains.widget': , 'plone.app.querystring.operation.path.isWithin.description': , 'plone.app.querystring.operation.path.isWithin.operation': , 'plone.app.querystring.operation.path.isWithin.title': , 'plone.app.querystring.operation.path.isWithin.widget': , 'plone.app.querystring.operation.path.isWithinRelative.description': , 'plone.app.querystring.operation.path.isWithinRelative.operation': , 'plone.app.querystring.operation.path.isWithinRelative.title': , 'plone.app.querystring.operation.path.isWithinRelative.widget': , 'plone.app.querystring.operation.reference.is.description': , 'plone.app.querystring.operation.reference.is.operation': , 'plone.app.querystring.operation.reference.is.title': , 'plone.app.querystring.operation.reference.is.widget': , 'plone.app.querystring.operation.selection.all.description': , 'plone.app.querystring.operation.selection.all.operation': , 'plone.app.querystring.operation.selection.all.title': , 'plone.app.querystring.operation.selection.all.widget': , 'plone.app.querystring.operation.selection.any.description': , 'plone.app.querystring.operation.selection.any.operation': , 'plone.app.querystring.operation.selection.any.title': , 'plone.app.querystring.operation.selection.any.widget': , 'plone.app.querystring.operation.selection.is.description': , 'plone.app.querystring.operation.selection.is.operation': , 'plone.app.querystring.operation.selection.is.title': , 'plone.app.querystring.operation.selection.is.widget': , 'plone.app.querystring.operation.selection.none.description': , 'plone.app.querystring.operation.selection.none.operation': , 'plone.app.querystring.operation.selection.none.title': , 'plone.app.querystring.operation.selection.none.widget': , 'plone.app.querystring.operation.string.absolutePath.description': , 'plone.app.querystring.operation.string.absolutePath.operation': , 'plone.app.querystring.operation.string.absolutePath.title': , 'plone.app.querystring.operation.string.absolutePath.widget': , 'plone.app.querystring.operation.string.contains.description': , 'plone.app.querystring.operation.string.contains.operation': , 'plone.app.querystring.operation.string.contains.title': , 'plone.app.querystring.operation.string.contains.widget': , 'plone.app.querystring.operation.string.currentUser.description': , 'plone.app.querystring.operation.string.currentUser.operation': , 'plone.app.querystring.operation.string.currentUser.title': , 'plone.app.querystring.operation.string.currentUser.widget': , 'plone.app.querystring.operation.string.is.description': , 'plone.app.querystring.operation.string.is.operation': , 'plone.app.querystring.operation.string.is.title': , 'plone.app.querystring.operation.string.is.widget': , 'plone.app.querystring.operation.string.isNot.description': , 'plone.app.querystring.operation.string.isNot.operation': , 'plone.app.querystring.operation.string.isNot.title': , 'plone.app.querystring.operation.string.isNot.widget': , 'plone.app.querystring.operation.string.path.description': , 'plone.app.querystring.operation.string.path.operation': , 'plone.app.querystring.operation.string.path.title': , 'plone.app.querystring.operation.string.path.widget': , 'plone.app.querystring.operation.string.relativePath.description': , 'plone.app.querystring.operation.string.relativePath.operation': , 'plone.app.querystring.operation.string.relativePath.title': , 'plone.app.querystring.operation.string.relativePath.widget': , 'plone.app.querystring.operation.string.showInactive.description': , 'plone.app.querystring.operation.string.showInactive.operation': , 'plone.app.querystring.operation.string.showInactive.title': , 'plone.app.querystring.operation.string.showInactive.widget': , 'plone.app.theming.interfaces.IThemeSettings.absolutePrefix': , 'plone.app.theming.interfaces.IThemeSettings.currentTheme': , 'plone.app.theming.interfaces.IThemeSettings.custom_css': , 'plone.app.theming.interfaces.IThemeSettings.custom_css_timestamp': , 'plone.app.theming.interfaces.IThemeSettings.doctype': , 'plone.app.theming.interfaces.IThemeSettings.enabled': , 'plone.app.theming.interfaces.IThemeSettings.hostnameBlacklist': , 'plone.app.theming.interfaces.IThemeSettings.parameterExpressions': , 'plone.app.theming.interfaces.IThemeSettings.readNetwork': , 'plone.app.theming.interfaces.IThemeSettings.rules': , 'plone.auth_cookie_length': , 'plone.authenticated_users_only': , 'plone.autologin_after_password_reset': , 'plone.autoresize': , 'plone.available_editors': , 'plone.available_languages': , 'plone.available_timezones': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.allowed': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.allowed_feed_types': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.default_enabled': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.max_items': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.render_body': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.search_rss_enabled': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.show_author_info': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.show_syndication_button': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.show_syndication_link': , 'plone.base.interfaces.syndication.ISiteSyndicationSettings.site_rss_items': , 'plone.block_styles': , 'plone.bundles/eventedit.compile': , 'plone.bundles/eventedit.csscompilation': , 'plone.bundles/eventedit.depends': , 'plone.bundles/eventedit.develop_css': , 'plone.bundles/eventedit.develop_javascript': , 'plone.bundles/eventedit.enabled': , 'plone.bundles/eventedit.expression': , 'plone.bundles/eventedit.jscompilation': , 'plone.bundles/eventedit.last_compilation': , 'plone.bundles/eventedit.load_async': , 'plone.bundles/eventedit.load_defer': , 'plone.bundles/eventedit.merge_with': , 'plone.bundles/eventedit.resources': , 'plone.bundles/eventedit.stub_js_modules': , 'plone.bundles/plone-fullscreen.compile': , 'plone.bundles/plone-fullscreen.csscompilation': , 'plone.bundles/plone-fullscreen.depends': , 'plone.bundles/plone-fullscreen.develop_css': , 'plone.bundles/plone-fullscreen.develop_javascript': , 'plone.bundles/plone-fullscreen.enabled': , 'plone.bundles/plone-fullscreen.expression': , 'plone.bundles/plone-fullscreen.jscompilation': , 'plone.bundles/plone-fullscreen.last_compilation': , 'plone.bundles/plone-fullscreen.load_async': , 'plone.bundles/plone-fullscreen.load_defer': , 'plone.bundles/plone-fullscreen.merge_with': , 'plone.bundles/plone-fullscreen.resources': , 'plone.bundles/plone-fullscreen.stub_js_modules': , 'plone.bundles/plone.compile': , 'plone.bundles/plone.csscompilation': , 'plone.bundles/plone.depends': , 'plone.bundles/plone.develop_css': , 'plone.bundles/plone.develop_javascript': , 'plone.bundles/plone.enabled': , 'plone.bundles/plone.expression': , 'plone.bundles/plone.jscompilation': , 'plone.bundles/plone.last_compilation': , 'plone.bundles/plone.load_async': , 'plone.bundles/plone.load_defer': , 'plone.bundles/plone.merge_with': , 'plone.bundles/plone.resources': , 'plone.bundles/plone.stub_js_modules': , 'plone.contains_objects': , 'plone.content_css': , 'plone.custom_attributes': , 'plone.custom_buttons': , 'plone.custom_plugins': , 'plone.days': , 'plone.default_editor': , 'plone.default_language': , 'plone.default_page': , 'plone.default_page_types': , 'plone.default_type': , 'plone.disable_filtering': , 'plone.display_flags': , 'plone.display_publication_date_in_byline': , 'plone.displayed_types': , 'plone.editor_height': , 'plone.editor_width': , 'plone.email_charset': , 'plone.email_from_address': , 'plone.email_from_name': , 'plone.enable_link_integrity_checks': , 'plone.enable_livesearch': , 'plone.enable_self_reg': , 'plone.enable_sitemap': , 'plone.enable_user_folders': , 'plone.enable_user_pwd_choice': , 'plone.entity_encoding': , 'plone.exposeDCMetaTags': , 'plone.ext_editor': , 'plone.external_links_open_new_window': , 'plone.external_login_iframe': , 'plone.external_login_url': , 'plone.external_logout_url': , 'plone.facebook_app_id': , 'plone.facebook_username': , 'plone.filter_on_workflow': , 'plone.first_weekday': , 'plone.formats': , 'plone.generate_tabs': , 'plone.header_styles': , 'plone.highpixeldensity_scales': , 'plone.icon.0-circle': , 'plone.icon.0-circle-fill': , 'plone.icon.0-square': , 'plone.icon.0-square-fill': , 'plone.icon.1-circle': , 'plone.icon.1-circle-fill': , 'plone.icon.1-square': , 'plone.icon.1-square-fill': , 'plone.icon.123': , 'plone.icon.2-circle': , 'plone.icon.2-circle-fill': , 'plone.icon.2-square': , 'plone.icon.2-square-fill': , 'plone.icon.3-circle': , 'plone.icon.3-circle-fill': , 'plone.icon.3-square': , 'plone.icon.3-square-fill': , 'plone.icon.4-circle': , 'plone.icon.4-circle-fill': , 'plone.icon.4-square': , 'plone.icon.4-square-fill': , 'plone.icon.5-circle': , 'plone.icon.5-circle-fill': , 'plone.icon.5-square': , 'plone.icon.5-square-fill': , 'plone.icon.6-circle': , 'plone.icon.6-circle-fill': , 'plone.icon.6-square': , 'plone.icon.6-square-fill': , 'plone.icon.7-circle': , 'plone.icon.7-circle-fill': , 'plone.icon.7-square': , 'plone.icon.7-square-fill': , 'plone.icon.8-circle': , 'plone.icon.8-circle-fill': , 'plone.icon.8-square': , 'plone.icon.8-square-fill': , 'plone.icon.9-circle': , 'plone.icon.9-circle-fill': , 'plone.icon.9-square': , 'plone.icon.9-square-fill': , 'plone.icon.activity': , 'plone.icon.airplane': , 'plone.icon.airplane-engines': , 'plone.icon.airplane-engines-fill': , 'plone.icon.airplane-fill': , 'plone.icon.alarm': , 'plone.icon.alarm-fill': , 'plone.icon.alexa': , 'plone.icon.align-bottom': , 'plone.icon.align-center': , 'plone.icon.align-end': , 'plone.icon.align-middle': , 'plone.icon.align-start': , 'plone.icon.align-top': , 'plone.icon.alipay': , 'plone.icon.alphabet': , 'plone.icon.alphabet-uppercase': , 'plone.icon.alt': , 'plone.icon.amazon': , 'plone.icon.amd': , 'plone.icon.android': , 'plone.icon.android2': , 'plone.icon.app': , 'plone.icon.app-indicator': , 'plone.icon.apple': , 'plone.icon.archive': , 'plone.icon.archive-fill': , 'plone.icon.arrow-90deg-down': , 'plone.icon.arrow-90deg-left': , 'plone.icon.arrow-90deg-right': , 'plone.icon.arrow-90deg-up': , 'plone.icon.arrow-bar-down': , 'plone.icon.arrow-bar-left': , 'plone.icon.arrow-bar-right': , 'plone.icon.arrow-bar-up': , 'plone.icon.arrow-clockwise': , 'plone.icon.arrow-counterclockwise': , 'plone.icon.arrow-down': , 'plone.icon.arrow-down-circle': , 'plone.icon.arrow-down-circle-fill': , 'plone.icon.arrow-down-left': , 'plone.icon.arrow-down-left-circle': , 'plone.icon.arrow-down-left-circle-fill': , 'plone.icon.arrow-down-left-square': , 'plone.icon.arrow-down-left-square-fill': , 'plone.icon.arrow-down-right': , 'plone.icon.arrow-down-right-circle': , 'plone.icon.arrow-down-right-circle-fill': , 'plone.icon.arrow-down-right-square': , 'plone.icon.arrow-down-right-square-fill': , 'plone.icon.arrow-down-short': , 'plone.icon.arrow-down-square': , 'plone.icon.arrow-down-square-fill': , 'plone.icon.arrow-down-up': , 'plone.icon.arrow-left': , 'plone.icon.arrow-left-circle': , 'plone.icon.arrow-left-circle-fill': , 'plone.icon.arrow-left-right': , 'plone.icon.arrow-left-short': , 'plone.icon.arrow-left-square': , 'plone.icon.arrow-left-square-fill': , 'plone.icon.arrow-repeat': , 'plone.icon.arrow-return-left': , 'plone.icon.arrow-return-right': , 'plone.icon.arrow-right': , 'plone.icon.arrow-right-circle': , 'plone.icon.arrow-right-circle-fill': , 'plone.icon.arrow-right-short': , 'plone.icon.arrow-right-square': , 'plone.icon.arrow-right-square-fill': , 'plone.icon.arrow-through-heart': , 'plone.icon.arrow-through-heart-fill': , 'plone.icon.arrow-up': , 'plone.icon.arrow-up-circle': , 'plone.icon.arrow-up-circle-fill': , 'plone.icon.arrow-up-left': , 'plone.icon.arrow-up-left-circle': , 'plone.icon.arrow-up-left-circle-fill': , 'plone.icon.arrow-up-left-square': , 'plone.icon.arrow-up-left-square-fill': , 'plone.icon.arrow-up-right': , 'plone.icon.arrow-up-right-circle': , 'plone.icon.arrow-up-right-circle-fill': , 'plone.icon.arrow-up-right-square': , 'plone.icon.arrow-up-right-square-fill': , 'plone.icon.arrow-up-short': , 'plone.icon.arrow-up-square': , 'plone.icon.arrow-up-square-fill': , 'plone.icon.arrows': , 'plone.icon.arrows-angle-contract': , 'plone.icon.arrows-angle-expand': , 'plone.icon.arrows-collapse': , 'plone.icon.arrows-collapse-vertical': , 'plone.icon.arrows-expand': , 'plone.icon.arrows-expand-vertical': , 'plone.icon.arrows-fullscreen': , 'plone.icon.arrows-move': , 'plone.icon.arrows-vertical': , 'plone.icon.aspect-ratio': , 'plone.icon.aspect-ratio-fill': , 'plone.icon.asterisk': , 'plone.icon.at': , 'plone.icon.award': , 'plone.icon.award-fill': , 'plone.icon.back': , 'plone.icon.backpack': , 'plone.icon.backpack-fill': , 'plone.icon.backpack2': , 'plone.icon.backpack2-fill': , 'plone.icon.backpack3': , 'plone.icon.backpack3-fill': , 'plone.icon.backpack4': , 'plone.icon.backpack4-fill': , 'plone.icon.backspace': , 'plone.icon.backspace-fill': , 'plone.icon.backspace-reverse': , 'plone.icon.backspace-reverse-fill': , 'plone.icon.badge-3d': , 'plone.icon.badge-3d-fill': , 'plone.icon.badge-4k': , 'plone.icon.badge-4k-fill': , 'plone.icon.badge-8k': , 'plone.icon.badge-8k-fill': , 'plone.icon.badge-ad': , 'plone.icon.badge-ad-fill': , 'plone.icon.badge-ar': , 'plone.icon.badge-ar-fill': , 'plone.icon.badge-cc': , 'plone.icon.badge-cc-fill': , 'plone.icon.badge-hd': , 'plone.icon.badge-hd-fill': , 'plone.icon.badge-sd': , 'plone.icon.badge-sd-fill': , 'plone.icon.badge-tm': , 'plone.icon.badge-tm-fill': , 'plone.icon.badge-vo': , 'plone.icon.badge-vo-fill': , 'plone.icon.badge-vr': , 'plone.icon.badge-vr-fill': , 'plone.icon.badge-wc': , 'plone.icon.badge-wc-fill': , 'plone.icon.bag': , 'plone.icon.bag-check': , 'plone.icon.bag-check-fill': , 'plone.icon.bag-dash': , 'plone.icon.bag-dash-fill': , 'plone.icon.bag-fill': , 'plone.icon.bag-heart': , 'plone.icon.bag-heart-fill': , 'plone.icon.bag-plus': , 'plone.icon.bag-plus-fill': , 'plone.icon.bag-x': , 'plone.icon.bag-x-fill': , 'plone.icon.balloon': , 'plone.icon.balloon-fill': , 'plone.icon.balloon-heart': , 'plone.icon.balloon-heart-fill': , 'plone.icon.ban': , 'plone.icon.ban-fill': , 'plone.icon.bandaid': , 'plone.icon.bandaid-fill': , 'plone.icon.bank': , 'plone.icon.bank2': , 'plone.icon.bar-chart': , 'plone.icon.bar-chart-fill': , 'plone.icon.bar-chart-line': , 'plone.icon.bar-chart-line-fill': , 'plone.icon.bar-chart-steps': , 'plone.icon.basket': , 'plone.icon.basket-fill': , 'plone.icon.basket2': , 'plone.icon.basket2-fill': , 'plone.icon.basket3': , 'plone.icon.basket3-fill': , 'plone.icon.battery': , 'plone.icon.battery-charging': , 'plone.icon.battery-full': , 'plone.icon.battery-half': , 'plone.icon.behance': , 'plone.icon.bell': , 'plone.icon.bell-fill': , 'plone.icon.bell-slash': , 'plone.icon.bell-slash-fill': , 'plone.icon.bezier': , 'plone.icon.bezier2': , 'plone.icon.bicycle': , 'plone.icon.bing': , 'plone.icon.binoculars': , 'plone.icon.binoculars-fill': , 'plone.icon.blockquote-left': , 'plone.icon.blockquote-right': , 'plone.icon.bluetooth': , 'plone.icon.body-text': , 'plone.icon.book': , 'plone.icon.book-fill': , 'plone.icon.book-half': , 'plone.icon.bookmark': , 'plone.icon.bookmark-check': , 'plone.icon.bookmark-check-fill': , 'plone.icon.bookmark-dash': , 'plone.icon.bookmark-dash-fill': , 'plone.icon.bookmark-fill': , 'plone.icon.bookmark-heart': , 'plone.icon.bookmark-heart-fill': , 'plone.icon.bookmark-plus': , 'plone.icon.bookmark-plus-fill': , 'plone.icon.bookmark-star': , 'plone.icon.bookmark-star-fill': , 'plone.icon.bookmark-x': , 'plone.icon.bookmark-x-fill': , 'plone.icon.bookmarks': , 'plone.icon.bookmarks-fill': , 'plone.icon.bookshelf': , 'plone.icon.boombox': , 'plone.icon.boombox-fill': , 'plone.icon.bootstrap': , 'plone.icon.bootstrap-fill': , 'plone.icon.bootstrap-reboot': , 'plone.icon.border': , 'plone.icon.border-all': , 'plone.icon.border-bottom': , 'plone.icon.border-center': , 'plone.icon.border-inner': , 'plone.icon.border-left': , 'plone.icon.border-middle': , 'plone.icon.border-outer': , 'plone.icon.border-right': , 'plone.icon.border-style': , 'plone.icon.border-top': , 'plone.icon.border-width': , 'plone.icon.bounding-box': , 'plone.icon.bounding-box-circles': , 'plone.icon.box': , 'plone.icon.box-arrow-down': , 'plone.icon.box-arrow-down-left': , 'plone.icon.box-arrow-down-right': , 'plone.icon.box-arrow-in-down': , 'plone.icon.box-arrow-in-down-left': , 'plone.icon.box-arrow-in-down-right': , 'plone.icon.box-arrow-in-left': , 'plone.icon.box-arrow-in-right': , 'plone.icon.box-arrow-in-up': , 'plone.icon.box-arrow-in-up-left': , 'plone.icon.box-arrow-in-up-right': , 'plone.icon.box-arrow-left': , 'plone.icon.box-arrow-right': , 'plone.icon.box-arrow-up': , 'plone.icon.box-arrow-up-left': , 'plone.icon.box-arrow-up-right': , 'plone.icon.box-fill': , 'plone.icon.box-seam': , 'plone.icon.box-seam-fill': , 'plone.icon.box2': , 'plone.icon.box2-fill': , 'plone.icon.box2-heart': , 'plone.icon.box2-heart-fill': , 'plone.icon.boxes': , 'plone.icon.braces': , 'plone.icon.braces-asterisk': , 'plone.icon.bricks': , 'plone.icon.briefcase': , 'plone.icon.briefcase-fill': , 'plone.icon.brightness-alt-high': , 'plone.icon.brightness-alt-high-fill': , 'plone.icon.brightness-alt-low': , 'plone.icon.brightness-alt-low-fill': , 'plone.icon.brightness-high': , 'plone.icon.brightness-high-fill': , 'plone.icon.brightness-low': , 'plone.icon.brightness-low-fill': , 'plone.icon.brilliance': , 'plone.icon.broadcast': , 'plone.icon.broadcast-pin': , 'plone.icon.browser-chrome': , 'plone.icon.browser-edge': , 'plone.icon.browser-firefox': , 'plone.icon.browser-safari': , 'plone.icon.brush': , 'plone.icon.brush-fill': , 'plone.icon.bucket': , 'plone.icon.bucket-fill': , 'plone.icon.bug': , 'plone.icon.bug-fill': , 'plone.icon.building': , 'plone.icon.building-add': , 'plone.icon.building-check': , 'plone.icon.building-dash': , 'plone.icon.building-down': , 'plone.icon.building-exclamation': , 'plone.icon.building-fill': , 'plone.icon.building-fill-add': , 'plone.icon.building-fill-check': , 'plone.icon.building-fill-dash': , 'plone.icon.building-fill-down': , 'plone.icon.building-fill-exclamation': , 'plone.icon.building-fill-gear': , 'plone.icon.building-fill-lock': , 'plone.icon.building-fill-slash': , 'plone.icon.building-fill-up': , 'plone.icon.building-fill-x': , 'plone.icon.building-gear': , 'plone.icon.building-lock': , 'plone.icon.building-slash': , 'plone.icon.building-up': , 'plone.icon.building-x': , 'plone.icon.buildings': , 'plone.icon.buildings-fill': , 'plone.icon.bullseye': , 'plone.icon.bus-front': , 'plone.icon.bus-front-fill': , 'plone.icon.c-circle': , 'plone.icon.c-circle-fill': , 'plone.icon.c-square': , 'plone.icon.c-square-fill': , 'plone.icon.cake': , 'plone.icon.cake-fill': , 'plone.icon.cake2': , 'plone.icon.cake2-fill': , 'plone.icon.calculator': , 'plone.icon.calculator-fill': , 'plone.icon.calendar': , 'plone.icon.calendar-check': , 'plone.icon.calendar-check-fill': , 'plone.icon.calendar-date': , 'plone.icon.calendar-date-fill': , 'plone.icon.calendar-day': , 'plone.icon.calendar-day-fill': , 'plone.icon.calendar-event': , 'plone.icon.calendar-event-fill': , 'plone.icon.calendar-fill': , 'plone.icon.calendar-heart': , 'plone.icon.calendar-heart-fill': , 'plone.icon.calendar-minus': , 'plone.icon.calendar-minus-fill': , 'plone.icon.calendar-month': , 'plone.icon.calendar-month-fill': , 'plone.icon.calendar-plus': , 'plone.icon.calendar-plus-fill': , 'plone.icon.calendar-range': , 'plone.icon.calendar-range-fill': , 'plone.icon.calendar-week': , 'plone.icon.calendar-week-fill': , 'plone.icon.calendar-x': , 'plone.icon.calendar-x-fill': , 'plone.icon.calendar2': , 'plone.icon.calendar2-check': , 'plone.icon.calendar2-check-fill': , 'plone.icon.calendar2-date': , 'plone.icon.calendar2-date-fill': , 'plone.icon.calendar2-day': , 'plone.icon.calendar2-day-fill': , 'plone.icon.calendar2-event': , 'plone.icon.calendar2-event-fill': , 'plone.icon.calendar2-fill': , 'plone.icon.calendar2-heart': , 'plone.icon.calendar2-heart-fill': , 'plone.icon.calendar2-minus': , 'plone.icon.calendar2-minus-fill': , 'plone.icon.calendar2-month': , 'plone.icon.calendar2-month-fill': , 'plone.icon.calendar2-plus': , 'plone.icon.calendar2-plus-fill': , 'plone.icon.calendar2-range': , 'plone.icon.calendar2-range-fill': , 'plone.icon.calendar2-week': , 'plone.icon.calendar2-week-fill': , 'plone.icon.calendar2-x': , 'plone.icon.calendar2-x-fill': , 'plone.icon.calendar3': , 'plone.icon.calendar3-event': , 'plone.icon.calendar3-event-fill': , 'plone.icon.calendar3-fill': , 'plone.icon.calendar3-range': , 'plone.icon.calendar3-range-fill': , 'plone.icon.calendar3-week': , 'plone.icon.calendar3-week-fill': , 'plone.icon.calendar4': , 'plone.icon.calendar4-event': , 'plone.icon.calendar4-range': , 'plone.icon.calendar4-week': , 'plone.icon.camera': , 'plone.icon.camera-fill': , 'plone.icon.camera-reels': , 'plone.icon.camera-reels-fill': , 'plone.icon.camera-video': , 'plone.icon.camera-video-fill': , 'plone.icon.camera-video-off': , 'plone.icon.camera-video-off-fill': , 'plone.icon.camera2': , 'plone.icon.capslock': , 'plone.icon.capslock-fill': , 'plone.icon.capsule': , 'plone.icon.capsule-pill': , 'plone.icon.car-front': , 'plone.icon.car-front-fill': , 'plone.icon.card-checklist': , 'plone.icon.card-heading': , 'plone.icon.card-image': , 'plone.icon.card-list': , 'plone.icon.card-text': , 'plone.icon.caret-down': , 'plone.icon.caret-down-fill': , 'plone.icon.caret-down-square': , 'plone.icon.caret-down-square-fill': , 'plone.icon.caret-left': , 'plone.icon.caret-left-fill': , 'plone.icon.caret-left-square': , 'plone.icon.caret-left-square-fill': , 'plone.icon.caret-right': , 'plone.icon.caret-right-fill': , 'plone.icon.caret-right-square': , 'plone.icon.caret-right-square-fill': , 'plone.icon.caret-up': , 'plone.icon.caret-up-fill': , 'plone.icon.caret-up-square': , 'plone.icon.caret-up-square-fill': , 'plone.icon.cart': , 'plone.icon.cart-check': , 'plone.icon.cart-check-fill': , 'plone.icon.cart-dash': , 'plone.icon.cart-dash-fill': , 'plone.icon.cart-fill': , 'plone.icon.cart-plus': , 'plone.icon.cart-plus-fill': , 'plone.icon.cart-x': , 'plone.icon.cart-x-fill': , 'plone.icon.cart2': , 'plone.icon.cart3': , 'plone.icon.cart4': , 'plone.icon.cash': , 'plone.icon.cash-coin': , 'plone.icon.cash-stack': , 'plone.icon.cassette': , 'plone.icon.cassette-fill': , 'plone.icon.cast': , 'plone.icon.cc-circle': , 'plone.icon.cc-circle-fill': , 'plone.icon.cc-square': , 'plone.icon.cc-square-fill': , 'plone.icon.chat': , 'plone.icon.chat-dots': , 'plone.icon.chat-dots-fill': , 'plone.icon.chat-fill': , 'plone.icon.chat-heart': , 'plone.icon.chat-heart-fill': , 'plone.icon.chat-left': , 'plone.icon.chat-left-dots': , 'plone.icon.chat-left-dots-fill': , 'plone.icon.chat-left-fill': , 'plone.icon.chat-left-heart': , 'plone.icon.chat-left-heart-fill': , 'plone.icon.chat-left-quote': , 'plone.icon.chat-left-quote-fill': , 'plone.icon.chat-left-text': , 'plone.icon.chat-left-text-fill': , 'plone.icon.chat-quote': , 'plone.icon.chat-quote-fill': , 'plone.icon.chat-right': , 'plone.icon.chat-right-dots': , 'plone.icon.chat-right-dots-fill': , 'plone.icon.chat-right-fill': , 'plone.icon.chat-right-heart': , 'plone.icon.chat-right-heart-fill': , 'plone.icon.chat-right-quote': , 'plone.icon.chat-right-quote-fill': , 'plone.icon.chat-right-text': , 'plone.icon.chat-right-text-fill': , 'plone.icon.chat-square': , 'plone.icon.chat-square-dots': , 'plone.icon.chat-square-dots-fill': , 'plone.icon.chat-square-fill': , 'plone.icon.chat-square-heart': , 'plone.icon.chat-square-heart-fill': , 'plone.icon.chat-square-quote': , 'plone.icon.chat-square-quote-fill': , 'plone.icon.chat-square-text': , 'plone.icon.chat-square-text-fill': , 'plone.icon.chat-text': , 'plone.icon.chat-text-fill': , 'plone.icon.check': , 'plone.icon.check-all': , 'plone.icon.check-circle': , 'plone.icon.check-circle-fill': , 'plone.icon.check-lg': , 'plone.icon.check-square': , 'plone.icon.check-square-fill': , 'plone.icon.check2': , 'plone.icon.check2-all': , 'plone.icon.check2-circle': , 'plone.icon.check2-square': , 'plone.icon.chevron-bar-contract': , 'plone.icon.chevron-bar-down': , 'plone.icon.chevron-bar-expand': , 'plone.icon.chevron-bar-left': , 'plone.icon.chevron-bar-right': , 'plone.icon.chevron-bar-up': , 'plone.icon.chevron-compact-down': , 'plone.icon.chevron-compact-left': , 'plone.icon.chevron-compact-right': , 'plone.icon.chevron-compact-up': , 'plone.icon.chevron-contract': , 'plone.icon.chevron-double-down': , 'plone.icon.chevron-double-left': , 'plone.icon.chevron-double-right': , 'plone.icon.chevron-double-up': , 'plone.icon.chevron-down': , 'plone.icon.chevron-expand': , 'plone.icon.chevron-left': , 'plone.icon.chevron-right': , 'plone.icon.chevron-up': , 'plone.icon.circle': , 'plone.icon.circle-fill': , 'plone.icon.circle-half': , 'plone.icon.circle-square': , 'plone.icon.clipboard': , 'plone.icon.clipboard-check': , 'plone.icon.clipboard-check-fill': , 'plone.icon.clipboard-data': , 'plone.icon.clipboard-data-fill': , 'plone.icon.clipboard-fill': , 'plone.icon.clipboard-heart': , 'plone.icon.clipboard-heart-fill': , 'plone.icon.clipboard-minus': , 'plone.icon.clipboard-minus-fill': , 'plone.icon.clipboard-plus': , 'plone.icon.clipboard-plus-fill': , 'plone.icon.clipboard-pulse': , 'plone.icon.clipboard-x': , 'plone.icon.clipboard-x-fill': , 'plone.icon.clipboard2': , 'plone.icon.clipboard2-check': , 'plone.icon.clipboard2-check-fill': , 'plone.icon.clipboard2-data': , 'plone.icon.clipboard2-data-fill': , 'plone.icon.clipboard2-fill': , 'plone.icon.clipboard2-heart': , 'plone.icon.clipboard2-heart-fill': , 'plone.icon.clipboard2-minus': , 'plone.icon.clipboard2-minus-fill': , 'plone.icon.clipboard2-plus': , 'plone.icon.clipboard2-plus-fill': , 'plone.icon.clipboard2-pulse': , 'plone.icon.clipboard2-pulse-fill': , 'plone.icon.clipboard2-x': , 'plone.icon.clipboard2-x-fill': , 'plone.icon.clock': , 'plone.icon.clock-fill': , 'plone.icon.clock-history': , 'plone.icon.cloud': , 'plone.icon.cloud-arrow-down': , 'plone.icon.cloud-arrow-down-fill': , 'plone.icon.cloud-arrow-up': , 'plone.icon.cloud-arrow-up-fill': , 'plone.icon.cloud-check': , 'plone.icon.cloud-check-fill': , 'plone.icon.cloud-download': , 'plone.icon.cloud-download-fill': , 'plone.icon.cloud-drizzle': , 'plone.icon.cloud-drizzle-fill': , 'plone.icon.cloud-fill': , 'plone.icon.cloud-fog': , 'plone.icon.cloud-fog-fill': , 'plone.icon.cloud-fog2': , 'plone.icon.cloud-fog2-fill': , 'plone.icon.cloud-hail': , 'plone.icon.cloud-hail-fill': , 'plone.icon.cloud-haze': , 'plone.icon.cloud-haze-1': , 'plone.icon.cloud-haze-fill': , 'plone.icon.cloud-haze2': , 'plone.icon.cloud-haze2-fill': , 'plone.icon.cloud-lightning': , 'plone.icon.cloud-lightning-fill': , 'plone.icon.cloud-lightning-rain': , 'plone.icon.cloud-lightning-rain-fill': , 'plone.icon.cloud-minus': , 'plone.icon.cloud-minus-fill': , 'plone.icon.cloud-moon': , 'plone.icon.cloud-moon-fill': , 'plone.icon.cloud-plus': , 'plone.icon.cloud-plus-fill': , 'plone.icon.cloud-rain': , 'plone.icon.cloud-rain-fill': , 'plone.icon.cloud-rain-heavy': , 'plone.icon.cloud-rain-heavy-fill': , 'plone.icon.cloud-slash': , 'plone.icon.cloud-slash-fill': , 'plone.icon.cloud-sleet': , 'plone.icon.cloud-sleet-fill': , 'plone.icon.cloud-snow': , 'plone.icon.cloud-snow-fill': , 'plone.icon.cloud-sun': , 'plone.icon.cloud-sun-fill': , 'plone.icon.cloud-upload': , 'plone.icon.cloud-upload-fill': , 'plone.icon.clouds': , 'plone.icon.clouds-fill': , 'plone.icon.cloudy': , 'plone.icon.cloudy-fill': , 'plone.icon.code': , 'plone.icon.code-slash': , 'plone.icon.code-square': , 'plone.icon.coin': , 'plone.icon.collection': , 'plone.icon.collection-fill': , 'plone.icon.collection-play': , 'plone.icon.collection-play-fill': , 'plone.icon.columns': , 'plone.icon.columns-gap': , 'plone.icon.command': , 'plone.icon.compass': , 'plone.icon.compass-fill': , 'plone.icon.cone': , 'plone.icon.cone-striped': , 'plone.icon.contenttype': , 'plone.icon.contenttype/collection': , 'plone.icon.contenttype/document': , 'plone.icon.contenttype/event': , 'plone.icon.contenttype/file': , 'plone.icon.contenttype/folder': , 'plone.icon.contenttype/image': , 'plone.icon.contenttype/link': , 'plone.icon.contenttype/news-item': , 'plone.icon.controller': , 'plone.icon.cookie': , 'plone.icon.copy': , 'plone.icon.countryflag': , 'plone.icon.countryflag/ad': , 'plone.icon.countryflag/ae': , 'plone.icon.countryflag/af': , 'plone.icon.countryflag/ag': , 'plone.icon.countryflag/ai': , 'plone.icon.countryflag/al': , 'plone.icon.countryflag/am': , 'plone.icon.countryflag/ao': , 'plone.icon.countryflag/aq': , 'plone.icon.countryflag/ar': , 'plone.icon.countryflag/as': , 'plone.icon.countryflag/at': , 'plone.icon.countryflag/au': , 'plone.icon.countryflag/aw': , 'plone.icon.countryflag/ax': , 'plone.icon.countryflag/az': , 'plone.icon.countryflag/ba': , 'plone.icon.countryflag/bb': , 'plone.icon.countryflag/bd': , 'plone.icon.countryflag/be': , 'plone.icon.countryflag/bf': , 'plone.icon.countryflag/bg': , 'plone.icon.countryflag/bh': , 'plone.icon.countryflag/bi': , 'plone.icon.countryflag/bj': , 'plone.icon.countryflag/bl': , 'plone.icon.countryflag/bm': , 'plone.icon.countryflag/bn': , 'plone.icon.countryflag/bo': , 'plone.icon.countryflag/bq': , 'plone.icon.countryflag/br': , 'plone.icon.countryflag/bs': , 'plone.icon.countryflag/bt': , 'plone.icon.countryflag/bv': , 'plone.icon.countryflag/bw': , 'plone.icon.countryflag/by': , 'plone.icon.countryflag/bz': , 'plone.icon.countryflag/ca': , 'plone.icon.countryflag/cc': , 'plone.icon.countryflag/cd': , 'plone.icon.countryflag/cf': , 'plone.icon.countryflag/cg': , 'plone.icon.countryflag/ch': , 'plone.icon.countryflag/ci': , 'plone.icon.countryflag/ck': , 'plone.icon.countryflag/cl': , 'plone.icon.countryflag/cm': , 'plone.icon.countryflag/cn': , 'plone.icon.countryflag/co': , 'plone.icon.countryflag/cr': , 'plone.icon.countryflag/cu': , 'plone.icon.countryflag/cv': , 'plone.icon.countryflag/cw': , 'plone.icon.countryflag/cx': , 'plone.icon.countryflag/cy': , 'plone.icon.countryflag/cz': , 'plone.icon.countryflag/de': , 'plone.icon.countryflag/dj': , 'plone.icon.countryflag/dk': , 'plone.icon.countryflag/dm': , 'plone.icon.countryflag/do': , 'plone.icon.countryflag/dz': , 'plone.icon.countryflag/ec': , 'plone.icon.countryflag/ee': , 'plone.icon.countryflag/eg': , 'plone.icon.countryflag/eh': , 'plone.icon.countryflag/er': , 'plone.icon.countryflag/es': , 'plone.icon.countryflag/et': , 'plone.icon.countryflag/eu': , 'plone.icon.countryflag/fi': , 'plone.icon.countryflag/fj': , 'plone.icon.countryflag/fk': , 'plone.icon.countryflag/fm': , 'plone.icon.countryflag/fo': , 'plone.icon.countryflag/fr': , 'plone.icon.countryflag/ga': , 'plone.icon.countryflag/gb': , 'plone.icon.countryflag/gb-eng': , 'plone.icon.countryflag/gb-nir': , 'plone.icon.countryflag/gb-sct': , 'plone.icon.countryflag/gb-wls': , 'plone.icon.countryflag/gd': , 'plone.icon.countryflag/ge': , 'plone.icon.countryflag/gf': , 'plone.icon.countryflag/gg': , 'plone.icon.countryflag/gh': , 'plone.icon.countryflag/gi': , 'plone.icon.countryflag/gl': , 'plone.icon.countryflag/gm': , 'plone.icon.countryflag/gn': , 'plone.icon.countryflag/gp': , 'plone.icon.countryflag/gq': , 'plone.icon.countryflag/gr': , 'plone.icon.countryflag/gs': , 'plone.icon.countryflag/gt': , 'plone.icon.countryflag/gu': , 'plone.icon.countryflag/gw': , 'plone.icon.countryflag/gy': , 'plone.icon.countryflag/hk': , 'plone.icon.countryflag/hm': , 'plone.icon.countryflag/hn': , 'plone.icon.countryflag/hr': , 'plone.icon.countryflag/ht': , 'plone.icon.countryflag/hu': , 'plone.icon.countryflag/id': , 'plone.icon.countryflag/ie': , 'plone.icon.countryflag/il': , 'plone.icon.countryflag/im': , 'plone.icon.countryflag/in': , 'plone.icon.countryflag/io': , 'plone.icon.countryflag/iq': , 'plone.icon.countryflag/ir': , 'plone.icon.countryflag/is': , 'plone.icon.countryflag/it': , 'plone.icon.countryflag/je': , 'plone.icon.countryflag/jm': , 'plone.icon.countryflag/jo': , 'plone.icon.countryflag/jp': , 'plone.icon.countryflag/ke': , 'plone.icon.countryflag/kg': , 'plone.icon.countryflag/kh': , 'plone.icon.countryflag/ki': , 'plone.icon.countryflag/km': , 'plone.icon.countryflag/kn': , 'plone.icon.countryflag/kp': , 'plone.icon.countryflag/kr': , 'plone.icon.countryflag/kw': , 'plone.icon.countryflag/ky': , 'plone.icon.countryflag/kz': , 'plone.icon.countryflag/la': , 'plone.icon.countryflag/lb': , 'plone.icon.countryflag/lc': , 'plone.icon.countryflag/li': , 'plone.icon.countryflag/lk': , 'plone.icon.countryflag/lr': , 'plone.icon.countryflag/ls': , 'plone.icon.countryflag/lt': , 'plone.icon.countryflag/lu': , 'plone.icon.countryflag/lv': , 'plone.icon.countryflag/ly': , 'plone.icon.countryflag/ma': , 'plone.icon.countryflag/mc': , 'plone.icon.countryflag/md': , 'plone.icon.countryflag/me': , 'plone.icon.countryflag/mf': , 'plone.icon.countryflag/mg': , 'plone.icon.countryflag/mh': , 'plone.icon.countryflag/mk': , 'plone.icon.countryflag/ml': , 'plone.icon.countryflag/mm': , 'plone.icon.countryflag/mn': , 'plone.icon.countryflag/mo': , 'plone.icon.countryflag/mp': , 'plone.icon.countryflag/mq': , 'plone.icon.countryflag/mr': , 'plone.icon.countryflag/ms': , 'plone.icon.countryflag/mt': , 'plone.icon.countryflag/mu': , 'plone.icon.countryflag/mv': , 'plone.icon.countryflag/mw': , 'plone.icon.countryflag/mx': , 'plone.icon.countryflag/my': , 'plone.icon.countryflag/mz': , 'plone.icon.countryflag/na': , 'plone.icon.countryflag/nc': , 'plone.icon.countryflag/ne': , 'plone.icon.countryflag/nf': , 'plone.icon.countryflag/ng': , 'plone.icon.countryflag/ni': , 'plone.icon.countryflag/nl': , 'plone.icon.countryflag/no': , 'plone.icon.countryflag/np': , 'plone.icon.countryflag/nr': , 'plone.icon.countryflag/nu': , 'plone.icon.countryflag/nz': , 'plone.icon.countryflag/om': , 'plone.icon.countryflag/pa': , 'plone.icon.countryflag/pe': , 'plone.icon.countryflag/pf': , 'plone.icon.countryflag/pg': , 'plone.icon.countryflag/ph': , 'plone.icon.countryflag/pk': , 'plone.icon.countryflag/pl': , 'plone.icon.countryflag/pm': , 'plone.icon.countryflag/pn': , 'plone.icon.countryflag/pr': , 'plone.icon.countryflag/ps': , 'plone.icon.countryflag/pt': , 'plone.icon.countryflag/pw': , 'plone.icon.countryflag/py': , 'plone.icon.countryflag/qa': , 'plone.icon.countryflag/re': , 'plone.icon.countryflag/ro': , 'plone.icon.countryflag/rs': , 'plone.icon.countryflag/ru': , 'plone.icon.countryflag/rw': , 'plone.icon.countryflag/sa': , 'plone.icon.countryflag/sb': , 'plone.icon.countryflag/sc': , 'plone.icon.countryflag/sd': , 'plone.icon.countryflag/se': , 'plone.icon.countryflag/sg': , 'plone.icon.countryflag/sh': , 'plone.icon.countryflag/si': , 'plone.icon.countryflag/sj': , 'plone.icon.countryflag/sk': , 'plone.icon.countryflag/sl': , 'plone.icon.countryflag/sm': , 'plone.icon.countryflag/sn': , 'plone.icon.countryflag/so': , 'plone.icon.countryflag/sr': , 'plone.icon.countryflag/ss': , 'plone.icon.countryflag/st': , 'plone.icon.countryflag/sv': , 'plone.icon.countryflag/sx': , 'plone.icon.countryflag/sy': , 'plone.icon.countryflag/sz': , 'plone.icon.countryflag/tc': , 'plone.icon.countryflag/td': , 'plone.icon.countryflag/tf': , 'plone.icon.countryflag/tg': , 'plone.icon.countryflag/th': , 'plone.icon.countryflag/tj': , 'plone.icon.countryflag/tk': , 'plone.icon.countryflag/tl': , 'plone.icon.countryflag/tm': , 'plone.icon.countryflag/tn': , 'plone.icon.countryflag/to': , 'plone.icon.countryflag/tr': , 'plone.icon.countryflag/tt': , 'plone.icon.countryflag/tv': , 'plone.icon.countryflag/tw': , 'plone.icon.countryflag/tz': , 'plone.icon.countryflag/ua': , 'plone.icon.countryflag/ug': , 'plone.icon.countryflag/um': , 'plone.icon.countryflag/us': , 'plone.icon.countryflag/uy': , 'plone.icon.countryflag/uz': , 'plone.icon.countryflag/va': , 'plone.icon.countryflag/vc': , 'plone.icon.countryflag/ve': , 'plone.icon.countryflag/vg': , 'plone.icon.countryflag/vi': , 'plone.icon.countryflag/vn': , 'plone.icon.countryflag/vu': , 'plone.icon.countryflag/wf': , 'plone.icon.countryflag/ws': , 'plone.icon.countryflag/xk': , 'plone.icon.countryflag/ye': , 'plone.icon.countryflag/yt': , 'plone.icon.countryflag/za': , 'plone.icon.countryflag/zm': , 'plone.icon.countryflag/zw': , 'plone.icon.cpu': , 'plone.icon.cpu-fill': , 'plone.icon.credit-card': , 'plone.icon.credit-card-2-back': , 'plone.icon.credit-card-2-back-fill': , 'plone.icon.credit-card-2-front': , 'plone.icon.credit-card-2-front-fill': , 'plone.icon.credit-card-fill': , 'plone.icon.crop': , 'plone.icon.crosshair': , 'plone.icon.crosshair2': , 'plone.icon.cup': , 'plone.icon.cup-fill': , 'plone.icon.cup-hot': , 'plone.icon.cup-hot-fill': , 'plone.icon.cup-straw': , 'plone.icon.currency-bitcoin': , 'plone.icon.currency-dollar': , 'plone.icon.currency-euro': , 'plone.icon.currency-exchange': , 'plone.icon.currency-pound': , 'plone.icon.currency-rupee': , 'plone.icon.currency-yen': , 'plone.icon.cursor': , 'plone.icon.cursor-fill': , 'plone.icon.cursor-text': , 'plone.icon.dash': , 'plone.icon.dash-circle': , 'plone.icon.dash-circle-dotted': , 'plone.icon.dash-circle-fill': , 'plone.icon.dash-lg': , 'plone.icon.dash-square': , 'plone.icon.dash-square-dotted': , 'plone.icon.dash-square-fill': , 'plone.icon.database': , 'plone.icon.database-add': , 'plone.icon.database-check': , 'plone.icon.database-dash': , 'plone.icon.database-down': , 'plone.icon.database-exclamation': , 'plone.icon.database-fill': , 'plone.icon.database-fill-add': , 'plone.icon.database-fill-check': , 'plone.icon.database-fill-dash': , 'plone.icon.database-fill-down': , 'plone.icon.database-fill-exclamation': , 'plone.icon.database-fill-gear': , 'plone.icon.database-fill-lock': , 'plone.icon.database-fill-slash': , 'plone.icon.database-fill-up': , 'plone.icon.database-fill-x': , 'plone.icon.database-gear': , 'plone.icon.database-lock': , 'plone.icon.database-slash': , 'plone.icon.database-up': , 'plone.icon.database-x': , 'plone.icon.device-hdd': , 'plone.icon.device-hdd-fill': , 'plone.icon.device-ssd': , 'plone.icon.device-ssd-fill': , 'plone.icon.diagram-2': , 'plone.icon.diagram-2-fill': , 'plone.icon.diagram-3': , 'plone.icon.diagram-3-fill': , 'plone.icon.diamond': , 'plone.icon.diamond-fill': , 'plone.icon.diamond-half': , 'plone.icon.dice-1': , 'plone.icon.dice-1-fill': , 'plone.icon.dice-2': , 'plone.icon.dice-2-fill': , 'plone.icon.dice-3': , 'plone.icon.dice-3-fill': , 'plone.icon.dice-4': , 'plone.icon.dice-4-fill': , 'plone.icon.dice-5': , 'plone.icon.dice-5-fill': , 'plone.icon.dice-6': , 'plone.icon.dice-6-fill': , 'plone.icon.disc': , 'plone.icon.disc-fill': , 'plone.icon.discord': , 'plone.icon.display': , 'plone.icon.display-fill': , 'plone.icon.displayport': , 'plone.icon.displayport-fill': , 'plone.icon.distribute-horizontal': , 'plone.icon.distribute-vertical': , 'plone.icon.door-closed': , 'plone.icon.door-closed-fill': , 'plone.icon.door-open': , 'plone.icon.door-open-fill': , 'plone.icon.dot': , 'plone.icon.download': , 'plone.icon.dpad': , 'plone.icon.dpad-fill': , 'plone.icon.dribbble': , 'plone.icon.dropbox': , 'plone.icon.droplet': , 'plone.icon.droplet-fill': , 'plone.icon.droplet-half': , 'plone.icon.duffle': , 'plone.icon.duffle-fill': , 'plone.icon.ear': , 'plone.icon.ear-fill': , 'plone.icon.earbuds': , 'plone.icon.easel': , 'plone.icon.easel-fill': , 'plone.icon.easel2': , 'plone.icon.easel2-fill': , 'plone.icon.easel3': , 'plone.icon.easel3-fill': , 'plone.icon.egg': , 'plone.icon.egg-fill': , 'plone.icon.egg-fried': , 'plone.icon.eject': , 'plone.icon.eject-fill': , 'plone.icon.emoji-angry': , 'plone.icon.emoji-angry-fill': , 'plone.icon.emoji-astonished': , 'plone.icon.emoji-astonished-fill': , 'plone.icon.emoji-dizzy': , 'plone.icon.emoji-dizzy-fill': , 'plone.icon.emoji-expressionless': , 'plone.icon.emoji-expressionless-fill': , 'plone.icon.emoji-frown': , 'plone.icon.emoji-frown-fill': , 'plone.icon.emoji-grimace': , 'plone.icon.emoji-grimace-fill': , 'plone.icon.emoji-grin': , 'plone.icon.emoji-grin-fill': , 'plone.icon.emoji-heart-eyes': , 'plone.icon.emoji-heart-eyes-fill': , 'plone.icon.emoji-kiss': , 'plone.icon.emoji-kiss-fill': , 'plone.icon.emoji-laughing': , 'plone.icon.emoji-laughing-fill': , 'plone.icon.emoji-neutral': , 'plone.icon.emoji-neutral-fill': , 'plone.icon.emoji-smile': , 'plone.icon.emoji-smile-fill': , 'plone.icon.emoji-smile-upside-down': , 'plone.icon.emoji-smile-upside-down-fill': , 'plone.icon.emoji-sunglasses': , 'plone.icon.emoji-sunglasses-fill': , 'plone.icon.emoji-surprise': , 'plone.icon.emoji-surprise-fill': , 'plone.icon.emoji-tear': , 'plone.icon.emoji-tear-fill': , 'plone.icon.emoji-wink': , 'plone.icon.emoji-wink-fill': , 'plone.icon.envelope': , 'plone.icon.envelope-arrow-down': , 'plone.icon.envelope-arrow-down-fill': , 'plone.icon.envelope-arrow-up': , 'plone.icon.envelope-arrow-up-fill': , 'plone.icon.envelope-at': , 'plone.icon.envelope-at-fill': , 'plone.icon.envelope-check': , 'plone.icon.envelope-check-fill': , 'plone.icon.envelope-dash': , 'plone.icon.envelope-dash-fill': , 'plone.icon.envelope-exclamation': , 'plone.icon.envelope-exclamation-fill': , 'plone.icon.envelope-fill': , 'plone.icon.envelope-heart': , 'plone.icon.envelope-heart-fill': , 'plone.icon.envelope-open': , 'plone.icon.envelope-open-fill': , 'plone.icon.envelope-open-heart': , 'plone.icon.envelope-open-heart-fill': , 'plone.icon.envelope-paper': , 'plone.icon.envelope-paper-fill': , 'plone.icon.envelope-paper-heart': , 'plone.icon.envelope-paper-heart-fill': , 'plone.icon.envelope-plus': , 'plone.icon.envelope-plus-fill': , 'plone.icon.envelope-slash': , 'plone.icon.envelope-slash-fill': , 'plone.icon.envelope-x': , 'plone.icon.envelope-x-fill': , 'plone.icon.eraser': , 'plone.icon.eraser-fill': , 'plone.icon.escape': , 'plone.icon.ethernet': , 'plone.icon.ev-front': , 'plone.icon.ev-front-fill': , 'plone.icon.ev-station': , 'plone.icon.ev-station-fill': , 'plone.icon.exclamation': , 'plone.icon.exclamation-circle': , 'plone.icon.exclamation-circle-fill': , 'plone.icon.exclamation-diamond': , 'plone.icon.exclamation-diamond-fill': , 'plone.icon.exclamation-lg': , 'plone.icon.exclamation-octagon': , 'plone.icon.exclamation-octagon-fill': , 'plone.icon.exclamation-square': , 'plone.icon.exclamation-square-fill': , 'plone.icon.exclamation-triangle': , 'plone.icon.exclamation-triangle-fill': , 'plone.icon.exclude': , 'plone.icon.explicit': , 'plone.icon.explicit-fill': , 'plone.icon.exposure': , 'plone.icon.eye': , 'plone.icon.eye-fill': , 'plone.icon.eye-slash': , 'plone.icon.eye-slash-fill': , 'plone.icon.eyedropper': , 'plone.icon.eyeglasses': , 'plone.icon.facebook': , 'plone.icon.fan': , 'plone.icon.fast-forward': , 'plone.icon.fast-forward-btn': , 'plone.icon.fast-forward-btn-fill': , 'plone.icon.fast-forward-circle': , 'plone.icon.fast-forward-circle-fill': , 'plone.icon.fast-forward-fill': , 'plone.icon.feather': , 'plone.icon.feather2': , 'plone.icon.file': , 'plone.icon.file-arrow-down': , 'plone.icon.file-arrow-down-fill': , 'plone.icon.file-arrow-up': , 'plone.icon.file-arrow-up-fill': , 'plone.icon.file-bar-graph': , 'plone.icon.file-bar-graph-fill': , 'plone.icon.file-binary': , 'plone.icon.file-binary-fill': , 'plone.icon.file-break': , 'plone.icon.file-break-fill': , 'plone.icon.file-check': , 'plone.icon.file-check-fill': , 'plone.icon.file-code': , 'plone.icon.file-code-fill': , 'plone.icon.file-diff': , 'plone.icon.file-diff-fill': , 'plone.icon.file-earmark': , 'plone.icon.file-earmark-arrow-down': , 'plone.icon.file-earmark-arrow-down-fill': , 'plone.icon.file-earmark-arrow-up': , 'plone.icon.file-earmark-arrow-up-fill': , 'plone.icon.file-earmark-bar-graph': , 'plone.icon.file-earmark-bar-graph-fill': , 'plone.icon.file-earmark-binary': , 'plone.icon.file-earmark-binary-fill': , 'plone.icon.file-earmark-break': , 'plone.icon.file-earmark-break-fill': , 'plone.icon.file-earmark-check': , 'plone.icon.file-earmark-check-fill': , 'plone.icon.file-earmark-code': , 'plone.icon.file-earmark-code-fill': , 'plone.icon.file-earmark-diff': , 'plone.icon.file-earmark-diff-fill': , 'plone.icon.file-earmark-easel': , 'plone.icon.file-earmark-easel-fill': , 'plone.icon.file-earmark-excel': , 'plone.icon.file-earmark-excel-fill': , 'plone.icon.file-earmark-fill': , 'plone.icon.file-earmark-font': , 'plone.icon.file-earmark-font-fill': , 'plone.icon.file-earmark-image': , 'plone.icon.file-earmark-image-fill': , 'plone.icon.file-earmark-lock': , 'plone.icon.file-earmark-lock-fill': , 'plone.icon.file-earmark-lock2': , 'plone.icon.file-earmark-lock2-fill': , 'plone.icon.file-earmark-medical': , 'plone.icon.file-earmark-medical-fill': , 'plone.icon.file-earmark-minus': , 'plone.icon.file-earmark-minus-fill': , 'plone.icon.file-earmark-music': , 'plone.icon.file-earmark-music-fill': , 'plone.icon.file-earmark-pdf': , 'plone.icon.file-earmark-pdf-fill': , 'plone.icon.file-earmark-person': , 'plone.icon.file-earmark-person-fill': , 'plone.icon.file-earmark-play': , 'plone.icon.file-earmark-play-fill': , 'plone.icon.file-earmark-plus': , 'plone.icon.file-earmark-plus-fill': , 'plone.icon.file-earmark-post': , 'plone.icon.file-earmark-post-fill': , 'plone.icon.file-earmark-ppt': , 'plone.icon.file-earmark-ppt-fill': , 'plone.icon.file-earmark-richtext': , 'plone.icon.file-earmark-richtext-fill': , 'plone.icon.file-earmark-ruled': , 'plone.icon.file-earmark-ruled-fill': , 'plone.icon.file-earmark-slides': , 'plone.icon.file-earmark-slides-fill': , 'plone.icon.file-earmark-spreadsheet': , 'plone.icon.file-earmark-spreadsheet-fill': , 'plone.icon.file-earmark-text': , 'plone.icon.file-earmark-text-fill': , 'plone.icon.file-earmark-word': , 'plone.icon.file-earmark-word-fill': , 'plone.icon.file-earmark-x': , 'plone.icon.file-earmark-x-fill': , 'plone.icon.file-earmark-zip': , 'plone.icon.file-earmark-zip-fill': , 'plone.icon.file-easel': , 'plone.icon.file-easel-fill': , 'plone.icon.file-excel': , 'plone.icon.file-excel-fill': , 'plone.icon.file-fill': , 'plone.icon.file-font': , 'plone.icon.file-font-fill': , 'plone.icon.file-image': , 'plone.icon.file-image-fill': , 'plone.icon.file-lock': , 'plone.icon.file-lock-fill': , 'plone.icon.file-lock2': , 'plone.icon.file-lock2-fill': , 'plone.icon.file-medical': , 'plone.icon.file-medical-fill': , 'plone.icon.file-minus': , 'plone.icon.file-minus-fill': , 'plone.icon.file-music': , 'plone.icon.file-music-fill': , 'plone.icon.file-pdf': , 'plone.icon.file-pdf-fill': , 'plone.icon.file-person': , 'plone.icon.file-person-fill': , 'plone.icon.file-play': , 'plone.icon.file-play-fill': , 'plone.icon.file-plus': , 'plone.icon.file-plus-fill': , 'plone.icon.file-post': , 'plone.icon.file-post-fill': , 'plone.icon.file-ppt': , 'plone.icon.file-ppt-fill': , 'plone.icon.file-richtext': , 'plone.icon.file-richtext-fill': , 'plone.icon.file-ruled': , 'plone.icon.file-ruled-fill': , 'plone.icon.file-slides': , 'plone.icon.file-slides-fill': , 'plone.icon.file-spreadsheet': , 'plone.icon.file-spreadsheet-fill': , 'plone.icon.file-text': , 'plone.icon.file-text-fill': , 'plone.icon.file-word': , 'plone.icon.file-word-fill': , 'plone.icon.file-x': , 'plone.icon.file-x-fill': , 'plone.icon.file-zip': , 'plone.icon.file-zip-fill': , 'plone.icon.files': , 'plone.icon.files-alt': , 'plone.icon.filetype-aac': , 'plone.icon.filetype-ai': , 'plone.icon.filetype-bmp': , 'plone.icon.filetype-cs': , 'plone.icon.filetype-css': , 'plone.icon.filetype-csv': , 'plone.icon.filetype-doc': , 'plone.icon.filetype-docx': , 'plone.icon.filetype-exe': , 'plone.icon.filetype-gif': , 'plone.icon.filetype-heic': , 'plone.icon.filetype-html': , 'plone.icon.filetype-java': , 'plone.icon.filetype-jpg': , 'plone.icon.filetype-js': , 'plone.icon.filetype-json': , 'plone.icon.filetype-jsx': , 'plone.icon.filetype-key': , 'plone.icon.filetype-m4p': , 'plone.icon.filetype-md': , 'plone.icon.filetype-mdx': , 'plone.icon.filetype-mov': , 'plone.icon.filetype-mp3': , 'plone.icon.filetype-mp4': , 'plone.icon.filetype-otf': , 'plone.icon.filetype-pdf': , 'plone.icon.filetype-php': , 'plone.icon.filetype-png': , 'plone.icon.filetype-ppt': , 'plone.icon.filetype-pptx': , 'plone.icon.filetype-psd': , 'plone.icon.filetype-py': , 'plone.icon.filetype-raw': , 'plone.icon.filetype-rb': , 'plone.icon.filetype-sass': , 'plone.icon.filetype-scss': , 'plone.icon.filetype-sh': , 'plone.icon.filetype-sql': , 'plone.icon.filetype-svg': , 'plone.icon.filetype-tiff': , 'plone.icon.filetype-tsx': , 'plone.icon.filetype-ttf': , 'plone.icon.filetype-txt': , 'plone.icon.filetype-wav': , 'plone.icon.filetype-woff': , 'plone.icon.filetype-xls': , 'plone.icon.filetype-xlsx': , 'plone.icon.filetype-xml': , 'plone.icon.filetype-yml': , 'plone.icon.film': , 'plone.icon.filter': , 'plone.icon.filter-circle': , 'plone.icon.filter-circle-fill': , 'plone.icon.filter-left': , 'plone.icon.filter-right': , 'plone.icon.filter-square': , 'plone.icon.filter-square-fill': , 'plone.icon.fingerprint': , 'plone.icon.fire': , 'plone.icon.flag': , 'plone.icon.flag-fill': , 'plone.icon.floppy': , 'plone.icon.floppy-fill': , 'plone.icon.floppy2': , 'plone.icon.floppy2-fill': , 'plone.icon.flower1': , 'plone.icon.flower2': , 'plone.icon.flower3': , 'plone.icon.folder': , 'plone.icon.folder-check': , 'plone.icon.folder-fill': , 'plone.icon.folder-minus': , 'plone.icon.folder-plus': , 'plone.icon.folder-symlink': , 'plone.icon.folder-symlink-fill': , 'plone.icon.folder-x': , 'plone.icon.folder2': , 'plone.icon.folder2-open': , 'plone.icon.fonts': , 'plone.icon.forward': , 'plone.icon.forward-fill': , 'plone.icon.front': , 'plone.icon.fuel-pump': , 'plone.icon.fuel-pump-diesel': , 'plone.icon.fuel-pump-diesel-fill': , 'plone.icon.fuel-pump-fill': , 'plone.icon.fullscreen': , 'plone.icon.fullscreen-exit': , 'plone.icon.funnel': , 'plone.icon.funnel-fill': , 'plone.icon.gear': , 'plone.icon.gear-fill': , 'plone.icon.gear-wide': , 'plone.icon.gear-wide-connected': , 'plone.icon.gem': , 'plone.icon.gender-ambiguous': , 'plone.icon.gender-female': , 'plone.icon.gender-male': , 'plone.icon.gender-neuter': , 'plone.icon.gender-trans': , 'plone.icon.geo': , 'plone.icon.geo-alt': , 'plone.icon.geo-alt-fill': , 'plone.icon.geo-fill': , 'plone.icon.gift': , 'plone.icon.gift-fill': , 'plone.icon.git': , 'plone.icon.github': , 'plone.icon.gitlab': , 'plone.icon.globe': , 'plone.icon.globe-americas': , 'plone.icon.globe-asia-australia': , 'plone.icon.globe-central-south-asia': , 'plone.icon.globe-europe-africa': , 'plone.icon.globe2': , 'plone.icon.google': , 'plone.icon.google-play': , 'plone.icon.gpu-card': , 'plone.icon.graph-down': , 'plone.icon.graph-down-arrow': , 'plone.icon.graph-up': , 'plone.icon.graph-up-arrow': , 'plone.icon.grid': , 'plone.icon.grid-1x2': , 'plone.icon.grid-1x2-fill': , 'plone.icon.grid-3x2': , 'plone.icon.grid-3x2-gap': , 'plone.icon.grid-3x2-gap-fill': , 'plone.icon.grid-3x3': , 'plone.icon.grid-3x3-gap': , 'plone.icon.grid-3x3-gap-fill': , 'plone.icon.grid-fill': , 'plone.icon.grip-horizontal': , 'plone.icon.grip-vertical': , 'plone.icon.h-circle': , 'plone.icon.h-circle-fill': , 'plone.icon.h-square': , 'plone.icon.h-square-fill': , 'plone.icon.hammer': , 'plone.icon.hand-index': , 'plone.icon.hand-index-fill': , 'plone.icon.hand-index-thumb': , 'plone.icon.hand-index-thumb-fill': , 'plone.icon.hand-thumbs-down': , 'plone.icon.hand-thumbs-down-fill': , 'plone.icon.hand-thumbs-up': , 'plone.icon.hand-thumbs-up-fill': , 'plone.icon.handbag': , 'plone.icon.handbag-fill': , 'plone.icon.hash': , 'plone.icon.hdd': , 'plone.icon.hdd-fill': , 'plone.icon.hdd-network': , 'plone.icon.hdd-network-fill': , 'plone.icon.hdd-rack': , 'plone.icon.hdd-rack-fill': , 'plone.icon.hdd-stack': , 'plone.icon.hdd-stack-fill': , 'plone.icon.hdmi': , 'plone.icon.hdmi-fill': , 'plone.icon.headphones': , 'plone.icon.headset': , 'plone.icon.headset-vr': , 'plone.icon.heart': , 'plone.icon.heart-arrow': , 'plone.icon.heart-fill': , 'plone.icon.heart-half': , 'plone.icon.heart-pulse': , 'plone.icon.heart-pulse-fill': , 'plone.icon.heartbreak': , 'plone.icon.heartbreak-fill': , 'plone.icon.hearts': , 'plone.icon.heptagon': , 'plone.icon.heptagon-fill': , 'plone.icon.heptagon-half': , 'plone.icon.hexagon': , 'plone.icon.hexagon-fill': , 'plone.icon.hexagon-half': , 'plone.icon.highlighter': , 'plone.icon.highlights': , 'plone.icon.hospital': , 'plone.icon.hospital-fill': , 'plone.icon.hourglass': , 'plone.icon.hourglass-bottom': , 'plone.icon.hourglass-split': , 'plone.icon.hourglass-top': , 'plone.icon.house': , 'plone.icon.house-add': , 'plone.icon.house-add-fill': , 'plone.icon.house-check': , 'plone.icon.house-check-fill': , 'plone.icon.house-dash': , 'plone.icon.house-dash-fill': , 'plone.icon.house-door': , 'plone.icon.house-door-fill': , 'plone.icon.house-down': , 'plone.icon.house-down-fill': , 'plone.icon.house-exclamation': , 'plone.icon.house-exclamation-fill': , 'plone.icon.house-fill': , 'plone.icon.house-gear': , 'plone.icon.house-gear-fill': , 'plone.icon.house-heart': , 'plone.icon.house-heart-fill': , 'plone.icon.house-lock': , 'plone.icon.house-lock-fill': , 'plone.icon.house-slash': , 'plone.icon.house-slash-fill': , 'plone.icon.house-up': , 'plone.icon.house-up-fill': , 'plone.icon.house-x': , 'plone.icon.house-x-fill': , 'plone.icon.houses': , 'plone.icon.houses-fill': , 'plone.icon.hr': , 'plone.icon.hurricane': , 'plone.icon.hypnotize': , 'plone.icon.image': , 'plone.icon.image-alt': , 'plone.icon.image-fill': , 'plone.icon.images': , 'plone.icon.inbox': , 'plone.icon.inbox-fill': , 'plone.icon.inboxes': , 'plone.icon.inboxes-fill': , 'plone.icon.incognito': , 'plone.icon.indent': , 'plone.icon.infinity': , 'plone.icon.info': , 'plone.icon.info-circle': , 'plone.icon.info-circle-fill': , 'plone.icon.info-lg': , 'plone.icon.info-square': , 'plone.icon.info-square-fill': , 'plone.icon.input-cursor': , 'plone.icon.input-cursor-text': , 'plone.icon.instagram': , 'plone.icon.intersect': , 'plone.icon.journal': , 'plone.icon.journal-album': , 'plone.icon.journal-arrow-down': , 'plone.icon.journal-arrow-up': , 'plone.icon.journal-bookmark': , 'plone.icon.journal-bookmark-fill': , 'plone.icon.journal-check': , 'plone.icon.journal-code': , 'plone.icon.journal-medical': , 'plone.icon.journal-minus': , 'plone.icon.journal-plus': , 'plone.icon.journal-richtext': , 'plone.icon.journal-text': , 'plone.icon.journal-x': , 'plone.icon.journals': , 'plone.icon.joystick': , 'plone.icon.justify': , 'plone.icon.justify-left': , 'plone.icon.justify-right': , 'plone.icon.kanban': , 'plone.icon.kanban-fill': , 'plone.icon.key': , 'plone.icon.key-fill': , 'plone.icon.keyboard': , 'plone.icon.keyboard-fill': , 'plone.icon.ladder': , 'plone.icon.lamp': , 'plone.icon.lamp-fill': , 'plone.icon.languageflag': , 'plone.icon.languageflag/ar': , 'plone.icon.languageflag/ca': , 'plone.icon.languageflag/cy': , 'plone.icon.languageflag/eo': , 'plone.icon.languageflag/eu': , 'plone.icon.laptop': , 'plone.icon.laptop-fill': , 'plone.icon.layer-backward': , 'plone.icon.layer-forward': , 'plone.icon.layers': , 'plone.icon.layers-fill': , 'plone.icon.layers-half': , 'plone.icon.layout-sidebar': , 'plone.icon.layout-sidebar-inset': , 'plone.icon.layout-sidebar-inset-reverse': , 'plone.icon.layout-sidebar-reverse': , 'plone.icon.layout-split': , 'plone.icon.layout-text-sidebar': , 'plone.icon.layout-text-sidebar-reverse': , 'plone.icon.layout-text-window': , 'plone.icon.layout-text-window-reverse': , 'plone.icon.layout-three-columns': , 'plone.icon.layout-wtf': , 'plone.icon.life-preserver': , 'plone.icon.lightbulb': , 'plone.icon.lightbulb-fill': , 'plone.icon.lightbulb-off': , 'plone.icon.lightbulb-off-fill': , 'plone.icon.lightning': , 'plone.icon.lightning-charge': , 'plone.icon.lightning-charge-fill': , 'plone.icon.lightning-fill': , 'plone.icon.line': , 'plone.icon.link': , 'plone.icon.link-45deg': , 'plone.icon.linkedin': , 'plone.icon.list': , 'plone.icon.list-check': , 'plone.icon.list-columns': , 'plone.icon.list-columns-reverse': , 'plone.icon.list-nested': , 'plone.icon.list-ol': , 'plone.icon.list-stars': , 'plone.icon.list-task': , 'plone.icon.list-ul': , 'plone.icon.lock': , 'plone.icon.lock-fill': , 'plone.icon.luggage': , 'plone.icon.luggage-fill': , 'plone.icon.lungs': , 'plone.icon.lungs-fill': , 'plone.icon.magic': , 'plone.icon.magnet': , 'plone.icon.magnet-fill': , 'plone.icon.mailbox': , 'plone.icon.mailbox-flag': , 'plone.icon.mailbox2': , 'plone.icon.mailbox2-flag': , 'plone.icon.map': , 'plone.icon.map-fill': , 'plone.icon.markdown': , 'plone.icon.markdown-fill': , 'plone.icon.marker-tip': , 'plone.icon.mask': , 'plone.icon.mastodon': , 'plone.icon.medium': , 'plone.icon.megaphone': , 'plone.icon.megaphone-fill': , 'plone.icon.memory': , 'plone.icon.menu-app': , 'plone.icon.menu-app-fill': , 'plone.icon.menu-button': , 'plone.icon.menu-button-fill': , 'plone.icon.menu-button-wide': , 'plone.icon.menu-button-wide-fill': , 'plone.icon.menu-down': , 'plone.icon.menu-up': , 'plone.icon.messenger': , 'plone.icon.meta': , 'plone.icon.mic': , 'plone.icon.mic-fill': , 'plone.icon.mic-mute': , 'plone.icon.mic-mute-fill': , 'plone.icon.microsoft': , 'plone.icon.microsoft-teams': , 'plone.icon.mimetype-application': , 'plone.icon.mimetype-application/msword': , 'plone.icon.mimetype-application/pdf': , 'plone.icon.mimetype-application/vnd.apple.keynote': , 'plone.icon.mimetype-application/vnd.ms-excel': , 'plone.icon.mimetype-application/vnd.ms-powerpoint': , 'plone.icon.mimetype-application/vnd.oasis.opendocument.presentation': , 'plone.icon.mimetype-application/vnd.oasis.opendocument.spreadsheet': , 'plone.icon.mimetype-application/vnd.oasis.opendocument.text': , 'plone.icon.mimetype-application/vnd.openxmlformats-officedocument.presentationml.presentation': , 'plone.icon.mimetype-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': , 'plone.icon.mimetype-application/vnd.openxmlformats-officedocument.wordprocessingml.document': , 'plone.icon.mimetype-application/x-tar': , 'plone.icon.mimetype-application/xml': , 'plone.icon.mimetype-application/zip': , 'plone.icon.mimetype-audio': , 'plone.icon.mimetype-image': , 'plone.icon.mimetype-image/jpeg': , 'plone.icon.mimetype-message': , 'plone.icon.mimetype-multipart': , 'plone.icon.mimetype-text': , 'plone.icon.mimetype-video': , 'plone.icon.minecart': , 'plone.icon.minecart-loaded': , 'plone.icon.modem': , 'plone.icon.modem-fill': , 'plone.icon.moisture': , 'plone.icon.moon': , 'plone.icon.moon-fill': , 'plone.icon.moon-stars': , 'plone.icon.moon-stars-fill': , 'plone.icon.mortarboard': , 'plone.icon.mortarboard-fill': , 'plone.icon.motherboard': , 'plone.icon.motherboard-fill': , 'plone.icon.mouse': , 'plone.icon.mouse-fill': , 'plone.icon.mouse2': , 'plone.icon.mouse2-fill': , 'plone.icon.mouse3': , 'plone.icon.mouse3-fill': , 'plone.icon.music-note': , 'plone.icon.music-note-beamed': , 'plone.icon.music-note-list': , 'plone.icon.music-player': , 'plone.icon.music-player-fill': , 'plone.icon.newspaper': , 'plone.icon.nintendo-switch': , 'plone.icon.node-minus': , 'plone.icon.node-minus-fill': , 'plone.icon.node-plus': , 'plone.icon.node-plus-fill': , 'plone.icon.noise-reduction': , 'plone.icon.nut': , 'plone.icon.nut-fill': , 'plone.icon.nvidia': , 'plone.icon.nvme': , 'plone.icon.nvme-fill': , 'plone.icon.octagon': , 'plone.icon.octagon-fill': , 'plone.icon.octagon-half': , 'plone.icon.opencollective': , 'plone.icon.optical-audio': , 'plone.icon.optical-audio-fill': , 'plone.icon.option': , 'plone.icon.outlet': , 'plone.icon.p-circle': , 'plone.icon.p-circle-fill': , 'plone.icon.p-square': , 'plone.icon.p-square-fill': , 'plone.icon.paint-bucket': , 'plone.icon.palette': , 'plone.icon.palette-fill': , 'plone.icon.palette2': , 'plone.icon.paperclip': , 'plone.icon.paragraph': , 'plone.icon.pass': , 'plone.icon.pass-fill': , 'plone.icon.passport': , 'plone.icon.passport-fill': , 'plone.icon.patch-check': , 'plone.icon.patch-check-fill': , 'plone.icon.patch-exclamation': , 'plone.icon.patch-exclamation-fill': , 'plone.icon.patch-minus': , 'plone.icon.patch-minus-fill': , 'plone.icon.patch-plus': , 'plone.icon.patch-plus-fill': , 'plone.icon.patch-question': , 'plone.icon.patch-question-fill': , 'plone.icon.pause': , 'plone.icon.pause-btn': , 'plone.icon.pause-btn-fill': , 'plone.icon.pause-circle': , 'plone.icon.pause-circle-fill': , 'plone.icon.pause-fill': , 'plone.icon.paypal': , 'plone.icon.pc': , 'plone.icon.pc-display': , 'plone.icon.pc-display-horizontal': , 'plone.icon.pc-horizontal': , 'plone.icon.pci-card': , 'plone.icon.pci-card-network': , 'plone.icon.pci-card-sound': , 'plone.icon.peace': , 'plone.icon.peace-fill': , 'plone.icon.pen': , 'plone.icon.pen-fill': , 'plone.icon.pencil': , 'plone.icon.pencil-fill': , 'plone.icon.pencil-square': , 'plone.icon.pentagon': , 'plone.icon.pentagon-fill': , 'plone.icon.pentagon-half': , 'plone.icon.people': , 'plone.icon.people-fill': , 'plone.icon.percent': , 'plone.icon.person': , 'plone.icon.person-add': , 'plone.icon.person-arms-up': , 'plone.icon.person-badge': , 'plone.icon.person-badge-fill': , 'plone.icon.person-bounding-box': , 'plone.icon.person-check': , 'plone.icon.person-check-fill': , 'plone.icon.person-circle': , 'plone.icon.person-dash': , 'plone.icon.person-dash-fill': , 'plone.icon.person-down': , 'plone.icon.person-exclamation': , 'plone.icon.person-fill': , 'plone.icon.person-fill-add': , 'plone.icon.person-fill-check': , 'plone.icon.person-fill-dash': , 'plone.icon.person-fill-down': , 'plone.icon.person-fill-exclamation': , 'plone.icon.person-fill-gear': , 'plone.icon.person-fill-lock': , 'plone.icon.person-fill-slash': , 'plone.icon.person-fill-up': , 'plone.icon.person-fill-x': , 'plone.icon.person-gear': , 'plone.icon.person-heart': , 'plone.icon.person-hearts': , 'plone.icon.person-lines-fill': , 'plone.icon.person-lock': , 'plone.icon.person-plus': , 'plone.icon.person-plus-fill': , 'plone.icon.person-raised-hand': , 'plone.icon.person-rolodex': , 'plone.icon.person-slash': , 'plone.icon.person-square': , 'plone.icon.person-standing': , 'plone.icon.person-standing-dress': , 'plone.icon.person-up': , 'plone.icon.person-vcard': , 'plone.icon.person-vcard-fill': , 'plone.icon.person-video': , 'plone.icon.person-video2': , 'plone.icon.person-video3': , 'plone.icon.person-walking': , 'plone.icon.person-wheelchair': , 'plone.icon.person-workspace': , 'plone.icon.person-x': , 'plone.icon.person-x-fill': , 'plone.icon.phone': , 'plone.icon.phone-fill': , 'plone.icon.phone-flip': , 'plone.icon.phone-landscape': , 'plone.icon.phone-landscape-fill': , 'plone.icon.phone-vibrate': , 'plone.icon.phone-vibrate-fill': , 'plone.icon.pie-chart': , 'plone.icon.pie-chart-fill': , 'plone.icon.piggy-bank': , 'plone.icon.piggy-bank-fill': , 'plone.icon.pin': , 'plone.icon.pin-angle': , 'plone.icon.pin-angle-fill': , 'plone.icon.pin-fill': , 'plone.icon.pin-map': , 'plone.icon.pin-map-fill': , 'plone.icon.pinterest': , 'plone.icon.pip': , 'plone.icon.pip-fill': , 'plone.icon.play': , 'plone.icon.play-btn': , 'plone.icon.play-btn-fill': , 'plone.icon.play-circle': , 'plone.icon.play-circle-fill': , 'plone.icon.play-fill': , 'plone.icon.playstation': , 'plone.icon.plone-accessibility': , 'plone.icon.plone-action': , 'plone.icon.plone-addon': , 'plone.icon.plone-alert': , 'plone.icon.plone-archive': , 'plone.icon.plone-book': , 'plone.icon.plone-brush': , 'plone.icon.plone-caching': , 'plone.icon.plone-calendar': , 'plone.icon.plone-chat': , 'plone.icon.plone-chevron-down': , 'plone.icon.plone-chevron-left': , 'plone.icon.plone-chevron-right': , 'plone.icon.plone-chevron-up': , 'plone.icon.plone-clock': , 'plone.icon.plone-contact-info': , 'plone.icon.plone-content': , 'plone.icon.plone-controlpanel': , 'plone.icon.plone-copy': , 'plone.icon.plone-cubes': , 'plone.icon.plone-cut': , 'plone.icon.plone-dashboard': , 'plone.icon.plone-database': , 'plone.icon.plone-date': , 'plone.icon.plone-delete': , 'plone.icon.plone-design': , 'plone.icon.plone-dexterity': , 'plone.icon.plone-direction': , 'plone.icon.plone-discussion': , 'plone.icon.plone-docs': , 'plone.icon.plone-down-circle': , 'plone.icon.plone-edit': , 'plone.icon.plone-equalizer': , 'plone.icon.plone-error': , 'plone.icon.plone-eye': , 'plone.icon.plone-filter': , 'plone.icon.plone-flash': , 'plone.icon.plone-flow': , 'plone.icon.plone-group': , 'plone.icon.plone-home': , 'plone.icon.plone-info': , 'plone.icon.plone-language': , 'plone.icon.plone-left-circle': , 'plone.icon.plone-link': , 'plone.icon.plone-link/external': , 'plone.icon.plone-link/mail': , 'plone.icon.plone-lock': , 'plone.icon.plone-login': , 'plone.icon.plone-logout': , 'plone.icon.plone-mail': , 'plone.icon.plone-maintenance': , 'plone.icon.plone-management': , 'plone.icon.plone-markup': , 'plone.icon.plone-megaphone': , 'plone.icon.plone-navigation': , 'plone.icon.plone-network': , 'plone.icon.plone-paste': , 'plone.icon.plone-pencil': , 'plone.icon.plone-picture': , 'plone.icon.plone-plus': , 'plone.icon.plone-portlet': , 'plone.icon.plone-print': , 'plone.icon.plone-rearrange': , 'plone.icon.plone-redirection': , 'plone.icon.plone-register': , 'plone.icon.plone-rename': , 'plone.icon.plone-resources': , 'plone.icon.plone-right-circle': , 'plone.icon.plone-rss': , 'plone.icon.plone-rules': , 'plone.icon.plone-search': , 'plone.icon.plone-security': , 'plone.icon.plone-selection': , 'plone.icon.plone-settings': , 'plone.icon.plone-signal': , 'plone.icon.plone-sitemap': , 'plone.icon.plone-sliders': , 'plone.icon.plone-socialmedia': , 'plone.icon.plone-statusmessage-danger': , 'plone.icon.plone-statusmessage-error': , 'plone.icon.plone-statusmessage-info': , 'plone.icon.plone-statusmessage-warning': , 'plone.icon.plone-target': , 'plone.icon.plone-theme': , 'plone.icon.plone-three-dots': , 'plone.icon.plone-three-dots-vertical': , 'plone.icon.plone-tinymce': , 'plone.icon.plone-undo': , 'plone.icon.plone-up-circle': , 'plone.icon.plone-user': , 'plone.icon.plone-view': , 'plone.icon.plone-website': , 'plone.icon.plone-wrench': , 'plone.icon.plug': , 'plone.icon.plug-fill': , 'plone.icon.plugin': , 'plone.icon.plus': , 'plone.icon.plus-circle': , 'plone.icon.plus-circle-dotted': , 'plone.icon.plus-circle-fill': , 'plone.icon.plus-lg': , 'plone.icon.plus-slash-minus': , 'plone.icon.plus-square': , 'plone.icon.plus-square-dotted': , 'plone.icon.plus-square-fill': , 'plone.icon.postage': , 'plone.icon.postage-fill': , 'plone.icon.postage-heart': , 'plone.icon.postage-heart-fill': , 'plone.icon.postcard': , 'plone.icon.postcard-fill': , 'plone.icon.postcard-heart': , 'plone.icon.postcard-heart-fill': , 'plone.icon.power': , 'plone.icon.prescription': , 'plone.icon.prescription2': , 'plone.icon.printer': , 'plone.icon.printer-fill': , 'plone.icon.projector': , 'plone.icon.projector-fill': , 'plone.icon.puzzle': , 'plone.icon.puzzle-fill': , 'plone.icon.qr-code': , 'plone.icon.qr-code-scan': , 'plone.icon.question': , 'plone.icon.question-circle': , 'plone.icon.question-circle-fill': , 'plone.icon.question-diamond': , 'plone.icon.question-diamond-fill': , 'plone.icon.question-lg': , 'plone.icon.question-octagon': , 'plone.icon.question-octagon-fill': , 'plone.icon.question-square': , 'plone.icon.question-square-fill': , 'plone.icon.quora': , 'plone.icon.quote': , 'plone.icon.r-circle': , 'plone.icon.r-circle-fill': , 'plone.icon.r-square': , 'plone.icon.r-square-fill': , 'plone.icon.radar': , 'plone.icon.radioactive': , 'plone.icon.rainbow': , 'plone.icon.receipt': , 'plone.icon.receipt-cutoff': , 'plone.icon.reception-0': , 'plone.icon.reception-1': , 'plone.icon.reception-2': , 'plone.icon.reception-3': , 'plone.icon.reception-4': , 'plone.icon.record': , 'plone.icon.record-btn': , 'plone.icon.record-btn-fill': , 'plone.icon.record-circle': , 'plone.icon.record-circle-fill': , 'plone.icon.record-fill': , 'plone.icon.record2': , 'plone.icon.record2-fill': , 'plone.icon.recycle': , 'plone.icon.reddit': , 'plone.icon.regex': , 'plone.icon.repeat': , 'plone.icon.repeat-1': , 'plone.icon.reply': , 'plone.icon.reply-all': , 'plone.icon.reply-all-fill': , 'plone.icon.reply-fill': , 'plone.icon.rewind': , 'plone.icon.rewind-btn': , 'plone.icon.rewind-btn-fill': , 'plone.icon.rewind-circle': , 'plone.icon.rewind-circle-fill': , 'plone.icon.rewind-fill': , 'plone.icon.robot': , 'plone.icon.rocket': , 'plone.icon.rocket-fill': , 'plone.icon.rocket-takeoff': , 'plone.icon.rocket-takeoff-fill': , 'plone.icon.router': , 'plone.icon.router-fill': , 'plone.icon.rss': , 'plone.icon.rss-fill': , 'plone.icon.rulers': , 'plone.icon.safe': , 'plone.icon.safe-fill': , 'plone.icon.safe2': , 'plone.icon.safe2-fill': , 'plone.icon.save': , 'plone.icon.save-fill': , 'plone.icon.save2': , 'plone.icon.save2-fill': , 'plone.icon.scissors': , 'plone.icon.scooter': , 'plone.icon.screwdriver': , 'plone.icon.sd-card': , 'plone.icon.sd-card-fill': , 'plone.icon.search': , 'plone.icon.search-heart': , 'plone.icon.search-heart-fill': , 'plone.icon.segmented-nav': , 'plone.icon.send': , 'plone.icon.send-arrow-down': , 'plone.icon.send-arrow-down-fill': , 'plone.icon.send-arrow-up': , 'plone.icon.send-arrow-up-fill': , 'plone.icon.send-check': , 'plone.icon.send-check-fill': , 'plone.icon.send-dash': , 'plone.icon.send-dash-fill': , 'plone.icon.send-exclamation': , 'plone.icon.send-exclamation-fill': , 'plone.icon.send-fill': , 'plone.icon.send-plus': , 'plone.icon.send-plus-fill': , 'plone.icon.send-slash': , 'plone.icon.send-slash-fill': , 'plone.icon.send-x': , 'plone.icon.send-x-fill': , 'plone.icon.server': , 'plone.icon.shadows': , 'plone.icon.share': , 'plone.icon.share-fill': , 'plone.icon.shield': , 'plone.icon.shield-check': , 'plone.icon.shield-exclamation': , 'plone.icon.shield-fill': , 'plone.icon.shield-fill-check': , 'plone.icon.shield-fill-exclamation': , 'plone.icon.shield-fill-minus': , 'plone.icon.shield-fill-plus': , 'plone.icon.shield-fill-x': , 'plone.icon.shield-lock': , 'plone.icon.shield-lock-fill': , 'plone.icon.shield-minus': , 'plone.icon.shield-plus': , 'plone.icon.shield-shaded': , 'plone.icon.shield-slash': , 'plone.icon.shield-slash-fill': , 'plone.icon.shield-x': , 'plone.icon.shift': , 'plone.icon.shift-fill': , 'plone.icon.shop': , 'plone.icon.shop-window': , 'plone.icon.shuffle': , 'plone.icon.sign-dead-end': , 'plone.icon.sign-dead-end-fill': , 'plone.icon.sign-do-not-enter': , 'plone.icon.sign-do-not-enter-fill': , 'plone.icon.sign-intersection': , 'plone.icon.sign-intersection-fill': , 'plone.icon.sign-intersection-side': , 'plone.icon.sign-intersection-side-fill': , 'plone.icon.sign-intersection-t': , 'plone.icon.sign-intersection-t-fill': , 'plone.icon.sign-intersection-y': , 'plone.icon.sign-intersection-y-fill': , 'plone.icon.sign-merge-left': , 'plone.icon.sign-merge-left-fill': , 'plone.icon.sign-merge-right': , 'plone.icon.sign-merge-right-fill': , 'plone.icon.sign-no-left-turn': , 'plone.icon.sign-no-left-turn-fill': , 'plone.icon.sign-no-parking': , 'plone.icon.sign-no-parking-fill': , 'plone.icon.sign-no-right-turn': , 'plone.icon.sign-no-right-turn-fill': , 'plone.icon.sign-railroad': , 'plone.icon.sign-railroad-fill': , 'plone.icon.sign-stop': , 'plone.icon.sign-stop-fill': , 'plone.icon.sign-stop-lights': , 'plone.icon.sign-stop-lights-fill': , 'plone.icon.sign-turn-left': , 'plone.icon.sign-turn-left-fill': , 'plone.icon.sign-turn-right': , 'plone.icon.sign-turn-right-fill': , 'plone.icon.sign-turn-slight-left': , 'plone.icon.sign-turn-slight-left-fill': , 'plone.icon.sign-turn-slight-right': , 'plone.icon.sign-turn-slight-right-fill': , 'plone.icon.sign-yield': , 'plone.icon.sign-yield-fill': , 'plone.icon.signal': , 'plone.icon.signpost': , 'plone.icon.signpost-2': , 'plone.icon.signpost-2-fill': , 'plone.icon.signpost-fill': , 'plone.icon.signpost-split': , 'plone.icon.signpost-split-fill': , 'plone.icon.sim': , 'plone.icon.sim-fill': , 'plone.icon.sim-slash': , 'plone.icon.sim-slash-fill': , 'plone.icon.sina-weibo': , 'plone.icon.skip-backward': , 'plone.icon.skip-backward-btn': , 'plone.icon.skip-backward-btn-fill': , 'plone.icon.skip-backward-circle': , 'plone.icon.skip-backward-circle-fill': , 'plone.icon.skip-backward-fill': , 'plone.icon.skip-end': , 'plone.icon.skip-end-btn': , 'plone.icon.skip-end-btn-fill': , 'plone.icon.skip-end-circle': , 'plone.icon.skip-end-circle-fill': , 'plone.icon.skip-end-fill': , 'plone.icon.skip-forward': , 'plone.icon.skip-forward-btn': , 'plone.icon.skip-forward-btn-fill': , 'plone.icon.skip-forward-circle': , 'plone.icon.skip-forward-circle-fill': , 'plone.icon.skip-forward-fill': , 'plone.icon.skip-start': , 'plone.icon.skip-start-btn': , 'plone.icon.skip-start-btn-fill': , 'plone.icon.skip-start-circle': , 'plone.icon.skip-start-circle-fill': , 'plone.icon.skip-start-fill': , 'plone.icon.skype': , 'plone.icon.slack': , 'plone.icon.slash': , 'plone.icon.slash-circle': , 'plone.icon.slash-circle-fill': , 'plone.icon.slash-lg': , 'plone.icon.slash-square': , 'plone.icon.slash-square-fill': , 'plone.icon.sliders': , 'plone.icon.sliders2': , 'plone.icon.sliders2-vertical': , 'plone.icon.smartwatch': , 'plone.icon.snapchat': , 'plone.icon.snow': , 'plone.icon.snow2': , 'plone.icon.snow3': , 'plone.icon.sort-alpha-down': , 'plone.icon.sort-alpha-down-alt': , 'plone.icon.sort-alpha-up': , 'plone.icon.sort-alpha-up-alt': , 'plone.icon.sort-down': , 'plone.icon.sort-down-alt': , 'plone.icon.sort-numeric-down': , 'plone.icon.sort-numeric-down-alt': , 'plone.icon.sort-numeric-up': , 'plone.icon.sort-numeric-up-alt': , 'plone.icon.sort-up': , 'plone.icon.sort-up-alt': , 'plone.icon.soundwave': , 'plone.icon.sourceforge': , 'plone.icon.speaker': , 'plone.icon.speaker-fill': , 'plone.icon.speedometer': , 'plone.icon.speedometer2': , 'plone.icon.spellcheck': , 'plone.icon.spotify': , 'plone.icon.square': , 'plone.icon.square-fill': , 'plone.icon.square-half': , 'plone.icon.stack': , 'plone.icon.stack-overflow': , 'plone.icon.star': , 'plone.icon.star-fill': , 'plone.icon.star-half': , 'plone.icon.stars': , 'plone.icon.steam': , 'plone.icon.stickies': , 'plone.icon.stickies-fill': , 'plone.icon.sticky': , 'plone.icon.sticky-fill': , 'plone.icon.stop': , 'plone.icon.stop-btn': , 'plone.icon.stop-btn-fill': , 'plone.icon.stop-circle': , 'plone.icon.stop-circle-fill': , 'plone.icon.stop-fill': , 'plone.icon.stoplights': , 'plone.icon.stoplights-fill': , 'plone.icon.stopwatch': , 'plone.icon.stopwatch-fill': , 'plone.icon.strava': , 'plone.icon.stripe': , 'plone.icon.subscript': , 'plone.icon.substack': , 'plone.icon.subtract': , 'plone.icon.suit-club': , 'plone.icon.suit-club-fill': , 'plone.icon.suit-diamond': , 'plone.icon.suit-diamond-fill': , 'plone.icon.suit-heart': , 'plone.icon.suit-heart-fill': , 'plone.icon.suit-spade': , 'plone.icon.suit-spade-fill': , 'plone.icon.suitcase': , 'plone.icon.suitcase-fill': , 'plone.icon.suitcase-lg': , 'plone.icon.suitcase-lg-fill': , 'plone.icon.suitcase2': , 'plone.icon.suitcase2-fill': , 'plone.icon.sun': , 'plone.icon.sun-fill': , 'plone.icon.sunglasses': , 'plone.icon.sunrise': , 'plone.icon.sunrise-fill': , 'plone.icon.sunset': , 'plone.icon.sunset-fill': , 'plone.icon.superscript': , 'plone.icon.symmetry-horizontal': , 'plone.icon.symmetry-vertical': , 'plone.icon.table': , 'plone.icon.tablet': , 'plone.icon.tablet-fill': , 'plone.icon.tablet-landscape': , 'plone.icon.tablet-landscape-fill': , 'plone.icon.tag': , 'plone.icon.tag-fill': , 'plone.icon.tags': , 'plone.icon.tags-fill': , 'plone.icon.taxi-front': , 'plone.icon.taxi-front-fill': , 'plone.icon.telegram': , 'plone.icon.telephone': , 'plone.icon.telephone-fill': , 'plone.icon.telephone-forward': , 'plone.icon.telephone-forward-fill': , 'plone.icon.telephone-inbound': , 'plone.icon.telephone-inbound-fill': , 'plone.icon.telephone-minus': , 'plone.icon.telephone-minus-fill': , 'plone.icon.telephone-outbound': , 'plone.icon.telephone-outbound-fill': , 'plone.icon.telephone-plus': , 'plone.icon.telephone-plus-fill': , 'plone.icon.telephone-x': , 'plone.icon.telephone-x-fill': , 'plone.icon.tencent-qq': , 'plone.icon.terminal': , 'plone.icon.terminal-dash': , 'plone.icon.terminal-fill': , 'plone.icon.terminal-plus': , 'plone.icon.terminal-split': , 'plone.icon.terminal-x': , 'plone.icon.text-center': , 'plone.icon.text-indent-left': , 'plone.icon.text-indent-right': , 'plone.icon.text-left': , 'plone.icon.text-paragraph': , 'plone.icon.text-right': , 'plone.icon.text-wrap': , 'plone.icon.textarea': , 'plone.icon.textarea-resize': , 'plone.icon.textarea-t': , 'plone.icon.thermometer': , 'plone.icon.thermometer-half': , 'plone.icon.thermometer-high': , 'plone.icon.thermometer-low': , 'plone.icon.thermometer-snow': , 'plone.icon.thermometer-sun': , 'plone.icon.threads': , 'plone.icon.threads-fill': , 'plone.icon.three-dots': , 'plone.icon.three-dots-vertical': , 'plone.icon.thunderbolt': , 'plone.icon.thunderbolt-fill': , 'plone.icon.ticket': , 'plone.icon.ticket-detailed': , 'plone.icon.ticket-detailed-fill': , 'plone.icon.ticket-fill': , 'plone.icon.ticket-perforated': , 'plone.icon.ticket-perforated-fill': , 'plone.icon.tiktok': , 'plone.icon.toggle-off': , 'plone.icon.toggle-on': , 'plone.icon.toggle2-off': , 'plone.icon.toggle2-on': , 'plone.icon.toggles': , 'plone.icon.toggles2': , 'plone.icon.toolbar-action': , 'plone.icon.toolbar-action/actions': , 'plone.icon.toolbar-action/display': , 'plone.icon.toolbar-action/edit': , 'plone.icon.toolbar-action/factories': , 'plone.icon.toolbar-action/folderContents': , 'plone.icon.toolbar-action/history': , 'plone.icon.toolbar-action/personaltools': , 'plone.icon.toolbar-action/portlets': , 'plone.icon.toolbar-action/sharing': , 'plone.icon.toolbar-action/state': , 'plone.icon.toolbar-action/view': , 'plone.icon.toolbar-action/workflow': , 'plone.icon.tools': , 'plone.icon.tornado': , 'plone.icon.train-freight-front': , 'plone.icon.train-freight-front-fill': , 'plone.icon.train-front': , 'plone.icon.train-front-fill': , 'plone.icon.train-lightrail-front': , 'plone.icon.train-lightrail-front-fill': , 'plone.icon.translate': , 'plone.icon.transparency': , 'plone.icon.trash': , 'plone.icon.trash-fill': , 'plone.icon.trash2': , 'plone.icon.trash2-fill': , 'plone.icon.trash3': , 'plone.icon.trash3-fill': , 'plone.icon.tree': , 'plone.icon.tree-fill': , 'plone.icon.trello': , 'plone.icon.triangle': , 'plone.icon.triangle-fill': , 'plone.icon.triangle-half': , 'plone.icon.trophy': , 'plone.icon.trophy-fill': , 'plone.icon.tropical-storm': , 'plone.icon.truck': , 'plone.icon.truck-flatbed': , 'plone.icon.truck-front': , 'plone.icon.truck-front-fill': , 'plone.icon.tsunami': , 'plone.icon.tv': , 'plone.icon.tv-fill': , 'plone.icon.twitch': , 'plone.icon.twitter': , 'plone.icon.twitter-x': , 'plone.icon.type': , 'plone.icon.type-bold': , 'plone.icon.type-h1': , 'plone.icon.type-h2': , 'plone.icon.type-h3': , 'plone.icon.type-h4': , 'plone.icon.type-h5': , 'plone.icon.type-h6': , 'plone.icon.type-italic': , 'plone.icon.type-strikethrough': , 'plone.icon.type-underline': , 'plone.icon.ubuntu': , 'plone.icon.ui-checks': , 'plone.icon.ui-checks-grid': , 'plone.icon.ui-radios': , 'plone.icon.ui-radios-grid': , 'plone.icon.umbrella': , 'plone.icon.umbrella-fill': , 'plone.icon.unindent': , 'plone.icon.union': , 'plone.icon.unity': , 'plone.icon.universal-access': , 'plone.icon.universal-access-circle': , 'plone.icon.unlock': , 'plone.icon.unlock-fill': , 'plone.icon.upc': , 'plone.icon.upc-scan': , 'plone.icon.upload': , 'plone.icon.usb': , 'plone.icon.usb-c': , 'plone.icon.usb-c-fill': , 'plone.icon.usb-drive': , 'plone.icon.usb-drive-fill': , 'plone.icon.usb-fill': , 'plone.icon.usb-micro': , 'plone.icon.usb-micro-fill': , 'plone.icon.usb-mini': , 'plone.icon.usb-mini-fill': , 'plone.icon.usb-plug': , 'plone.icon.usb-plug-fill': , 'plone.icon.usb-symbol': , 'plone.icon.valentine': , 'plone.icon.valentine2': , 'plone.icon.vector-pen': , 'plone.icon.view-list': , 'plone.icon.view-stacked': , 'plone.icon.vignette': , 'plone.icon.vimeo': , 'plone.icon.vinyl': , 'plone.icon.vinyl-fill': , 'plone.icon.virus': , 'plone.icon.virus2': , 'plone.icon.voicemail': , 'plone.icon.volume-down': , 'plone.icon.volume-down-fill': , 'plone.icon.volume-mute': , 'plone.icon.volume-mute-fill': , 'plone.icon.volume-off': , 'plone.icon.volume-off-fill': , 'plone.icon.volume-up': , 'plone.icon.volume-up-fill': , 'plone.icon.vr': , 'plone.icon.wallet': , 'plone.icon.wallet-fill': , 'plone.icon.wallet2': , 'plone.icon.watch': , 'plone.icon.water': , 'plone.icon.webcam': , 'plone.icon.webcam-fill': , 'plone.icon.wechat': , 'plone.icon.whatsapp': , 'plone.icon.wifi': , 'plone.icon.wifi-1': , 'plone.icon.wifi-2': , 'plone.icon.wifi-off': , 'plone.icon.wikipedia': , 'plone.icon.wind': , 'plone.icon.window': , 'plone.icon.window-dash': , 'plone.icon.window-desktop': , 'plone.icon.window-dock': , 'plone.icon.window-fullscreen': , 'plone.icon.window-plus': , 'plone.icon.window-sidebar': , 'plone.icon.window-split': , 'plone.icon.window-stack': , 'plone.icon.window-x': , 'plone.icon.windows': , 'plone.icon.wordpress': , 'plone.icon.wrench': , 'plone.icon.wrench-adjustable': , 'plone.icon.wrench-adjustable-circle': , 'plone.icon.wrench-adjustable-circle-fill': , 'plone.icon.x': , 'plone.icon.x-circle': , 'plone.icon.x-circle-fill': , 'plone.icon.x-diamond': , 'plone.icon.x-diamond-fill': , 'plone.icon.x-lg': , 'plone.icon.x-octagon': , 'plone.icon.x-octagon-fill': , 'plone.icon.x-square': , 'plone.icon.x-square-fill': , 'plone.icon.xbox': , 'plone.icon.yelp': , 'plone.icon.yin-yang': , 'plone.icon.youtube': , 'plone.icon.zoom-in': , 'plone.icon.zoom-out': , 'plone.icon_visibility': , 'plone.image_captioning': , 'plone.image_objects': , 'plone.inline': , 'plone.inline_styles': , 'plone.libraries_atd_ignore_strings': , 'plone.libraries_atd_service_url': , 'plone.libraries_atd_show_types': , 'plone.libraries_spellchecker_choice': , 'plone.lock_on_ttw_edit': , 'plone.many_groups': , 'plone.many_users': , 'plone.mark_special_links': , 'plone.markdown_extensions': , 'plone.menu': , 'plone.menubar': , 'plone.nasty_tags': , 'plone.navigation_depth': , 'plone.no_thumbs_lists': , 'plone.no_thumbs_portlet': , 'plone.no_thumbs_summary': , 'plone.no_thumbs_tables': , 'plone.nonfolderish_tabs': , 'plone.other_settings': , 'plone.parent_types_not_to_query': , 'plone.patternoptions': , 'plone.picture_variants': , 'plone.plugins': , 'plone.portal_timezone': , 'plone.quality': , 'plone.quality_2x': , 'plone.quality_3x': , 'plone.redirect_links': , 'plone.resizing': , 'plone.resources.development': , 'plone.robots_txt': , 'plone.roles_allowed_to_add_keywords': , 'plone.root': , 'plone.search_image_scale': , 'plone.search_results_description_length': , 'plone.search_show_images': , 'plone.set_cookie_always': , 'plone.share_social_data': , 'plone.show_excluded_items': , 'plone.site_favicon': , 'plone.site_favicon_mimetype': , 'plone.site_logo': , 'plone.site_title': , 'plone.sitemap_depth': , 'plone.smtp_host': , 'plone.smtp_pass': , 'plone.smtp_port': , 'plone.smtp_userid': , 'plone.sort_on': , 'plone.sort_tabs_on': , 'plone.sort_tabs_reversed': , 'plone.subjects_of_navigation_root': , 'plone.table_styles': , 'plone.templates': , 'plone.thumb_scale_listing': , 'plone.thumb_scale_portlet': , 'plone.thumb_scale_summary': , 'plone.thumb_scale_table': , 'plone.thumb_visibility': , 'plone.toolbar': , 'plone.toolbar_logo': , 'plone.toolbar_position': , 'plone.twitter_username': , 'plone.types_not_searched': , 'plone.types_use_view_action_in_listings': , 'plone.use_cctld_negotiation': , 'plone.use_combined_language_codes': , 'plone.use_content_negotiation': , 'plone.use_cookie_negotiation': , 'plone.use_email_as_login': , 'plone.use_path_negotiation': , 'plone.use_request_negotiation': , 'plone.use_subdomain_negotiation': , 'plone.use_uuid_as_userid': , 'plone.valid_tags': , 'plone.verify_login_name': , 'plone.webstats_head_js': , 'plone.webstats_js': , 'plone.workflow_states_to_show': }), , '')", - "traceback": [ - "File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 181, in transaction_pubevents", - " yield", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 391, in publish_module", - " response = _publish(request, new_mod_info)", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 285, in publish", - " result = mapply(obj,", - " ^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/mapply.py\", line 98, in mapply", - " return debug(object, args, context)", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 68, in call_object", - " return obj(*args)", - " ^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/plone.rest-4.1.3-py3.12.egg/plone/rest/service.py\", line 21, in __call__", - " return self.render()", - " ^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/__init__.py\", line 19, in render", - " content = self.reply()", - " ^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/registry/get.py\", line 45, in reply", - " serializer = getMultiAdapter(", - " ^^^^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/zope.component-6.0-py3.12.egg/zope/component/_api.py\", line 113, in getMultiAdapter", - " raise ComponentLookupError(objects, interface, name)" + "@id": "http://localhost:55001/plone/@registry", + "batching": { + "@id": "http://localhost:55001/plone/@registry", + "first": "http://localhost:55001/plone/@registry?b_start=0", + "last": "http://localhost:55001/plone/@registry?b_start=2950", + "next": "http://localhost:55001/plone/@registry?b_start=25" + }, + "items": [ + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.Enabled", + "schema": { + "properties": { + "description": "Override the translation machinery", + "factory": "Yes/No", + "title": "Enabled", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_long", + "schema": { + "properties": { + "description": "Default value: %Y-%m-%d %H:%M (2038-01-19 03:14)", + "factory": "Text line (String)", + "title": "old ZMI property: localLongTimeFormat", + "type": "string" + } + }, + "value": "%Y-%m-%d %H:%M" + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_short", + "schema": { + "properties": { + "description": "Default value: %Y-%m-%d (2038-01-19)", + "factory": "Text line (String)", + "title": "old ZMI property: localTimeFormat", + "type": "string" + } + }, + "value": "%Y-%m-%d" + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.time_format", + "schema": { + "properties": { + "description": "Default value: %H:%M (03:14)", + "factory": "Text line (String)", + "title": "old ZMI property: localTimeOnlyFormat", + "type": "string" + } + }, + "value": "%H:%M" + }, + { + "name": "plone.alignment_styles", + "schema": { + "properties": { + "additionalItems": true, + "default": [ + "Left|alignleft|align-left", + "Center|aligncenter|align-center", + "Right|alignright|align-right", + "Justify|alignjustify|align-justify" + ], + "description": "Name|format|icon", + "factory": "List", + "items": { + "description": "", + "factory": "Text line (String)", + "title": "", + "type": "string" + }, + "title": "Alignment styles", + "type": "array", + "uniqueItems": false + } + }, + "value": [ + "Left|alignleft|align-left", + "Center|aligncenter|align-center", + "Right|alignright|align-right", + "Justify|alignjustify|align-justify" + ] + }, + { + "name": "plone.allow_anon_views_about", + "schema": { + "properties": { + "default": false, + "description": "If not selected only logged-in users will be able to view information about who created an item and when it was modified.", + "factory": "Yes/No", + "title": "Allow anyone to view 'about' information", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.allow_external_login_sites", + "schema": { + "properties": { + "additionalItems": true, + "default": [], + "description": "", + "factory": "Tuple", + "items": { + "description": "", + "factory": "Text line (String)", + "title": "", + "type": "string" + }, + "title": "Allow external login sites", + "type": "array", + "uniqueItems": true + } + }, + "value": [] + }, + { + "name": "plone.allowed_sizes", + "schema": { + "properties": { + "additionalItems": true, + "default": [ + "huge 1600:65536", + "great 1200:65536", + "larger 1000:65536", + "large 800:65536", + "teaser 600:65536", + "preview 400:65536", + "mini 200:65536", + "thumb 128:128", + "tile 64:64", + "icon 32:32", + "listing 16:16" + ], + "description": "Specify all allowed maximum image dimensions, one per line. The required format is <name> <width>:<height>.", + "factory": "List", + "items": { + "description": "", + "factory": "Text line (String)", + "title": "", + "type": "string" + }, + "title": "Allowed image sizes", + "type": "array", + "uniqueItems": false + } + }, + "value": [ + "huge 1600:65536", + "great 1200:65536", + "larger 1000:65536", + "large 800:65536", + "teaser 600:65536", + "preview 400:65536", + "mini 200:65536", + "thumb 128:128", + "tile 64:64", + "icon 32:32", + "listing 16:16" + ] + }, + { + "name": "plone.allowed_types", + "schema": { + "properties": { + "additionalItems": true, + "default": [ + "text/html", + "text/x-web-textile" + ], + "description": "Select which formats are available for users as alternative to the default format. Note that if new formats are installed, they will be enabled for text fields by default unless explicitly turned off here or by the relevant installer.", + "factory": "Tuple", + "items": { + "description": "", + "factory": "Choice", + "title": "", + "type": "string", + "vocabulary": { + "@id": "http://localhost:55001/plone/@vocabularies/plone.app.vocabularies.AllowableContentTypes" + } + }, + "title": "Alternative formats", + "type": "array", + "uniqueItems": true + } + }, + "value": [ + "text/html", + "text/x-web-textile" + ] + }, + { + "name": "plone.always_show_selector", + "schema": { + "properties": { + "default": false, + "description": "", + "factory": "Yes/No", + "title": "Always show language selector", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.anonymous_comments", + "schema": { + "properties": { + "default": false, + "description": "If selected, anonymous users are able to post comments without logging in. It is highly recommended to use a captcha solution to prevent spam if this setting is enabled.", + "factory": "Yes/No", + "title": "Enable anonymous comments", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.anonymous_email_enabled", + "schema": { + "properties": { + "default": false, + "description": "If selected, anonymous user will have to give their email.", + "factory": "Yes/No", + "title": "Enable anonymous email field", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.captcha", + "schema": { + "properties": { + "default": "disabled", + "description": "Use this setting to enable or disable Captcha validation for comments. Install plone.formwidget.captcha, plone.formwidget.recaptcha, plone.formwidget.hcaptcha, collective.akismet, or collective.z3cform.norobots if there are no options available.", + "factory": "Choice", + "title": "Captcha", + "type": "string", + "vocabulary": { + "@id": "http://localhost:55001/plone/@vocabularies/plone.app.discussion.vocabularies.CaptchaVocabulary" + } + } + }, + "value": "disabled" + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.delete_own_comment_enabled", + "schema": { + "properties": { + "default": false, + "description": "If selected, supports deleting of own comments for users with the \"Delete own comments\" permission.", + "factory": "Yes/No", + "title": "Enable deleting own comments", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.edit_comment_enabled", + "schema": { + "properties": { + "default": false, + "description": "If selected, supports editing of comments for users with the \"Edit comments\" permission.", + "factory": "Yes/No", + "title": "Enable editing of comments", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.globally_enabled", + "schema": { + "properties": { + "default": false, + "description": "If selected, users are able to post comments on the site. However, you will still need to enable comments for specific content types, folders or content objects before users will be able to post comments.", + "factory": "Yes/No", + "title": "Globally enable comments", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.moderation_enabled", + "schema": { + "properties": { + "default": false, + "description": "If selected, comments will enter a \"Pending\" state in which they are invisible to the public. A user with the \"Review comments\" permission (\"Reviewer\" or \"Manager\") can approve comments to make them visible to the public. If you want to enable a custom comment workflow, you have to go to the types control panel.", + "factory": "Yes/No", + "title": "Enable comment moderation", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.moderator_email", + "schema": { + "properties": { + "description": "Address to which moderator notifications will be sent.", + "factory": "Text line (String)", + "title": "Moderator Email Address", + "type": "string" + } + }, + "value": null + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.moderator_notification_enabled", + "schema": { + "properties": { + "default": false, + "description": "If selected, the moderator is notified if a comment needs attention. The moderator email address can be set below.", + "factory": "Yes/No", + "title": "Enable moderator email notification", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.show_commenter_image", + "schema": { + "properties": { + "default": true, + "description": "If selected, an image of the user is shown next to the comment.", + "factory": "Yes/No", + "title": "Show commenter image", + "type": "boolean" + } + }, + "value": true + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.text_transform", + "schema": { + "properties": { + "default": "text/plain", + "description": "Use this setting to choose if the comment text should be transformed in any way. You can choose between \"Plain text\" and \"Intelligent text\". \"Intelligent text\" converts plain text into HTML where line breaks and indentation is preserved, and web and email addresses are made into clickable links.", + "factory": "Choice", + "title": "Comment text transform", + "type": "string", + "vocabulary": { + "@id": "http://localhost:55001/plone/@vocabularies/plone.app.discussion.vocabularies.TextTransformVocabulary" + } + } + }, + "value": "text/plain" + }, + { + "name": "plone.app.discussion.interfaces.IDiscussionSettings.user_notification_enabled", + "schema": { + "properties": { + "default": false, + "description": "If selected, users can choose to be notified of new comments by email.", + "factory": "Yes/No", + "title": "Enable user email notification", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "plone.app.layout.globals.bodyClass.depth", + "schema": { + "properties": { + "description": "Depth relative the site root that body class are generated for.\n ", + "factory": "Integer", + "title": "Body class path depth", + "type": "integer" + } + }, + "value": 4 + }, + { + "name": "plone.app.portlets.PortletManagerBlacklist", + "schema": { + "properties": { + "additionalItems": true, + "description": "A list of portlet manager names that will not be shown in the toolbar dropdown", + "factory": "List", + "items": { + "description": "", + "factory": "Text line (String)", + "title": "", + "type": "string" + }, + "title": "Toolbar Portlet Manager Blacklist", + "type": "array", + "uniqueItems": false + } + }, + "value": [ + "plone.dashboard1", + "plone.dashboard2", + "plone.dashboard3", + "plone.dashboard4" + ] + }, + { + "name": "plone.app.querystring.field.Creator.description", + "schema": { + "properties": { + "description": "", + "factory": "Text", + "title": "Description", + "type": "string", + "widget": "textarea" + } + }, + "value": "The person that created an item" + } ], - "type": "ComponentLookupError" + "items_total": 2973 } diff --git a/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp index dcafa863c5..8962fb5d70 100644 --- a/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp +++ b/src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp @@ -1,42 +1,57 @@ -HTTP/1.1 500 Internal Server Error +HTTP/1.1 200 OK Content-Type: application/json { - "message": "((>, , {'Products.CMFPlone.i18nl10n.override_dateformat.Enabled': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_long': , 'Products.CMFPlone.i18nl10n.override_dateformat.date_format_short': , 'Products.CMFPlone.i18nl10n.override_dateformat.time_format': }), , '')", - "traceback": [ - "File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 181, in transaction_pubevents", - " yield", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 391, in publish_module", - " response = _publish(request, new_mod_info)", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 285, in publish", - " result = mapply(obj,", - " ^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/mapply.py\", line 98, in mapply", - " return debug(object, args, context)", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/Zope-5.10-py3.12.egg/ZPublisher/WSGIPublisher.py\", line 68, in call_object", - " return obj(*args)", - " ^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/plone.rest-4.1.3-py3.12.egg/plone/rest/service.py\", line 21, in __call__", - " return self.render()", - " ^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/__init__.py\", line 19, in render", - " content = self.reply()", - " ^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/src/plone/restapi/services/registry/get.py\", line 45, in reply", - " serializer = getMultiAdapter(", - " ^^^^^^^^^^^^^^^^", - "", - " File \"/home/f/w/oss/plone/plone.restapi/eggs/zope.component-6.0-py3.12.egg/zope/component/_api.py\", line 113, in getMultiAdapter", - " raise ComponentLookupError(objects, interface, name)" + "@id": "http://localhost:55001/plone/@registry?q=Products.CMFPlone", + "items": [ + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.Enabled", + "schema": { + "properties": { + "description": "Override the translation machinery", + "factory": "Yes/No", + "title": "Enabled", + "type": "boolean" + } + }, + "value": false + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_long", + "schema": { + "properties": { + "description": "Default value: %Y-%m-%d %H:%M (2038-01-19 03:14)", + "factory": "Text line (String)", + "title": "old ZMI property: localLongTimeFormat", + "type": "string" + } + }, + "value": "%Y-%m-%d %H:%M" + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.date_format_short", + "schema": { + "properties": { + "description": "Default value: %Y-%m-%d (2038-01-19)", + "factory": "Text line (String)", + "title": "old ZMI property: localTimeFormat", + "type": "string" + } + }, + "value": "%Y-%m-%d" + }, + { + "name": "Products.CMFPlone.i18nl10n.override_dateformat.time_format", + "schema": { + "properties": { + "description": "Default value: %H:%M (03:14)", + "factory": "Text line (String)", + "title": "old ZMI property: localTimeOnlyFormat", + "type": "string" + } + }, + "value": "%H:%M" + } ], - "type": "ComponentLookupError" + "items_total": 4 } From 978c17bd9ea7e0e8c6543ddd22158b1a037360b0 Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Mon, 20 Jan 2025 03:55:21 +0500 Subject: [PATCH 06/10] update docs. --- docs/source/endpoints/registry.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/source/endpoints/registry.md b/docs/source/endpoints/registry.md index 57fb9f3426..54e897b6e5 100644 --- a/docs/source/endpoints/registry.md +++ b/docs/source/endpoints/registry.md @@ -52,6 +52,20 @@ Example response: :language: http ``` +## Filtering registry records + +Filtering registry records is done by passing a `q` parameter with the prefix of the record name. Filtering also supports {doc}`../usage/batching` like listing registry records. + +```{eval-rst} +.. http:example:: curl httpie python-requests + :request: ../../../src/plone/restapi/tests/http-examples/registry_get_list_filtered.req +``` + +Example response: + +```{literalinclude} ../../../src/plone/restapi/tests/http-examples/registry_get_list_filtered.resp +:language: http +``` ## Updating registry records From 633e9059fc96be539a058ae119c327ceccb8d716 Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Mon, 20 Jan 2025 15:20:41 +0500 Subject: [PATCH 07/10] update docs. --- docs/source/endpoints/registry.md | 6 ++++-- news/1861.feature | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/source/endpoints/registry.md b/docs/source/endpoints/registry.md index 54e897b6e5..07254a9339 100644 --- a/docs/source/endpoints/registry.md +++ b/docs/source/endpoints/registry.md @@ -52,9 +52,11 @@ Example response: :language: http ``` -## Filtering registry records +## Filter list of registry records -Filtering registry records is done by passing a `q` parameter with the prefix of the record name. Filtering also supports {doc}`../usage/batching` like listing registry records. +You can filter a list of registry records and batch the results. +To do so, append a query string to the listing endpoint with a `q` parameter and its value set to the prefix of the desired record name. +See {doc}`../usage/batching` for details of how to work with batched results. ```{eval-rst} .. http:example:: curl httpie python-requests diff --git a/news/1861.feature b/news/1861.feature index 04526ce6a9..5880b29437 100644 --- a/news/1861.feature +++ b/news/1861.feature @@ -1 +1 @@ -Add search param to querystring for registry listing. @Faakhir30 \ No newline at end of file +Support filtering the list of registry records. @Faakhir30 \ No newline at end of file From 355e48d3455b0678a2222ea8fd88b85d0fb9bd17 Mon Sep 17 00:00:00 2001 From: Faakhir30 Date: Mon, 20 Jan 2025 15:40:39 +0500 Subject: [PATCH 08/10] version added --- docs/source/endpoints/registry.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/source/endpoints/registry.md b/docs/source/endpoints/registry.md index 07254a9339..084a5ec9f0 100644 --- a/docs/source/endpoints/registry.md +++ b/docs/source/endpoints/registry.md @@ -54,6 +54,10 @@ Example response: ## Filter list of registry records + +```{versionadded} plone.restapi 9.10.0 +``` + You can filter a list of registry records and batch the results. To do so, append a query string to the listing endpoint with a `q` parameter and its value set to the prefix of the desired record name. See {doc}`../usage/batching` for details of how to work with batched results. From 2da0c393b97cb70cf3225b694efebc7fa022b42b Mon Sep 17 00:00:00 2001 From: Steve Piercy Date: Mon, 20 Jan 2025 03:02:29 -0800 Subject: [PATCH 09/10] Update docs/source/endpoints/registry.md --- docs/source/endpoints/registry.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/source/endpoints/registry.md b/docs/source/endpoints/registry.md index 084a5ec9f0..1a5e0a9c7f 100644 --- a/docs/source/endpoints/registry.md +++ b/docs/source/endpoints/registry.md @@ -54,7 +54,6 @@ Example response: ## Filter list of registry records - ```{versionadded} plone.restapi 9.10.0 ``` From 6b8ad4a82dc7a343de2e3a381b68c0c18cbd5809 Mon Sep 17 00:00:00 2001 From: David Glick Date: Tue, 21 Jan 2025 18:27:47 -0800 Subject: [PATCH 10/10] Apply suggestions from code review --- news/1861.feature | 2 +- src/plone/restapi/services/registry/get.py | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/news/1861.feature b/news/1861.feature index 5880b29437..5e3538d612 100644 --- a/news/1861.feature +++ b/news/1861.feature @@ -1 +1 @@ -Support filtering the list of registry records. @Faakhir30 \ No newline at end of file +In the `@registry` endpoint, added support for filtering the list of registry records. @Faakhir30 \ No newline at end of file diff --git a/src/plone/restapi/services/registry/get.py b/src/plone/restapi/services/registry/get.py index 80c7f9e06d..689d712da3 100644 --- a/src/plone/restapi/services/registry/get.py +++ b/src/plone/restapi/services/registry/get.py @@ -7,8 +7,6 @@ from zope.component import getUtility from zope.interface import implementer from zope.publisher.interfaces import IPublishTraverse -import plone.protect.interfaces -from zope.interface import alsoProvides @implementer(IPublishTraverse) @@ -39,11 +37,6 @@ def reply(self): return json_compatible(value) else: # batched listing if q := self.request.form.get("q"): - # Disable CSRF protection - if "IDisableCSRFProtection" in dir(plone.protect.interfaces): - alsoProvides( - self.request, plone.protect.interfaces.IDisableCSRFProtection - ) tmp_registry = Registry() for key in registry.records.keys():