Commit a541f625734ae5e9be82e62f8cd9e3279b6db4cf

Authored by Etienne Pallier
1 parent 9e0dc822
Exists in master and in 1 other branch dev

- (i) changé mot-clé "except" par "sauf" dans fichier config champs

readonly (et adapté traitement)

+ nouvelle exception si mot-clé "sauf" mal utilisé

v5.2.18-3.7.9
@@ -461,6 +461,11 @@ Commencer à implémenter le nouveau workflow v5 : @@ -461,6 +461,11 @@ Commencer à implémenter le nouveau workflow v5 :
461 ======= CHANGES ======= 461 ======= CHANGES =======
462 462
463 ------- 463 -------
  464 +23/10/2021 v5.2.18-3.7.9
  465 + - (i) changé mot-clé "except" par "sauf" dans fichier config champs readonly (et adapté traitement)
  466 + - nouvelle exception si mot-clé "sauf" mal utilisé
  467 +
  468 +-------
464 22/10/2021 v5.2.17-3.7.9 469 22/10/2021 v5.2.17-3.7.9
465 - (i) Amélioration importante de la config des champs non modifiables : ajout optionnel d'une exception pour un (ou plusieurs) role(s) 470 - (i) Amélioration importante de la config des champs non modifiables : ajout optionnel d'une exception pour un (ou plusieurs) role(s)
466 => Exemple pour interdire la modif du fournisseur (sauf pour le role Administration) : 471 => Exemple pour interdire la modif du fournisseur (sauf pour le role Administration) :
@@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes :
52 52
53 -------------------------------------------------------------------------------------------- 53 --------------------------------------------------------------------------------------------
54 54
55 -Date: 22/10/2021  
56 -Version: v5.2.17-3.7.9 55 +Date: 23/10/2021
  56 +Version: v5.2.18-3.7.9
57 57
58 58
59 59
config/app_labinvent_mandatory_fields.default.yml
@@ -101,7 +101,7 @@ UNEDITABLE_FIELDS_LOT0: @@ -101,7 +101,7 @@ UNEDITABLE_FIELDS_LOT0:
101 #- nom_user 101 #- nom_user
102 102
103 # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même 103 # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même
104 - - nom_responsable (except Responsable, Administration) 104 + - nom_responsable (sauf Responsable, Administration)
105 105
106 #- nom_ancien_responsable 106 #- nom_ancien_responsable
107 107
@@ -118,11 +118,11 @@ UNEDITABLE_FIELDS_LOT0: @@ -118,11 +118,11 @@ UNEDITABLE_FIELDS_LOT0:
118 #- budgets 118 #- budgets
119 119
120 # #### CHAMPS ADMINISTRATIFS : #### 120 # #### CHAMPS ADMINISTRATIFS : ####
121 - - eotp (except Administration)  
122 - - numero_commande (except Administration) 121 + - eotp (sauf Administration)
  122 + - numero_commande (sauf Administration)
123 - numero_laboratoire # READONLY toujours car généré automatiquement 123 - numero_laboratoire # READONLY toujours car généré automatiquement
124 - - numero_inventaire_organisme (except Administration)  
125 - - numero_inventaire_old (except Administration) 124 + - numero_inventaire_organisme (sauf Administration)
  125 + - numero_inventaire_old (sauf Administration)
126 126
127 127
128 128
@@ -217,8 +217,8 @@ UNEDITABLE_FIELDS_LOT1: @@ -217,8 +217,8 @@ UNEDITABLE_FIELDS_LOT1:
217 217
218 # On ne devrait pas pouvoir changer la NATURE du bien 218 # On ne devrait pas pouvoir changer la NATURE du bien
219 # Domaine & Catégorie 219 # Domaine & Catégorie
220 - - sur_categorie_id (except Administration) # Domaine  
221 - - categorie_id (except Administration) # Catégorie 220 + - sur_categorie_id (sauf Administration) # Domaine
  221 + - categorie_id (sauf Administration) # Catégorie
222 #- sous_categorie_id 222 #- sous_categorie_id
223 223
224 #- groupes_thematique_id 224 #- groupes_thematique_id
@@ -256,7 +256,7 @@ UNEDITABLE_FIELDS_LOT1: @@ -256,7 +256,7 @@ UNEDITABLE_FIELDS_LOT1:
256 #- nom_user 256 #- nom_user
257 257
258 # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même 258 # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même
259 - #- nom_responsable (except Responsable, Administration) 259 + #- nom_responsable (sauf Responsable, Administration)
260 260
261 #- nom_ancien_responsable 261 #- nom_ancien_responsable
262 262
@@ -266,11 +266,11 @@ UNEDITABLE_FIELDS_LOT1: @@ -266,11 +266,11 @@ UNEDITABLE_FIELDS_LOT1:
266 #- gestionnaire_id 266 #- gestionnaire_id
267 267
268 # Fournisseur 268 # Fournisseur
269 - - fournisseur_id (except Administration) 269 + - fournisseur_id (sauf Administration)
270 270
271 #- organisme_id 271 #- organisme_id
272 272
273 - - prix_ht (except Administration) 273 + - prix_ht (sauf Administration)
274 274
275 # Utilisé par la Gestion pour remplir le champ eotp 275 # Utilisé par la Gestion pour remplir le champ eotp
276 #- budgets 276 #- budgets
@@ -280,11 +280,11 @@ UNEDITABLE_FIELDS_LOT1: @@ -280,11 +280,11 @@ UNEDITABLE_FIELDS_LOT1:
280 # Le devis attaché au matériel commandé n'est ni modifiable ni supprimable 280 # Le devis attaché au matériel commandé n'est ni modifiable ni supprimable
281 281
282 # #### CHAMPS ADMINISTRATIFS : #### 282 # #### CHAMPS ADMINISTRATIFS : ####
283 - - eotp (except Administration)  
284 - - numero_commande (except Administration) 283 + - eotp (sauf Administration)
  284 + - numero_commande (sauf Administration)
285 - numero_laboratoire # READONLY toujours car généré automatiquement 285 - numero_laboratoire # READONLY toujours car généré automatiquement
286 - - numero_inventaire_organisme (except Administration)  
287 - - numero_inventaire_old (except Administration) 286 + - numero_inventaire_organisme (sauf Administration)
  287 + - numero_inventaire_old (sauf Administration)
288 288
289 289
290 290
@@ -397,7 +397,7 @@ UNEDITABLE_FIELDS_LOT2: @@ -397,7 +397,7 @@ UNEDITABLE_FIELDS_LOT2:
397 #- nom_user 397 #- nom_user
398 398
399 # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même 399 # - Acheteur (le Créateur de la fiche) - Un role "Utilisateur" ne peut pas changer ça, c'est par défaut lui-même
400 - #- nom_responsable (except Responsable, Administration) 400 + #- nom_responsable (sauf Responsable, Administration)
401 401
402 #- nom_ancien_responsable 402 #- nom_ancien_responsable
403 403
src/Model/Table/MaterielsTable.php
@@ -271,18 +271,23 @@ class MaterielsTable extends AppTable @@ -271,18 +271,23 @@ class MaterielsTable extends AppTable
271 $dict = []; 271 $dict = [];
272 foreach ($uneditable_fields as $f) { 272 foreach ($uneditable_fields as $f) {
273 $except_roles = []; 273 $except_roles = [];
274 - $except_str = '(except'; 274 + $except_str = '(sauf';
  275 + $pos0 = strpos($f, '(');
275 $pos = strpos($f, $except_str); 276 $pos = strpos($f, $except_str);
276 - // Si le nom du champ $f fini par "(except ...)", on récupère cette chaine except (sans le mot except ni la parenthèse finale) dans $except  
277 - if ($pos !== false) { 277 + // Si le nom du champ $f fini par "(sauf ...)", on récupère cette chaine except (sans le mot 'sauf' ni la parenthèse finale) dans $except
  278 + if ($pos0 !== false) {
  279 + $error_msg = "Erreur dans le fichier de configuration des champs non modifiables";
  280 + // EXCEPTION si parenthèse début mais pas suivie du mot-clé 'sauf'
  281 + if ($pos === false)
  282 + throw new \Exception("$error_msg : une parenthèse doit toujours être suivie du mot-clé 'sauf', ce qui n'est pas le cas de la ligne '$f'");
278 // EXCEPTION si pas de parenthèse finale, ou role mal orthographié 283 // EXCEPTION si pas de parenthèse finale, ou role mal orthographié
279 //$except_list = trim( substr($f, $pos + strlen($except_str), -1) ); 284 //$except_list = trim( substr($f, $pos + strlen($except_str), -1) );
280 if ( substr($f, -1) != ')' ) 285 if ( substr($f, -1) != ')' )
281 - throw new \Exception("Erreur dans le fichier de configuration des champs non modifiables : il manque une parenthèse à la fin de la ligne '$f'"); 286 + throw new \Exception("$error_msg : il manque une parenthèse à la fin de la ligne '$f'");
282 $except_roles = str_replace(" ", "", substr($f, $pos + strlen($except_str), -1) ); 287 $except_roles = str_replace(" ", "", substr($f, $pos + strlen($except_str), -1) );
283 $except_roles = explode(',', $except_roles); 288 $except_roles = explode(',', $except_roles);
284 foreach ($except_roles as $role) if (! self::isValidRole($role)) 289 foreach ($except_roles as $role) if (! self::isValidRole($role))
285 - throw new \Exception("Erreur dans le fichier de configuration des champs non modifiables : le role '$role' est mal orthographié dans la ligne '$f'"); 290 + throw new \Exception("$error_msg : le role '$role' est mal orthographié dans la ligne '$f'");
286 $f = trim( substr($f,0,$pos) ); 291 $f = trim( substr($f,0,$pos) );
287 } 292 }
288 $dict[$f] = $except_roles; 293 $dict[$f] = $except_roles;