From b380ad334d115e5248b7192ff631f0458f8afe90 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 24 Sep 2025 19:21:23 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Ne=20pas=20mettre=20de=20choix=20vide=20si?= =?UTF-8?q?=20un=20seul=20=C3=A9l=C3=A9ment=20dans=20un=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- movements/add_new_equipment.html | 16 ++++++++++++---- movements/input_equipment.html | 6 +++++- movements/output_equipment.html | 6 +++++- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/movements/add_new_equipment.html b/movements/add_new_equipment.html index 6418872..81a3d67 100644 --- a/movements/add_new_equipment.html +++ b/movements/add_new_equipment.html @@ -126,16 +126,24 @@
Enregistrer une entrée de matériel
- {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$input_labels|sort}} - {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} - {{:input type="number" name="amount" label="Quantité" min=1 required=true default=1}} + {{if $input_labels|count == 1}} + {{:input type="select" name="operation" label="Type" required=true options=$input_labels}} + {{else}} + {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$input_labels|sort}} + {{/if}} + {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} + {{:input type="number" name="amount" label="Quantité" min=1 required=true default=1}}
Sélectionner une catégorie et indiquer le nom du nouveau matériel
- {{:input type="select" name="category" label="Catégorie" default_empty="— Aucune —" options=$categories required=true}} + {{if $categories|count == 1}} + {{:input type="select" name="category" label="Catégorie" options=$categories required=true}} + {{else}} + {{:input type="select" name="category" label="Catégorie" default_empty="— Aucune —" options=$categories required=true}} + {{/if}} {{:input type="text" name="name" label="Désignation" required=true}} {{if $storage != null}} {{:input type="select" name="storage" label="Lieu de stockage" default_empty="— Aucun —" options=$storage required=false}} diff --git a/movements/input_equipment.html b/movements/input_equipment.html index cca0b0d..42e7185 100644 --- a/movements/input_equipment.html +++ b/movements/input_equipment.html @@ -103,7 +103,11 @@
Enregistrer une entrée de matériel
- {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$input_labels|sort}} + {{if $input_labels|count == 1}} + {{:input type="select" name="operation" label="Type" required=true options=$input_labels}} + {{else}} + {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$input_labels|sort}} + {{/if}} {{:input type="date" name="date" label="Date" required=true default=$now|date_short}} {{:input type="number" name="amount" label="Quantité" required=true min=1 default=1}} {{if $storage != null}} diff --git a/movements/output_equipment.html b/movements/output_equipment.html index e6a92e5..b74baf3 100644 --- a/movements/output_equipment.html +++ b/movements/output_equipment.html @@ -173,7 +173,11 @@
Enregistrer une sortie
- {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$output_labels|sort}} + {{if $output_labels|count == 1}} + {{:input type="select" name="operation" label="Type" required=true options=$output_labels}} + {{else}} + {{:input type="select" name="operation" label="Type" required=true default_empty="— Aucun —" options=$output_labels|sort}} + {{/if}} {{:input type="date" name="date" label="Date de sortie" required=true default=$now|date_short}} {{:input type="number" name="amount" label="Quantité" required=true default=1 min=1 max=$dispo}} {{:input From 53c0deee228ca9bce74d36903a4327aba70d097f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 25 Sep 2025 10:38:08 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Correction=20erreur=20si=20certains=20types?= =?UTF-8?q?=20d'entr=C3=A9es=20ou=20sorties=20sont=20absents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _get_config.html | 3 +- config/add_movement_type.html | 4 +- snippets/user_details.html | 92 +++++++++++++++++++---------------- 3 files changed, 53 insertions(+), 46 deletions(-) diff --git a/_get_config.html b/_get_config.html index 3fe6f2d..8f36df8 100644 --- a/_get_config.html +++ b/_get_config.html @@ -2,6 +2,7 @@ {{* Récupérer soit la config enregistrée, soit la config par défaut + @param : default = true si config par défaut résultat : config.input_nature et config.output_nature *}} @@ -14,7 +15,7 @@ {{#foreach from=$directions key="direction"}} {{:assign var="nature" from="module.config.%s_nature"|args:$direction}} - {{if $nature != null}} + {{if $nature != null && ! $default}} {{#foreach from=$nature item="elem"}} {{:assign var="item" label=$label type=$type}} {{:assign var="config.%s_nature.%s"|args:$direction:$key value=$item}} diff --git a/config/add_movement_type.html b/config/add_movement_type.html index 00c3941..bb7d64b 100644 --- a/config/add_movement_type.html +++ b/config/add_movement_type.html @@ -12,8 +12,8 @@ {{* Traiter l'envoi du formulaire *}} -{{* lecture config (défaut ou enregistrée) *}} -{{:include file="../_get_config.html" keep="config, directions"}} +{{* lecture config par défaut *}} +{{:include file="../_get_config.html" keep="config, directions" default=true}} {{#form on="save"}} {{* vérifier s'il existe un type de mouvement de même nom *}} diff --git a/snippets/user_details.html b/snippets/user_details.html index bb1bfcf..b288eb2 100644 --- a/snippets/user_details.html +++ b/snippets/user_details.html @@ -30,29 +30,32 @@ {{/load}} {{if $table_presente}} - {{#select - eqpmt.key as eqpmt_key, - json_extract(eqpmt.document, '$.name') as eqpmt_name, - mvt.key AS mvt_key, - json_extract(mvt.document, '$.direction') as direction, - json_extract(mvt.document, '$.operation') as operation, - json_extract(mvt.document, '$.date') as date, - json_extract(mvt.document, '$.amount') as amount - FROM module_data_equipment AS mvt - INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id - INNER JOIN module_data_equipment AS eqpmt - ON json_extract(mvt.document, '$.equipment') = eqpmt.key - WHERE users.id = :user - AND (json_extract(mvt.document, '$.operation') IN !output_types - OR json_extract(mvt.document, '$.operation') IN !input_types) - ORDER BY date - ; - :user = $user.id - !output_types=$output_types.temporaire - !input_types=$input_types.retour - assign="temp_mat." - }} - {{/select}} + {{* vérifier la présence des types d'entrées et de sorties requis *}} + {{if $output_types|has_key:"temporaire" && $input_types|has_key:"retour"}} + {{#select + eqpmt.key as eqpmt_key, + json_extract(eqpmt.document, '$.name') as eqpmt_name, + mvt.key AS mvt_key, + json_extract(mvt.document, '$.direction') as direction, + json_extract(mvt.document, '$.operation') as operation, + json_extract(mvt.document, '$.date') as date, + json_extract(mvt.document, '$.amount') as amount + FROM module_data_equipment AS mvt + INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id + INNER JOIN module_data_equipment AS eqpmt + ON json_extract(mvt.document, '$.equipment') = eqpmt.key + WHERE users.id = :user + AND (json_extract(mvt.document, '$.operation') IN !output_types + OR json_extract(mvt.document, '$.operation') IN !input_types) + ORDER BY date + ; + :user = $user.id + !output_types=$output_types.temporaire + !input_types=$input_types.retour + assign="temp_mat." + }} + {{/select}} + {{/if}} {{if $temp_mat|count != 0}}

Matériels attribués temporairement

@@ -102,26 +105,29 @@ {{/if}} - {{#select - eqpmt.key as eqpmt_key, - json_extract(eqpmt.document, '$.name') as eqpmt_name, - json_extract(mvt.document, '$.direction') as direction, - json_extract(mvt.document, '$.operation') as operation, - json_extract(mvt.document, '$.date') as date, - json_extract(mvt.document, '$.amount') as amount - FROM module_data_equipment AS mvt - INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id - INNER JOIN module_data_equipment AS eqpmt - ON json_extract(mvt.document, '$.equipment') = eqpmt.key - WHERE users.id = :user - AND json_extract(mvt.document, '$.operation') IN !output_types - ORDER BY date DESC - ; - :user = $user.id - !output_types=$output_types.définitif - assign="def_mat." - }} - {{/select}} + {{* vérifier la présence des types d'entrées et de sorties requis *}} + {{ if $output_types|has_key:"définitif"}} + {{#select + eqpmt.key as eqpmt_key, + json_extract(eqpmt.document, '$.name') as eqpmt_name, + json_extract(mvt.document, '$.direction') as direction, + json_extract(mvt.document, '$.operation') as operation, + json_extract(mvt.document, '$.date') as date, + json_extract(mvt.document, '$.amount') as amount + FROM module_data_equipment AS mvt + INNER JOIN users ON json_extract(mvt.document, '$.user') = users.id + INNER JOIN module_data_equipment AS eqpmt + ON json_extract(mvt.document, '$.equipment') = eqpmt.key + WHERE users.id = :user + AND json_extract(mvt.document, '$.operation') IN !output_types + ORDER BY date DESC + ; + :user = $user.id + !output_types=$output_types.définitif + assign="def_mat." + }} + {{/select}} + {{/if}} {{if $def_mat|count != 0}}

Matériels attribués définitivement