Comment paramétrer le cycle de vie - Gestion de la visibilité des Smarts Fields

Prérequis

Afin de pouvoir suivre ce guide, il faut préalablement avoir vu comment gérer les rendus d'un Smart Element.

Il faut aussi avoir créé le cycle de vie d'un Smart Element.

Comment procéder ?

  • Créer les masques

Créer le masque permettant de gérer la visibilité des Smart Fields pour les cuisiniers

npx @anakeen/anakeen-cli createSetting --type Masks --name Plat_E2_Mask_Cuisinier --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">
    <ui:mask xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="PLAT_E2_MASK_CUISINIER" label="Plat_E2_Mask_Cuisinier" structure="PLAT">
        <ui:visibility-list>
            <ui:visibility field="consommable_title" value="S"/>
            <ui:visibility field="consommable_description" value="S"/>
            <ui:visibility field="consommable_price_incl_vat" value="R"/>
            <ui:visibility field="plat_type" value="R"/>
            <ui:visibility field="plat_validity_date" value="R"/>
        </ui:visibility-list>
    </ui:mask>
</smart:config>

Créer le masque permettant de gérer la visibilité des Smart Fields pour la direction

npx @anakeen/anakeen-cli createSetting --type Masks --name Plat_E2_Mask_Directeur --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">
    <ui:mask xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="PLAT_E2_MASK_DIRECTEUR" label="Plat_E2_Mask_Directeur" structure="PLAT">
        <ui:visibility-list>
            <ui:visibility field="consommable_title" value="R"/>
            <ui:visibility field="consommable_description" value="R"/>
            <ui:visibility field="consommable_price_incl_vat" value="W"/>
            <ui:visibility field="plat_type" value="R"/>
            <ui:visibility field="plat_validity_date" value="W"/>
        </ui:visibility-list>
    </ui:mask>
</smart:config>
  • Référencer ces masques dans un contrôle de vue qu'il faut tout d'abord créer :
npx @anakeen/anakeen-cli createSetting --type ViewControl --name Plat_E2 --associatedSmartStructure PLAT
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0">

    <ui:view-control xmlns:ui="https://platform.anakeen.com/4/schemas/ui/1.0" name="CVDOC_PLAT_E2" label="Plat_E2" structure="PLAT">
        <!--region View control configuration ======-->
        <ui:view-list>
            <ui:view name="EDIT_PLAT_E2_DIRECTEUR" label="Modifier" display-mode="edition" order="10" menu-displayed="false">
                <ui:mask ref="PLAT_E2_MASK_DIRECTEUR"/>
            </ui:view>
            <ui:view name="EDIT_PLAT_E2_CUISINIER" label="Modifier" display-mode="edition" order="20" menu-displayed="false">
                <ui:mask ref="PLAT_E2_MASK_CUISINIER"/>
            </ui:view>
        </ui:view-list>
        <!--endregion View control configuration ===-->
    </ui:view-control>

    <!--region Cvdoc views : Accesses ==========-->
    <smart:access-configuration name="CVDOC_PLAT_E2" label="Profil CVDOC" profil-type="CVDOC"
                                access-structure="PLAT" policy="SET">
        <smart:element-access access="EDIT_PLAT_E2_DIRECTEUR" account="role_direction"/>
        <smart:element-access access="EDIT_PLAT_E2_CUISINIER" account="role_cuisinier"/>
    </smart:access-configuration>
    <!-- endregion Cvdoc views : Accesses ==========-->
</smart:config>
  • Référencer et lier le contrôle de vue à l'étape voulue dans le fichier de configufation du Smart Element associé à la Smart Structure du workflow src/vendor/<vendorName>/<moduleName>/SmartStructures/Plat/PlatWorkflows/WdocPlatWorkflow/510-WdocPlatWorkflowSettings.xml





 
 
 




    <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    <!--Timer and Mail templates workflow references-->
    <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    <workflow:config xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0" name="WDOC_PLAT" structure="PLAT" model="WFAM_PLAT">
        <workflow:steps>
            <workflow:step ref="plat_e2">
                <workflow:view-control ref="CVDOC_PLAT_E2"/>
            </workflow:step>
        </workflow:steps>
        <workflow:transitions/>
    </workflow:config>

Résultat / Vérification

Divers points peuvent être vérifiés aux adresses suivantes :

  • Le contrôle de vue est bien associé à l'état voulu du workflow concerné
localhost:8080/devel/wfl/WDOC_PLAT/steps

Contrôle de vue lié au workflow

  • Les masques sont bien associés au contrôle de vue
localhost:8080/devel/ui/PLAT/views/?cvId=CVDOC_PLAT_E2

Masques liés au contrôle de vue

  • Chacun des masques possède bien les visibilités définies au début de ce chapitre
    • Masque directeur
    localhost:8080/devel/ui/PLAT/masks/PLAT_E2_MASK_DIRECTEUR
    
    • Masque cuisinier
    localhost:8080/devel/ui/PLAT/masks/PLAT_E2_MASK_CUISINIER
    

Actuce

Pour pouvoir créer un smart element dynamiquement (pendant une transition par exemple) vous pouvez utiliser la fonction createDocument().

Et ensuite ?

Comment paramétrer le cycle de vie - Envoi de mail