Commit 0e046fd3452cf2c2e2a2274b9d05623f8c974016

Authored by Etienne Pallier
1 parent 59d86a3b
Exists in master and in 1 other branch dev

Amélioration présentation page de configuration des champs obligatoires

v5.3.5-3.7.9
@@ -13,11 +13,12 @@ CHANGEMENTS @@ -13,11 +13,12 @@ CHANGEMENTS
13 13
14 14
15 ------- 15 -------
16 -03/11/2021 NEWS#6 (v5.2.22) : 16 +22/11/2021 NEWS#6 (v5.3.4) :
  17 +
  18 +- Champs obligatoires, modifiables, et readonly, désormais configurables via page web
17 19
18 - Domaines, Catégories, et Sous-Catégories enfin gérables plus facilement 20 - Domaines, Catégories, et Sous-Catégories enfin gérables plus facilement
19 21
20 -(TODO) - Champs obligatoires, modifiables, et readonly, désormais configurables via page web  
21 22
22 23
23 ------- 24 -------
@@ -501,6 +502,18 @@ Warning (2): Cannot modify header information - headers already sent by (output @@ -501,6 +502,18 @@ Warning (2): Cannot modify header information - headers already sent by (output
501 502
502 TODO : 503 TODO :
503 504
  505 +- besoin IP2I/LMA :
  506 +=> restreindre l’accès de certains équipements du LMA aux utilisateurs du LMA seulement et qu'ils ne soient pas visibles ou consultables par tous les utilisateurs IP2I
  507 +=> Implémentation possible :
  508 +2 possibilités :
  509 + - Définir LMA dans la liste des "Sites" => mais ça correspond pas vraiment à la notion de site = lieu géographique
  510 + - Ajouter une nouvelle notion de "Département"
  511 +- Associer les matériels sensibles à ce Site (ou Dépt), et cocher la case "materiel sensible"
  512 +- Associer les utilisateurs du LMA à ce Site (ou Dépt)
  513 +=> Régle : les matériels sensibles ne sont vus que par les utilisateurs du même Site (ou Dépt) (ici LMA) :
  514 + - pour materiels/view(/edit/delete) => le user courant ne peut pas voir un materiel "sensible" qui n'est pas du même Site (Dépt) que lui
  515 + - pour materiels/index et /find et /export => il faut exclure les matos "sensibles" qui ne sont pas du même site que le user courant
  516 + - materiels/index : on peut ajouter un filtre "Site" (et Dépt), et un filtre "tous/matos sensible/matos non sensible"
504 517
505 - add_or_edit() générique 518 - add_or_edit() générique
506 519
@@ -604,6 +617,10 @@ Ne pas autoriser la commande via url si le bouton order est désactivé dans la @@ -604,6 +617,10 @@ Ne pas autoriser la commande via url si le bouton order est désactivé dans la
604 ======= CHANGES ======= 617 ======= CHANGES =======
605 618
606 ------- 619 -------
  620 +23/11/2021 v5.3.5-3.7.9
  621 + - (e) Amélioration de la présentation de la page de configuration des champs obligatoires
  622 +
  623 +-------
607 22/11/2021 v5.3.4-3.7.9 624 22/11/2021 v5.3.4-3.7.9
608 - (b) Bugfix : Bouton "Commander" ne doit pas être affiché si désactivé dans la config 625 - (b) Bugfix : Bouton "Commander" ne doit pas être affiché si désactivé dans la config
609 - (b) Bugfix : commentaires des sections (fieldsets) pas sauvegardés après une modif de la config champs obligatoires 626 - (b) Bugfix : commentaires des sections (fieldsets) pas sauvegardés après une modif de la config champs obligatoires
@@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes : @@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes :
53 -------------------------------------------------------------------------------------------- 53 --------------------------------------------------------------------------------------------
54 54
55 Date: 22/11/2021 55 Date: 22/11/2021
56 -Version: v5.3.4-3.7.9 56 +Version: v5.3.5-3.7.9
57 57
58 58
59 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) 59 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
config/app_labinvent_mandatory_fields.default.yml
@@ -5,7 +5,7 @@ MANDATORY_AND_READONLY_FIELDS: @@ -5,7 +5,7 @@ MANDATORY_AND_READONLY_FIELDS:
5 HAS_ORDER_BUTTON: { selected: '1', comment: 'Ajouter un bouton COMMANDE sur la fiche matériel ?' } } 5 HAS_ORDER_BUTTON: { selected: '1', comment: 'Ajouter un bouton COMMANDE sur la fiche matériel ?' } }
6 6
7 UNEDITABLE_FIELDS: { 7 UNEDITABLE_FIELDS: {
8 - fieldset_comment: Champs non modifiables, 8 + fieldset_comment: Champs non modifiables dès le début,
9 designation: { selected: '0', comment: Désignation, except_roles: '' }, 9 designation: { selected: '0', comment: Désignation, except_roles: '' },
10 description: { selected: '0', comment: 'Description, commentaire explicatif', except_roles: '' }, 10 description: { selected: '0', comment: 'Description, commentaire explicatif', except_roles: '' },
11 nom_responsable: { selected: '1', comment: 'nom du responsable', except_roles: [Responsable, Administration] }, 11 nom_responsable: { selected: '1', comment: 'nom du responsable', except_roles: [Responsable, Administration] },
@@ -34,7 +34,7 @@ MANDATORY_AND_READONLY_FIELDS: @@ -34,7 +34,7 @@ MANDATORY_AND_READONLY_FIELDS:
34 # LOT 1 - Demamnde d'Achat (Commande) 34 # LOT 1 - Demamnde d'Achat (Commande)
35 35
36 MANDATORY_FIELDS_FOR_LOT1: { 36 MANDATORY_FIELDS_FOR_LOT1: {
37 - fieldset_comment: Champs obligatoires pour passer la COMMANDE, 37 + fieldset_comment: 'Champs obligatoires pour passer la COMMANDE, en plus du LOT 0',
38 organisme_id: { selected: '1', comment: Organisme, except_roles: '' }, 38 organisme_id: { selected: '1', comment: Organisme, except_roles: '' },
39 prix_ht: { selected: '1', comment: 'Prix HT', except_roles: '' }, 39 prix_ht: { selected: '1', comment: 'Prix HT', except_roles: '' },
40 resp_credit: { selected: '1', comment: 'Responsable du crédit', except_roles: '' }, 40 resp_credit: { selected: '1', comment: 'Responsable du crédit', except_roles: '' },
@@ -44,7 +44,7 @@ MANDATORY_AND_READONLY_FIELDS: @@ -44,7 +44,7 @@ MANDATORY_AND_READONLY_FIELDS:
44 DOC_DEVIS: { selected: '1', comment: Devis, except_roles: '' } } 44 DOC_DEVIS: { selected: '1', comment: Devis, except_roles: '' } }
45 45
46 UNEDITABLE_FIELDS_AFTER_LOT1: { 46 UNEDITABLE_FIELDS_AFTER_LOT1: {
47 - fieldset_comment: Champs non modifiables après avoir passé la COMMANDE, 47 + fieldset_comment: 'Champs non modifiables après avoir passé la COMMANDE, en plus du LOT 0',
48 sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: [Administration] }, categorie_id: { selected: '1', comment: '', except_roles: [Administration] }, 48 sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: [Administration] }, categorie_id: { selected: '1', comment: '', except_roles: [Administration] },
49 resp_credit: { selected: '1', comment: 'Responsable du crédit', except_roles: [Administration] }, 49 resp_credit: { selected: '1', comment: 'Responsable du crédit', except_roles: [Administration] },
50 gestionnaire_id: { selected: '1', comment: 'Gestionnaire de référence', except_roles: [Administration] }, 50 gestionnaire_id: { selected: '1', comment: 'Gestionnaire de référence', except_roles: [Administration] },
@@ -56,14 +56,14 @@ MANDATORY_AND_READONLY_FIELDS: @@ -56,14 +56,14 @@ MANDATORY_AND_READONLY_FIELDS:
56 DOC_BC: { selected: '1', comment: 'BC joint', except_roles: [Administration] } } 56 DOC_BC: { selected: '1', comment: 'BC joint', except_roles: [Administration] } }
57 57
58 RECOMMENDED_FIELDS_AFTER_LOT1: { 58 RECOMMENDED_FIELDS_AFTER_LOT1: {
59 - fieldset_comment: Champs non obligatoires mais recommandés après avoir passé la COMMANDE, 59 + fieldset_comment: 'Champs non obligatoires mais recommandés après avoir passé la COMMANDE, en plus du LOT 0',
60 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: '' } } 60 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: '' } }
61 61
62 62
63 # LOT 2 - Validation, Livraison (matériel livré et payé) 63 # LOT 2 - Validation, Livraison (matériel livré et payé)
64 64
65 MANDATORY_FIELDS_FOR_LOT2: { 65 MANDATORY_FIELDS_FOR_LOT2: {
66 - fieldset_comment: Champs obligatoires pour valider la livraison, 66 + fieldset_comment: 'Champs obligatoires pour valider la livraison, en plus du LOT 1',
67 date_acquisition: { selected: '1', comment: 'Date d''achat', except_roles: '' }, 67 date_acquisition: { selected: '1', comment: 'Date d''achat', except_roles: '' },
68 date_reception: { selected: '1', comment: 'Date de livraison', except_roles: '' }, 68 date_reception: { selected: '1', comment: 'Date de livraison', except_roles: '' },
69 site_id: { selected: '1', comment: Site, except_roles: '' }, 69 site_id: { selected: '1', comment: Site, except_roles: '' },
@@ -73,7 +73,7 @@ MANDATORY_AND_READONLY_FIELDS: @@ -73,7 +73,7 @@ MANDATORY_AND_READONLY_FIELDS:
73 DOC_DEVIS: { selected: '1', comment: 'Devis joint', except_roles: '' } } 73 DOC_DEVIS: { selected: '1', comment: 'Devis joint', except_roles: '' } }
74 74
75 UNEDITABLE_FIELDS_AFTER_LOT2: { 75 UNEDITABLE_FIELDS_AFTER_LOT2: {
76 - fieldset_comment: Champs non modifiables après validation de la livraison, 76 + fieldset_comment: 'Champs non modifiables après validation de la livraison, en plus du LOT 1',
77 sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: '' }, 77 sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: '' },
78 categorie_id: { selected: '1', comment: 'Catégorie', except_roles: '' }, 78 categorie_id: { selected: '1', comment: 'Catégorie', except_roles: '' },
79 date_acquisition: { selected: '1', comment: 'Date de commande', except_roles: '' }, 79 date_acquisition: { selected: '1', comment: 'Date de commande', except_roles: '' },
@@ -85,7 +85,7 @@ MANDATORY_AND_READONLY_FIELDS: @@ -85,7 +85,7 @@ MANDATORY_AND_READONLY_FIELDS:
85 DOC_FACTURE: { selected: '1', comment: 'Facture jointe', except_roles: '' } } 85 DOC_FACTURE: { selected: '1', comment: 'Facture jointe', except_roles: '' } }
86 86
87 RECOMMENDED_FIELDS_AFTER_LOT2: { 87 RECOMMENDED_FIELDS_AFTER_LOT2: {
88 - fieldset_comment: Champs non obligatoires mais recommandés après validation de la livraison, 88 + fieldset_comment: 'Champs non obligatoires mais recommandés après validation de la livraison, en plus du LOT 1',
89 etiquette: { selected: '1', comment: 'd''imprimer l''étiquette associée et de la coller sur le matériel', except_roles: '' }, 89 etiquette: { selected: '1', comment: 'd''imprimer l''étiquette associée et de la coller sur le matériel', except_roles: '' },
90 numero_inventaire_organisme: { selected: '1', comment: 'de renseigner le champ ''N° inventaire comptable/tutelles _Organisme_''', except_roles: '' }, 90 numero_inventaire_organisme: { selected: '1', comment: 'de renseigner le champ ''N° inventaire comptable/tutelles _Organisme_''', except_roles: '' },
91 numero_serie: { selected: '0', comment: 'de renseigner le numéro de série du matériel', except_roles: '' }, 91 numero_serie: { selected: '0', comment: 'de renseigner le numéro de série du matériel', except_roles: '' },
doc/LabInvent_Config.pdf
No preview for this file type
doc/LabInvent_Config_champs_obligatoires.pdf 0 → 100644
No preview for this file type
src/Template/ConfigurationFields/edit.ctp
@@ -33,6 +33,7 @@ $icon = $READONLY ? '' : "<i class='icon-edit'></i>"; @@ -33,6 +33,7 @@ $icon = $READONLY ? '' : "<i class='icon-edit'></i>";
33 //$title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel $end"; 33 //$title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel $end";
34 $title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel"; 34 $title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel";
35 echo "<br><h2>$icon $title</h2><br>"; 35 echo "<br><h2>$icon $title</h2><br>";
  36 +
36 /* 37 /*
37 Autres icones possibles : 38 Autres icones possibles :
38 echo "<br><h2><i class='icon-edit'></i> $title</h2><br><br>"; 39 echo "<br><h2><i class='icon-edit'></i> $title</h2><br><br>";
@@ -41,13 +42,61 @@ echo &quot;&lt;br&gt;&lt;h2&gt;&lt;i class=&#39;icon-plus&#39;&gt;&lt;/i&gt; $title&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&quot;; @@ -41,13 +42,61 @@ echo &quot;&lt;br&gt;&lt;h2&gt;&lt;i class=&#39;icon-plus&#39;&gt;&lt;/i&gt; $title&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&quot;;
41 echo "<br><h2><i class='icon-pencil'></i> $title</h2><br><br>"; 42 echo "<br><h2><i class='icon-pencil'></i> $title</h2><br><br>";
42 echo "<br><h2><i class='icon-trash'></i> $title</h2><br><br>"; 43 echo "<br><h2><i class='icon-trash'></i> $title</h2><br><br>";
43 */ 44 */
44 -  
45 -if ($READONLY && $CAN_EDIT) {  
46 - $this->MyHelper->echoEditButton();  
47 - $this->MyHelper->echoButtonForAction('icon-trash', 'reset-to-default', 'Remettre les valeurs par défaut', 'Remettre les valeurs par défaut', true);  
48 - echo '<br><br>'; 45 +function echo_buttons($READONLY, $CAN_EDIT, $helper) {
  46 + if ($READONLY && $CAN_EDIT) {
  47 + echo "<table><tr>";
  48 + echo "<td>";
  49 + $helper->echoEditButton();
  50 + echo "</td>";
  51 + echo "<td>";
  52 + $helper->echoButtonForAction('icon-trash', 'reset-to-default', 'Remettre les valeurs par défaut', 'Remettre les valeurs par défaut', true);
  53 + echo "</td>";
  54 + echo "</tr></table>";
  55 + }
49 } 56 }
50 57
  58 +echo_buttons($READONLY, $CAN_EDIT, $this->MyHelper);
  59 +
  60 +?>
  61 +
  62 +<div id="Présentation">
  63 +
  64 +<p>
  65 +Cette page vous permet de configurer les <b>champs obligatoires, recommandés, et/ou readonly de la fiche matériel</b>, ce qui vous permet de customiser le comportement de ce logiciel selon vos besoins.
  66 +</p>
  67 +
  68 +<p>
  69 +Il vous suffit de cocher/décocher les champs qui sont obligatoires (ou recommandés, ou readonly) à chaque étape (aussi appelée LOT) :
  70 +<ul>
  71 + <li>(LOT-0) pour <b>créer</b> la fiche</li>
  72 +
  73 + <li>(LOT-1) pour <b>commander</b> un matériel (demande d'achat) : cette étape est optionnelle et désactivable (via cette même page web)</li>
  74 +
  75 + <li>(LOT-2) pour <b>valider</b> un matériel (le déclarer payé et livré)</li>
  76 +</ul>
  77 +</p>
  78 +
  79 +</p>
  80 +En plus de définir les champs obligatoires, vous pouvez aussi définir :
  81 +<ul>
  82 + <li>les champs <b>readonly</b>, qui ne sont plus modifiables APRÈS chaque étape</li>
  83 + <li>les champs qui ne sont pas obligatoires mais <b>recommandés</b> APRÈS chaque étape : si un de ces champs n'est pas rempli après l'étape, un message de rappel est affiché sur la fiche détaillée du matériel pour inciter à remplir ce champ (mais sans obligation, juste un rappel systématique)</li>
  84 +</ul>
  85 +<br>
  86 +
  87 +<p>
  88 +Enfin, si vous avez fait une erreur et voulez <b>revenir à la configuration par défaut</b>, pas de panique, il suffit de cliquer sur le bouton 'Remettre les valeurs par défaut'.
  89 +</p>
  90 +<br>
  91 +<hr>
  92 +<br>
  93 +
  94 +</div>
  95 +
  96 +
  97 +<?php
  98 +
  99 +
51 //echo $this->Html->icon('pencil'); 100 //echo $this->Html->icon('pencil');
52 101
53 echo $this->Form->create($contact); 102 echo $this->Form->create($contact);
@@ -175,5 +224,6 @@ echo $this-&gt;Form-&gt;create($contact); @@ -175,5 +224,6 @@ echo $this-&gt;Form-&gt;create($contact);
175 224
176 echo $this->Form->end(); 225 echo $this->Form->end();
177 226
178 -if ($READONLY && $CAN_EDIT) $this->MyHelper->echoEditButton();  
179 227
  228 +echo_buttons($READONLY, $CAN_EDIT, $this->MyHelper);
  229 +//if ($READONLY && $CAN_EDIT) $this->MyHelper->echoEditButton();
src/Template/Pages/changes.ctp
@@ -78,9 +78,12 @@ $line = &#39;&#39;; while ($line != SECTION_NEWS) $line = fgets($f); @@ -78,9 +78,12 @@ $line = &#39;&#39;; while ($line != SECTION_NEWS) $line = fgets($f);
78 78
79 79
80 // 2) Lecture et affichage section NEWS (les grandes nouveautés) 80 // 2) Lecture et affichage section NEWS (les grandes nouveautés)
  81 +echo '<br>';
81 echo '<a id="news">'; 82 echo '<a id="news">';
82 echo "<h3>LES GRANDS CHANGEMENTS (NEWS)</h3>"; 83 echo "<h3>LES GRANDS CHANGEMENTS (NEWS)</h3>";
83 echo '</a>'; 84 echo '</a>';
  85 +echo '<br>';
  86 +
84 // On zappe jqa la première section 87 // On zappe jqa la première section
85 $line = ''; while ($line != NEW_BLOCK) $line = fgets($f); 88 $line = ''; while ($line != NEW_BLOCK) $line = fgets($f);
86 while(!feof($f)) { 89 while(!feof($f)) {