Pour activer les éléments pédagogiques, il faut aller dans la configuration du CMS dans l'onglet Offre de formation et cocher Activer la mutualisation
Lorsqu'un élément pédagogique va être créé, les champs de mutualisation vont automatiquement s'initialiser.
Il est possible de paramétrer cette initialisation en ajoutant le fichier shareable-configuration.xml dans WEB-INF/param de votre application.
<shareable-fields auto-validated="true"> <shareable>true</shareable> <shareable-programs>OWN</shareable-programs> <shareable-degrees>OWN</shareable-degrees> <shareable-periods>OWN</shareable-periods> <shareable-orgunits>OWN</shareable-orgunits> </shareable-fields>
<shareable> |
true pour dire que les éléments pédagogiques sont ouvert à la mutualisation lors de leur création. |
<shareable-programs> |
OWN pour qu'à la création des éléments pédagogiques, ce champs s'initialise avec les identifiants des programmes parents à l'élément pédagogique. Par défaut, aucune valeur n'est renseignée. Le champs ne sera donc pas initialisé. |
<shareable-degrees> |
OWN pour qu'à la création des éléments pédagogiques, ce champs s'initialise avec les identifiants des type de diplôme des programmes parents à l'élément pédagogique. Par défaut, aucune valeur n'est renseignée. Le champs ne sera donc pas initialisé. |
<shareable-periods> |
OWN pour qu'à la création des éléments pédagogiques, ce champs s'initialise avec les identifiants des semestres des conteneurs parents à l'élément pédagogique. Par défaut, aucune valeur n'est renseignée. Le champs ne sera donc pas initialisé. |
<shareable-orgunits> |
OWN pour qu'à la création des éléments pédagogiques, ce champs s'initialise avec les identifiants des composantes des programmes parents à l'élément pédagogique. Par défaut, aucune valeur n'est renseignée. Le champs ne sera donc pas initialisé. |
auto-validated |
true pour dire que les éléments pédagogiques sont validés à la mutualisation lors de leur création. |
Il est possible d'initialiser tous les éléments pédagogiques déjà existants à l'aide d'un script JCR. Ce script va s'appuyer sur le fichier de configuration ci-dessus.
Ce script peut prendre plusieurs heures si il y a beaucoup de données.
var shareableCourseHelper = serviceManager.lookup("org.ametys.odf.course.ShareableCourseHelper"); var count = { existing: 0, done: 0 }; jcrXPathQuery("//element(*, ametys:courseContent)[@ametys-internal:contentType='org.ametys.plugins.odf.Content.course']").forEach(function (content) { count.existing++; migrateContent(content, [_initializeShareableFields], false, null, false); count.done++; }) print(count.done + " ELP(s) migrated on " + count.existing + " existing ELP(s)"); function _initializeShareableFields(content) { var courseListParents = content.getParentCourseLists(); shareableCourseHelper.initializeShareableFields(content, courseListParents, org.ametys.core.user.population.UserPopulationDAO.SYSTEM_USER_IDENTITY, true); }
Après ce script, il faudra :