diff --git a/data/organisations/data.json b/data/organisations/data.json index 24a620c96..d95c8939e 100644 --- a/data/organisations/data.json +++ b/data/organisations/data.json @@ -31,6 +31,24 @@ "value": "Description in Italian in **markdown** format" } ], + "footer": [ + { + "language": "ger", + "value": "Footer GER **markdown** format" + }, + { + "language": "eng", + "value": "Footer ENG **markdown** format" + }, + { + "language": "fre", + "value": "Footer FRE **markdown** format" + }, + { + "language": "ita", + "value": "Footer ITA **markdown** format" + } + ], "isShared": true, "isDedicated": true, "platformName": "FREDI", @@ -75,6 +93,24 @@ "value": "FOLIA è l'archivio istituzionale dell'Università di Friburgo (Svizzera). Fornisce un accesso gratuito alle pubblicazioni dei ricercatrici e ricercatori dell'Università. FOLIA è gestito dalla Bibliothèque cantonale et universitaire de Fribourg." } ], + "footer": [ + { + "language": "ger", + "value": "Footer GER **markdown** format" + }, + { + "language": "eng", + "value": "Footer ENG **markdown** format" + }, + { + "language": "fre", + "value": "Footer FRE **markdown** format" + }, + { + "language": "ita", + "value": "Footer ITA **markdown** format" + } + ], "isShared": true, "isDedicated": true, "platformName": "# FOLIA\n#### Fribourg Open Library and Archive", diff --git a/sonar/modules/organisations/jsonschemas/organisations/organisation-v1.0.0_src.json b/sonar/modules/organisations/jsonschemas/organisations/organisation-v1.0.0_src.json index 5a2201089..337fcd4da 100644 --- a/sonar/modules/organisations/jsonschemas/organisations/organisation-v1.0.0_src.json +++ b/sonar/modules/organisations/jsonschemas/organisations/organisation-v1.0.0_src.json @@ -82,6 +82,55 @@ } } }, + "footer": { + "title": "Footers", + "type": "array", + "minItems": 1, + "items": { + "title": "Footer", + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "title": "Value", + "type": "string", + "minLength": 1, + "form": { + "type": "markdown", + "templateOptions": { + "rows": 5 + } + } + }, + "language": { + "$ref": "interface_language-v1.0.0.json" + } + }, + "propertiesOrder": [ + "language", + "value" + ], + "required": [ + "value", + "language" + ] + }, + "form": { + "hideExpression": "!field.parent.model.isDedicated", + "validation": { + "validators": { + "uniqueValueKeysInObject": { + "keys": [ + "language" + ] + } + }, + "messages": { + "uniqueValueKeysInObjectMessage": "Only one value per language is allowed" + } + } + } + }, "isShared": { "title": "Is shared", "description": "Organisation records can be accessed by a specific URL.", @@ -328,6 +377,7 @@ "code", "name", "description", + "footer", "isShared", "isDedicated", "allowedIps", diff --git a/sonar/modules/organisations/mappings/v7/organisations/organisation-v1.0.0.json b/sonar/modules/organisations/mappings/v7/organisations/organisation-v1.0.0.json index 1810a424c..152bd16b8 100644 --- a/sonar/modules/organisations/mappings/v7/organisations/organisation-v1.0.0.json +++ b/sonar/modules/organisations/mappings/v7/organisations/organisation-v1.0.0.json @@ -25,6 +25,17 @@ } } }, + "footer": { + "type": "object", + "properties": { + "language": { + "type": "keyword" + }, + "value": { + "type": "text" + } + } + }, "name": { "type": "text", "fields": { diff --git a/sonar/modules/organisations/marshmallow/json.py b/sonar/modules/organisations/marshmallow/json.py index 359369da4..50589e4e8 100644 --- a/sonar/modules/organisations/marshmallow/json.py +++ b/sonar/modules/organisations/marshmallow/json.py @@ -44,6 +44,7 @@ class OrganisationMetadataSchemaV1(StrictKeysMixin): code = SanitizedUnicode(required=True) name = SanitizedUnicode(required=True) description = fields.List(fields.Dict()) + footer = fields.List(fields.Dict()) isShared = fields.Boolean() isDedicated = fields.Boolean() allowedIps = SanitizedUnicode() diff --git a/sonar/modules/organisations/serializers/schemas/export.py b/sonar/modules/organisations/serializers/schemas/export.py index fefe34ded..166777de1 100644 --- a/sonar/modules/organisations/serializers/schemas/export.py +++ b/sonar/modules/organisations/serializers/schemas/export.py @@ -26,6 +26,7 @@ class ExportSchemaV1(Schema): code = fields.String(dump_only=True) name = fields.String(dump_only=True) description = fields.List(fields.Dict(dump_only=True)) + footer = fields.List(fields.Dict(dump_only=True)) isShared = fields.Boolean(dump_only=True) isDedicated = fields.Boolean(dump_only=True) files = fields.Method('get_files', dump_only=True) diff --git a/sonar/theme/templates/sonar/footer.html b/sonar/theme/templates/sonar/footer.html index 5817c8103..13a79d5d0 100755 --- a/sonar/theme/templates/sonar/footer.html +++ b/sonar/theme/templates/sonar/footer.html @@ -15,10 +15,19 @@ along with this program. If not, see . #} -