Avant d'appliquer les migrations Ametys ODF, vous devez appliquer les migrations Ametys CMS 4.2.x vers 4.3.x
Ce guide traite de la migration graphique d'une version Ametys ODF 4.1.x à 4.3.0.
Reportez-vous également au guide de migration technique et au guide des données.
Pour les formations, parcours et ELP, les contacts (responsables + contacts administratifs) ont été fusionnés en un seul repeater de contacts.
Dans la surcharge des rendus des formations, parcours ou ELP, recherchez l'utilisation de "metadata/personInCharge" et "metadata/contact".
Le rendu des contacts (HTML ou PDF) doit être revu en tenant compte du fait que tous les contacts sont désormais dans un seul repeater "contacts".
Voici un exemple de XML d'entrée pour les contacts:
<contacts entrycount="2"> <entry name="1"> <role id="content://32162f5e-565a-4bed-ad94-7bfa3b366a53" name="personrole-txt-responsable-formation-continue" title="Responsable Formation continue" createdat="2018-02-16T10:34:13.864+01:00" creator="admin" lastmodifiedat="2018-02-16T10:34:13.864+01:00"></role> <persons id="personContent://a51310d2-7122-4a2b-ae1a-da8fa0df31c0" name="person-2015" title="Sophie Gamelin" language="fr" createdat="2014-07-23T10:29:39.536+02:00" creator="Anonymous" lastmodifiedat="2014-07-23T10:29:39.581+02:00"></persons> <persons id="personContent://1116f0f0-ecd1-4fdf-835c-f8dcb3aab3b9" name="person-3000" title="Rouleau Guillaume" language="fr" createdat="2014-07-23T10:29:25.677+02:00" creator="Anonymous" lastmodifiedat="2019-10-10T14:53:31.699+02:00"></persons> </entry> <entry name="2"> <role id="content://85a849ca-fb08-4118-bbd7-82062537bbe8" name="contact-administratif" title="Contact administratif" createdat="2019-10-09T15:23:09.828+02:00" creator="admin" lastmodifiedat="2019-10-09T15:23:09.829+02:00"></role> <persons id="personContent://1116f0f0-ecd1-4fdf-835c-f8dcb3aab3b9" name="person-3000" title="Rouleau Guillaume" language="fr" createdat="2014-07-23T10:29:25.677+02:00" creator="Anonymous" lastmodifiedat="2019-10-10T14:53:31.699+02:00"></persons> </entry> </contacts>
Le repeater pour les témoignages contient un nouveau champ role.
Vous pouvez modifier le rendu des témoignages pour afficher ce nouveau champ.
Le type de contenu Personne contient désormais un champ "avatar" (illustration).
vous pouvez modifier le rendu de vos contacts pour afficher cette illustration.
Les tables de référence Campus et Lieux ont un nouveau champ "geocode" pour la géolocalisation.
Vous pouvez utiliser ce nouveau champ pour afficher le lieux de la formation sur une carte par exemple.
Pour télécharger le PDF d'une fiche formation, vous ajoutez un lien de téléchargement de la forme <urlServeur>/plugins/odf-web/<site>/_content/<content-name>.pdf
Ex: http://localhost:8080/plugins/odf-web/www/_content/program-fruai3182988bprh6yqnsb9.pdf
Le nom du fichier à télécharger est donc "program-fruai3182988bprh6yqnsb9.pdf".
Pour avoir des noms de fichier plus lisibles, vous pouvez maintenant utiliser un lien de la forme <urlServeur>/plugins/odf-web/<site>/_content/<content-name>/<title>.pdf
<title> est le nom que vous souhaitez donner à votre PDF, c'est un champ libre mais attention il doit être encodé en utilisant le helper org.ametys.core.util.URLEncoder.encodePath(String)
Voici un exemple pour utiliser le titre de la formation comme nom du fichier PDF :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:url="org.ametys.core.util.URLEncoder"> <xsl:template name="download-pdf"> <xsl:variable name="pdfUrl" select="concat($uri-prefix, '/plugins/odf-web/', $site, '/_content/', /view/content/@name, '/', url:encodePath(/view/content/@title), '.pdf')"/> <a href="{$pdfUrl}">Télécharger</a> </xsl:template> </xsl:stylesheets>
A noter que l'ancienne URL de téléchargement fonctionne toujours.
Cette migration n'est pas obligatoire.
Depuis peu, il est nécessaire d'apposer un label aux formations contrôlée par l'Etat.
La liste des labels existant est imposée par le ministère de l'Enseignement: https://www.enseignementsup-recherche.gouv.fr/cid141235/labels-des-formations-controlees-par-l-etat.html
Pour ce faire, chaque type de diplôme peut être associé à un label (certificationLabel) et un nouveau champ permet de désigner une formation ou un parcours comme "contrôlé par l'état" (certified)
Pour afficher le visuel correspondant à la labellisation de la formation il faut :
Il existe un helper XSL permettant de récupérer le label associé à une formation / parcours selon ses règles.
Voici un exemple d'utilisation dans la charte de démonstration :
<xsl:template name="main-banner-label"> <xsl:variable name="label" select="odf:getCertificationLabel(@id)"/> <xsl:if test="$label != ''"> <div class="ametys-main-banner-label"> <div class="ametys-main-banner-label-inner"> <xsl:variable name="labelImgPath" select="concat('templates/common/img/labels/', $label, '.svg')"/> <img class="ametys-main-banner-label__img" src="{ametys:skinURL($labelImgPath)}" alt="" /> </div> </div> </xsl:if> </xsl:template>
Dans ce template XSL, le helper donne le code du label associée à cette formation ou parcours. Si il est non vide, on affiche l'image SVG du même nom, se trouvant dans un répertoire de la charte.
La nouvelle approche par compétence a entraîné les modifications suivantes sur le modèle :
Dans la surcharge des rendus des formations, parcours ou ELP, recherchez l'utilisation de ces champs.
Le rendu des compétences (HTML ou PDF) doit être revu en tenant compte de ces modifications.
Reportez-vous à la charte ODF noyau.
A savoir également si vous utilisez la charte ODF noyau !
Dans le rendu d'une fiche formation, les compétences acquises - qui sont la concaténation des compétences acquises des ELPs - sont affichées dans la 1ere lame de présentation. Par ailleurs un lien "Voir le tableau d'acquisition des compétences" permet de visualiser la distribution des compétences par année / semestre / UE dans une popup.
Le rendu des compétences est assuré par la XSL stylesheets/content/program/zone/skills.xsl.
L'appel au rendu des compétences se trouve au niveau du template XSL <xsl:template match="fieldset[@role='tab']" mode="display-first"> dans program-main.xsl
Cette migration ne concerne que les applications utilisant la charte ODF noyau
Sur une fiche formation, par défaut, dans le tableau "Programme", un clic sur un ELP ouvre une popup avec quelques champs de l'ELP comme dans l'exemple ci-dessous :
Si vous ne souhaitez pas afficher ces popups, mais accéder directement à la page de l'ELP au clic, il vous faut surcharger le rendu des formations et ELPs dans votre propre charte (stylesheets\content\program\program-main.xsl et stylesheets\content\course\course-main.xsl et surcharger la variable usePopupForCourses comme suit :
<xsl:variable name="usePopupForCourses" select="false()"/>
Cette migration concerne les applications qui n'utilisent pas la charte ODF 4.3 ni une version surchargée de cette charte
Les données XML en entrée pour l'export PDF de la formation contient des données supplémentaires.
En 4.1.x, le XML d'entrée était :
<view> <content> <!-- données du contenu exporté --> </content> </view>
En 4.3, le XML d'entrée est :
<view> <content> <!-- données du contenu exporté --> </content> <contentType> <!-- description du modèle --> </contentType> <structure> <!-- Structure (maquette) de la formation --> </structure> </view>
Si vous avez surcharger le rendu PDF dans votre charte, et notamment surchargé le fichier common2pdf.xsl, il est fort probable d'y trouver dans le template racine l'instruction :
<xsl:apply-templates />
Il faut remplacer cette instruction par :
<xsl:apply-templates select="/view/content"/>
En effet, vos XSL d'export ne prévoient pas de traiter les informations supplémentaire contenus dans les balises <contentType> et <structure>. Il en résulte que le format de sortie n'est plus un format XSL-FO valide.
Une autre manière de faire et d'ajouter les templates XSL suivants afin d'ignorer les données XML supplémentaires:
<xsl:template match="contentType"/> <xsl:template match="structure"/>