Présentation

L'export MCC est disponible au format PDF, DOC et XLS.

Il existe une version différentielle de ce rapport.

Un fichier est généré pour chaque conteneur de type année ou formation selon la configuration, il est possible de le lancer directement depuis un conteneur de type année via le bouton "Evaluations", depuis une formation, mais aussi de générer tous les rapports de formation ou année d'une composante.

Selon la configuration, ce rapport est constitué de trois parties maximum :

  • les règles d'obtention du diplôme
  • les modalités de contrôle de connaissance
  • les compétences associées aux ELP (dans un fichier séparé pour la version XLS)

Surcharge

Cet export se base sur une vue nommée report-mcc. Cette vue est disponible dans chacun des types de contenu de l'ODF.

Il est possible d'ajouter et d'enlever des données de l'export via cette vue mais cela n'est pas suffisant. Il est également nécessaire de surcharger les XSL de rendu.

Organisation des XSL

Les XSL de rendus peuvent être surchargées dans le dossier WEB-INF/stylesheets/pilotage/report.

Il y a plusieurs fichiers disponibles :

  • mcc2doc.xsl : Rendu DOC du rapport MCC
  • mcc2pdf.xsl : Rendu PDF du rapport MCC
  • mcc2xls.xsl : Rendu XLS du rapport MCC
  • mccc2xls.xsl : Rendu XLS de la partie compétences du rapport MCC
  • mccdiff2doc.xsl : Rendu DOC du rapport MCC différentiel (basé sur le rapport simple)
  • mccdiff2pdf.xsl : Rendu DOC du rapport MCC différentiel (basé sur le rapport simple)
  • mccdiff2xls.xsl : Rendu XLS du rapport MCC différentiel (basé sur le rapport simple)
  • mcc/legende2doc.xsl : Légende pour le format DOC
  • mcc/legende2pdf.xsl : Légende pour le format PDF
  • mcc/legende2xls.xsl : Légende pour le format XLS
  • mcc/header2xls.xsl : Entête du format XLS, utilisé communément par les 2 rapports pour ce format
  • mcc/styles2xls.xsl : Styles du format XLS, utilisé communément par les 2 rapports pour ce format
  • mccc/legende2xls.xsl : Légende pour le format XLS de la partie compétences du rapport MCC
  • params/mcc.xsl : Paramétrage commun comme les tables de référence prise en compte pour l'affichage dans la légende par exemple
  • params/mccc.xsl : Paramétrage commun comme les tables de référence prise en compte pour l'affichage dans la légende par exemple

Pour chacune des XSL surchargées, il est nécessaire d'importer son équivalent noyau :

<xsl:import href="plugin:odf-pilotage://stylesheets/pilotage/report/[chemin restant de la XSL]"/>

Structure principale

Chaque rendu est composé de plusieurs parties dont :

  • les données MCC
  • les compétences par ELP
  • la légende

Les règles d'obtention du diplôme sont générées par ailleurs et concaténées au document des MCC.

Dans la partie données MCC, il y a :

  • des variables pour définir le nombre de colonnes (pour les fusion de colonnes) - définies dans le fichier params/mcc.xsl :
    • nbColumnsMaquette : nombre de colonnes de description de la maquette
    • nbColumnsElpEval : nombre de colonnes concernant l'évaluation des ELP hors sessions
    • nbColumnsMccSession1 : nombre de colonnes de la session 1 des MCC
    • nbColumnsMccSession2 : nombre de colonnes de la session 2 des MCC
    • titleColumnPosition : position de la colonne contenant le titre, à garder à jour pour permettre de bons alignements
  • des entêtes intermédiaires (mode="section-header-line") : formation (match="program"), parcours (match="subProgram"), conteneur (match="container") - pour le format XLS, elles sont définies dans le fichier mcc/header2xls.xsl.
  • un tableau pour chaque liste de premier niveau avec :
    • les entêtes de colonnes (name="table-header") dont :
      • les colonnes de la maquette (name="table-header-maquette")
      • les colonnes des évaluations des ELP hors session (name="table-header-evaluation-elp")
      • les colonnes de la session 1 des MCC (name="table-header-session1")
      • les colonnes de la session 2 des MCC (name="table-header-session2")
    • les données dont chaque sous élément est exploré
      • les cellules des ELP sont d'un côté (match="course" mode="cells")
      • les cellules des session MCC sont d'un autre côté (match="entry" avec mode="mcc-session-cells-non-empty-1" ou mode="mcc-session-cells-non-empty-2")

Comment procéder ?

Ajouter ou supprimer les données de la ou les vues report-mcc de chaque type de contenu.

Pour modifier un entête, il faut aller modifier également le template concerné par l'entête : match="program" ou match="subProgram" ou match="container" avec mode="section-header-line" (pour la version XLS, dans le fichier header2xls.xsl).

Pour modifier les colonnes du tableau, il faut modifier les templates table-header-maquette, table-header-evaluation-elptable-header-session1 ou table-header-session2 en fonction de là où est la colonne afin d'ajouter / modifier / supprimer l'entête. Attention aux largeurs des colonnes dans les versions PDF et DOC.

Et également modifier les cellules traitées par chaque ELP. Dans le cas d'une suppression de colonne, il est recommandé de vider le template concernant la donnée directement : match="course" mode="cell-course-*" ou match="entry" mode="cell-session-*". Dans le cas d'un ajout de colonne, il faudra surcharger le template match="course" mode="cells", match="entry" mode="mcc-session-cells-non-empty-1" ou match="entry" mode="mcc-session-cells-non-empty-2" pour ajouter le template de traitement de la donnée.

Enfin, les variables nbColumnsMaquette, nbColumnsElpEval, nbColumnsMccSession1, nbColumnsMccSession2 et titleColumnPosition doivent être mises à jour si nécessaire dans le fichier params/mcc.xsl.

Pour compléter, il est possible de mettre à jour la légende.

Exemple

Imaginons le cas de suppression des colonnes nombre de notes et pondérations dans les sessions.

Il est possible de supprimer ces données de la vue report-mcc mais c'est facultatif.

D'abord, il va falloir modifier quelques valeurs communes aux différents formats dans le fichier WEB-INF/stylesheets/pilotage/report/params/mcc.xsl. Ici, le nombre de colonne de la session 1 nbColumnsMccSession1, le nombre de colonne de la session 2 nbColumnsMccSession2, le comptage des fusions de lignes pour les sessions cms:getSessionRowSpan et par nature d'enseignement cms:getNatureEnseignementRowspan qui vont enlever la notion du nombre de notes. Le nombre de lignes pour un ELP est automatiquement comptabilisé en fonction du nombre de lignes générées.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                              xmlns:double="java.lang.Double"
                              xmlns:func="http://exslt.org/functions"
                              xmlns:cms="http://ametys.org/cms/3.0"
                              exclude-result-prefixes="func cms double">

    <xsl:import href="plugin:odf-pilotage://stylesheets/pilotage/report/params/mcc.xsl"/>

    <xsl:param name="nbColumnsMccSession1" select="7"/>
    <xsl:param name="nbColumnsMccSession2" select="6"/>

    <func:function name="cms:getSessionRowSpan">
        <xsl:param name="mcc1"/>
        <xsl:param name="mcc2"/>
        <xsl:param name="displayMcc2"/>

        <func:result select="double:max(1, double:max(count($mcc1), count($mcc2) * $displayMcc2))"/>
    </func:function>

    <func:function name="cms:getNatureEnseignementRowspan">
        <xsl:param name="mcc1"/>
        <xsl:param name="mcc2"/>
        <xsl:param name="displayMcc2"/>

        <func:result select="double:max(1, double:max(count($mcc1), count($mcc2) * $displayMcc2))"/>
    </func:function>
</xsl:stylesheet>

Ensuite, il faut surcharger le rendu DOC avec WEB-INF/stylesheets/pilotage/report/mcc2doc.xsl en modifiant l'entête de colonne des sessions 1 et 2 dans les templates table-header-session1 et table-header-session2 et en vidant les templates de rendu de cellule cell-session-nb-notes et cell-session-nb-ponderation pour supprimer les cellules en excédent :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i18n="http://apache.org/cocoon/i18n/2.1">

    <xsl:import href="plugin:odf-pilotage://stylesheets/pilotage/report/mcc2doc.xsl"/>

    <xsl:template name="table-header-session1">
        <!-- 31% -->
        <td class="session1" style="width: 14%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_LABEL"/></td>
        <td class="session1" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_MODALITE"/></td>
        <td class="session1" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NATURE"/></td>
        <td class="session1" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_DUREE"/></td>
        <td class="session1" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_COEF"/></td>
        <td class="session1" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NOTE_ELIM"/></td>
        <td class="session1" style="width: 2%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_REPORT_SESSION_2"/></td>
    </xsl:template>

    <xsl:template name="table-header-session2">
        <!-- 29% -->
        <td class="session2" style="width: 14%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_LABEL"/></td>
        <td class="session2" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_MODALITE"/></td>
        <td class="session2" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NATURE"/></td>
        <td class="session2" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_DUREE"/></td>
        <td class="session2" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_COEF"/></td>
        <td class="session2" style="width: 3%;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NOTE_ELIM"/></td>
    </xsl:template>

    <!-- Override: remove nbNotes, ponderation columns -->
    <xsl:template match="entry" mode="cell-session-nb-notes"/>
    <xsl:template match="entry" mode="cell-session-ponderation"/>
</xsl:stylesheet>

Et le rendu XLS WEB-INF/stylesheets/pilotage/report/mcc2xls.xsl de la même manière :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i18n="http://apache.org/cocoon/i18n/2.1">

    <xsl:import href="plugin:odf-pilotage://stylesheets/pilotage/report/mcc2xls.xsl"/>

    <xsl:template name="table-header-session1">
        <td class="session1" style="width: 100mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_LABEL"/></td>
        <td class="session1" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_MODALITE"/></td>
        <td class="session1" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NATURE"/></td>
        <td class="session1" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_DUREE"/></td>
        <td class="session1" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_COEF"/></td>
        <td class="session1" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NOTE_ELIM"/></td>
        <td class="session1" style="width: 10mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_REPORT_SESSION_2"/></td>
    </xsl:template>

    <xsl:template name="table-header-session2">
        <td class="session2" style="width: 100mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_LABEL"/></td>
        <td class="session2" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_MODALITE"/></td>
        <td class="session2" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NATURE"/></td>
        <td class="session2" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_DUREE"/></td>
        <td class="session2" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_COEF"/></td>
        <td class="session2" style="width: 15mm;"><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NOTE_ELIM"/></td>
    </xsl:template>

    <!-- Override: remove nbNotes, ponderation columns -->
    <xsl:template match="entry" mode="cell-session-nb-notes"/>
    <xsl:template match="entry" mode="cell-session-ponderation"/>
</xsl:stylesheet>

Et enfin le format PDF avec le fichier WEB-INF/stylesheets/pilotage/report/mcc2pdf.xsl, où il faut également surcharger les templates table-columns-session1 et table-columns-session2 pour ajuster la dimension des colonnes :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i18n="http://apache.org/cocoon/i18n/2.1" xmlns:fo="http://www.w3.org/1999/XSL/Format">

    <xsl:import href="plugin:odf-pilotage://stylesheets/pilotage/report/mcc2pdf.xsl"/>

    <xsl:template name="table-columns-session1">
        <!-- 31% -->
        <fo:table-column column-width="14%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="2%"/>
    </xsl:template>

    <xsl:template name="table-columns-session2">
        <!-- 29% -->
        <fo:table-column column-width="14%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
        <fo:table-column column-width="3%"/>
    </xsl:template>

    <!-- Override: remove nb note et ponderation -->
    <xsl:template name="table-header-session1">
        <fo:table-cell xsl:use-attribute-sets="session1"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_LABEL"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session1"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_MODALITE"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session1"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NATURE"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session1"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_DUREE"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session1"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_COEF"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session1"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NOTE_ELIM"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session1"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_REPORT_SESSION_2"/></fo:block></fo:table-cell>
    </xsl:template>

    <!-- Override: remove nb note et ponderation -->
    <xsl:template name="table-header-session2">
        <fo:table-cell xsl:use-attribute-sets="session2"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_LABEL"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session2"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_MODALITE"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session2"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NATURE"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session2"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_DUREE"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session2"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_COEF"/></fo:block></fo:table-cell>
        <fo:table-cell xsl:use-attribute-sets="session2"><fo:block><i18n:text i18n:catalogue="plugin.odf-pilotage" i18n:key="PLUGINS_ODF_PILOTAGE_MCC_COL_MCC_SESSION_NOTE_ELIM"/></fo:block></fo:table-cell>
    </xsl:template>

    <!-- Override: remove nbNotes, ponderation columns -->
    <xsl:template match="entry" mode="cell-session-nb-notes"/>
    <xsl:template match="entry" mode="cell-session-ponderation"/>
</xsl:stylesheet>

Retour en haut

Installation, administration et paramétrage d'Ametys ODF