Commit cb0ff3ca1d3f52e465f42564fb0477c66a8c9bb0
1 parent
440caf8f
Exists in
master
and in
3 other branches
Version: 2.4.3.1
Bouton retour index, Acl, vue matériel, role sur le default layout, ... Demande (terminé) : https://projects.irap.omp.eu/issues/3785 https://projects.irap.omp.eu/issues/3801 https://projects.irap.omp.eu/issues/3797 https://projects.irap.omp.eu/issues/3796 https://projects.irap.omp.eu/issues/3787 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
Showing
12 changed files
with
98 additions
and
50 deletions
Show diff stats
README-LABINVENT.md
... | ... | @@ -51,10 +51,16 @@ Logiciel testé et validé sur les configurations suivantes : |
51 | 51 | VERSION ACTUELLE |
52 | 52 | |
53 | 53 | Date: 07/06/2016 |
54 | -Version: 2.4.3.0 | |
54 | +Version: 2.4.3.1 | |
55 | 55 | |
56 | -Reversionnage 2.5 -> 2.4 | |
57 | - | |
56 | +Bouton retour index, Acl, vue matériel, role sur le default layout, ... | |
57 | + | |
58 | +Demande (terminé) : https://projects.irap.omp.eu/issues/3785 | |
59 | + https://projects.irap.omp.eu/issues/3801 | |
60 | + https://projects.irap.omp.eu/issues/3797 | |
61 | + https://projects.irap.omp.eu/issues/3796 | |
62 | + https://projects.irap.omp.eu/issues/3787 | |
63 | + | |
58 | 64 | Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 |
59 | 65 | |
60 | 66 | ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -83,7 +83,12 @@ class MaterielsController extends AppController |
83 | 83 | $id = (int)$this->request->params['pass'][0]; |
84 | 84 | if ($this->userHasRole('Administration')) { |
85 | 85 | if($this->isToBeArchived($id)) { |
86 | - return true; | |
86 | + if($role == 'Super Administrateur') { | |
87 | + return false; | |
88 | + } | |
89 | + else { | |
90 | + return true; | |
91 | + } | |
87 | 92 | } |
88 | 93 | } |
89 | 94 | } |
... | ... | @@ -100,6 +105,7 @@ class MaterielsController extends AppController |
100 | 105 | } |
101 | 106 | } |
102 | 107 | |
108 | + | |
103 | 109 | |
104 | 110 | return parent::isAuthorized($user); |
105 | 111 | } | ... | ... |
src/Template/Element/menu_index.ctp
... | ... | @@ -11,6 +11,13 @@ if (strtolower($pluralHumanName) == "categories") $pluralHumanName="Catégories" |
11 | 11 | echo $pluralHumanName; |
12 | 12 | ?></h3> |
13 | 13 | <ul> |
14 | + | |
15 | + <li> | |
16 | + <?php | |
17 | + echo $this->Html->link ('<i class="icon-arrow-left"></i> Retour', 'javascript:window.history.go(-1)', ['escape' => false]); | |
18 | + ?> | |
19 | + </li> | |
20 | + | |
14 | 21 | <li> |
15 | 22 | <?php |
16 | 23 | $bol = false; |
... | ... | @@ -50,6 +57,10 @@ echo $pluralHumanName; |
50 | 57 | ['action' => 'add'], |
51 | 58 | ['escape' => false]); |
52 | 59 | } |
60 | + | |
53 | 61 | ?> |
62 | + | |
63 | + | |
54 | 64 | </li> |
65 | + | |
55 | 66 | </ul> | ... | ... |
src/Template/Layout/default.ctp
... | ... | @@ -48,6 +48,7 @@ $cakeDescription = 'Labinvent 2.0'; |
48 | 48 | <?php |
49 | 49 | if (isset($username) && $username != " ") { |
50 | 50 | echo 'Bienvenue '.$username.'<br/>'; |
51 | + echo $role.'<br/>'; | |
51 | 52 | echo $this->Html->link('Se déconnecter', ['controller' => 'Users', 'action' => 'logout']); |
52 | 53 | } |
53 | 54 | else { |
... | ... | @@ -93,7 +94,7 @@ $cakeDescription = 'Labinvent 2.0'; |
93 | 94 | </i></td> |
94 | 95 | <td id="version"> |
95 | 96 | <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> |
96 | - <font color="black">VERSION 2.4.3.0 (07/06/2016)</font> | |
97 | + <font color="black">VERSION 2.4.3.1 (07/06/2016)</font> | |
97 | 98 | </td> |
98 | 99 | </tr> |
99 | 100 | </table> | ... | ... |
src/Template/Materiels/add.ctp
... | ... | @@ -86,7 +86,7 @@ else { |
86 | 86 | |
87 | 87 | if(!(in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { |
88 | 88 | echo $this->Form->hidden('nom_responsable', [ |
89 | - 'label' => $configuration->nom_responsable, | |
89 | + 'label' => 'Nom du propriétaire', | |
90 | 90 | 'empty' => 'Choisir un utilisateur', |
91 | 91 | 'default' => $username, |
92 | 92 | 'options' => $utilisateurs, |
... | ... | @@ -94,14 +94,14 @@ else { |
94 | 94 | } |
95 | 95 | else { |
96 | 96 | echo $this->Form->input('nom_responsable', [ |
97 | - 'label' => $configuration->nom_responsable, | |
97 | + 'label' => 'Nom du propriétaire', | |
98 | 98 | 'empty' => 'Choisir un utilisateur', |
99 | 99 | 'default' => $username, |
100 | 100 | 'options' => $utilisateurs |
101 | 101 | ]); |
102 | 102 | } |
103 | 103 | echo $this->Form->input('email_responsable', [ |
104 | - 'label' => 'Email du responsable', | |
104 | + 'label' => 'Email du propriétaire', | |
105 | 105 | 'readonly' => true, |
106 | 106 | 'default' => $mail_responsable |
107 | 107 | ]); |
... | ... | @@ -109,7 +109,7 @@ else { |
109 | 109 | echo $this->Form->input('organisme_id', ['options' => $organismes, 'style' => 'width: 380px', 'empty' => 'Choisir un organisme', 'default' => $Organisme_id]); |
110 | 110 | echo $this->Form->input('prix_ht', ['label' => 'Prix HT (€)', 'default' => $Prix_ht]); |
111 | 111 | |
112 | - if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) { | |
112 | + if(in_array($role, ['Administration', 'Administration Plus'])) { | |
113 | 113 | echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>'; |
114 | 114 | echo $this->Form->input('eotp', ['label' => 'Centre financier/EOTP']); |
115 | 115 | echo $this->Form->input('numero_commande', ['label' => 'Numéro de commande']); | ... | ... |
src/Template/Materiels/edit.ctp
... | ... | @@ -160,7 +160,7 @@ if ($IS_VALIDATED) |
160 | 160 | |
161 | 161 | if(!(in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { |
162 | 162 | echo $this->Form->hidden('nom_responsable', [ |
163 | - 'label' => $configuration->nom_responsable, | |
163 | + 'label' => 'Nom du propriétaire', | |
164 | 164 | 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields), |
165 | 165 | 'empty' => 'Choisir un utilisateur', |
166 | 166 | 'default' => $username, |
... | ... | @@ -168,7 +168,7 @@ if ($IS_VALIDATED) |
168 | 168 | ]); |
169 | 169 | } else { |
170 | 170 | echo $this->Form->input('nom_responsable', [ |
171 | - 'label' => $configuration->nom_responsable, | |
171 | + 'label' => 'Nom du propriétaire', | |
172 | 172 | 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields), |
173 | 173 | 'empty' => 'Choisir un utilisateur', |
174 | 174 | 'default' => $username, |
... | ... | @@ -177,13 +177,13 @@ if ($IS_VALIDATED) |
177 | 177 | } |
178 | 178 | if(isset($nom_ancien_responsable)){ |
179 | 179 | echo $this->Form->input ('nom_ancien_responsable', [ |
180 | - 'label' => 'Nom ancien responsable', | |
180 | + 'label' => 'Nom ancien propriétaire', | |
181 | 181 | 'readonly' => true, |
182 | 182 | 'default' => $nom_ancien_responsable |
183 | 183 | ]); |
184 | 184 | } |
185 | 185 | echo $this->Form->input('email_responsable', [ |
186 | - 'label' => 'Email du responsable', | |
186 | + 'label' => 'Email du propriétaire', | |
187 | 187 | 'readonly' => true, |
188 | 188 | 'default' => $mail_responsable |
189 | 189 | ]); |
... | ... | @@ -204,7 +204,7 @@ if ($IS_VALIDATED) |
204 | 204 | 'disabled' => $isReadonlyField('prix_ht', $myReadonlyFields) |
205 | 205 | ]); |
206 | 206 | |
207 | - if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) { | |
207 | + if(in_array($role, ['Administration', 'Administration Plus'])) { | |
208 | 208 | echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>'; |
209 | 209 | echo $this->Form->input('eotp', [ |
210 | 210 | 'label' => 'Centre financier/EOTP', | ... | ... |
src/Template/Materiels/find.ctp
... | ... | @@ -153,7 +153,7 @@ if ($r) { |
153 | 153 | ]); |
154 | 154 | |
155 | 155 | echo $this->Form->input ( 's_nom_responsable', [ |
156 | - 'label' => $configuration->nom_responsable | |
156 | + 'label' => 'Nom du propriétaire' | |
157 | 157 | ]); |
158 | 158 | echo $this->Form->input ( 's_numero_inventaire_organisme', [ |
159 | 159 | 'label' => 'N° inventaire organisme' |
... | ... | @@ -292,7 +292,7 @@ if ($r) { |
292 | 292 | 'confirm' => 'Êtes-vous sur de vouloir faire une demande d\'archive '.$material->designation.' ?']); |
293 | 293 | |
294 | 294 | } |
295 | - else if (h($material->status) == 'TOBEARCHIVED' && $role != 'Responsable'){ | |
295 | + else if (h($material->status) == 'TOBEARCHIVED' && $role != 'Responsable' && $role != 'Super Administrateur'){ | |
296 | 296 | echo $this->Html->link('<i class="icon-inbox"></i>', |
297 | 297 | ['action' => 'statusArchived', $material->id], |
298 | 298 | ['title' => 'Sortir de l\'inventaire', 'style' => 'margin: 0 2px', 'escape' => false, | ... | ... |
src/Template/Materiels/index.ctp
... | ... | @@ -112,7 +112,7 @@ if (isset ( $STATUS )) { |
112 | 112 | <th><?= $this->Paginator->sort('categorie_id', 'Catégorie') ?></th> |
113 | 113 | <th><?= $this->Paginator->sort('organisme_id', 'Org.') ?></th> |
114 | 114 | <th><?= $this->Paginator->sort('numero_inventaire_organisme', 'N° Invent. Org.') ?></th> |
115 | - <th><?= $this->Paginator->sort('nom_responsable', $configuration->nom_responsable) ?></th> | |
115 | + <th><?= $this->Paginator->sort('nom_responsable', 'Nom du propriétaire') ?></th> | |
116 | 116 | <th><?= $this->Paginator->sort('status', 'Statut') ?></th> |
117 | 117 | <th><?= $this->Paginator->sort('date_acquisition', 'Date Achat') ?></th> |
118 | 118 | <th><?= $this->Paginator->sort('etiquette', 'Et') ?></th> |
... | ... | @@ -182,7 +182,7 @@ if (isset ( $STATUS )) { |
182 | 182 | ['title' => 'Valider', 'style' => 'margin: 0 2px', 'escape' => false, |
183 | 183 | 'confirm' => 'Êtes-vous sur de vouloir validé '.$materiel->designation.' ?']); |
184 | 184 | } |
185 | - else if (h($materiel->status) == 'VALIDATED' && h($materiel->nom_responsable) == $username) { | |
185 | + else if (h($materiel->status) == 'VALIDATED') { | |
186 | 186 | echo $this->Html->link('<i class="icon-inbox"></i>', |
187 | 187 | ['action' => 'statusToBeArchived', $materiel->id], |
188 | 188 | ['title' => 'Demander la sortie de l\'inventaire', 'style' => 'margin: 0 2px', 'escape' => false, |
... | ... | @@ -231,12 +231,14 @@ if (isset ( $STATUS )) { |
231 | 231 | } |
232 | 232 | |
233 | 233 | if ($STATUS != 'ARCHIVED') { |
234 | - echo $this->Form->submit ( $action . ' matériels cochés', [ | |
235 | - 'name' => 'updateSelectedStatus', | |
236 | - 'id' => 'updateSelectedStatus', | |
237 | - 'style' => 'margin: 0px' | |
238 | - ]); | |
239 | - echo "<br /><br />" ; | |
234 | + if(!($role == 'Super Administrateur' && $STATUS == 'TOBEARCHIVED')) { | |
235 | + echo $this->Form->submit ( $action . ' matériels cochés', [ | |
236 | + 'name' => 'updateSelectedStatus', | |
237 | + 'id' => 'updateSelectedStatus', | |
238 | + 'style' => 'margin: 0px' | |
239 | + ]); | |
240 | + echo "<br /><br />" ; | |
241 | + } | |
240 | 242 | } |
241 | 243 | echo $this->Form->submit ( 'Exporter la liste des matériels cochés', [ |
242 | 244 | 'name' => 'export', | ... | ... |
src/Template/Materiels/view.ctp
... | ... | @@ -104,7 +104,7 @@ |
104 | 104 | break; |
105 | 105 | |
106 | 106 | case "TOBEARCHIVED": |
107 | - if($role != 'Responsable') { | |
107 | + if($role != 'Responsable'&& $role != 'Super Administrateur') { | |
108 | 108 | echo $this->Html->link('<i class="icon-ok-sign"></i> Sortie inventaire', |
109 | 109 | ['action' => 'statusArchived', $materiel->id, 'view'], |
110 | 110 | ['title' => 'Sortir définitivement de l\'inventaire', 'style' => 'margin-right: 10px', 'escape' => false, |
... | ... | @@ -203,28 +203,43 @@ |
203 | 203 | $displayElement(__($configuration->nom_responsable), $this->Html->link(h($materiel->nom_responsable), 'mailto:'.h($materiel->email_responsable))); |
204 | 204 | $displayElement(__('N. interne (labo)'), h($materiel->numero_laboratoire)); |
205 | 205 | |
206 | - //Partie admin | |
207 | - if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) { | |
208 | - $displayElement(__('CentreFinancier/EOTP'), h($materiel->eotp)); | |
209 | - $displayElement(__('N° commande'), h($materiel->numero_commande)); | |
210 | - $displayElement(__('Code comptable'), h($materiel->code_comptable)); | |
211 | - $displayElement(__('N° de série'), h($materiel->numero_serie)); | |
212 | - $displayElement(__('N. Inventaire Organisme'), h($materiel->numero_inventaire_organisme)); | |
213 | - $displayElement(__('N. inventaire (ancien)'), h($materiel->numero_inventaire_old)); | |
206 | + if($role == 'Super Administrateur') { | |
207 | + $displayElement(__('Date création'), h($materiel->created)); | |
208 | + $displayElement(__('Nom du créateur'), h($materiel->nom_createur)); | |
209 | + $displayElement(__('Date modification'), h($materiel->modified)); | |
210 | + $displayElement(__('Nom du modificateur'), h($materiel->nom_modificateur)); | |
214 | 211 | } |
215 | - | |
216 | - | |
217 | - | |
218 | - $displayElement(__('Date création'), h($materiel->created)); | |
219 | - $displayElement(__('Nom du créateur'), h($materiel->nom_createur)); | |
220 | - $displayElement(__('Date modification'), h($materiel->modified)); | |
221 | - $displayElement(__('Nom du modificateur'), h($materiel->nom_modificateur)); | |
222 | 212 | |
223 | - ?> | |
224 | - | |
213 | + ?> | |
225 | 214 | </table> |
226 | 215 | </div> |
216 | + | |
227 | 217 | |
218 | + <?php | |
219 | + //Partie admin | |
220 | + if(in_array($role, ['Administration', 'Administration Plus'])) { | |
221 | + echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; | |
222 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; | |
223 | + echo '<span style="text-decoration: underline;">Informations administratives</span>'; | |
224 | + echo '</h3>'; | |
225 | + echo '<div id="informations_admin" style="margin-bottom: 20px;">'; | |
226 | + echo '<table>'; | |
227 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
228 | + | |
229 | + echo '<tr><td><strong>'.__('CentreFinancier/EOTP').' </strong></td><td>'.h($materiel->eotp).'</td></tr>'; | |
230 | + echo '<tr><td><strong>'.__('N° commande').' </strong></td><td>'.h($materiel->numero_commande).'</td></tr>'; | |
231 | + echo '<tr><td><strong>'.__('Code comptable').' </strong></td><td>'.h($materiel->code_comptable).'</td></tr>'; | |
232 | + echo '<tr><td><strong>'.__('N° de série').' </strong></td><td>'.h($materiel->numero_serie).'</td></tr>'; | |
233 | + echo '<tr><td><strong>'.__('N. Inventaire Organisme').' </strong></td><td>'.h($materiel->numero_inventaire_organisme).'</td></tr>'; | |
234 | + echo '<tr><td><strong>'.__('N. inventaire (ancien)').' </strong></td><td>'.h($materiel->numero_inventaire_old).'</td></tr>'; | |
235 | + | |
236 | + echo '</table>'; | |
237 | + echo '</div>'; | |
238 | + | |
239 | + } | |
240 | + | |
241 | + | |
242 | + ?> | |
228 | 243 | |
229 | 244 | |
230 | 245 | <h3 id="t_suivis" style="cursor: pointer;"> | ... | ... |
src/Template/Pages/tools.ctp
... | ... | @@ -5,14 +5,17 @@ |
5 | 5 | <tr><th></th></tr> |
6 | 6 | <?php |
7 | 7 | if($role == 'Super Administrateur'): |
8 | - echo '<tr><td>'; | |
9 | - echo $this->Html->link('Configuration générale de l\'application', ['controller' => 'configurations', 'action' => 'view', 1]); | |
10 | - echo '</td></tr>'; | |
8 | + echo '<tr><td>'; | |
9 | + echo $this->Html->link('Configuration générale de l\'application', ['controller' => 'configurations', 'action' => 'view', 1]); | |
10 | + echo '</td></tr>'; | |
11 | 11 | endif; |
12 | 12 | |
13 | - echo '<tr><td>'; | |
14 | - echo $this->Html->link('Gérer le contenu variable de l\'application', ['controller' => 'pages', 'action' => 'tools_sm']); | |
15 | - echo '</td></tr>'; | |
13 | + if(in_array($role, ['Administration Plus', 'Super Administrateur'])) { | |
14 | + echo '<tr><td>'; | |
15 | + echo $this->Html->link('Gérer le contenu variable de l\'application', ['controller' => 'pages', 'action' => 'tools_sm']); | |
16 | + echo '</td></tr>'; | |
17 | + } | |
18 | + | |
16 | 19 | |
17 | 20 | echo '<tr><td>'; |
18 | 21 | echo $this->Html->link('Gérer les utilisateurs privilégiés', ['controller' => 'users', 'sort' => 'nom']); | ... | ... |
tests/TestCase/Controller/MaterielsControllerTest.php
... | ... | @@ -598,12 +598,12 @@ class MaterielsControllerTest extends IntegrationTestCase |
598 | 598 | * @return void |
599 | 599 | */ |
600 | 600 | public function testUpdateStatutToBeArchived() { |
601 | - $this->authSuperAdmin(); | |
601 | + $this->authAdmin(); | |
602 | 602 | |
603 | 603 | $this->post('/materiels/status-archived/13'); |
604 | 604 | $this->get('/materiels/view/13'); |
605 | 605 | |
606 | - $this->assertResponseContains('ARCHIVED', "L'archivation du materiel ne se fait pas correctement."); | |
606 | + $this->assertResponseNotContains('TOBEARCHIVED', "L'archivation du materiel ne se fait pas correctement."); | |
607 | 607 | } |
608 | 608 | |
609 | 609 | ... | ... |
webroot/js/script.js
... | ... | @@ -58,6 +58,10 @@ $(document).ready(function() { |
58 | 58 | $('#informations').toggle('fast'); |
59 | 59 | toogleChevron('#i_informations'); |
60 | 60 | }); |
61 | + $('#t_informations_admin').click(function() { | |
62 | + $('#informations_admin').toggle('fast'); | |
63 | + toogleChevron('#i_informations_admin'); | |
64 | + }); | |
61 | 65 | $('#t_suivis').click(function() { |
62 | 66 | $('#suivis').toggle('fast'); |
63 | 67 | toogleChevron('#i_suivis'); | ... | ... |