Commit f8c5c958094f67cd738f8d8041ff452d0185ba2e
1 parent
5b899c72
Exists in
master
and in
3 other branches
Plusieurs ameliorations:
- bugfix materiels/add : impossible changer l'utilisateur (responsable du matos) - bouton "de-valider" - diverses ameliorations graphiques - refactorisations de code
Showing
6 changed files
with
73 additions
and
65 deletions
Show diff stats
README-LABINVENT.md
... | ... | @@ -47,10 +47,13 @@ Logiciel testé et validé sur les configurations suivantes : |
47 | 47 | |
48 | 48 | VERSION ACTUELLE |
49 | 49 | |
50 | -Date: 23/08/2017 | |
50 | +Date: 24/08/2017 | |
51 | 51 | Version: 2.7.5 |
52 | - - bugfix impossible changer le fournisseur d'un materiel (pb BD seulement sur mysql ancienne version) => changé les "MyISAM" en "InnoDB" pour que les contraintes d'integrité soient respectées et ne provoquent plus d'erreur "Action impossible" | |
53 | - - ATTENTION : Mise à jour de la base de données requise (cf database/update) | |
52 | + Plusieurs ameliorations: | |
53 | + - bugfix materiels/add : impossible changer l'utilisateur (responsable du matos) | |
54 | + - bouton "de-valider" | |
55 | + - diverses ameliorations graphiques | |
56 | + - refactorisations de code | |
54 | 57 | |
55 | 58 | Version majeure en cours (2.7): https://projects.irap.omp.eu/versions/162 |
56 | 59 | ... | ... |
src/Template/Layout/default.ctp
... | ... | @@ -115,7 +115,7 @@ $cakeDescription = 'Labinvent 2'; |
115 | 115 | </i></td> |
116 | 116 | <td id="version"> |
117 | 117 | <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> |
118 | - <font color="black">VERSION 2.7.5 (23/08/2017)</font> | |
118 | + <font color="black">VERSION 2.7.5 (24/08/2017)</font> | |
119 | 119 | <br/> |
120 | 120 | <font color="black"><a href="<?php |
121 | 121 | ... | ... |
src/Template/Materiels/add.ctp
... | ... | @@ -46,7 +46,7 @@ if (isset($cpMateriel)) { |
46 | 46 | <?=$this->Form->submit(__('Enregistrer'))?> |
47 | 47 | |
48 | 48 | <?=$this->Html->link( |
49 | - __('<i class="icon-minus-sign"></i> Anuler'), | |
49 | + __('<i class="icon-minus-sign"></i> Annuler'), | |
50 | 50 | ['action' => 'index'], |
51 | 51 | ['escape' => false, 'onclick' => 'return true;', 'style' => 'margin-right: 10px'] |
52 | 52 | )?> |
... | ... | @@ -191,29 +191,13 @@ if (isset($cpMateriel)) { |
191 | 191 | 'options' => $groupesMetiers, |
192 | 192 | 'default' => $Groupes_metier_id |
193 | 193 | ]); |
194 | - if ($USER_IS_RESPONSABLE_OR_MORE) { | |
195 | - /* | |
196 | - if (! (in_array($role, [ | |
197 | - 'Responsable', | |
198 | - 'Administration', | |
199 | - 'Administration Plus', | |
200 | - 'Super Administrateur' | |
201 | - ]))) { | |
202 | - */ | |
203 | - echo $this->Form->hidden('nom_responsable', [ | |
204 | - 'label' => 'Nom de l\'utilisateur', | |
205 | - 'empty' => 'Choisir un utilisateur', | |
206 | - 'default' => $username, | |
207 | - 'options' => $utilisateurs | |
208 | - ]); | |
209 | - } else { | |
210 | - echo $this->Form->input('nom_responsable', [ | |
211 | - 'label' => 'Nom de l\'utilisateur', | |
212 | - 'empty' => 'Choisir un utilisateur', | |
213 | - 'default' => $username, | |
214 | - 'options' => $utilisateurs | |
215 | - ]); | |
216 | - } | |
194 | + $fieldType = $USER_IS_UTILISATEUR ? 'hidden' : 'input'; | |
195 | + echo $this->Form->$fieldType('nom_responsable', [ | |
196 | + 'label' => 'Nom de l\'utilisateur', | |
197 | + 'empty' => 'Choisir un utilisateur', | |
198 | + 'default' => $username, | |
199 | + 'options' => $utilisateurs | |
200 | + ]); | |
217 | 201 | echo $this->Form->input('email_responsable', [ |
218 | 202 | 'label' => 'Email de l\'utilisateur', |
219 | 203 | 'readonly' => true, | ... | ... |
src/Template/Materiels/edit.ctp
... | ... | @@ -63,7 +63,16 @@ if ($IS_VALIDATED && $materiel->numero_serie) |
63 | 63 | echo '<br><br>'; |
64 | 64 | } |
65 | 65 | ?> |
66 | + | |
67 | + <div id="boutons" class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;"> | |
66 | 68 | <?=$this->Form->submit(__('Enregistrer'))?> |
69 | + | |
70 | + <?=$this->Html->link( | |
71 | + __('<i class="icon-minus-sign"></i> Annuler'), | |
72 | + ['action' => 'index'], | |
73 | + ['escape' => false, 'onclick' => 'return true;', 'style' => 'margin-right: 10px'] | |
74 | + )?> | |
75 | + </div> | |
67 | 76 | |
68 | 77 | <?php |
69 | 78 | echo $this->Form->input('designation', [ |
... | ... | @@ -245,28 +254,15 @@ if ($IS_VALIDATED && $materiel->numero_serie) |
245 | 254 | 'default' => 1 |
246 | 255 | ]); |
247 | 256 | |
248 | - if (! (in_array($role, [ | |
249 | - 'Responsable', | |
250 | - 'Administration', | |
251 | - 'Administration Plus', | |
252 | - 'Super Administrateur' | |
253 | - ]))) { | |
254 | - echo $this->Form->hidden('nom_responsable', [ | |
255 | - 'label' => 'Nom de l\'utilisateur', | |
256 | - 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields), | |
257 | - 'empty' => 'Choisir un utilisateur', | |
258 | - 'default' => $username, | |
259 | - 'options' => $utilisateurs | |
260 | - ]); | |
261 | - } else { | |
262 | - echo $this->Form->input('nom_responsable', [ | |
263 | - 'label' => 'Nom de l\'utilisateur', | |
264 | - 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields), | |
265 | - 'empty' => 'Choisir un utilisateur', | |
266 | - 'default' => $username, | |
267 | - 'options' => $utilisateurs | |
268 | - ]); | |
269 | - } | |
257 | + $fieldType = $USER_IS_UTILISATEUR ? 'hidden' : 'input'; | |
258 | + echo $this->Form->$fieldType('nom_responsable', [ | |
259 | + 'label' => 'Nom de l\'utilisateur', | |
260 | + 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields), | |
261 | + 'empty' => 'Choisir un utilisateur', | |
262 | + 'default' => $username, | |
263 | + 'options' => $utilisateurs | |
264 | + ]); | |
265 | + | |
270 | 266 | if (isset($nom_ancien_responsable)) { |
271 | 267 | echo $this->Form->input('nom_ancien_responsable', [ |
272 | 268 | 'label' => 'Nom ancien utilisateur', | ... | ... |
src/Template/Materiels/view.ctp
... | ... | @@ -343,7 +343,7 @@ $USER_IS_RESPONSABLE_AND_SAME_GROUP = |
343 | 343 | ], |
344 | 344 | [ |
345 | 345 | 'title' => 'Valider le matériel', |
346 | - 'style' => 'margin-right: 10px', | |
346 | + 'style' => 'margin-right: 10px; color: red', | |
347 | 347 | 'escape' => false |
348 | 348 | ] |
349 | 349 | ); |
... | ... | @@ -360,7 +360,7 @@ $USER_IS_RESPONSABLE_AND_SAME_GROUP = |
360 | 360 | 'view' |
361 | 361 | ], |
362 | 362 | [ |
363 | - 'title' => 'dé-valider le matériel (le repasser au statut CREATED)', | |
363 | + 'title' => 'dé-valider le matériel (le repasser au statut Créé)', | |
364 | 364 | //'style' => 'margin-right: 10px; background: red; color: white', |
365 | 365 | 'style' => 'margin-right: 10px; color: red', |
366 | 366 | 'escape' => false |
... | ... | @@ -374,20 +374,21 @@ $USER_IS_RESPONSABLE_AND_SAME_GROUP = |
374 | 374 | 'view' |
375 | 375 | ], [ |
376 | 376 | 'title' => 'Demander la sortie de l\'inventaire', |
377 | - 'style' => 'margin-right: 10px', | |
377 | + 'style' => 'margin-right: 10px; color: red', | |
378 | 378 | 'escape' => false |
379 | 379 | ]); |
380 | 380 | } |
381 | 381 | else if ($status==$TOBEARCHIVED) { |
382 | 382 | // Bouton ARCHIVER |
383 | - if ($role != 'Responsable' && $role != 'Super Administrateur') { | |
384 | - echo $this->Html->link('<i class="icon-ok-sign"></i> Sortie inventaire', [ | |
383 | + //if ($role != 'Responsable' && $role != 'Super Administrateur') { | |
384 | + if ($role != 'Responsable') { | |
385 | + echo $this->Html->link('<i class="icon-ok-sign"></i> Sortie inventaire', [ | |
385 | 386 | 'action' => 'statusArchived', |
386 | 387 | $materiel->id, |
387 | 388 | 'view' |
388 | 389 | ], [ |
389 | 390 | 'title' => 'Sortir définitivement de l\'inventaire', |
390 | - 'style' => 'margin-right: 10px', | |
391 | + 'style' => 'margin-right: 10px; color: red', | |
391 | 392 | 'escape' => false, |
392 | 393 | 'confirm' => 'Êtes-vous sur de bien vouloir archiver ' . $materiel->designation . ' ?' |
393 | 394 | ]); | ... | ... |
tests/TestCase/Controller/MaterielsControllerTest.php
... | ... | @@ -407,9 +407,29 @@ class MaterielsControllerTest extends IntegrationTestCase { |
407 | 407 | * |
408 | 408 | * @return void |
409 | 409 | */ |
410 | - public function testEdit() { | |
411 | - $this->authSuperAdmin(); | |
412 | - | |
410 | + | |
411 | + public function testUpdate() { // ACTION 'edit' | |
412 | + foreach (array(1,2,3,4) as $role) { | |
413 | + switch ($role) { | |
414 | + case 1: $this->authUtilisateur(); | |
415 | + break; | |
416 | + case 2: $this->authResponsable(); | |
417 | + break; | |
418 | + case 3: $this->authAdmin(); | |
419 | + break; | |
420 | + case 4: $this->authAdminPlus(); | |
421 | + break; | |
422 | + case 5: $this->authSuperAdmin(); | |
423 | + break; | |
424 | + } | |
425 | + if ($role==1) continue; | |
426 | + $this->_testUpdates(); | |
427 | + } // foreach | |
428 | + } | |
429 | + | |
430 | + | |
431 | + private function _testUpdates() { | |
432 | + | |
413 | 433 | // 1) Test qu'on peut modifier un materiel CREATED |
414 | 434 | // Toutes les donnees passees sont modifiees |
415 | 435 | $data = [ |
... | ... | @@ -831,20 +851,24 @@ class MaterielsControllerTest extends IntegrationTestCase { |
831 | 851 | */ |
832 | 852 | public function testUpdateStatusSelectedMateriels() { |
833 | 853 | $this->authSuperAdmin(); |
854 | + //$this->authAdmin(); | |
834 | 855 | $this->post('/materiels/execActions', ['updateSelectedStatus' => 'true', 'what' => 'CREATED', 11 => '1', 12 => '1', 13 => '1']); |
835 | 856 | |
836 | 857 | $this->get('/materiels/view/11'); |
837 | - $this->assertResponseNotContains('CREATED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
838 | - $this->assertResponseNotContains('TOBEARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
839 | - $this->assertResponseNotContains('ARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
840 | - | |
858 | + $this->assertResponseContains('VALIDATED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
859 | + $this->assertResponseNotContains('CREATED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
860 | + $this->assertResponseNotContains('TOBEARCHIVED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
861 | + $this->assertResponseNotContains('ARCHIVED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
862 | + | |
841 | 863 | $this->get('/materiels/view/12'); |
842 | - $this->assertResponseNotContains('CREATED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
864 | + $this->assertResponseContains('VALIDATED', "(12) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
865 | + $this->assertResponseNotContains('CREATED', "(12) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
843 | 866 | $this->assertResponseNotContains('TOBEARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); |
844 | 867 | $this->assertResponseNotContains('ARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); |
845 | 868 | |
846 | 869 | $this->get('/materiels/view/13'); |
847 | - $this->assertResponseNotContains('CREATED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
870 | + $this->assertResponseContains('VALIDATED', "(13) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
871 | + $this->assertResponseNotContains('CREATED', "(13) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); | |
848 | 872 | $this->assertResponseNotContains('TOBEARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); |
849 | 873 | $this->assertResponseNotContains('ARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement."); |
850 | 874 | } | ... | ... |