From cb1fc7b1a3379a7a5569f47922fe4584e3596202 Mon Sep 17 00:00:00 2001 From: Karolina Przerwa Date: Tue, 6 Feb 2024 15:33:04 +0100 Subject: [PATCH] records: expose theme field in search * add dedicated route --- .../communities/dumpers/__init__.py | 0 invenio_communities/communities/records/api.py | 1 + .../os-v2/communities/communities-v1.0.0.json | 12 ++++++++++++ invenio_communities/communities/schema.py | 16 +++++++++++++++- invenio_communities/config.py | 1 + 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 invenio_communities/communities/dumpers/__init__.py diff --git a/invenio_communities/communities/dumpers/__init__.py b/invenio_communities/communities/dumpers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/invenio_communities/communities/records/api.py b/invenio_communities/communities/records/api.py index a2ef21c5a..6363684e2 100644 --- a/invenio_communities/communities/records/api.py +++ b/invenio_communities/communities/records/api.py @@ -70,6 +70,7 @@ class Community(Record): #: Custom fields system field. custom_fields = DictField(clear_none=True, create_if_missing=True) + theme = DictField(clear_none=True) theme = DictField(clear_none=True) diff --git a/invenio_communities/communities/records/mappings/os-v2/communities/communities-v1.0.0.json b/invenio_communities/communities/records/mappings/os-v2/communities/communities-v1.0.0.json index a983d2333..6e802c981 100644 --- a/invenio_communities/communities/records/mappings/os-v2/communities/communities-v1.0.0.json +++ b/invenio_communities/communities/records/mappings/os-v2/communities/communities-v1.0.0.json @@ -116,6 +116,18 @@ "custom_fields": { "type": "object" }, + "theme": { + "enabled": false, + "type": "object", + "properties": { + "brand": { + "type": "keyword" + }, + "config": { + "type": "object" + } + } + }, "metadata": { "properties": { "title": { diff --git a/invenio_communities/communities/schema.py b/invenio_communities/communities/schema.py index 4b83a6a94..5ac9deac8 100644 --- a/invenio_communities/communities/schema.py +++ b/invenio_communities/communities/schema.py @@ -161,11 +161,25 @@ class DeletionStatusSchema(Schema): status = fields.String(dump_only=True) +class CommunityThemeConfigSchema(Schema): + """Community Theme configuration schema.""" + + font = fields.Dict() + primaryColor = fields.Str() + secondaryColor = fields.Str() + tertiaryColor = fields.Str() + primaryTextColor = fields.Str() + secondaryTextColor = fields.Str() + tertiaryTextColor = fields.Str() + mainHeaderBackgroundColor = fields.Str() + + + class CommunityThemeSchema(Schema): """Community theme schema.""" + config = fields.Nested(CommunityThemeConfigSchema) enabled = fields.Boolean() - config = fields.Dict() brand = fields.Str() diff --git a/invenio_communities/config.py b/invenio_communities/config.py index 8042dfa49..d9115e4ab 100644 --- a/invenio_communities/config.py +++ b/invenio_communities/config.py @@ -21,6 +21,7 @@ "search": "/communities/search", "new": "/communities/new", "details": "/communities/", + "upload": "/communities//upload", "settings": "/communities//settings", "requests": "/communities//requests", "settings_privileges": "/communities//settings/privileges",