From 37f84a915a8406d898de74723745983241b93425 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Fri, 28 Jun 2024 16:54:36 +0200 Subject: [PATCH] merged with `event_manager` branch, see https://code-repo.d4science.org/gCubeSystem/gcube-cms-suite/pulls/18 --- D4S_UCDs/DEV/devVRE/Concessioni.json | 134 +++++++++++++++++++- D4S_UCDs/PRE/preVRE/Concessioni_estere.json | 4 +- README.md | 63 ++++++--- 3 files changed, 174 insertions(+), 27 deletions(-) diff --git a/D4S_UCDs/DEV/devVRE/Concessioni.json b/D4S_UCDs/DEV/devVRE/Concessioni.json index 82cc73a..2160014 100644 --- a/D4S_UCDs/DEV/devVRE/Concessioni.json +++ b/D4S_UCDs/DEV/devVRE/Concessioni.json @@ -312,10 +312,10 @@ "path": "$._theDocument.cronologiaMacrofase", "type": "TEXT", "apply_regex": { - "type": "replaceAll", - "regex": "(\\s)?\\([\\s\\S]*", - "replacement": "" - } + "type": "replaceAll", + "regex": "(\\s)?\\([\\s\\S]*", + "replacement": "" + } }, { "name": "specifiche_cronologia", @@ -344,6 +344,132 @@ ] } }, + { + "_id": "Catalogue-Binding-Plugin", + "_type": "EventListener", + "_configuration": { + "subscribeEvents": [ + { + "event": "LIFECYCLE_STEP_PERFORMED", + "when": [ + { + "target_phase": [ + "Published" + ], + "last_invoked_step": "APPROVE-SUBMITTED" + }, + { + "target_phase": [ + "DRAFT" + ], + "last_invoked_step": "UNPUBLISH" + } + ] + }, + { + "event": "PROJECT_DELETED" + } + ], + "freemarker_template_host": "https://code-repo.d4science.org", + "freemarker_template_path": "gCubeSystem/gcube-cms-suite/raw/branch/event_manager/D4S_UCDs/DEV/devVRE/catalogue/binding/freemarker_templates/d4gna_to_catalogue.ftl", + "enabled": true + } + }, + { + "_id": "Notifications-Plugin", + "_type": "EventListener", + "_configuration": { + "subscribeNotifications": [ + { + "event": "LIFECYCLE_STEP_PERFORMED", + "notificationFor": [ + { + "roles": [ + "Data-Manager" + ], + "when": [ + { + "target_phase": [ + "Pending Approval" + ], + "last_invoked_step": "SUBMIT-FOR-REVIEW", + "notify": [ + { + "type": "USER_NOTIFICATION", + "send": true, + "placeholder_title": "TITLE_REVIEW_REQUIRED", + "placeholder_msg": "MSG_REVIEW_REQUIRED" + } + ] + }, + { + "target_phase": [ + "DRAFT" + ], + "last_invoked_step": "REJECT-DRAFT", + "notify": [ + { + "type": "USER_NOTIFICATION", + "send": true, + "placeholder_title": "TITLE_ITEM_REJECTED", + "placeholder_msg": "MSG_ITEM_REJECTED" + } + ] + } + ] + }, + { + "roles": [ + "Item_Creator" + ], + "when": [ + { + "target_phase": [ + "DRAFT" + ], + "last_invoked_step": "REJECT-DRAFT", + "notify": [ + { + "type": "USER_NOTIFICATION", + "send": true, + "placeholder_title": "TITLE_ITEM_REJECTED_REVIEW_REQUIRED", + "placeholder_msg": "MSG_ITEM_REJECTED_REVIEW_REQUIRED" + } + ] + } + ] + }, + { + "roles": [ + "Any" + ], + "when": [ + { + "target_phase": [ + "Published" + ], + "last_invoked_step": "APPROVE-SUBMITTED", + "notify": [ + { + "type": "VRE_POST", + "send": true, + "placeholder_msg": "MSG_ITEM_PUBLISHED", + "export_as_pdf": { + "export": false, + "placeholder_msg": "MSG_GO_TO_PDF" + } + } + ] + } + ] + } + ] + } + ], + "enabled": true, + "link_to_notifications_messages": "https://code-repo.d4science.org/gCubeSystem/gcube-cms-suite/raw/branch/event_manager/D4S_UCDs/DEV/devVRE/notifications/Notifications_Messages_ita.properties" + } + }, { "_id": "org.gcube.portlets.user.geoportal-data-entry-app", "_type": "DATA_ENTRY_GUI", diff --git a/D4S_UCDs/PRE/preVRE/Concessioni_estere.json b/D4S_UCDs/PRE/preVRE/Concessioni_estere.json index 8d3b8a5..2b03d75 100644 --- a/D4S_UCDs/PRE/preVRE/Concessioni_estere.json +++ b/D4S_UCDs/PRE/preVRE/Concessioni_estere.json @@ -94,7 +94,7 @@ "_description": "Embedded profile for concessioni estere [mibac] management", "_creationInfo": { "_user": { - "_username": "francesco.mangiacrapa" + "_username": "fabio.sinibaldi" } }, "_dataAccessPolicies": [ @@ -353,7 +353,7 @@ "gcubeSecondaryType": "GeoNaMetadata", "gcubeName": "Informazioni_di_progetto_estero", "sectionName": "$.", - "sectionTitle": "Informazioni di Progetto Estero" + "sectionTitle": "Informazioni di Progetto per l'Estero" }, { "gcubeSecondaryType": "GeoNaMetadata", diff --git a/README.md b/README.md index 2b371d3..cdf4d44 100644 --- a/README.md +++ b/README.md @@ -8,27 +8,12 @@ gCube CMS Suite is a distributed full stack application for publication manageme Rationale : -Publication involves lots of common features as well as custom behaviour and formats. The service implements the basic common logic, delegating to installed plugin both cutom and configurable functions ranging from validation, data manifestazion, indexing and lifecycle management. -Lifecycle management is itself an extension allowing for both common and complex ad-hoc workflows. -High modularity of plugins allows for the composition of ad hoc use cases with maximized re-usability. +Publication involves lots of common features as well as custom behaviour and formats. The service implements the basic common logic, delegating to installed plugin both custom and configurable functions ranging from validation, data manifestation, indexing and lifecycle management. +**Lifecycle management** is itself an extension allowing for both common and complex ad-hoc workflows. +**High modularity of plugins** allows for the composition of ad hoc use cases with maximized re-usability. The suite comes with a set of pre-built plugins and GUIs that communities can easily extend and / or reuse. -## General Architecture -[](https://geoportal.cloud.d4science.org/geoportal-service/docs/architecture.html) - -## Use Case -##### D4GNA: component diagram - -D4GNA context: engines involved - -## Documentation -* [Dedicated Wiki](https://geoportal.d4science.org/geoportal-service/docs/index.html#) - powered by [Sphynx](https://www.sphinx-doc.org/en/master/) -* [Service Interactive API](https://geoportal.d4science.org/geoportal-service/api-docs/index.html) - powered by [Enunciate](http://enunciate.webcohesion.com/) -* [Gcube System Wiki](https://gcube.wiki.gcube-system.org/gcube/GeoPortal). -* [Guide Notebooks](use-cases) - powered by [Jupyter](https://jupyter.org/) - - ## Built with * [gCube SmartGears](https://gcube.wiki.gcube-system.org/gcube/SmartGears) - The gCube SmartGears framework * [OpenJDK](https://openjdk.java.net/) - The JDK used @@ -37,6 +22,43 @@ The suite comes with a set of pre-built plugins and GUIs that communities can ea * [Maven](https://maven.apache.org/) - Dependency Management * [Enunciate](http://enunciate.webcohesion.com/) - API Documentation +## General Architecture +[](https://geoportal.cloud.d4science.org/geoportal-service/docs/architecture.html) + +## Lifecycle Managements + +Document Lifecycle Managements in action: + +##### Single Step (no moderation) +Default Single Step lifecycle + +##### 3 Phases (content moderation) + +Default 3 Phases lifecycle + +## Plugins + +Plugins in action: + +* [Lifecycle Manager](/gCubeSystem/gcube-cms-suite/src/branch/master/default-lc-managers) +* [Spatial Data Infrastructure "SDI"](/gCubeSystem/gcube-cms-suite/src/branch/master/sdi-plugins) +* [Notifications](/gCubeSystem/gcube-cms-suite/src/branch/master/notifications-plugins) +* [Catalogue Binding](/gCubeSystem/gcube-cms-suite/src/branch/event_manager/catalogue-binding-plugin) + +## Use Case +##### The D4GNA + +["Dataset per il Geoportale Nazionale per l’Archeologia"](https://gna.d4science.org) + +Component diagram: + +D4GNA context: engines involved + +## Documentation +* [Dedicated Wiki](https://geoportal.d4science.org/geoportal-service/docs/index.html#) - powered by [Sphynx](https://www.sphinx-doc.org/en/master/) +* [Service Interactive API](https://geoportal.d4science.org/geoportal-service/api-docs/index.html) - powered by [Enunciate](http://enunciate.webcohesion.com/) +* [Gcube System Wiki](https://gcube.wiki.gcube-system.org/gcube/GeoPortal). +* [Guide Notebooks](use-cases) - powered by [Jupyter](https://jupyter.org/) ## Change log @@ -44,10 +66,9 @@ See [CHANGELOG.md](CHANGELOG.md). ## Authors -* **Fabio Sinibaldi** ([ORCID](https://orcid.org/0000-0003-1013-6203)) Computer Scientist at ISTI-CNR - -* **Francesco Mangiacrapa** ([ORCID](https://orcid.org/0000-0002-6528-664X)) Computer Scientist at [ISTI-CNR Infrascience Group](http://nemis.isti.cnr.it/groups/infrascience) +* **Fabio Sinibaldi** as "Architect", "Developer" ([ORCID](https://orcid.org/0000-0003-1013-6203)) Computer Scientist at ISTI-CNR +* **Francesco Mangiacrapa** as "Architect", "Developer" and "Maintainer" ([ORCID](https://orcid.org/0000-0002-6528-664X)) Computer Scientist at [ISTI-CNR Infrascience Group](http://nemis.isti.cnr.it/groups/infrascience) ## License