Transversal. Odoo (vues pivot/graph natives) et un ERP propriétaire du marché des PME
industrielles (générateur d’états + datamart décisionnel) sont les références
(pirates:analyses/transversales/matrice-fonctionnelle-globale.md §2, DOM-11). Moteur de
rapports/BI = complexe/coûteux (pirates:analyses/transversales/matrice-fonctionnelle-globale.md §6) :
Elena vise un socle d’états + tableaux de bord, la BI avancée étant Won’t-v1. Aucune reprise de
code des ERP étudiés.
EXG-11-001 — Générateur d’états
- Priorité : Must
- Livraison : Lot 0 selon DEC-0219, avec le concepteur complet acquis. La conception et les impressions EXG-11-009 restent deux exigences distinctes.
- Domaine : DOM-11
- Énoncé : « Elena doit fournir un générateur d’états permettant de concevoir et personnaliser les modèles de documents PDF (devis, BL, factures, bons de travail). »
- Justification : convergence (
pirates:analyses/transversales/matrice-fonctionnelle-globale.md §2, DOM-11). Éditeur d’états et éditions chaînées, pratique de référence observée chez un ERP propriétaire du marché des PME industrielles ; Odoo rapports QWeb. - Critères d’acceptation :
- CA-01 — Modèles de documents personnalisables sans développement lourd.
- Traçabilité : anciens CA-02 et CA-03 transférés respectivement vers EXG-11-009/CA-01 et CA-02 selon DEC-0216. Ces identifiants historiques ne sont pas réattribuables ; EXG-11-005 détaille la conception, EXG-11-009 porte les impressions. Must conservé ; livraison avancée au Lot 0 par DEC-0219.
- Dépendances : EXG-12-001, EXG-15-001 (métadonnées pour exposer les champs).
EXG-11-002 — Tableaux de bord et indicateurs (KPI)
- Priorité : Should
- Domaine : DOM-11
- Énoncé : « Elena doit offrir des tableaux de bord composés de widgets d’indicateurs configurables par rôle (ventes, production, qualité, stock). »
- Justification : Odoo tableaux de bord ; pages de widgets configurables observées chez un CRM open-core récent à architecture métadonnées-driven étudié lors de l’analyse ; tableau de bord + statistiques observés chez un ERP propriétaire du marché des PME industrielles (
pirates:analyses/transversales/matrice-fonctionnelle-globale.md §2, DOM-11). - Critères d’acceptation :
- CA-01 — Widgets configurables par utilisateur/rôle.
- CA-02 — Indicateurs temps réel (charge atelier, retards, stock).
- Dépendances : EXG-11-001, EXG-13-002 (RBAC pour filtrer par rôle).
EXG-11-003 — Analyses multidimensionnelles (pivot/graph)
- Priorité : Could
- Domaine : DOM-11
- Énoncé : « Elena devrait proposer des analyses ad hoc en tableau croisé (pivot) et en graphiques sur les données métier transverses. »
- Justification : référence Odoo vues pivot/graph natives transverses (
pirates:analyses/erp/odoo/fiche.md §10;pirates:analyses/transversales/matrice-fonctionnelle-globale.md §2, DOM-11). - Critères d’acceptation :
- CA-01 — Pivot multi-axes sur les objets métier.
- CA-02 — Graphiques dérivés des mêmes jeux de données.
- Dépendances : EXG-11-001, EXG-15-001.
EXG-11-004 — Datamart / BI avancée
- Priorité : Won’t-v1
- Domaine : DOM-11
- Énoncé : « Elena n’intégrera pas en v1 de datamart décisionnel / moteur BI dédié ; l’ouverture se fera par API et exports vers un outil BI tiers. »
- Justification : cadrage (
pirates:analyses/transversales/matrice-fonctionnelle-globale.md §6« moteur de rapports/BI » = complexe/coûteux). Un ERP propriétaire du marché des PME industrielles s’appuie sur un datamart décisionnel séparé (pirates:analyses/transversales/matrice-fonctionnelle-globale.md §2, DOM-11). Exclusion assumée. - Critères d’acceptation :
- CA-01 — Exposition des données via API pour BI externe.
- CA-02 — Une note de roadmap acte le report d’un datamart natif.
- Dépendances : EXG-14-003 (API).
EXG-11-005 — Concepteur d’états par blocs
-
Priorité : Must
-
Livraison : Lot 0 (DEC-0219), avec tous les critères acquis et l’interface normative ci-dessous ; le décisionnel reste distinct.
-
Domaine : DOM-11
-
Énoncé : « Elena doit fournir dès la v1 un concepteur d’états visuel permettant de composer un document sur plusieurs pages distinctes, par blocs positionnés librement (texte, image, tableau, code-barres, QR code, ligne, rectangle, ellipse), sans développement. »
-
Justification : précise le générateur d’états d’EXG-11-001 (CA-01, « modèles de documents personnalisables sans développement lourd ») avec les briques attendues d’un concepteur crédible en contexte PME industrielle : étiquettes et documents portant un code-barres ou un QR code pour la traçabilité article/lot, tableaux répétés pour les lignes d’un document.
-
Critères d’acceptation :
-
CA-01 — Un utilisateur compose un document en positionnant librement des blocs de texte, image, tableau et code-barres/QR sur une ou plusieurs pages distinctes. Dès la v1, il peut ajouter, dupliquer, supprimer et réordonner ces pages ; chaque page possède ses propres blocs, modifiables indépendamment. Après enregistrement et réouverture, toutes les pages conservées, leurs blocs et leur ordre sont restitués sans perte. L’aperçu et la génération respectent cette composition. La gestion des pages de conception est distincte de la pagination automatique des tableaux de CA-02 (voir DEC-0090).
- Complément CA-01 — Formes : dès la v1, l’utilisateur positionne des lignes, rectangles et ellipses, règle la couleur et l’épaisseur de leur contour et, pour rectangles et ellipses, un remplissage facultatif. Aucun import d’image n’est nécessaire et aucun outil de dessin libre n’est inclus. Enregistrer et rouvrir conserve les éléments et propriétés ; l’aperçu et la génération les restituent. Vérifier les trois primitives avec différents contours, une forme remplie et une sans remplissage. Les règles existantes des zones répétées et des blocs après tableau restent applicables (voir DEC-0099).
- En v1, le format de papier, l’orientation et les marges sont définis au niveau du modèle et communs à toutes ses pages, continuations et annexes comprises, sans dérogation par page. La sauvegarde/réouverture, l’aperçu et la génération conservent ces réglages communs. Vérifier sur plusieurs pages composées avec un tableau débordant avant une annexe : même format, même orientation et mêmes marges partout, sans réglage divergent par page (voir DEC-0096).
- Dès la v1, chaque page composée possède ses propres éléments Header/Footer, répétés sur cette page et ses continuations ; la page suivante conserve les siens. Ils sont éditables dans un mode commun sur toute la surface du papier, contenu masqué. En mode Contenu, ils restent visibles, non atténués, verrouillés et rendus derrière le contenu. Deux limites de pagination propres à la page, saisies en millimètres depuis le haut du papier et reprises sur ses continuations, bornent le développement des tableaux indépendamment du placement du décor. Aucun contournement automatique d’un élément central ni réglage individuel devant/derrière ; les réserves haute/basse sont respectées. Sauvegarde/réouverture et rendus conservent ces propriétés. Voir l’interface normative, UI-08/09, et DEC-0136, qui précise et ajuste DEC-0092.
- Dès la v1, un bloc texte ordinaire permet d’insérer deux variables : numéro de page courante et nombre total de pages du PDF rendu, notamment en en-tête/pied, sans bloc de pagination dédié. Le texte autour des variables est libre (ex. « Page n / N »). La numérotation commence à 1 et reste continue, continuations et annexes comprises, sans remise à zéro entre pages composées ; chaque occurrence répétée affiche le numéro de sa page effective. Le total est celui du rendu courant : l’aperçu limité affiche son propre total sans prétendre donner celui du PDF final et conserve ses signalements de collections partielles. Si ces variables modifient la mesure du texte, la mise en page est recalculée jusqu’à stabilisation dans une limite d’itérations bornée ; sans convergence, une erreur explicite bloque la livraison du PDF, plutôt qu’un total incorrect. Enregistrer et rouvrir préserve texte et variables. Vérifier sur un tableau débordant suivi d’une annexe, en aperçu et en génération finale (voir DEC-0094).
- Dès la v1, un bloc texte ordinaire permet de mettre certains passages en gras, italique ou souligné, et de varier leur taille et leur couleur dans un même bloc, variables insérées comprises. Les valeurs des variables respectent les styles appliqués. Enregistrer puis rouvrir conserve les styles par passage et les variables ; l’aperçu et la génération finale les restituent, y compris dans les en-têtes/pieds répétés et pour les variables de pagination. Vérifier un bloc combinant plusieurs styles et variables : un style local ne s’étend pas involontairement au bloc entier (voir DEC-0097).
-
CA-02 — Un bloc tableau se répète automatiquement pour chaque élément d’une liste de données (ex. les lignes d’une commande), avec pagination automatique si le contenu dépasse une page. Dès la v1, ses pages de continuation sont insérées automatiquement avant la page composée suivante du modèle. Celle-ci commence sur une nouvelle page après toutes les lignes du tableau, sans écrasement ni mélange de son contenu avec le tableau. L’aperçu et la génération finale respectent cet ordre sur leurs jeux de données respectifs ; sans débordement, aucune page de continuation superflue n’est ajoutée (voir DEC-0091).
- Dès la v1, les blocs du corps placés après le tableau (totaux, signature, mentions) suivent automatiquement sa fin et apparaissent une seule fois. Ils restent sur la dernière page du tableau si la place suffit ; sinon une continuation supplémentaire est insérée avant la page composée suivante. Ils ne sont ni écrasés ni répétés ; les espaces des en-têtes/pieds sont respectés. Vérifier sans débordement, avec débordement et place suffisante, puis avec continuation supplémentaire, en aperçu et génération ; l’annexe conserve sa nouvelle page et les pages ajoutées entrent dans le total rendu (voir DEC-0095).
- Dès la v1, l’utilisateur peut également composer un tableau statique : lignes et colonnes définies manuellement, cellules contenant du texte et des variables, sans répétition depuis une collection. Enregistrer puis rouvrir conserve la structure et les contenus ; l’aperçu et la génération finale les restituent et résolvent les variables sur leurs données respectives, sans multiplier les lignes. Vérifier une grille de coordonnées combinant texte et variables. Les permissions sur les champs restent applicables et le modèle conserve son type racine unique ; statique ne signifie pas sans source métier (voir DEC-0098).
-
CA-03 — Un bloc peut afficher une valeur calculée ou mise en forme à partir des données liées (ex. concaténer deux champs pour un code-barres), sans écrire de code applicatif.
-
CA-04 — Un aperçu du document est disponible pendant la conception, sur les données que l’utilisateur est autorisé à consulter, limité par défaut à 15 éléments par collection paginée et signalant séparément chaque collection partielle ; en l’absence de donnée consultable, il présente un état vide explicite sans donnée fictive.
-
CA-05 — Un template possède les états
draftetactive; sa duplication crée un nouveau template, une écriture concurrente sur une version périmée est refusée explicitement et sa suppression ne conserve aucun historique métier en v1. -
CA-06 — Une limite d’éléments définie dans un template est présentée comme une règle métier visible du document ; la génération indique qu’elle est complète relativement à cette limite. Un dépassement de l’enveloppe technique publiée provoque un refus explicite sans PDF partiel, jamais une troncature ni une limite métier implicite.
-
CA-07 — Dès la v1, la configuration d’un tableau est organisée en onglets « Source », « Colonnes », « Apparence », « Sous-lignes » et « Script ». Changer d’onglet conserve les modifications et le tableau sélectionné ; une erreur dans un autre onglet reste signalée. Vérifier la navigation entre les cinq onglets avec saisies en cours et le maintien du signalement après avoir quitté un onglet en erreur. L’onglet Source est précisé par EXG-11-006/CA-03 (DEC-0112) ; l’onglet Colonnes est précisé par CA-08 (DEC-0103), l’onglet Apparence par CA-09 (DEC-0104) ; l’onglet Sous-lignes est précisé par CA-10 (DEC-0105) ; l’onglet Script et son articulation globale sont précisés par CA-12/13 (DEC-0107/0108) (voir DEC-0111).
-
CA-08 — Dès la v1, les colonnes du tableau de données reprennent toutes les fonctionnalités de configuration de la référence MES-968 gelée par DEC-0103, sans reproduire ses défauts ni imposer son code ou son style visuel :
- Les pourcentages s’appliquent à la largeur du tableau ; les colonnes automatiques se partagent équitablement l’espace restant. Dépasser la largeur disponible ou ne laisser aucune place à une colonne provoque une erreur explicite, sans correction silencieuse.
- Ajouter, supprimer, réordonner par glisser-déposer, renommer ; replier/déplier une fiche ou toutes les fiches. Choisir un champ autorisé par libellé métier, du texte avec variables ou une expression du mini-langage ; configurer sans script les formats texte, nombre, montant et date (complément validé, non attribué au POC).
- Texte riche par passage (gras, italique, soulignement, taille, couleur), variables comprises ; colonnes QR avec contenu brut comprenant variables/expressions, taille en millimètres réglable par saisie et glissement horizontal, correction L/M/Q/H, couleurs du motif et du fond. Suggestions de variables utilisables ; complétion détaillée par CA-14.
- Largeur automatique ou pourcentage du tableau, par saisie ou glissement horizontal sur le contrôle. Menus d’ajout/changement de type accessibles sans découpe par le panneau.
- Changer le type/champ en place conserve position, largeur, contenus compatibles et pied textuel ; propriétés spécifiques adaptées. Titre conservé sauf passage d’un type non-donnée à un champ, qui l’initialise avec son libellé. Agrégat de données retiré lors du passage à texte/QR. La sélection directe prévient l’affectation du même champ à plusieurs colonnes de données comme dans le POC, sans interdire sa réutilisation dans le texte à variables.
- Pied facultatif : aucun ou texte riche avec variables ; pour les données, également somme, comptage, nombre de valeurs distinctes, moyenne, minimum, maximum. Portée et placement précisés par CA-11 (DEC-0106).
- Vérifier un tableau mixte données/texte riche/QR : réordonnancement sans dissocier titre, contenu, largeur et pied ; changements de type, largeurs mixtes et pieds ; sauvegarde/réouverture, aperçu et génération conservent et restituent la configuration sur leurs données respectives. Toute capacité de colonne démontrée sur la référence gelée mais omise de l’inventaire doit être répercutée, non exclue silencieusement. Droits et sandbox restent applicables ; apparence générale, sous-lignes et scripts suivis séparément.
-
CA-09 — Dès la v1, l’onglet Apparence permet de régler la taille et la couleur du texte séparément pour les titres, le corps et le pied du tableau, les fonds des titres et du pied, l’activation et les couleurs de l’alternance des fonds de lignes, ainsi que la couleur et l’épaisseur des bordures. Les styles locaux du texte riche sont conservés, sans effacement par les réglages généraux. Les titres des colonnes sont répétés sur chaque page de continuation du tableau ; leur espace est réservé sans chevaucher les données ni les en-têtes/pieds de page. Si le texte d’une cellule dépasse la hauteur utile d’une page entière, il se poursuit sur la page suivante sans troncature, avec titres répétés et styles conservés. Une image plus haute qu’une page utile est poursuivie par fragments si sa restitution intégrale est réalisable, sinon le rendu échoue en identifiant l’élément, sans réduction automatique. La faisabilité reste à démontrer. Les QR restent indivisibles et provoquent une erreur localisée s’ils dépassent une page utile. Vérifier cette continuation en aperçu et en génération finale, sans perte ni duplication de texte. Le pied de tableau reste distinct du pied de page ; sa portée et son placement sont précisés par CA-11 (DEC-0106). Vérifier sauvegarde/réouverture, aperçu et génération finale avec styles distincts, alternance activée puis désactivée, bordures et styles locaux ; vérifier un tableau débordant suivi d’une annexe, avec titres répétés et sans chevauchement (voir DEC-0104).
-
CA-10 — Dès la v1, l’onglet Sous-lignes permet de composer plusieurs groupes successifs de relations sous leur parent, chacun avec sa source, ses colonnes et son apparence propres, dans l’ordre défini par la composition. Une source peut être une collection ou un objet lié unique, notamment les informations du fournisseur d’une ligne. Les détails d’une ligne suivent leur parent avant la ligne parente suivante ; ils ne deviennent pas une liste indépendante. Les continuations conservent cet ordre et ce rattachement, sans imposer que tous les détails tiennent sur la même page. Les droits existants, la profondeur maximale de trois relations depuis la racine et la même autorité propriétaire restent applicables ; l’exemple fournisseur n’impose pas une nouvelle relation métier. Vérifier plusieurs groupes distincts, relations unique et collection, colonnes/apparences différentes, sauvegarde/réouverture, aperçu et final avec continuation sans mélange entre parents ou groupes (voir DEC-0105).
-
CA-11 — Dès la v1, un pied facultatif est configurable pour le tableau et pour chaque groupe de sous-lignes. Chaque pied calcule uniquement sur les données de son périmètre après filtrage, sans compter plusieurs fois une ligne à cause de ses sous-lignes ni mélanger groupes ou parents. Il apparaît une seule fois après les données concernées, pas à chaque page : sous-total après le groupe du parent courant, total du tableau après toutes les lignes et leurs détails, avant les blocs suivant le tableau. Le pied de page répété reste distinct. Les règles de continuation et de complétude restent applicables ; l’aperçu calcule sur ses données et conserve les signalements de collections partielles, sans présenter ses totaux comme ceux du final complet. Vérifier plusieurs parents et groupes filtrés, absence de double comptage, pieds activés/désactivés, sauvegarde/réouverture, aperçu et génération avec continuation et apparition unique de chaque pied (voir DEC-0106).
-
CA-12 — Dès la v1, le script du tableau exploite les données autorisées du document, sa collection filtrée et les contextes de ligne/groupe pour calculer des valeurs réutilisables dans ses cellules et pieds. Les valeurs communes et celles propres aux lignes/groupes restent distinctes, sans mélange entre parents ni modification des données métier. Le tableau peut utiliser des variables globales et exposer des variables à la portée globale du document pour réutilisation dans d’autres blocs. Vérifier ces deux sens d’échange, l’isolation des contextes et la sauvegarde/réouverture, en aperçu et final sur leurs données respectives. Droits, sandbox et signalement des collections partielles inchangés. L’articulation globale est précisée par CA-13 ; le script construit la valeur et la publie uniquement par
expose VARIABLE. Les variables non exposées restent locales au script ; deux variables exposées de même nom provoquent une erreur explicite. Le moteur n’impose ni agrégation ni collection, sans écrasement par la dernière ligne (voir DEC-0107). -
CA-13 — Dès la v1, un script global unique à éditer permet de créer des variables réutilisables dans les blocs et les scripts de tableaux. Les calculs suivent leurs dépendances indépendamment du placement : une variable exposée par un tableau peut alimenter un calcul global ou un texte situé avant ce tableau. La décomposition des calculs préserve la sémantique des conditions, boucles bornées et affectations locales du script unique, sans réordonnancement naïf. Chaque variable globale possède un producteur unique, sans écrasement silencieux ; les collisions de producteurs et les dépendances circulaires sont signalées explicitement et bloquent le rendu. Vérifier une chaîne globale → tableau → variable exposée → calcul global et texte antérieur, puis déplacer les blocs sans changer les résultats ; vérifier collision, cycles directs et indirects, sauvegarde/réouverture, aperçu et final sur leurs données respectives. Droits, sandbox, isolation des contextes et signalement des collections partielles restent applicables (voir DEC-0108).
-
CA-14 — Dès la v1, la complétion fonctionne dans le script global, les scripts des tableaux, les expressions des colonnes et le texte avec variables. Elle propose les champs autorisés, les variables accessibles dans le contexte courant et les fonctions du mini-langage, avec type, description et paramètres attendus lorsque applicables. Les variables globales exposées par les tableaux sont proposées indépendamment du placement des blocs. Les suggestions suivent les modifications du modèle et s’insèrent au clavier ou à la souris. Les erreurs indiquent emplacement et cause, avec accès au script concerné. Vérifier chaque surface, les portées ligne/groupe/tableau/global, l’absence de suggestions non autorisées, l’actualisation après modification, les deux modes d’insertion et la navigation vers une erreur. Droits, sandbox et règles de dépendances inchangés (voir DEC-0109).
-
CA-15 — Dès la v1, le concepteur offre un espace de travail dédié : canevas central occupant l’espace disponible, panneaux de blocs et de propriétés redimensionnables et repliables, configuration du tableau suffisamment large pour ses onglets, éditeur de script agrandissable sans perte de sélection ni de modifications. Sauvegarde, aperçu, annuler/rétablir et zoom restent directement accessibles. Les composants et styles du design system n’imposent pas une disposition qui étrique l’éditeur. Recetter un parcours réel : configurer un tableau avec plusieurs groupes, écrire et compléter un script, corriger une erreur puis revenir au placement, sans perte de travail ni manipulations permanentes de fenêtres. Vérifier aussi repli et redimensionnement des panneaux, agrandissement du script et retour au canevas ; une simple conformité visuelle ne suffit pas (voir DEC-0110).
-
-
Requiert : EXG-11-001 (générateur d’états)
-
Conditionne : EXG-11-006 (liaison aux données), EXG-11-007 (impression contextuelle)
-
Complément normatif CA-01/04/07/15 : Interface du concepteur PDF, UI-01 à UI-11 (DEC-0136) : composition DsToolbar/panneaux/canevas, pagination centrée en bas, color picker partagé, états détaillés et recette 1366 × 768 / 1920 × 1080. Les limites de l’aperçu CA-04 restent applicables.
-
Co-requis : aucun
EXG-11-006 — Liaison d’un état aux données d’un ou plusieurs objets métier
- Priorité : Must
- Livraison : Lot 0 (DEC-0219), sur les objets disponibles ; aucun domaine métier futur n’est avancé.
- Domaine : DOM-11
- Énoncé : « Elena doit permettre, lors de la conception d’un état, de choisir les objets métier et leurs champs à afficher — y compris les éléments liés d’un objet (ex. les lignes d’une commande et l’article de chaque ligne) — en ne proposant que les champs que l’utilisateur courant est autorisé à consulter. »
- Justification : précise EXG-11-001 et s’appuie sur le modèle métadonnées-driven (EXG-15-001) qui expose dynamiquement les champs des objets, standards ou personnalisés, sans développement propre à chaque état ; la restriction aux champs autorisés évite qu’un concepteur d’états ne devienne un contournement du RBAC (EXG-13-002).
- Critères d’acceptation :
- CA-01 — Le concepteur propose la liste des champs disponibles d’un objet métier choisi comme source, avec leur libellé.
- CA-02 — Un état peut afficher, pour un objet, les données d’un objet lié (ex. l’article référencé par une ligne de commande), sans exposer la structure technique de cette liaison à l’utilisateur.
- CA-03 — Une source de données peut être filtrée et triée par l’utilisateur qui conçoit l’état. Dès la v1, l’onglet Source d’un tableau permet de sélectionner la collection par ses libellés métier en parcourant les relations autorisées, puis de configurer visuellement filtres et tris, sans script ni saisie d’un chemin technique. Plusieurs tris peuvent être ordonnés par priorité. Vérifier la sélection « Commande → Lignes », la configuration des filtres et le réordonnancement de deux tris ; sauvegarde/réouverture, aperçu et génération respectent les réglages sur leurs jeux de données respectifs. Les droits et la limite de trois relations au sein d’une même autorité restent inchangés (voir DEC-0112).
- CA-04 — Seuls les champs que l’utilisateur courant est autorisé à consulter apparaissent disponibles dans le concepteur.
- CA-05 — Un template déclare exactement un type d’objet racine ; un état autonome sans objet racine n’est pas pris en charge en v1, tandis qu’une impression de liste peut sélectionner plusieurs enregistrements du même type racine. Dès la première sauvegarde en v1, ce type est fixe, même en brouillon et après duplication ; un autre type nécessite la création d’un autre modèle. Les champs utilisés, filtres et tris restent modifiables dans le type choisi sous les permissions existantes. Vérifier le refus de changement après sauvegarde et réouverture, sans altération de la source ni des blocs, ainsi que la modification des champs et filtres autorisés et la création séparée d’un modèle d’un autre type ; vérifier également l’invariant après activation et duplication (DEC-0100).
- CA-06 — Un état peut parcourir au maximum trois niveaux de relations depuis sa ressource racine, exclusivement au sein d’une même autorité propriétaire.
- Requiert : EXG-11-001 (générateur d’états), EXG-15-001 (métadonnées), EXG-13-002 (RBAC objet/action)
- Conditionne : EXG-11-007 (impression contextuelle)
- Co-requis : aucun
EXG-11-007 — Impression contextuelle en un clic depuis la fiche d’un objet métier
- Priorité : Must
- Livraison : Lot 0 (DEC-0219), sur les objets disponibles ; les usages des futurs domaines sont vérifiés lors de leur livraison.
- Domaine : DOM-11
- Énoncé : « Elena doit, sur la fiche de tout objet métier concerné, proposer une action “Imprimer” qui liste automatiquement les états éligibles pour ce type d’objet et génère le document correspondant à l’enregistrement affiché, sans étape de configuration supplémentaire pour l’utilisateur. »
- Justification : un générateur d’états qui exige de ressaisir manuellement quel document produire pour quel enregistrement n’est pas utilisable au quotidien par un opérateur ; l’éligibilité automatique et l’action en un clic conditionnent l’adoption réelle du générateur. Cas de référence retenu pour cadrer le comportement : imprimer une commande client et ses lignes, avec un code-barres/QR par ligne identifiant l’article, depuis la fiche de la commande (voir
workflows/impression-contextuelle.md). - Critères d’acceptation :
- CA-01 — Un état conçu pour un type d’objet (ex. commande client) est proposé automatiquement dans l’action “Imprimer” de la fiche de tout enregistrement de ce type, sans configuration par enregistrement.
- CA-02 — Si un seul état est éligible, l’action “Imprimer” génère directement le document pour l’enregistrement affiché.
- CA-03 — Si plusieurs états sont éligibles, l’utilisateur choisit parmi eux avant génération.
- CA-04 — Si aucun état n’est éligible pour ce type d’objet, l’action “Imprimer” n’est pas proposée ou est explicitement désactivée.
- CA-05 — Le document généré reflète les données réelles de l’enregistrement affiché, jamais un échantillon.
- CA-06 — Seuls les états que l’utilisateur est autorisé à utiliser pour imprimer sont proposés ; ce droit reste distinct du droit de concevoir les templates et des permissions de consultation vérifiées sur les données.
- CA-07 — Après une génération réussie, le PDF est ouvert dans le lecteur du navigateur ; le téléchargement reste accessible depuis ce lecteur.
- Requiert : EXG-11-005 (concepteur d’états), EXG-11-006 (liaison aux données)
- Conditionne : aucune
- Co-requis : aucun
EXG-11-008 — Droits de conception, d’utilisation et de consultation distincts
- Priorité : Must
- Livraison : Lot 0 (DEC-0219), avec les droits disponibles au socle ; les contrôles fins du Lot 4 restent à recetter avec leur capacité, sans accès supplémentaire aux données au Lot 0.
- Domaine : DOM-11
- Énoncé : « Elena doit distinguer le droit d’administrer ou concevoir les templates, le droit de découvrir et utiliser un template pour imprimer, et les permissions de consultation des données affichées : aucun droit lié aux templates ne confère un accès supplémentaire aux données métier. »
- Justification : un générateur d’états transverse donne par construction accès aux données de tout domaine ; sans cette distinction, concevoir un état deviendrait un moyen détourné de contourner les droits de consultation posés par ailleurs (DOM-13).
- Critères d’acceptation :
- CA-01 — Un champ que l’utilisateur courant n’est pas autorisé à consulter n’apparaît pas dans la liste des champs disponibles du concepteur.
- CA-02 — Un état existant qui référence un champ devenu non autorisé pour l’utilisateur courant échoue explicitement à la génération, plutôt que d’omettre silencieusement la donnée ou de produire un document incomplet sans le signaler.
- CA-03 — Un utilisateur autorisé à utiliser un template sans pouvoir le concevoir peut le découvrir et imprimer avec les seules données qu’il est autorisé à consulter.
- CA-04 — Un utilisateur autorisé à concevoir un template sans disposer du droit de l’utiliser ne peut pas déclencher une impression au titre de son seul droit de conception.
- Requiert : EXG-13-002 (RBAC objet/action), EXG-11-006 (liaison aux données)
- Conditionne : aucune
- Co-requis : aucun
EXG-11-009 — Impressions paramétrables
- Priorité : Must
- Livraison : Lot 0, selon DEC-0219. Impression des listes et documents des objets disponibles au Lot 0 ; BL et bons de travail suivent leurs domaines aux Lots 1 et 2. Critères conservés intégralement, sans considérer les usages futurs comme déjà recettés.
- Domaine : DOM-11
- Énoncé : « Elena doit permettre d’imprimer les listes en PDF à partir des modèles d’état et de générer les documents métier depuis les objets correspondants. »
- Justification : séparation de l’utilisation des modèles et de leur conception, sans ajout de comportement. Reprend les anciens critères EXG-11-001/CA-02 et CA-03 ; l’impression depuis une fiche reste détaillée par EXG-11-007. Aucun export CSV ajouté.
- Critères d’acceptation :
- CA-01 — Impression PDF de toute liste à partir d’un modèle d’état.
- CA-02 — Documents métier (BL, facture, bon de travail) générés depuis les objets.
- Requiert : EXG-11-001 (modèles du générateur d’états).
- Dépendances : EXG-12-001, EXG-15-001 (métadonnées pour exposer les champs).