Cette page ne doit être appliquée que si le script de migration assistée vous demande de passer la migration manuelle code.20250401.ODF.MCCSessionByEducationalPath 
Les évaluations peuvent être maintenant dépendre du chemin pédagogique de l'ELP.
soit mutualisée (attribut common à true), valeur par défaut soit propre au chemin pédagogique de l'ELP (attribut common à false) Si vous avez modifié le modèle des ELPs pour redéfinir ou surcharger les repeater d'évaluations (mccSession1 ou mccSession2), vous devez ré-appliquer les modifications apportées par le modèle standard:
Ajout des attributs "common"  et "path"  dans les 2 repeaters  Les restrictions de type <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/>  sur les repeaters ET les champs du repeater,  doivent être remplacées par la restriction org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction , à l'exception du champ "common" !  Exemple sur le repeater mccSession1, en gras, les modifications à reporter
<attribute type="repeater" name="mccSession1" initial-size="0">
        <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_LABEL</label>
        <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_DESCRIPTION</description>
        <add-label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_ADD_LABEL</add-label>
        <del-label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_DEL_LABEL</del-label>
        <header-label>{label} - {nature} (Coef. {coefficient})</header-label>
        <disable-conditions>
            <condition id="isEvaluated" operator="eq">false</condition>
        </disable-conditions>
        <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
            <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
       </custom-restriction> 
<attribute name="common" type="boolean"> 
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_COMMON_LABEL 
            </label> 
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_COMMON_DESCRIPTION 
            </description> 
            <default-value>true</default-value> 
            <disable-conditions> 
                <condition id="../isEvaluated" operator="eq">false</condition> 
            </disable-conditions> 
            <restrict-to> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields" /> 
            </restrict-to> 
        </attribute> 
        
        <attribute name="path" type="educational-path"> 
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_PATH_LABEL 
            </label> 
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_PATH_DESCRIPTION 
            </description> 
            <validation> 
                <mandatory/> 
            </validation> 
            <disable-conditions type="or"> 
                <condition id="../isEvaluated" operator="eq">false</condition> 
                <condition id="common" operator="neq">false</condition> 
            </disable-conditions> 
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
        </attribute>
        <attribute name="label" type="string">
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_LABEL_LABEL</label>
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_LABEL_DESCRIPTION</description>
            <disable-conditions>
                <condition id="../isEvaluated" operator="eq">false</condition>
            </disable-conditions>
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
        </attribute>
        
        <attribute name="natureEnseignement" type="content" contentType="odf-enumeration.EnseignementNature">
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_NATURE_ENSEIGNEMENT_LABEL</label>
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_NATURE_ENSEIGNEMENT_DESCRIPTION</description>
            <widget>edition.select-referencetable-content</widget>
            <disable-conditions>
                <condition id="../isEvaluated" operator="eq">false</condition>
            </disable-conditions>
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
      </attribute>
<!-- Remplacer les restrictions existantes sur tous les autres attributs --> 
<!-- etc -->
</repeater> <attribute type="repeater" name="mccSession1" initial-size="0">
        <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_LABEL</label>
        <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_DESCRIPTION</description>
        <add-label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_ADD_LABEL</add-label>
        <del-label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_DEL_LABEL</del-label>
        <header-label>{label} - {nature} (Coef. {coefficient})</header-label>
        <disable-conditions>
            <condition id="isEvaluated" operator="eq">false</condition>
        </disable-conditions>
        <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
            <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
       </custom-restriction> 
<attribute name="common" type="boolean"> 
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_COMMON_LABEL 
            </label> 
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_COMMON_DESCRIPTION 
            </description> 
            <default-value>true</default-value> 
            <disable-conditions> 
                <condition id="../isEvaluated" operator="eq">false</condition> 
            </disable-conditions> 
            <restrict-to> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields" /> 
            </restrict-to> 
        </attribute> 
        
        <attribute name="path" type="educational-path"> 
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_PATH_LABEL 
            </label> 
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_PATH_DESCRIPTION 
            </description> 
            <validation> 
                <mandatory/> 
            </validation> 
            <disable-conditions type="or"> 
                <condition id="../isEvaluated" operator="eq">false</condition> 
                <condition id="common" operator="neq">false</condition> 
            </disable-conditions> 
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
        </attribute>
        <attribute name="label" type="string">
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_LABEL_LABEL</label>
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_LABEL_DESCRIPTION</description>
            <disable-conditions>
                <condition id="../isEvaluated" operator="eq">false</condition>
            </disable-conditions>
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
        </attribute>
        
        <attribute name="natureEnseignement" type="content" contentType="odf-enumeration.EnseignementNature">
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_NATURE_ENSEIGNEMENT_LABEL</label>
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_NATURE_ENSEIGNEMENT_DESCRIPTION</description>
            <widget>edition.select-referencetable-content</widget>
            <disable-conditions>
                <condition id="../isEvaluated" operator="eq">false</condition>
            </disable-conditions>
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
      </attribute>
<!-- Remplacer les restrictions existantes sur tous les autres attributs --> 
<!-- etc -->
</repeater> 
<attribute type="repeater" name="mccSession1" initial-size="0">
        <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_LABEL</label>
        <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_DESCRIPTION</description>
        <add-label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_ADD_LABEL</add-label>
        <del-label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION1_DEL_LABEL</del-label>
        <header-label>{label} - {nature} (Coef. {coefficient})</header-label>
        <disable-conditions>
            <condition id="isEvaluated" operator="eq">false</condition>
        </disable-conditions>
        <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
            <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
       </custom-restriction> 
<attribute name="common" type="boolean"> 
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_COMMON_LABEL 
            </label> 
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_COMMON_DESCRIPTION 
            </description> 
            <default-value>true</default-value> 
            <disable-conditions> 
                <condition id="../isEvaluated" operator="eq">false</condition> 
            </disable-conditions> 
            <restrict-to> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields" /> 
            </restrict-to> 
        </attribute> 
        
        <attribute name="path" type="educational-path"> 
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_PATH_LABEL 
            </label> 
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_PATH_DESCRIPTION 
            </description> 
            <validation> 
                <mandatory/> 
            </validation> 
            <disable-conditions type="or"> 
                <condition id="../isEvaluated" operator="eq">false</condition> 
                <condition id="common" operator="neq">false</condition> 
            </disable-conditions> 
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
        </attribute>
        <attribute name="label" type="string">
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_LABEL_LABEL</label>
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_LABEL_DESCRIPTION</description>
            <disable-conditions>
                <condition id="../isEvaluated" operator="eq">false</condition>
            </disable-conditions>
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
        </attribute>
        
        <attribute name="natureEnseignement" type="content" contentType="odf-enumeration.EnseignementNature">
            <label i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_NATURE_ENSEIGNEMENT_LABEL</label>
            <description i18n="true">plugin.odf-pilotage:PLUGINS_ODF_PILOTAGE_COURSE_MCC_SESSION_NATURE_ENSEIGNEMENT_DESCRIPTION</description>
            <widget>edition.select-referencetable-content</widget>
            <disable-conditions>
                <condition id="../isEvaluated" operator="eq">false</condition>
            </disable-conditions>
            <custom-restriction class="org.ametys.odf.restriction.RepeaterWithEducationalPathRestriction"> 
                <right read-write-direction="write" id="ODF_Rights_Pilotage_MCC_Fields"/> 
            </custom-restriction> 
      </attribute>
<!-- Remplacer les restrictions existantes sur tous les autres attributs --> 
<!-- etc -->
</repeater> Vérifier particulièrement le nom des attributs et leurs conditions de modifications (disable-conditions, restrict-to)
Si il n'y aucune différence, supprimer la surcharge du modèle.
Si une différence existe au niveau du nom des attributs, il faut migrer les données vers le modèle standard avant de supprimer la surcharge => demander de l'aide 
Toute surcharge des rapports MCC pour afficher les coefficients par chemin pédagogique devient inutile puisque supporter par le noyau.WEB-INF/stylesheets/pilotage/report/mcc2[FORMAT].xsl  pour les surcharges du type: 
<xsl:template match="course" mode="cell-course-coef">
        <xsl:param name="rowspan"/>
        <td class="centered" rowspan="{$rowspan}">
            <xsl:call-template name="display-double">
                <xsl:with-param name="value" select="odf:getValueForPath(@id, 'mccCoefficientByEducationalPath/coefficient', @path, 'mccCoefficient')" />
            </xsl:call-template>
        </td>
</xsl:template> <xsl:template match="course" mode="cell-course-coef">
        <xsl:param name="rowspan"/>
        <td class="centered" rowspan="{$rowspan}">
            <xsl:call-template name="display-double">
                <xsl:with-param name="value" select="odf:getValueForPath(@id, 'mccCoefficientByEducationalPath/coefficient', @path, 'mccCoefficient')" />
            </xsl:call-template>
        </td>
</xsl:template> 
<xsl:template match="course" mode="cell-course-coef">
        <xsl:param name="rowspan"/>
        <td class="centered" rowspan="{$rowspan}">
            <xsl:call-template name="display-double">
                <xsl:with-param name="value" select="odf:getValueForPath(@id, 'mccCoefficientByEducationalPath/coefficient', @path, 'mccCoefficient')" />
            </xsl:call-template>
        </td>
</xsl:template>