From dc537e7b66723f44f79082f351ef7f9a6c1d18f4 Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Mon, 22 Nov 2021 16:13:40 +0100 Subject: [PATCH] Bugfix : commentaires des sections (fieldsets) pas sauvegardés --- CHANGELOG | 11 +++++++++-- README.md | 2 +- config/app_labinvent_mandatory_fields.default.yml | 62 ++++++++++++++++++++++++++++++++++++++++++++------------------ src/Controller/ConfigurationFieldsController.php | 3 ++- src/Template/ConfigurationFields/edit.ctp | 40 +++++++++++++++++++++++++++++++++++----- 5 files changed, 91 insertions(+), 27 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 737693e..848d51e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -593,15 +593,22 @@ TODO config fields : (quand il manque un champ pour valider), et pourtant bien enregistré dans listes des fournisseurs + +config + jolie : fieldset dépliable et joli (voir echoSectionStart() de MyHelperHelper) + +Utiliser les champs 'comment' de la config pour les labels des champs dans materiels/view et /add_edit + + ======= CHANGES ======= ------- -22/11/2021 v5.3.2-3.7.9 +22/11/2021 v5.3.3-3.7.9 + - (b) Bugfix : commentaires des sections (fieldsets) pas sauvegardés après une modif de la config champs obligatoires + - (b) Bugfix : remise en place du fichier de config par défaut (oublié) - (e) BIG NEW FEATURE : Configuration des champs obligatoires et readonly se fait maintenant via page WEB !!! => plus besoin de modifier manuellement le fichier de config texte yaml - (e) ajout lien vers stats utilisateurs depuis page accueil superadmin - (e) modif page Apropos - - (b) Bugfix : remise en place le fichier de config par défaut (oublié) ------- diff --git a/README.md b/README.md index 437b994..c0bb7b9 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes : -------------------------------------------------------------------------------------------- Date: 22/11/2021 -Version: v5.3.2-3.7.9 +Version: v5.3.3-3.7.9 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) diff --git a/config/app_labinvent_mandatory_fields.default.yml b/config/app_labinvent_mandatory_fields.default.yml index bddd13e..be7326d 100644 --- a/config/app_labinvent_mandatory_fields.default.yml +++ b/config/app_labinvent_mandatory_fields.default.yml @@ -6,28 +6,33 @@ MANDATORY_AND_READONLY_FIELDS: UNEDITABLE_FIELDS: { fieldset_comment: Champs non modifiables, - designation: { selected: '0', comment: commentaire, except_roles: '' }, - description: { selected: '0', comment: autre, except_roles: '' }, - nom_responsable: { selected: '1', comment: 'nom du responsable', - except_roles: [Responsable, Administration] }, + designation: { selected: '0', comment: Désignation, except_roles: '' }, + description: { selected: '0', comment: 'Description, commentaire explicatif', except_roles: '' }, + nom_responsable: { selected: '1', comment: 'nom du responsable', except_roles: [Responsable, Administration] }, eotp: { selected: '1', comment: 'entité-s dépensière-s, budget-s', except_roles: [Administration] }, - numero_commande: { selected: '1', comment: '', except_roles: [Administration] }, + numero_commande: { selected: '1', comment: 'N° BC', except_roles: [Administration] }, numero_inventaire_organisme: { selected: '1', comment: '', except_roles: [Administration] }, - numero_inventaire_old: { selected: '1', comment: '', except_roles: [Administration] }, + numero_inventaire_old: { selected: '1', comment: 'Ancien numéro d''inventaire si existe', except_roles: [Administration] }, numero_laboratoire: { selected: '1', comment: '', except_roles: '' } } + # LOT 1 - Création de la fiche matériel + MANDATORY_FIELDS_FOR_LOT0: { fieldset_comment: Champs obligatoires pour créer une fiche matériel, designation: { selected: '1', comment: Désignation, except_roles: '' }, description: { selected: '1', comment: Description, except_roles: '' }, sur_categorie_id: { selected: '1', comment: Domaine, except_roles: '' }, categorie_id: { selected: '1', comment: Catégorie, except_roles: '' }, nom_responsable: { selected: '1', comment: 'Nom de l''Acheteur', except_roles: '' }, email_responsable: { selected: '1', comment: 'Email de l''Acheteur', except_roles: '' }, nom_user: { selected: '1', comment: 'Nom de l''utilisateur', except_roles: '' } } + UNEDITABLE_FIELDS_AFTER_LOT0: { fieldset_comment: Champs non modifiables après la création de la fiche matériel, - sur_categorie_id: { selected: '0', comment: '', except_roles: [Administration] }, categorie_id: { selected: '0', comment: '', except_roles: [Administration] }, resp_credit: { selected: '0', comment: '', except_roles: [Administration] }, gestionnaire_id: { selected: '0', comment: '', except_roles: [Administration] }, fournisseur_id: { selected: '0', comment: '', except_roles: [Administration] }, organisme_id: { selected: '0', comment: '', except_roles: [Administration] }, prix_ht: { selected: '0', comment: '', except_roles: [Administration] }, budgets: { selected: '0', comment: '', except_roles: [Administration] }, DOC_DEVIS: { selected: '0', comment: '', except_roles: '' }, DOC_BC: { selected: '0', comment: '', except_roles: [Administration] } } + sur_categorie_id: { selected: '0', comment: 'Domaine', except_roles: [Administration] }, categorie_id: { selected: '0', comment: '', except_roles: [Administration] }, resp_credit: { selected: '0', comment: '', except_roles: [Administration] }, gestionnaire_id: { selected: '0', comment: '', except_roles: [Administration] }, fournisseur_id: { selected: '0', comment: '', except_roles: [Administration] }, organisme_id: { selected: '0', comment: '', except_roles: [Administration] }, prix_ht: { selected: '0', comment: '', except_roles: [Administration] }, budgets: { selected: '0', comment: '', except_roles: [Administration] }, DOC_DEVIS: { selected: '0', comment: '', except_roles: '' }, DOC_BC: { selected: '0', comment: '', except_roles: [Administration] } } + RECOMMENDED_FIELDS_AFTER_LOT0: { fieldset_comment: Champs non obligatoires mais recommandés après la création de la fiche matériel, etiquette: { selected: '0', comment: 'd''imprimer l''étiquette associée et de la coller sur le matériel', except_roles: '' }, numero_inventaire_organisme: { selected: '0', comment: 'de renseigner le champ ''N° inventaire comptable/tutelles _Organisme_''', except_roles: '' }, DOC_BC: { selected: '0', comment: 'd''ajouter le Bon de Commande', except_roles: '' }, DOC_BL: { selected: '0', comment: 'd''ajouter le Bon de Livraison', except_roles: '' }, DOC_FACTURE: { selected: '0', comment: 'd''ajouter la Facture', except_roles: '' } } + # LOT 1 - Demamnde d'Achat (Commande) + MANDATORY_FIELDS_FOR_LOT1: { fieldset_comment: Champs obligatoires pour passer la COMMANDE, organisme_id: { selected: '1', comment: Organisme, except_roles: '' }, @@ -37,28 +42,48 @@ MANDATORY_AND_READONLY_FIELDS: fournisseur_id: { selected: '1', comment: Fournisseur, except_roles: '' }, budgets: { selected: '1', comment: Budgets, except_roles: '' }, DOC_DEVIS: { selected: '1', comment: Devis, except_roles: '' } } + UNEDITABLE_FIELDS_AFTER_LOT1: { fieldset_comment: Champs non modifiables après avoir passé la COMMANDE, - sur_categorie_id: { selected: '1', comment: '', except_roles: [Administration] }, categorie_id: { selected: '1', comment: '', except_roles: [Administration] }, - resp_credit: { selected: '1', comment: '', except_roles: [Administration] }, - gestionnaire_id: { selected: '1', comment: '', except_roles: [Administration] }, - fournisseur_id: { selected: '1', comment: '', except_roles: [Administration] }, - organisme_id: { selected: '1', comment: '', except_roles: [Administration] }, - prix_ht: { selected: '1', comment: '', except_roles: [Administration] }, - budgets: { selected: '1', comment: '', except_roles: [Administration] }, - DOC_DEVIS: { selected: '1', comment: '', except_roles: '' }, - DOC_BC: { selected: '1', comment: '', except_roles: [Administration] } } + sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: [Administration] }, categorie_id: { selected: '1', comment: '', except_roles: [Administration] }, + resp_credit: { selected: '1', comment: 'Responsable du crédit', except_roles: [Administration] }, + gestionnaire_id: { selected: '1', comment: 'Gestionnaire de référence', except_roles: [Administration] }, + fournisseur_id: { selected: '1', comment: 'Fournisseur', except_roles: [Administration] }, + organisme_id: { selected: '1', comment: 'Organisme', except_roles: [Administration] }, + prix_ht: { selected: '1', comment: 'Prix HT', except_roles: [Administration] }, + budgets: { selected: '1', comment: 'Budgets', except_roles: [Administration] }, + DOC_DEVIS: { selected: '1', comment: 'Devis joint', except_roles: '' }, + DOC_BC: { selected: '1', comment: 'BC joint', except_roles: [Administration] } } + RECOMMENDED_FIELDS_AFTER_LOT1: { fieldset_comment: Champs non obligatoires mais recommandés après avoir passé la COMMANDE, etiquette: { selected: '0', comment: 'd''imprimer l''étiquette associée et de la coller sur le matériel', except_roles: '' }, numero_inventaire_organisme: { selected: '0', comment: 'de renseigner le champ ''N° inventaire comptable/tutelles _Organisme_''', except_roles: '' }, DOC_BC: { selected: '0', comment: 'd''ajouter le Bon de Commande', except_roles: '' }, DOC_BL: { selected: '0', comment: 'd''ajouter le Bon de Livraison', except_roles: '' }, DOC_FACTURE: { selected: '0', comment: 'd''ajouter la Facture', except_roles: '' } } + # LOT 2 - Validation, Livraison (matériel livré et payé) + MANDATORY_FIELDS_FOR_LOT2: { fieldset_comment: Champs obligatoires pour valider la livraison, - date_acquisition: { selected: '1', comment: 'Date d''achat', except_roles: '' }, date_reception: { selected: '1', comment: 'Date de livraison', except_roles: '' }, site_id: { selected: '1', comment: Site, except_roles: '' }, lieu_detail: { selected: '1', comment: 'Lieu de stockage', except_roles: '' }, eotp: { selected: '1', comment: 'Entité(s) dépensière(s), budget(s)', except_roles: '' }, numero_commande: { selected: '1', comment: 'Num. BC', except_roles: '' }, DOC_DEVIS: { selected: '1', comment: Devis, except_roles: '' } } + date_acquisition: { selected: '1', comment: 'Date d''achat', except_roles: '' }, + date_reception: { selected: '1', comment: 'Date de livraison', except_roles: '' }, + site_id: { selected: '1', comment: Site, except_roles: '' }, + lieu_detail: { selected: '1', comment: 'Lieu de stockage', except_roles: '' }, + eotp: { selected: '1', comment: 'Entité(s) dépensière(s), budget(s)', except_roles: '' }, + numero_commande: { selected: '1', comment: 'Num. BC', except_roles: '' }, + DOC_DEVIS: { selected: '1', comment: 'Devis joint', except_roles: '' } } + UNEDITABLE_FIELDS_AFTER_LOT2: { fieldset_comment: Champs non modifiables après validation de la livraison, - sur_categorie_id: { selected: '1', comment: '', except_roles: '' }, categorie_id: { selected: '1', comment: '', except_roles: '' }, date_acquisition: { selected: '1', comment: '', except_roles: '' }, date_reception: { selected: '1', comment: '', except_roles: '' }, eotp: { selected: '1', comment: '', except_roles: '' }, numero_commande: { selected: '1', comment: '', except_roles: '' }, DOC_BC: { selected: '1', comment: '', except_roles: '' }, DOC_BL: { selected: '1', comment: '', except_roles: '' }, DOC_FACTURE: { selected: '1', comment: '', except_roles: '' } } + sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: '' }, + categorie_id: { selected: '1', comment: 'Catégorie', except_roles: '' }, + date_acquisition: { selected: '1', comment: 'Date de commande', except_roles: '' }, + date_reception: { selected: '1', comment: 'Date de livraison', except_roles: '' }, + eotp: { selected: '1', comment: 'Entité(s) dépensière(s)', except_roles: '' }, + numero_commande: { selected: '1', comment: 'N° BC', except_roles: '' }, + DOC_BC: { selected: '1', comment: 'BC joint', except_roles: '' }, + DOC_BL: { selected: '1', comment: 'BL joint', except_roles: '' }, + DOC_FACTURE: { selected: '1', comment: 'Facture jointe', except_roles: '' } } + RECOMMENDED_FIELDS_AFTER_LOT2: { fieldset_comment: Champs non obligatoires mais recommandés après validation de la livraison, etiquette: { selected: '1', comment: 'd''imprimer l''étiquette associée et de la coller sur le matériel', except_roles: '' }, @@ -68,6 +93,7 @@ MANDATORY_AND_READONLY_FIELDS: DOC_BL: { selected: '1', comment: 'd''ajouter le Bon de Livraison', except_roles: '' }, DOC_FACTURE: { selected: '1', comment: 'd''ajouter la Facture', except_roles: '' } } + # LOT 3 - Archivage (pas encore implémenté) #MANDATORY_FIELDS_FOR_LOT3: {} #UNEDITABLE_FIELDS_AFTER_LOT3: {} diff --git a/src/Controller/ConfigurationFieldsController.php b/src/Controller/ConfigurationFieldsController.php index f50c75e..a7a0aa6 100644 --- a/src/Controller/ConfigurationFieldsController.php +++ b/src/Controller/ConfigurationFieldsController.php @@ -85,7 +85,7 @@ class ConfigurationFieldsController extends AppController // - OK if ($contact->execute($this->request->getData())) { $fieldsets = $this->request->getData(); - //debug($data); + //debug($fieldsets); $contact->setData($fieldsets); // On sauvegarde le contenu de $fieldsets dans le fichier de config (array => yaml) @@ -163,6 +163,7 @@ class ConfigurationFieldsController extends AppController $fieldsets = Configure::readOrFail('MANDATORY_AND_READONLY_FIELDS'); $this->set(compact('READONLY', 'fieldsets')); + //debug($fieldsets); } // edit() diff --git a/src/Template/ConfigurationFields/edit.ctp b/src/Template/ConfigurationFields/edit.ctp index 302ed42..6b601da 100644 --- a/src/Template/ConfigurationFields/edit.ctp +++ b/src/Template/ConfigurationFields/edit.ctp @@ -32,7 +32,7 @@ $icon = $READONLY ? '' : ""; //$end = $READONLY ? "(Visualisation)" : "(Modification)"; //$title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel $end"; $title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel"; -echo "

$icon $title



"; +echo "

$icon $title


"; /* Autres icones possibles : echo "

$title



"; @@ -42,8 +42,11 @@ echo "

$title



"; echo "

$title



"; */ -if ($READONLY && $CAN_EDIT) $this->MyHelper->echoEditButton(); -if ($READONLY && $CAN_EDIT) $this->MyHelper->echoButtonForAction('icon-trash', 'reset-to-default', 'Remettre les valeurs par défaut', 'Remettre les valeurs par défaut', true); +if ($READONLY && $CAN_EDIT) { + $this->MyHelper->echoEditButton(); + $this->MyHelper->echoButtonForAction('icon-trash', 'reset-to-default', 'Remettre les valeurs par défaut', 'Remettre les valeurs par défaut', true); + echo '

'; +} //echo $this->Html->icon('pencil'); @@ -65,7 +68,19 @@ echo $this->Form->create($contact); //foreach ($fields as $field) { foreach ($fields as $field_name => $attributes) { - if ($field_name=='fieldset_comment') continue; + if ($field_name=='fieldset_comment') { + $controls["$fieldset_name.fieldset_comment"] = [ + 'hidden' => true, + //'type' => 'text', + 'type' => 'hidden', + 'label' => false, + 'val' => $attributes, + //'size' => 20, + //'disabled' => $READONLY, + //'readonly' => $READONLY, + ]; + continue; + } // champ activé ou désactivé $checked = $attributes['selected']; @@ -128,7 +143,22 @@ echo $this->Form->create($contact); $DEBUG && debug($controls); $fieldset_name_with_comment = $fieldset_name; if ( isset($fields['fieldset_comment']) ) $fieldset_name_with_comment .= ' ('. $fields['fieldset_comment'] .')'; - echo $this->Form->controls($controls, ['legend' => $fieldset_name_with_comment.' :']); + + echo $this->MyHelper->echoSectionStart($fieldset_name); + echo $this->Form->controls( + // fields + $controls, + // options + [ + 'legend' => $fieldset_name_with_comment.' :', + /* + // paramètres html + 'id' => "t_$fieldset_name", + 'class' => 'toggle', + */ + ] + ); + echo $this->MyHelper->echoSectionStop(); } // foreach $fieldsets -- libgit2 0.21.2