ODF - Poursuite d'études


Cette page ne doit être appliquée que si le script de migration assistée vous demande de passer la migration manuelle code.20260923.ODF-FurtherStudyDistribution

A partir de la 4.10.2, le modèle du repeater des poursuites d'études (furtherStudyDistribution) a été modifié:

  • l'attribut Pourcentage (percentage) de type double est remplacé par la donnée Effectif (count) de type long
  • l'attribut Effectif n'est pas obligatoire

Ticket JIRA : https://issues.ametys.org/browse/ODF-4278 

Modification dans les surcharges du modèle

Dans vos surcharges XML de type de contenu (abstractProgram, program et/ou subProgram), si vous référencez l'attribut "percentage" vous devez le remplacer par "count".

Par exemple, le XML suivant

<cms:metadata-ref name="furtherStudyDistribution">
                    <cms:metadata-ref name="title"/>
                    <cms:metadata-ref name="percentage"/>
                    <cms:metadata-ref name="program"/>
</cms:metadata-ref>

doit être remplacé par 

<cms:metadata-ref name="furtherStudyDistribution">
                    <cms:metadata-ref name="title"/>
                  <cms:metadata-ref name="count"/>
                    <cms:metadata-ref name="program"/>
</cms:metadata-ref>

Modification dans les rendus

Coté XSL, si le pourcentage était affiché, il faut maintenant le calculé à partir de "count" et de la somme des "count"

Exemple issue de la charte ODF:

<xsl:template match="metadata[@name = 'furtherStudyDistribution']" mode="progress-list-items">
        <xsl:param name="value"/>
        
        <xsl:variable name="total" select="sum($value/entry/count)"/>
        
        <xsl:for-each select="$value/entry">
            
            <xsl:variable name="percentage">
                <xsl:choose>
                    <xsl:when test="$total != 0 and count != ''"><xsl:value-of select="round(count div $total * 100)"/></xsl:when>
                    <xsl:otherwise><xsl:text> - </xsl:text></xsl:otherwise>
                </xsl:choose>
            </xsl:variable>
            
            <div class="ametys-progress-list__item">
                <div class="ametys-progress">
                    <div class="ametys-progress__bar" style="width: {$percentage}%;" role="progressbar" aria-valuenow="{$percentage}" aria-valuemin="0" aria-valuemax="100"></div>
                </div>
                
                <h3 class="ametys-progress-list__item-title">
                    <xsl:choose>
                        <xsl:when test="program/@id">
                            <a href="{resolver:resolve('odf', program/@id)}">
                                <xsl:choose>
                                    <xsl:when test="normalize-space(title) != ''"><xsl:value-of select="title"/></xsl:when>
                                    <xsl:otherwise><xsl:value-of select="program/@title"/></xsl:otherwise>
                                </xsl:choose>
                            </a>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:value-of select="title"/>
                        </xsl:otherwise>
                    </xsl:choose>
                    <span class="ametys-progress-list__item-value"><xsl:value-of select="$percentage"/>%</span>
                </h3>
            </div>
        </xsl:for-each>
    </xsl:template>

Les données existantes - percentage (double) => count (long) - sont converties par une migration automatique

Retour en haut