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
CHANGELOG
... ... @@ -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 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 502  
502 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 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 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 624 22/11/2021 v5.3.4-3.7.9
608 625 - (b) Bugfix : Bouton "Commander" ne doit pas être affiché si désactivé dans la config
609 626 - (b) Bugfix : commentaires des sections (fieldsets) pas sauvegardés après une modif de la config champs obligatoires
... ...
README.md
... ... @@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes :
53 53 --------------------------------------------------------------------------------------------
54 54  
55 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 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 5 HAS_ORDER_BUTTON: { selected: '1', comment: 'Ajouter un bouton COMMANDE sur la fiche matériel ?' } }
6 6  
7 7 UNEDITABLE_FIELDS: {
8   - fieldset_comment: Champs non modifiables,
  8 + fieldset_comment: Champs non modifiables dès le début,
9 9 designation: { selected: '0', comment: Désignation, except_roles: '' },
10 10 description: { selected: '0', comment: 'Description, commentaire explicatif', except_roles: '' },
11 11 nom_responsable: { selected: '1', comment: 'nom du responsable', except_roles: [Responsable, Administration] },
... ... @@ -34,7 +34,7 @@ MANDATORY_AND_READONLY_FIELDS:
34 34 # LOT 1 - Demamnde d'Achat (Commande)
35 35  
36 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 38 organisme_id: { selected: '1', comment: Organisme, except_roles: '' },
39 39 prix_ht: { selected: '1', comment: 'Prix HT', except_roles: '' },
40 40 resp_credit: { selected: '1', comment: 'Responsable du crédit', except_roles: '' },
... ... @@ -44,7 +44,7 @@ MANDATORY_AND_READONLY_FIELDS:
44 44 DOC_DEVIS: { selected: '1', comment: Devis, except_roles: '' } }
45 45  
46 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 48 sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: [Administration] }, categorie_id: { selected: '1', comment: '', except_roles: [Administration] },
49 49 resp_credit: { selected: '1', comment: 'Responsable du crédit', except_roles: [Administration] },
50 50 gestionnaire_id: { selected: '1', comment: 'Gestionnaire de référence', except_roles: [Administration] },
... ... @@ -56,14 +56,14 @@ MANDATORY_AND_READONLY_FIELDS:
56 56 DOC_BC: { selected: '1', comment: 'BC joint', except_roles: [Administration] } }
57 57  
58 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 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 63 # LOT 2 - Validation, Livraison (matériel livré et payé)
64 64  
65 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 67 date_acquisition: { selected: '1', comment: 'Date d''achat', except_roles: '' },
68 68 date_reception: { selected: '1', comment: 'Date de livraison', except_roles: '' },
69 69 site_id: { selected: '1', comment: Site, except_roles: '' },
... ... @@ -73,7 +73,7 @@ MANDATORY_AND_READONLY_FIELDS:
73 73 DOC_DEVIS: { selected: '1', comment: 'Devis joint', except_roles: '' } }
74 74  
75 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 77 sur_categorie_id: { selected: '1', comment: 'Domaine', except_roles: '' },
78 78 categorie_id: { selected: '1', comment: 'Catégorie', except_roles: '' },
79 79 date_acquisition: { selected: '1', comment: 'Date de commande', except_roles: '' },
... ... @@ -85,7 +85,7 @@ MANDATORY_AND_READONLY_FIELDS:
85 85 DOC_FACTURE: { selected: '1', comment: 'Facture jointe', except_roles: '' } }
86 86  
87 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 89 etiquette: { selected: '1', comment: 'd''imprimer l''étiquette associée et de la coller sur le matériel', except_roles: '' },
90 90 numero_inventaire_organisme: { selected: '1', comment: 'de renseigner le champ ''N° inventaire comptable/tutelles _Organisme_''', except_roles: '' },
91 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 33 //$title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel $end";
34 34 $title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel";
35 35 echo "<br><h2>$icon $title</h2><br>";
  36 +
36 37 /*
37 38 Autres icones possibles :
38 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 42 echo "<br><h2><i class='icon-pencil'></i> $title</h2><br><br>";
42 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 100 //echo $this->Html->icon('pencil');
52 101  
53 102 echo $this->Form->create($contact);
... ... @@ -175,5 +224,6 @@ echo $this-&gt;Form-&gt;create($contact);
175 224  
176 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 78  
79 79  
80 80 // 2) Lecture et affichage section NEWS (les grandes nouveautés)
  81 +echo '<br>';
81 82 echo '<a id="news">';
82 83 echo "<h3>LES GRANDS CHANGEMENTS (NEWS)</h3>";
83 84 echo '</a>';
  85 +echo '<br>';
  86 +
84 87 // On zappe jqa la première section
85 88 $line = ''; while ($line != NEW_BLOCK) $line = fgets($f);
86 89 while(!feof($f)) {
... ...