Ajouter un attribut à un modèle personnalisé
Cette page décrit le processus d'ajout d'un attribut à un modèle personnalisé dans Artemis AppFlow, les champs communs, les spécificités par type et les limitations actuelles. Les attributs enrichissent la structure de données d'un modèle et définissent la façon dont les instances seront saisies, filtrées, triées ou exploitées dans des boucles.
Créez d'abord le modèle (voir Créer un modèle personnalisé), puis ajoutez ses attributs depuis la page de détail. Le dialogue de création du modèle ne permet pas de définir des attributs.
Accéder au dialogue d'ajout
- Ouvrez la page du modèle personnalisé ciblé.
- Dans la section « Attributs », sélectionnez un Type d'attribut via le menu déroulant placé à côté du bouton d'ajout.
- Une fois le type choisi, le bouton « Ajouter un attribut » devient actif (il est grisé tant qu'aucun type n'a été sélectionné).
- Cliquez sur le bouton pour ouvrir le dialogue de configuration.
Note : Le bouton d'ajout reste désactivé tant que le type n'est pas explicitement choisi, même si le menu a été ouvert puis refermé sans sélection.
Types d'attributs visibles dans le sélecteur
Le sélecteur est une liste déroulante unique. Faites défiler pour voir tous les types. Les captures ci-dessous montrent les quatre portions successives du menu.


Liste complète affichée dans le dropdown :
- Texte
- Nombre
- Booléen
- Date
- Date & Heure
- Liste
- Objet
- Fichier
- Image
- Couleur
- Coordonnées géographiques
- Choix
- Foreign Key
- Gallerie
Types non encore disponibles à la création
Les types suivants apparaissent dans la liste mais ne peuvent pas (encore) être créés. Ils sont inactifs (le bouton d'ajout ne fait rien pour ces types) :
- Date
- Date & Heure
- Liste
- Objet
- Fichier
- Couleur
- Coordonnées géographiques
Ils seront activés ultérieurement. Pour l'instant, privilégiez les types « Texte », « Nombre », « Booléen », « Image », « Choix », « Foreign Key » et « Gallerie ».
Champs communs à tous les types
| Champ | Description | Notes |
|---|---|---|
| Nom | Nom lisible de l'attribut. Multilingue via sélecteur de langue. | Obligatoire. Gère la localisation des labels de formulaire. |
| Valeur par défaut | Valeur initiale appliquée si l'utilisateur ne remplit pas le champ. | Doit respecter le type. |
| % de la largeur disponible (desktop) | Largeur (en %) du champ dans les formulaires desktop. | Défaut : 100. Entier recommandé (25, 33, 50, 100...). |
| % de la largeur disponible (mobile) | Largeur (en %) du champ dans les formulaires mobiles. | Défaut : 100. Adapter pour simplifier la lecture. |
| Requis | Le champ doit être renseigné lors de la création/édition d'une instance. | Validation front. |
| Filtrable | Autorise l'utilisation de l'attribut comme critère lorsque des instances doivent être filtrées. | Indexation possible selon implémentation. |
| Triable | Permet de trier les listes d'instances sur cet attribut. | Non pertinent pour certains types complexes. |
| Disponible dans une boucle | Expose l'attribut dans les structures répétées. | Contrôle la disponibilité dans les expressions. |
Détails par type
Texte
Champs spécifiques :
- Longueur minimale
- Longueur maximale
- Nombre maximal de lignes
Recommandations : définir une longueur maximale cohérente avec l'usage (ex. 60 pour un titre, 255 pour un résumé court). Le « Nombre maximal de lignes » influence l'ergonomie (textarea vs input simple).
Nombre
Champs spécifiques :
- Nombre de décimales (0 par défaut)
- Valeur minimale
- Valeur maximale
- Préfixe (ex. « $ », « CA$ », « # »)
- Suffixe (ex. « kg », « % », « unités »)
Validations : la valeur par défaut (si fournie) doit respecter min, max et le nombre de décimales. Préfixe et suffixe influencent l'affichage mais pas la valeur brute stockée.
Booléen
Champs spécifiques :
- Texte quand vrai
- Texte quand faux
Si non renseignés, des libellés génériques (ex. « Oui » / « Non ») peuvent être utilisés. Utile pour personnaliser des contextes métier (« Actif » / « Inactif », « Publié » / « Brouillon »).
Date / Date & Heure (indisponibles)
Indiqués comme types dans le menu mais non activables pour le moment. Lorsque disponibles, ils géreront fuseaux horaires, formats d'affichage et éventuellement des bornes temporelles (intervalle autorisé).
Liste (indisponible)
Prévue pour contenir un ensemble ordonné de sous‑éléments homogènes. L'activation future précisera : type interne, cardinalité, opérations (ajout/suppression/réordonnancement).
Objet (indisponible)
Servira à regrouper un sous‑ensemble structuré de champs (schéma imbriqué). Non utilisable pour l'instant.
Fichier (indisponible) & Image
Le type Fichier est indisponible pour le moment (dépôt générique de documents). Le type Image est disponible :
- Permet de sélectionner / téléverser une image.
- Peut supporter à terme : contraintes de dimensions, poids maximum, formats autorisés (selon roadmap).
Couleur (indisponible)
Prévu pour offrir un sélecteur visuel (palette + picker) et stocker une valeur (ex. HEX). Non activé encore.
Coordonnées géographiques (indisponible)
Destiné à stocker une position (latitude, longitude) avec éventuellement une interface cartographique. Non activé.
Choix
Permet de sélectionner une valeur parmi un ensemble défini.
Champs spécifiques :
- Type de choix (dropdown)
- Option 1 : Sélection d'un autre modèle personnalisé (les instances de ce modèle deviennent les choix dynamiques).
- Option 2 (par défaut) : Création de choix personnalisés manuellement.
- Nom du choix (champ + bouton d'ajout) – visible uniquement en mode « choix personnalisés ».
- Liste des choix configurés.
- Si basée sur un modèle existant : lecture seule (pas de modification ni suppression manuelle ici).
- Si personnalisée : chaque ligne comporte boutons « modifier » et « supprimer ».
- En mode édition : le champ texte est activé, le bouton modifier devient « confirmer » et le bouton supprimer devient « annuler ».
Bonnes pratiques :
- Utiliser une source dynamique (modèle) lorsque les options évoluent souvent ou sont partagées ailleurs.
- Préférer des étiquettes courtes et explicites.
- Éviter de dépasser ~25 choix statiques (ergonomie).
Foreign Key
Crée une relation vers une instance d'un autre modèle personnalisé.
Champs spécifiques :
- Modèle personnalisé (dropdown)
Comportement :
- Le champ de formulaire final permet de rechercher / sélectionner une instance du modèle ciblé.
- Peut servir de base à des filtrages (si marqué « Filtrable ») ou tri (si la plateforme implémente un tri indirect sur une propriété du référentiel).
- Ne duplique pas les attributs du modèle lié (contrairement à l'héritage dans la création d'un modèle enfant).
Gallerie
Permet de gérer plusieurs images (ou médias) associées à une seule instance.
Caractéristiques typiques :
- Ajout multiple.
- Réordonnancement (drag & drop) possible selon l'interface.
- Suppression individuelle.
- Prévisualisation.
Différences avec « Image » : « Image » = 1 ressource ; « Gallerie » = collection ordonnée.
Validation et sauvegarde
À la confirmation :
- Les champs requis sont validés.
- Les contraintes spécifiques (longueur, min/max, décimales) sont vérifiées.
- Si erreur : message contextuel (inline) + blocage de l'enregistrement.
Si succès : l'attribut apparaît dans la liste du modèle avec ses indicateurs (requis, filtrable, triable, boucle, type).
Bonnes pratiques générales
- Nommer les attributs de manière stable avant exposition publique (éviter refactoring fréquent).
- Grouper la création des attributs liés (ex. prix, devise, taxe) pour réduire les allers‑retours utilisateurs.
- Éviter de marquer trop d'attributs comme triables/filtrables (performance et surcharge UI).
- Utiliser les largeurs (%) pour optimiser les formulaires (ex. deux champs de 50 % côte à côte pour des valeurs courtes).
- Préférer le type Choix (avec modèle source) plutôt que des duplications de listes statiques.
Résumé
- Sélectionner un type d'attribut dans le dropdown (sinon le bouton reste grisé).
- Ouvrir le dialogue d'ajout.
- Renseigner les champs communs.
- Configurer les champs spécifiques au type.
- Valider : l'attribut est ajouté à la liste.
Les types non disponibles (Date, Date & Heure, Liste, Objet, Fichier, Couleur, Coordonnées géographiques) seront progressivement activés. Planifiez votre modèle en conséquence.