Commit f8c5c958094f67cd738f8d8041ff452d0185ba2e

Authored by Etienne Pallier
1 parent 5b899c72

Plusieurs ameliorations:

- bugfix materiels/add : impossible changer l'utilisateur (responsable
du matos)
- bouton "de-valider"
- diverses ameliorations graphiques
- refactorisations de code
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 &amp;&amp; $materiel-&gt;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 &amp;&amp; $materiel-&gt;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 }
... ...