Comment créer un énuméré et l'associer à un Smart Field

Prérequis

Il faut avant tout avoir créé une Smart Structure.

Créer le(s) fichier(s) de configuration

Par convention, les fichiers contenant les énumérés du projet se situent ici : src/vendor/<vendorName>/<moduleName>/Enumerates. Nous avons d'ailleurs ici déjà un fichier 100-RestauratecEnumerates.xml. Nous l'utiliserons donc pour l'exemple.

Récupérons donc la partie concernant les énumérés créés dans le fichier de configuration de notre Smart Structure PLAT et plaçons-le dans le fichier cité précédemment :




 
 
 
 
 



<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0">
  <smart:enumerates>
    <smart:enum-configuration name="Plat_Type">
      <smart:enum name="ENTREE" label="Entrée" />
      <smart:enum name="PRINCIPAL" label="Plat principal" />
      <smart:enum name="DESSERT" label="Dessert" />
    </smart:enum-configuration>
  </smart:enumerates>
</smart:config>

Il suffit ensuite de faire référence au nom de notre <smart:enum-configuration> dans le fichier de configuration de notre Smart Structure à l'aide de la balise <smart:field-enum> et de son attribut relation :

Voici donc comment cela se présente dans le fichier de configuration de notre Smart Structure src/vendor/<vendorName>/<moduleName>/SmartStructures/Plat/100-PlatStructure.xml









 








<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0">
    <smart:structure-configuration name="PLAT" label="Plat">
        <smart:extends ref="CONSOMMABLE"></smart:extends>
        <smart:icon file="plat.png" />
        <smart:class>Cogip\Restauratec\SmartStructures\Plat\PlatBehavior</smart:class>
        <smart:fields>
            <smart:field-set name="consommable_frame" extended="true">
                <smart:field-enum name="plat_type" label="Type de plat" relation="Plat_Type" access="ReadWrite" />
                <smart:field-date name="plat_validity_date" label="Disponible jusqu'au" access="ReadWrite" />
            </smart:field-set>
        </smart:fields>
        <smart:hooks />
        <smart:defaults />
    </smart:structure-configuration>
</smart:config>

Attention

Pensez à effectuer une réinstallation afin que l'application prenne en compte les modifications effectuées :

npx @anakeen/anakeen-cli deploy -c http://localhost:8080/control -s . -u admin -p anakeen --reinstall

Informations

Vous trouverez de plus amples informations sur comment déclarer des énumérés dans la documentation associée

Résultat / Vérification

Voici comment cela se traduit lors de la création d'un Plat :

Enum selection

Et ensuite ?

Comment modifier le comportement d'un Smart Element