Migration des workflows surchargés


Cette page traite des migrations à effectuer sur vos fichiers de workflow lorsque votre projet contient des surcharges spécifiques ou des workflows propres au projet.
La migration n'est donc à appliquer que pour les fichiers de workflow contenant une surcharge. Les autres fichiers doivent être supprimés de l'application.

Pour migrer vos fichiers, 2 possibilités:
- soit repartir du fichier de workflow noyau par défaut (inclus maintenant dans le plugin associé) et réappliquer votre surcharge projet (conseillé). Trouver le fichier de référence en fonction de votre application.
- soit appliquez les instructions suivantes (plutôt à utiliser dans le cas de workflows spécifiques au projet)

  1. Clés i18n
  2. Renommage de classes
  3. Actions de modification
  4. Action de synchronisation
  5. Action 22 des workflows ODF
  6. Modification front-office les petites annonces
  7. Modification front-office les contenus

Clés i18n

Cette migration concerne tous vos fichiers de workflow surchargés

Les clés i18n du plugin "default-workflow" ont été déplacées dans le CMS.

Dans vos fichiers de workflow:

  • recherchez et remplacez "plugin.default-workflow:" par "plugin.cms:"
  • recherchez et remplacez "plugin.default-odf-workflow:WORKFLOW_ACTION_REPUBLISH" par "plugin.odf:WORKFLOW_ACTION_REPUBLISH"

Renommage de classes

Cette migration concerne tous vos fichiers de workflow surchargés

Certaines classes JAVA utilisées dans les fichiers de workflow ont été renommées et/ou déplacées.

Dans vos fichiers de workflow:

  • recherchez et remplacer org.ametys.web.workflow.ValidateContentFunction par org.ametys.cms.workflow.ValidateContentFunction
  • recherchez et remplacer org.ametys.odf.workflow.ValidateODFContentFunction par org.ametys.cms.workflow.ValidateContentFunction
  • recherchez et remplacer org.ametys.plugins.contentio.synchronize.workflow.ValidationStepCondition par org.ametys.cms.workflow.ValidationStepCondition
  • recherchez et remplacer org.ametys.web.workflow.ContentPublishedCondition par org.ametys.cms.workflow.HasLiveLabelCondition
  • recherchez et remplacer org.ametys.odf.workflow.ODFContentPublishedCondition par org.ametys.cms.workflow.HasLiveLabelCondition
  • recherchez et remplacer org.ametys.web.workflow.UnpublishContentFunction par org.ametys.cms.workflow.RemoveLiveLabelFunction
  • recherchez et remplacer org.ametys.odf.workflow.UnpublishODFContentFunction par org.ametys.cms.workflow.RemoveLiveLabelFunction

Actions de modification

Cette migration concerne les fichiers de workflow suivants :
- CMS : content.xml, reference-table.xml
- Plugins : user.xml, udorgunit.xml, extraction-description.xml, newsletter.xml, ugc-classified-ads-postvalidation.xml, ugc-classified-ads-prevalidation.xml
- ODF : container.xml, course.xml, course-part.xml, course-list.xml, program.xml, subprogram.xml, orgunit.xml, person.xml

Si vous possédez une surcharge pour l'un des fichiers de workflow cités, il faut modifier les actions 1, 11, 111, 2, 220 et 6 (si elles existent), en y ajoutant post-fonction suivante:

<function type="avalon"> 
    <arg name="role">org.ametys.cms.workflow.extensions.ExtensibleFunction</arg>   
  <arg name="extension-point">org.ametys.cms.workflow.extensions.PostContentEditionFunctionsExtensionPoint</arg>
</function>

Exemple avec l'action 1 des formations (program.xml) :

<action id="1" name="plugin.default-odf-workflow:WORKFLOW_ACTION_CREATE">    
    <pre-functions>     
        <function type="avalon">     
            <arg name="role">org.ametys.odf.workflow.CreateProgramFunction</arg>     
        </function>   
    </pre-functions>   
    <results>     
        <unconditional-result old-status=" " status=" " step="1" />   
    </results>   
    <post-functions>                 
        <function type="avalon">                     
            <arg name="role">org.ametys.cms.workflow.extensions.ExtensibleFunction</arg>                     
            <arg name="extension-point">org.ametys.cms.workflow.extensions.PostContentEditionFunctionsExtensionPoint</arg>  
        </function>     
        <function type="avalon">     
            <arg name="role">org.ametys.cms.workflow.SetCurrentStepIdAndNotifyFunction</arg>     
        </function>                 
        <function type="avalon">                     
            <arg name="role">org.ametys.cms.workflow.CreateVersionFunction</arg>                 
        </function>   
    </post-functions>   
</action>

Action de synchronisation

Cette migration concerne les fichiers de workflow suivants :
- UD : user.xml, udorgunit.xml
- ODF : container.xml, course.xml, course-part.xml, course-list.xml, program.xml, subprogram.xml, orgunit.xml, person.xml

Si vous possédez une surcharge pour l'un des fichiers de workflow cités, l'action 800 de synchronisation doit être modifiée:

  • ajout de la EditSynchronizedContentFunction aux pre-functions
  • ajout de la ExtensibleFunction en post-function de chaque résultat (important pour que cette fonction passe avant la SetCurrentStepIdAndNotifyFunction)
  • suppression de la ExtractOutgoingReferencesFunction des post-functions
  • suppression de la SetCurrentStepIdAndNotifyFunction des post-functions des résultats
  • Ajouter la CreateSynchronizedVersionFunction en post-function de chaque résultat (après la ExtensibleFunction, mais avant la ValidateSynchronizedContentFunction si elle est présente)

Exemple avec l'action 800 des formations (program.xml)

<action id="800" name="plugin.contentio:WORKFLOW_ACTION_SYNCHRONIZE">
    <restrict-to>
        <conditions type="AND">
            <condition type="avalon">
                <arg name="role">org.ametys.cms.workflow.ContentCheckRightsCondition</arg>
                <arg name="right">ODF_Rights_Program_Synchro</arg>
            </condition>
            <condition type="avalon">
                <arg name="role">org.ametys.cms.workflow.LockCondition</arg>
            </condition>
            <condition type="avalon">
                <arg name="role">org.ametys.plugins.contentio.synchronize.workflow.ValidationStepCondition</arg>
                <arg name="validation-step">3</arg>
            </condition>
        </conditions>
    </restrict-to>
    <pre-functions>
        <function type="avalon">
            <arg name="role">org.ametys.plugins.contentio.synchronize.workflow.EditSynchronizedContentFunction</arg>
        </function>
    </pre-functions>
    <results>
        <result old-status=" " status=" " step="1">
            <conditions type="AND">
                <condition type="avalon">
                    <arg name="role">org.ametys.cms.workflow.ContentCurrentStepCondition</arg>
                    <arg name="step">1</arg>
                </condition>
            </conditions>
           <post-functions>
                <function type="avalon">
                    <arg name="role">org.ametys.cms.workflow.extensions.ExtensibleFunction</arg>
                    <arg name="extension-point">org.ametys.cms.workflow.extensions.PostContentEditionFunctionsExtensionPoint</arg>
                </function>
                <function type="avalon">
                   <arg name="role">org.ametys.plugins.contentio.synchronize.workflow.CreateSynchronizedVersionFunction</arg>
                </function>
            </post-functions>
        </result>
        <result old-status=" " status=" " step="2">
            <conditions type="AND">
                <condition type="avalon">
                    <arg name="role">org.ametys.cms.workflow.ContentCurrentStepCondition</arg>
                    <arg name="step">2</arg>
                </condition>
            </conditions>
            <post-functions>
                <function type="avalon">
                    <arg name="role">org.ametys.cms.workflow.extensions.ExtensibleFunction</arg>
                    <arg name="extension-point">org.ametys.cms.workflow.extensions.PostContentEditionFunctionsExtensionPoint</arg>
                </function>
                <function type="avalon">
                   <arg name="role">org.ametys.plugins.contentio.synchronize.workflow.CreateSynchronizedVersionFunction</arg>
                </function>
            </post-functions>
        </result>
        <result old-status=" " status=" " step="3">
            <conditions type="AND">
                <condition type="avalon">
                    <arg name="role">org.ametys.cms.workflow.ContentCurrentStepCondition</arg>
                    <arg name="step">3</arg>
                </condition>
            </conditions>
            <post-functions>
                <function type="avalon">
                    <arg name="role">org.ametys.cms.workflow.extensions.ExtensibleFunction</arg>
                    <arg name="extension-point">org.ametys.cms.workflow.extensions.PostContentEditionFunctionsExtensionPoint</arg>
                </function>
                <function type="avalon">
                   <arg name="role">org.ametys.plugins.contentio.synchronize.workflow.CreateSynchronizedVersionFunction</arg>
                </function>
                <function type="avalon">
                    <arg name="role">org.ametys.plugins.contentio.synchronize.workflow.ValidateSynchronizedContentFunction</arg>
                </function>
                <function type="avalon">
                    <arg name="role">org.ametys.cms.workflow.ValidationStepFunction</arg>
                </function>
            </post-functions>
        </result>
        <unconditional-result old-status=" " status=" " step="1"/>
   </results>
</action>

Action 22 des workflows ODF

Cette migration concerne les fichiers de workflow des contenus ODF:
container.xml, course.xml, course-part.xml, course-list.xml, program.xml, subprogram.xml et orgunit.xml

L'action 22 doit être modifiée pour y ajouter la org.ametys.cms.workflow.EditContentFunction en pré-fonction.

<action id="22" name="plugin.cms:WORKFLOW_ACTION_EDIT">
    <restrict-to>
        <conditions type="AND">
            <condition type="avalon">
                <arg name="role">org.ametys.cms.workflow.LockCondition</arg>
            </condition>
        </conditions>
    </restrict-to>
    <pre-functions>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.EditContentFunction</arg>
        </function>
    </pre-functions>
    <results>
        <unconditional-result old-status=" " status=" " step="1" />
    </results>
    <post-functions>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.SetCurrentStepIdAndNotifyFunction</arg>
        </function>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.CreateVersionFunction</arg>
        </function>
    </post-functions>
</action>

Modification front-office les petites annonces

Cette migration concerne les fichiers de workflow des petites annonces : ugc-classified-ads-postvalidation.xml et ugc-classified-ads-prevalidation.xml.

Afin de permettre à son auteur de modifier sa petite annonce après publication coté front-office (si la modification front-office est active), l'action 42 doit être rajoutée dans les fichiers de workflow ugc-classified-ads-postvalidation.xml et ugc-classified-ads-prevalidation.xml.

Cette migration est optionnelle.

<action id="42" name="plugin.front-edition:WORKFLOW_ACTION_EDIT_FO">
    <restrict-to>
        <conditions type="AND">
            <condition type="avalon">
                <arg name="role">org.ametys.cms.workflow.ContentCheckRightsCondition</arg>
                <arg name="right">Workflow_Rights_Edition_Online</arg>
            </condition>
            <condition type="avalon">
                <arg name="role">org.ametys.cms.workflow.ContentCheckRightsCondition</arg>
                <arg name="right">Workflow_Rights_Validate</arg>
            </condition>
            <condition type="avalon">
                <arg name="role">org.ametys.cms.workflow.LockCondition</arg>
            </condition>
        </conditions>
    </restrict-to>
    <pre-functions>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.EditContentFunction</arg>
        </function>
    </pre-functions>
    <results>
        <unconditional-result old-status=" " status=" " step="3" />
    </results>
    <post-functions>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.extensions.ExtensibleFunction</arg>
            <arg name="extension-point">org.ametys.cms.workflow.extensions.PostContentEditionFunctionsExtensionPoint</arg>
        </function>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.SetCurrentStepIdAndNotifyFunction</arg>
        </function>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.CreateVersionFunction</arg>
        </function>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.ValidateContentFunction</arg>
        </function>
        <function type="avalon">
            <arg name="role">org.ametys.cms.workflow.ValidationStepFunction</arg>
        </function>
    </post-functions>
</action>

Modification front-office les contenus

Cette migration concerne le fichier de workflow content.xml

Une condition inutile (et source d'erreur avec un référence au plugin user-directory) s'est glissée dans les restrictions de l'action 42 (utilisée pour la modification front-office) du fichier content.xml

Remplacer la partie <restrict-to> par:

<restrict-to>
    <conditions type="AND">
        <condition type="avalon">
            <arg name="role">org.ametys.cms.workflow.ContentCheckRightsCondition</arg>
            <arg name="right">Workflow_Rights_Edition_Online</arg>
        </condition>
        <condition type="avalon">
            <arg name="role">org.ametys.cms.workflow.ContentCheckRightsCondition</arg>
            <arg name="right">Workflow_Rights_Validate</arg>
        </condition>
        <condition type="avalon">
            <arg name="role">org.ametys.cms.workflow.LockCondition</arg>
        </condition>
    </conditions>
</restrict-to>
Retour en haut