Commit aca4ed9be4febe1876a03ce0c08c2de0920dda27
1 parent
8eb47d08
Exists in
master
and in
3 other branches
Version: 2.5.4.0
!!! Se placer dans database/update et exécuter le script ./db-update-2016-06-30.sh !!! statut suivi + modif icone + liste - cacher n/a + divers ajustements + envoi mails + bugfixes Demande terminé : https://projects.irap.omp.eu/issues/3759 https://projects.irap.omp.eu/issues/3923 https://projects.irap.omp.eu/issues/3922 https://projects.irap.omp.eu/issues/3917 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
Showing
23 changed files
with
214 additions
and
34 deletions
Show diff stats
README-LABINVENT.md
@@ -50,10 +50,17 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -50,10 +50,17 @@ Logiciel testé et validé sur les configurations suivantes : | ||
50 | 50 | ||
51 | VERSION ACTUELLE | 51 | VERSION ACTUELLE |
52 | 52 | ||
53 | -Date: 29/06/2016 | ||
54 | -Version: 2.5.3.1 | 53 | +Date: 30/06/2016 |
54 | +Version: 2.5.4.0 | ||
55 | 55 | ||
56 | -bugfixes | 56 | +!!! Se placer dans database/update et exécuter le script ./db-update-2016-06-30.sh !!! |
57 | + | ||
58 | +statut suivi + modif icone + liste - cacher n/a + divers ajustements + envoi mails + bugfixes | ||
59 | + | ||
60 | +Demande terminé : https://projects.irap.omp.eu/issues/3759 | ||
61 | + https://projects.irap.omp.eu/issues/3923 | ||
62 | + https://projects.irap.omp.eu/issues/3922 | ||
63 | + https://projects.irap.omp.eu/issues/3917 | ||
57 | 64 | ||
58 | Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 | 65 | Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 |
59 | 66 | ||
@@ -92,6 +99,8 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c | @@ -92,6 +99,8 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c | ||
92 | 99 | ||
93 | MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull) | 100 | MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull) |
94 | 101 | ||
102 | +30/06/16 (v2.5.4.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-30.sh | ||
103 | + | ||
95 | 28/06/16 (v2.5.1.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-28.sh | 104 | 28/06/16 (v2.5.1.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-28.sh |
96 | 105 | ||
97 | 27/06/16 (v2.5.0.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-27.sh | 106 | 27/06/16 (v2.5.0.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-27.sh |
database/labinvent_2.1_12-05-16.sql
@@ -255,6 +255,7 @@ CREATE TABLE IF NOT EXISTS `suivis` ( | @@ -255,6 +255,7 @@ CREATE TABLE IF NOT EXISTS `suivis` ( | ||
255 | `panne_resolu` tinyint(1) DEFAULT 1, | 255 | `panne_resolu` tinyint(1) DEFAULT 1, |
256 | `groupes_thematique_id` int(11) DEFAULT NULL, | 256 | `groupes_thematique_id` int(11) DEFAULT NULL, |
257 | `groupes_metier_id` int(11) DEFAULT NULL, | 257 | `groupes_metier_id` int(11) DEFAULT NULL, |
258 | + `statut` varchar(30) DEFAULT 'En cours', | ||
258 | `nom_createur` varchar(45) DEFAULT NULL COMMENT 'nom du createur de la fiche', | 259 | `nom_createur` varchar(45) DEFAULT NULL COMMENT 'nom du createur de la fiche', |
259 | `nom_modificateur` varchar(45) DEFAULT NULL COMMENT 'nom du modificateur de la fiche', | 260 | `nom_modificateur` varchar(45) DEFAULT NULL COMMENT 'nom du modificateur de la fiche', |
260 | `created` datetime DEFAULT NULL COMMENT 'date et heure de creation de la fiche', | 261 | `created` datetime DEFAULT NULL COMMENT 'date et heure de creation de la fiche', |
@@ -0,0 +1,34 @@ | @@ -0,0 +1,34 @@ | ||
1 | +#!/bin/bash | ||
2 | + | ||
3 | +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente | ||
4 | +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur | ||
5 | +# Pour cela, il suffit d'executer ces 2 lignes : | ||
6 | +# cp ce_script.sh ce_script_macosx.sh | ||
7 | +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh | ||
8 | + | ||
9 | +if [ ! -f ../../config/app.php ] ; then | ||
10 | +echo "Vous devez executer ce script depuis le dossier database/update/" | ||
11 | +exit 1 | ||
12 | +fi | ||
13 | + | ||
14 | + | ||
15 | +# Get login, pass, dbname, and hostname | ||
16 | +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) | ||
17 | +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) | ||
18 | +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) | ||
19 | +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) | ||
20 | + | ||
21 | + | ||
22 | +cp -p ./script_sql/db-update-2016-06-30.sql ./script_sql/db-update-2016-06-30-build.sql | ||
23 | + | ||
24 | +# Execute sql update script | ||
25 | +sed -e "s/database/$database/" -i ./script_sql/db-update-2016-06-30-build.sql | ||
26 | +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2016-06-30-build.sql | ||
27 | + | ||
28 | +# Delete cakephp cache | ||
29 | +sudo rm ../../tmp/cache/models/* | ||
30 | +sudo rm ../../tmp/cache/persistent/* | ||
31 | + | ||
32 | +sudo chmod -R 777 ../../tmp | ||
33 | +sudo chmod -R 777 ../../vendor | ||
34 | +sudo chmod -R 777 ../../webroot |
src/Controller/AppController.php
@@ -191,6 +191,45 @@ class AppController extends Controller | @@ -191,6 +191,45 @@ class AppController extends Controller | ||
191 | } | 191 | } |
192 | 192 | ||
193 | /** | 193 | /** |
194 | + * @param string $subject | ||
195 | + * @param string $message | ||
196 | + * @param string[] $to | ||
197 | + */ | ||
198 | + public function sendEmailTo($subject, $message, $to = null) { | ||
199 | + | ||
200 | + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | ||
201 | + | ||
202 | + if ($to != null && !$configuration->test) { | ||
203 | + | ||
204 | + for($i = 0; $i < sizeof($to); $i++) { | ||
205 | + | ||
206 | + | ||
207 | + if (filter_var($to[$i], FILTER_VALIDATE_EMAIL)) { | ||
208 | + $email = new Email(); | ||
209 | + | ||
210 | + $etiquetteFrom = explode("@", $configuration->sender_mail); | ||
211 | + | ||
212 | + if($configuration->envoi_mail_management_dev) { | ||
213 | + $email->transport('dev') | ||
214 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
215 | + ->to($to[$i]) | ||
216 | + ->subject("[LabInvent] ".$subject) | ||
217 | + ->send($message); | ||
218 | + } else { | ||
219 | + $email->transport('default') | ||
220 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
221 | + ->to($to[$i]) | ||
222 | + ->subject("[LabInvent] ".$subject) | ||
223 | + ->send($message); | ||
224 | + } | ||
225 | + } | ||
226 | + | ||
227 | + } | ||
228 | + } | ||
229 | + | ||
230 | + } | ||
231 | + | ||
232 | + /** | ||
194 | * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié | 233 | * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié |
195 | * (cf howto dans http://book.cakephp.org/2.0/fr/core-utility-libraries/email.html) | 234 | * (cf howto dans http://book.cakephp.org/2.0/fr/core-utility-libraries/email.html) |
196 | * @param string $subject | 235 | * @param string $subject |
@@ -317,21 +356,23 @@ class AppController extends Controller | @@ -317,21 +356,23 @@ class AppController extends Controller | ||
317 | if($role == null) $role = 'Utilisateur'; | 356 | if($role == null) $role = 'Utilisateur'; |
318 | 357 | ||
319 | $subject = 'Ajout d\'un matériel'; | 358 | $subject = 'Ajout d\'un matériel'; |
320 | - $message = $createurName.' (email = '.$createurEmail.', role = '.$role.') a ajouté le matériel "'.$materiel->designation.'" et vous a nommé propriétaire de ce matériel.'; | 359 | + $message = $createurName.' (email = '.$createurEmail.', role = '.$role.') a ajouté le matériel "'.$materiel->designation.'" ('.$materiel->numero_laboratoire.') et vous a nommé propriétaire de ce matériel.'; |
321 | 360 | ||
322 | if ($toEmail != null && !$configuration->test) { | 361 | if ($toEmail != null && !$configuration->test) { |
323 | if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) { | 362 | if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) { |
324 | $email = new Email(); | 363 | $email = new Email(); |
325 | - | 364 | + |
365 | + $etiquetteFrom = explode("@", $configuration->sender_mail); | ||
366 | + | ||
326 | if($configuration->envoi_mail_management_dev) { | 367 | if($configuration->envoi_mail_management_dev) { |
327 | $email->transport('dev') | 368 | $email->transport('dev') |
328 | - ->from(["labinvent2@".$configuration->from_mail => "Labinvent2"]) | 369 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) |
329 | ->to($toEmail) | 370 | ->to($toEmail) |
330 | ->subject("[LabInvent] ".$subject) | 371 | ->subject("[LabInvent] ".$subject) |
331 | ->send($message); | 372 | ->send($message); |
332 | } else { | 373 | } else { |
333 | $email->transport('default') | 374 | $email->transport('default') |
334 | - ->from(["labinvent2@".$configuration->from_mail => "Labinvent2"]) | 375 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) |
335 | ->to($toEmail) | 376 | ->to($toEmail) |
336 | ->subject("[LabInvent] ".$subject) | 377 | ->subject("[LabInvent] ".$subject) |
337 | ->send($message); | 378 | ->send($message); |
src/Controller/DocumentsController.php
@@ -184,10 +184,13 @@ class DocumentsController extends AppController | @@ -184,10 +184,13 @@ class DocumentsController extends AppController | ||
184 | 184 | ||
185 | if(isset($this->passedArgs[2]) && $this->passedArgs[2] == 'photo') { | 185 | if(isset($this->passedArgs[2]) && $this->passedArgs[2] == 'photo') { |
186 | $this->set('photo', 1); | 186 | $this->set('photo', 1); |
187 | - } | ||
188 | - | 187 | + $typesD = $this->Documents->TypeDocuments->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->where(['nom =' => 'Photo']); |
188 | + $idType = $this->Documents->TypeDocuments->find()->where(['nom =' => 'Photo'])->first()['id']; | ||
189 | + $this->set('idType', $idType); | ||
190 | + } else { | ||
191 | + $typesD = $this->Documents->TypeDocuments->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'TypeDocuments.nom']); | ||
192 | + } | ||
189 | 193 | ||
190 | - $typesD = $this->Documents->TypeDocuments->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'TypeDocuments.nom']); | ||
191 | 194 | ||
192 | $this->set(compact('document', 'typesD')); | 195 | $this->set(compact('document', 'typesD')); |
193 | $this->set('_serialize', ['document']); | 196 | $this->set('_serialize', ['document']); |
src/Controller/MaterielsController.php
@@ -252,10 +252,30 @@ class MaterielsController extends AppController | @@ -252,10 +252,30 @@ class MaterielsController extends AppController | ||
252 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); | 252 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); |
253 | if ($this->Materiels->save($materiel)) { | 253 | if ($this->Materiels->save($materiel)) { |
254 | $this->Flash->success(__('Le matériel a bien été ajouté.')); | 254 | $this->Flash->success(__('Le matériel a bien été ajouté.')); |
255 | + | ||
255 | $this->sendEmailToManagement($materiel->id); | 256 | $this->sendEmailToManagement($materiel->id); |
257 | + | ||
256 | if($materiel->nom_createur != $materiel->nom_responsable) { | 258 | if($materiel->nom_createur != $materiel->nom_responsable) { |
257 | $this->sendEmailToCreate($materiel->id); | 259 | $this->sendEmailToCreate($materiel->id); |
258 | } | 260 | } |
261 | + | ||
262 | + $message = $materiel->get('nom_createur').' a ajouté le matériel '.$materiel->get('designation').' ('.$materiel->numero_laboratoire.')'; | ||
263 | + | ||
264 | + $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->get('groupes_thematique_id')])->toArray(); | ||
265 | + $mails = []; | ||
266 | + for($i = 0; $i < sizeof($mailsResp); $i++) { | ||
267 | + $mails[$i] = $mailsResp[$i]['email']; | ||
268 | + } | ||
269 | + $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | ||
270 | + | ||
271 | + $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray(); | ||
272 | + $mails = []; | ||
273 | + for($i = 0; $i < sizeof($mailsResp); $i++) { | ||
274 | + $mails[$i] = $mailsResp[$i]['email']; | ||
275 | + } | ||
276 | + $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | ||
277 | + | ||
278 | + | ||
259 | return $this->redirect(['action' => 'view', $materiel->id]); | 279 | return $this->redirect(['action' => 'view', $materiel->id]); |
260 | } else { | 280 | } else { |
261 | $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); | 281 | $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); |
@@ -307,6 +327,10 @@ class MaterielsController extends AppController | @@ -307,6 +327,10 @@ class MaterielsController extends AppController | ||
307 | if ($this->Materiels->save($materiel)) { | 327 | if ($this->Materiels->save($materiel)) { |
308 | $this->Flash->success(__('Le matériel a bien été édité.')); | 328 | $this->Flash->success(__('Le matériel a bien été édité.')); |
309 | $this->sendEmailToManagement($id); | 329 | $this->sendEmailToManagement($id); |
330 | + if($materiel->nom_modificateur != $materiel->nom_responsable) { | ||
331 | + $message = $materiel->get('nom_modificateur').' a édité le matériel '.$materiel->get('designation').' ('.$materiel->numero_laboratoire.')'; | ||
332 | + $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]); | ||
333 | + } | ||
310 | return $this->redirect(['action' => 'view', $id]); | 334 | return $this->redirect(['action' => 'view', $id]); |
311 | } else { | 335 | } else { |
312 | $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); | 336 | $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); |
@@ -448,9 +472,11 @@ class MaterielsController extends AppController | @@ -448,9 +472,11 @@ class MaterielsController extends AppController | ||
448 | 472 | ||
449 | if($newStatus == 'VALIDATED') { | 473 | if($newStatus == 'VALIDATED') { |
450 | if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { | 474 | if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { |
451 | - $this->Flash->success('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); | 475 | + $this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); |
452 | return $this->redirect(['action' => 'edit', $id]); | 476 | return $this->redirect(['action' => 'edit', $id]); |
453 | } | 477 | } |
478 | + $message = 'Le matériel '.$materiel->get('designation').' ('.$materiel->numero_laboratoire.') a été validé.'; | ||
479 | + $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]); | ||
454 | } | 480 | } |
455 | 481 | ||
456 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { | 482 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { |
src/Controller/SuivisController.php
@@ -235,6 +235,7 @@ class SuivisController extends AppController | @@ -235,6 +235,7 @@ class SuivisController extends AppController | ||
235 | $periode_interventionRequest, | 235 | $periode_interventionRequest, |
236 | $this->getConditionForFieldNumber('type_suivi_id'), | 236 | $this->getConditionForFieldNumber('type_suivi_id'), |
237 | $this->getConditionForField('organisme'), | 237 | $this->getConditionForField('organisme'), |
238 | + $this->getConditionForField('statut'), | ||
238 | $this->getConditionForFieldNumber('groupes_metier_id'), | 239 | $this->getConditionForFieldNumber('groupes_metier_id'), |
239 | $this->getConditionForFieldNumber('groupes_thematique_id'), | 240 | $this->getConditionForFieldNumber('groupes_thematique_id'), |
240 | ]; | 241 | ]; |
src/Model/Entity/Suivi.php
@@ -23,6 +23,7 @@ use Cake\ORM\Entity; | @@ -23,6 +23,7 @@ use Cake\ORM\Entity; | ||
23 | * @property string $commentaire | 23 | * @property string $commentaire |
24 | * @property string $nom_createur | 24 | * @property string $nom_createur |
25 | * @property string $nom_modificateur | 25 | * @property string $nom_modificateur |
26 | + * @property string $statut | ||
26 | * @property bool panne_resolu | 27 | * @property bool panne_resolu |
27 | * @property \Cake\I18n\Time $created | 28 | * @property \Cake\I18n\Time $created |
28 | * @property \Cake\I18n\Time $modified | 29 | * @property \Cake\I18n\Time $modified |
src/Template/Documents/add.ctp
@@ -16,7 +16,14 @@ | @@ -16,7 +16,14 @@ | ||
16 | } | 16 | } |
17 | 17 | ||
18 | echo $this->Form->input('nom'); | 18 | echo $this->Form->input('nom'); |
19 | - echo $this->Form->input('type_document_id', ['label' => 'Type', 'options' => $typesD, 'default' => 1]); | 19 | + |
20 | + if(isset($photo)) { | ||
21 | + echo $this->Form->hidden('type_document_id', ['label' => 'Type', 'options' => $typesD, 'default' => $idType]); | ||
22 | + } | ||
23 | + else { | ||
24 | + echo $this->Form->input('type_document_id', ['label' => 'Type', 'options' => $typesD, 'default' => 1]); | ||
25 | + } | ||
26 | + | ||
20 | echo $this->Form->input('description'); | 27 | echo $this->Form->input('description'); |
21 | echo $this->Form->input('chemin_file', ['label' => 'Fichier ('.substr($configuration->taille_max_doc/(1024*1024), 0, 4).' Mo max)', 'type' => 'file']); | 28 | echo $this->Form->input('chemin_file', ['label' => 'Fichier ('.substr($configuration->taille_max_doc/(1024*1024), 0, 4).' Mo max)', 'type' => 'file']); |
22 | 29 |
src/Template/Documents/edit.ctp
@@ -16,7 +16,14 @@ | @@ -16,7 +16,14 @@ | ||
16 | } | 16 | } |
17 | 17 | ||
18 | echo $this->Form->input('nom'); | 18 | echo $this->Form->input('nom'); |
19 | - echo $this->Form->input('type_document_id', ['label' => 'Type', 'options' => $typesD, 'default' => 1]); | 19 | + |
20 | + if(isset($photo)) { | ||
21 | + echo $this->Form->hidden('type_document_id', ['label' => 'Type', 'options' => $typesD]); | ||
22 | + } | ||
23 | + else { | ||
24 | + echo $this->Form->input('type_document_id', ['label' => 'Type', 'options' => $typesD]); | ||
25 | + } | ||
26 | + | ||
20 | echo $this->Form->input('description'); | 27 | echo $this->Form->input('description'); |
21 | 28 | ||
22 | echo $this->Form->hidden('chemin_file', ['label' => 'Fichier ('.substr($configuration->taille_max_doc/(1024*1024), 0, 4).' Mo max)', 'type' => 'file']); | 29 | echo $this->Form->hidden('chemin_file', ['label' => 'Fichier ('.substr($configuration->taille_max_doc/(1024*1024), 0, 4).' Mo max)', 'type' => 'file']); |
src/Template/Documents/index.ctp
@@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
9 | <th><?= $this->Paginator->sort('suivi_id', 'Suivi') ?></th> | 9 | <th><?= $this->Paginator->sort('suivi_id', 'Suivi') ?></th> |
10 | <th><?= $this->Paginator->sort('type_document_id', 'Type') ?></th> | 10 | <th><?= $this->Paginator->sort('type_document_id', 'Type') ?></th> |
11 | <th><?= $this->Paginator->sort('type_doc', 'Extension fichier') ?></th> | 11 | <th><?= $this->Paginator->sort('type_doc', 'Extension fichier') ?></th> |
12 | - <th><?= $this->Paginator->sort('photo', 'Photo') ?></th> | 12 | + <th><?= $this->Paginator->sort('photo', 'Miniature') ?></th> |
13 | <th class="actions"><?= __('') ?></th> | 13 | <th class="actions"><?= __('') ?></th> |
14 | </tr> | 14 | </tr> |
15 | </thead> | 15 | </thead> |
@@ -40,12 +40,12 @@ | @@ -40,12 +40,12 @@ | ||
40 | <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $document->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> | 40 | <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $document->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> |
41 | <?php | 41 | <?php |
42 | if($document->photo) { | 42 | if($document->photo) { |
43 | - echo $this->Form->postLink(__('<i class="icon-download"></i>'), '/webroot/img/photos/'.$document->id.'.'.$document->type_doc, ['title' => 'Télécharger', 'style' => 'margin: 0 2px', 'escape' => false ]); | 43 | + echo $this->Form->postLink(__('<i class="icon-download-alt"></i>'), '/webroot/img/photos/'.$document->id.'.'.$document->type_doc, ['title' => 'Télécharger', 'style' => 'margin: 0 2px', 'escape' => false ]); |
44 | }else { | 44 | }else { |
45 | - echo $this->Form->postLink(__('<i class="icon-download"></i>'), '/webroot/files/'.$document->id.'.'.$document->type_doc, ['title' => 'Télécharger', 'style' => 'margin: 0 2px', 'escape' => false ]); | 45 | + echo $this->Form->postLink(__('<i class="icon-download-alt"></i>'), '/webroot/files/'.$document->id.'.'.$document->type_doc, ['title' => 'Télécharger', 'style' => 'margin: 0 2px', 'escape' => false ]); |
46 | } | 46 | } |
47 | ?> | 47 | ?> |
48 | - <?= $this->Html->link(__('<i class="icon-edit"></i>'), ['action' => 'edit', $document->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false]) ?> | 48 | + <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $document->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false]) ?> |
49 | 49 | ||
50 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $document->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $document->id)]) ?> | 50 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $document->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $document->id)]) ?> |
51 | </td> | 51 | </td> |
src/Template/Documents/view.ctp
@@ -2,7 +2,16 @@ | @@ -2,7 +2,16 @@ | ||
2 | 2 | ||
3 | <div class="documents view"> | 3 | <div class="documents view"> |
4 | <h2>Détail document</h2> | 4 | <h2>Détail document</h2> |
5 | - | 5 | + <?php |
6 | + if($document->photo) { | ||
7 | + echo '<div style="text-align: center;">'; | ||
8 | + echo $this->Html->image ( 'photos/' . $document->id.'.'.$document->type_doc, [ | ||
9 | + 'alt' => 'Photo', | ||
10 | + 'style' => 'max-width: 300px; text-align: center;' | ||
11 | + ]); | ||
12 | + echo '</div>'; | ||
13 | + } | ||
14 | + ?> | ||
6 | <table style="margin-bottom: 30px;"> | 15 | <table style="margin-bottom: 30px;"> |
7 | <tr><th style="width: 250px;"></th><th></th></tr> | 16 | <tr><th style="width: 250px;"></th><th></th></tr> |
8 | 17 | ||
@@ -18,6 +27,13 @@ | @@ -18,6 +27,13 @@ | ||
18 | $displayElement(__('Nom'), h($document->nom)); | 27 | $displayElement(__('Nom'), h($document->nom)); |
19 | $displayElement(__('Type'), $document->has('type_document') ? h($document->type_document->nom) : ''); | 28 | $displayElement(__('Type'), $document->has('type_document') ? h($document->type_document->nom) : ''); |
20 | 29 | ||
30 | + if($document->photo) { | ||
31 | + $p = 'Oui'; | ||
32 | + } else { | ||
33 | + $p = 'Non'; | ||
34 | + } | ||
35 | + $displayElement(__('Miniature'), $p); | ||
36 | + | ||
21 | echo '<tr><td><strong>'.__('Description').' </strong></td><td>'.nl2br($document->description).'</td></tr>'; | 37 | echo '<tr><td><strong>'.__('Description').' </strong></td><td>'.nl2br($document->description).'</td></tr>'; |
22 | 38 | ||
23 | $displayElement(__('Extension fichier'), h($document->type_doc)); | 39 | $displayElement(__('Extension fichier'), h($document->type_doc)); |
@@ -29,8 +45,6 @@ | @@ -29,8 +45,6 @@ | ||
29 | echo '<tr><td><strong>Fichier</strong></td><td><a href="'.$this->request->webroot.'webroot/files/'.$document->id.'.'.$document->type_doc.'">Télécharger fichier</a></td></tr>'; | 45 | echo '<tr><td><strong>Fichier</strong></td><td><a href="'.$this->request->webroot.'webroot/files/'.$document->id.'.'.$document->type_doc.'">Télécharger fichier</a></td></tr>'; |
30 | } | 46 | } |
31 | 47 | ||
32 | - | ||
33 | - | ||
34 | 48 | ||
35 | 49 | ||
36 | ?> | 50 | ?> |
src/Template/GroupesMetiers/index.ctp
@@ -10,7 +10,9 @@ | @@ -10,7 +10,9 @@ | ||
10 | </tr> | 10 | </tr> |
11 | </thead> | 11 | </thead> |
12 | <tbody> | 12 | <tbody> |
13 | - <?php foreach ($groupesMetiers as $groupesMetier): ?> | 13 | + <?php foreach ($groupesMetiers as $groupesMetier): |
14 | + if($groupesMetier->nom != 'N/A') { | ||
15 | + ?> | ||
14 | <tr> | 16 | <tr> |
15 | <td class="smallText"><?= $this->Html->link($groupesMetier->nom, ['action' => 'view', $groupesMetier->id]) ?></td> | 17 | <td class="smallText"><?= $this->Html->link($groupesMetier->nom, ['action' => 'view', $groupesMetier->id]) ?></td> |
16 | <td class="smallText"><?= h($groupesMetier->description) ?></td> | 18 | <td class="smallText"><?= h($groupesMetier->description) ?></td> |
@@ -28,7 +30,9 @@ | @@ -28,7 +30,9 @@ | ||
28 | </td> | 30 | </td> |
29 | 31 | ||
30 | </tr> | 32 | </tr> |
31 | - <?php endforeach; ?> | 33 | + <?php |
34 | + } | ||
35 | + endforeach; ?> | ||
32 | </tbody> | 36 | </tbody> |
33 | </table> | 37 | </table> |
34 | 38 |
src/Template/GroupesThematiques/index.ctp
@@ -10,7 +10,8 @@ | @@ -10,7 +10,8 @@ | ||
10 | </tr> | 10 | </tr> |
11 | </thead> | 11 | </thead> |
12 | <tbody> | 12 | <tbody> |
13 | - <?php foreach ($groupesThematiques as $groupesThematique): ?> | 13 | + <?php foreach ($groupesThematiques as $groupesThematique): |
14 | + if($groupesThematique->nom != 'N/A') {?> | ||
14 | <tr> | 15 | <tr> |
15 | <td class="smallText"><?= $this->Html->link($groupesThematique->nom, ['action' => 'view', $groupesThematique->id]) ?></td> | 16 | <td class="smallText"><?= $this->Html->link($groupesThematique->nom, ['action' => 'view', $groupesThematique->id]) ?></td> |
16 | <td class="smallText"><?= h($groupesThematique->description) ?></td> | 17 | <td class="smallText"><?= h($groupesThematique->description) ?></td> |
@@ -28,7 +29,9 @@ | @@ -28,7 +29,9 @@ | ||
28 | </td> | 29 | </td> |
29 | 30 | ||
30 | </tr> | 31 | </tr> |
31 | - <?php endforeach; ?> | 32 | + <?php |
33 | + } | ||
34 | + endforeach; ?> | ||
32 | </tbody> | 35 | </tbody> |
33 | </table> | 36 | </table> |
34 | 37 |
src/Template/Layout/default.ctp
@@ -94,7 +94,7 @@ $cakeDescription = 'Labinvent 2'; | @@ -94,7 +94,7 @@ $cakeDescription = 'Labinvent 2'; | ||
94 | </i></td> | 94 | </i></td> |
95 | <td id="version"> | 95 | <td id="version"> |
96 | <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> | 96 | <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> |
97 | - <font color="black">VERSION 2.5.3.1 (29/06/2016)</font> | 97 | + <font color="black">VERSION 2.5.4.0 (30/06/2016)</font> |
98 | </td> | 98 | </td> |
99 | </tr> | 99 | </tr> |
100 | </table> | 100 | </table> |
src/Template/Materiels/view.ctp
@@ -402,18 +402,22 @@ if (h ( $materiel->status ) == 'ARCHIVED') | @@ -402,18 +402,22 @@ if (h ( $materiel->status ) == 'ARCHIVED') | ||
402 | <?php if (!empty($materiel->suivis)) { ?> | 402 | <?php if (!empty($materiel->suivis)) { ?> |
403 | <table> | 403 | <table> |
404 | <tr> | 404 | <tr> |
405 | + <th><?= __('N°') ?></th> | ||
405 | <th><?= __('Prestataire') ?></th> | 406 | <th><?= __('Prestataire') ?></th> |
406 | <th><?= __('Date du contrôle') ?></th> | 407 | <th><?= __('Date du contrôle') ?></th> |
407 | <th><?= __('Date prochain contrôle') ?></th> | 408 | <th><?= __('Date prochain contrôle') ?></th> |
408 | <th><?= __('Type d\'intervention') ?></th> | 409 | <th><?= __('Type d\'intervention') ?></th> |
410 | + <th><?= __('Statut') ?></th> | ||
409 | <th style="width: 50px;"><?= __('Détail') ?></th> | 411 | <th style="width: 50px;"><?= __('Détail') ?></th> |
410 | </tr> | 412 | </tr> |
411 | <?php foreach ($materiel->suivis as $suivis): ?> | 413 | <?php foreach ($materiel->suivis as $suivis): ?> |
412 | <tr> | 414 | <tr> |
415 | + <td><?= $this->Html->link('Suivi '.$suivis->id, ['controller' => 'suivis', 'action' => 'view', $suivis->id]) ?></td> | ||
413 | <td><?= h($suivis->organisme) ?></td> | 416 | <td><?= h($suivis->organisme) ?></td> |
414 | <td><?= h($suivis->date_controle) ?></td> | 417 | <td><?= h($suivis->date_controle) ?></td> |
415 | <td><?= h($suivis->date_prochain_controle) ?></td> | 418 | <td><?= h($suivis->date_prochain_controle) ?></td> |
416 | <td><?= $typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom']; ?></td> | 419 | <td><?= $typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom']; ?></td> |
420 | + <td><?= h($suivis->statut) ?></td> | ||
417 | 421 | ||
418 | <td class="actions"> | 422 | <td class="actions"> |
419 | <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Suivis', 'action' => 'view', $suivis->id], ['escape' => false, 'style' => 'margin:0'])?> | 423 | <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Suivis', 'action' => 'view', $suivis->id], ['escape' => false, 'style' => 'margin:0'])?> |
@@ -435,6 +439,7 @@ if (h ( $materiel->status ) == 'ARCHIVED') | @@ -435,6 +439,7 @@ if (h ( $materiel->status ) == 'ARCHIVED') | ||
435 | <?php if (!empty($materiel->emprunts)) { ?> | 439 | <?php if (!empty($materiel->emprunts)) { ?> |
436 | <table> | 440 | <table> |
437 | <tr> | 441 | <tr> |
442 | + <th><?= __('N°') ?></th> | ||
438 | <th><?= __('Emprunteur') ?></th> | 443 | <th><?= __('Emprunteur') ?></th> |
439 | <th><?= __('Type d\'Emprunt') ?></th> | 444 | <th><?= __('Type d\'Emprunt') ?></th> |
440 | <th><?= __('Où') ?></th> | 445 | <th><?= __('Où') ?></th> |
@@ -456,6 +461,7 @@ foreach ( $materiel->emprunts as $emprunts ) : | @@ -456,6 +461,7 @@ foreach ( $materiel->emprunts as $emprunts ) : | ||
456 | } | 461 | } |
457 | ?> | 462 | ?> |
458 | <tr> | 463 | <tr> |
464 | + <td><?= $this->Html->link('Emprunt '.$emprunts->id, ['controller' => 'emprunts', 'action' => 'view', $emprunts->id]) ?></td> | ||
459 | <td><?= h($emprunts->nom_emprunteur) ?></td> | 465 | <td><?= h($emprunts->nom_emprunteur) ?></td> |
460 | <td><?= h($type) ?></td> | 466 | <td><?= h($type) ?></td> |
461 | <td><?= h($lieu) ?></td> | 467 | <td><?= h($lieu) ?></td> |
@@ -488,7 +494,7 @@ foreach ( $materiel->emprunts as $emprunts ) : | @@ -488,7 +494,7 @@ foreach ( $materiel->emprunts as $emprunts ) : | ||
488 | <tr> | 494 | <tr> |
489 | <th><?= __('Nom') ?></th> | 495 | <th><?= __('Nom') ?></th> |
490 | <th><?= __('Type') ?></th> | 496 | <th><?= __('Type') ?></th> |
491 | - <th><?= __('Photo') ?></th> | 497 | + <th><?= __('Miniature') ?></th> |
492 | <th style="width: 50px;"><?= __('Détail') ?></th> | 498 | <th style="width: 50px;"><?= __('Détail') ?></th> |
493 | <th style="width: 50px;"><?= __('Télécharger') ?></th> | 499 | <th style="width: 50px;"><?= __('Télécharger') ?></th> |
494 | <?php | 500 | <?php |
@@ -512,7 +518,8 @@ foreach ( $materiel->documents as $documents ) : | @@ -512,7 +518,8 @@ foreach ( $materiel->documents as $documents ) : | ||
512 | ] )->first () ['nom']; | 518 | ] )->first () ['nom']; |
513 | ?> | 519 | ?> |
514 | <tr> | 520 | <tr> |
515 | - <td><?= h($documents->nom) ?></td> | 521 | + |
522 | + <td><?= $this->Html->link($documents->nom, ['controller' => 'documents', 'action' => 'view', $documents->id]) ?></td> | ||
516 | <td><?= $type ?></td> | 523 | <td><?= $type ?></td> |
517 | <td><?= $p ?></td> | 524 | <td><?= $p ?></td> |
518 | 525 | ||
@@ -523,13 +530,13 @@ foreach ( $materiel->documents as $documents ) : | @@ -523,13 +530,13 @@ foreach ( $materiel->documents as $documents ) : | ||
523 | <td class="actions"> | 530 | <td class="actions"> |
524 | <?php | 531 | <?php |
525 | if ($documents->photo) { | 532 | if ($documents->photo) { |
526 | - echo $this->Html->link ( __ ( '<i class="icon-download"></i>' ), '/webroot/img/photos/' . $documents->id . '.' . $documents->type_doc, [ | 533 | + echo $this->Html->link ( __ ( '<i class="icon-download-alt"></i>' ), '/webroot/img/photos/' . $documents->id . '.' . $documents->type_doc, [ |
527 | 'title' => 'Télécharger', | 534 | 'title' => 'Télécharger', |
528 | 'style' => 'margin:0', | 535 | 'style' => 'margin:0', |
529 | 'escape' => false | 536 | 'escape' => false |
530 | ] ); | 537 | ] ); |
531 | } else { | 538 | } else { |
532 | - echo $this->Html->link ( __ ( '<i class="icon-download"></i>' ), '/webroot/files/' . $documents->id . '.' . $documents->type_doc, [ | 539 | + echo $this->Html->link ( __ ( '<i class="icon-download-alt"></i>' ), '/webroot/files/' . $documents->id . '.' . $documents->type_doc, [ |
533 | 'title' => 'Télécharger', | 540 | 'title' => 'Télécharger', |
534 | 'style' => 'margin:0', | 541 | 'style' => 'margin:0', |
535 | 'escape' => false | 542 | 'escape' => false |
@@ -541,7 +548,7 @@ foreach ( $materiel->documents as $documents ) : | @@ -541,7 +548,7 @@ foreach ( $materiel->documents as $documents ) : | ||
541 | if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | 548 | if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { |
542 | ?> | 549 | ?> |
543 | <td class="actions"> | 550 | <td class="actions"> |
544 | - <?= $this->Html->link(__('<i class="icon-edit"></i>'), ['controller' => 'Documents', 'action' => 'edit', $documents->id], ['escape' => false, 'style' => 'margin:0'])?> | 551 | + <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Documents', 'action' => 'edit', $documents->id], ['escape' => false, 'style' => 'margin:0'])?> |
545 | </td> | 552 | </td> |
546 | <td class="actions"> | 553 | <td class="actions"> |
547 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id)])?> | 554 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id)])?> |
src/Template/Suivis/edit.ctp
@@ -18,6 +18,10 @@ | @@ -18,6 +18,10 @@ | ||
18 | 'options' => $typeSuivis | 18 | 'options' => $typeSuivis |
19 | ]); | 19 | ]); |
20 | 20 | ||
21 | + echo $this->Form->input ('statut', [ | ||
22 | + 'options' => ['En cours' => 'En cours', 'Terminé' => 'Terminé'], | ||
23 | + ]); | ||
24 | + | ||
21 | echo $this->Form->input('date_controle', [ | 25 | echo $this->Form->input('date_controle', [ |
22 | 'type' => 'text', | 26 | 'type' => 'text', |
23 | 'label' => 'Date intervention', | 27 | 'label' => 'Date intervention', |
src/Template/Suivis/find.ctp
@@ -26,6 +26,12 @@ $r = isset ($_results); | @@ -26,6 +26,12 @@ $r = isset ($_results); | ||
26 | // FORMULAIRE DE RECHERCHE | 26 | // FORMULAIRE DE RECHERCHE |
27 | echo $this->Form->create(); | 27 | echo $this->Form->create(); |
28 | 28 | ||
29 | + echo $this->Form->input ('s_statut', [ | ||
30 | + 'label' => 'Statut', | ||
31 | + 'empty' => 'Tous', | ||
32 | + 'options' => ['En cours' => 'En cours', 'Terminé' => 'Terminé'], | ||
33 | + ]); | ||
34 | + | ||
29 | // Type suivi | 35 | // Type suivi |
30 | echo $this->Form->input ( 's_type_suivi_id', [ | 36 | echo $this->Form->input ( 's_type_suivi_id', [ |
31 | 'label' => 'Type de suivi', | 37 | 'label' => 'Type de suivi', |
@@ -103,6 +109,7 @@ $r = isset ($_results); | @@ -103,6 +109,7 @@ $r = isset ($_results); | ||
103 | <th><?= $this->Paginator->sort('date_controle', 'Date intervention') ?></th> | 109 | <th><?= $this->Paginator->sort('date_controle', 'Date intervention') ?></th> |
104 | <th><?= $this->Paginator->sort('date_prochain_controle', 'Date prochaine intervention') ?></th> | 110 | <th><?= $this->Paginator->sort('date_prochain_controle', 'Date prochaine intervention') ?></th> |
105 | <th><?= $this->Paginator->sort('type_suivi_id', "Type d'intervention") ?></th> | 111 | <th><?= $this->Paginator->sort('type_suivi_id', "Type d'intervention") ?></th> |
112 | + <th><?= $this->Paginator->sort('statut', "Statut") ?></th> | ||
106 | <th style="width: 20px;"></th> | 113 | <th style="width: 20px;"></th> |
107 | <th style="width: 20px;"></th> | 114 | <th style="width: 20px;"></th> |
108 | <th style="width: 20px;"></th> | 115 | <th style="width: 20px;"></th> |
@@ -123,6 +130,7 @@ $r = isset ($_results); | @@ -123,6 +130,7 @@ $r = isset ($_results); | ||
123 | <td class="smallText"><?= h($suivi->date_controle) ?></td> | 130 | <td class="smallText"><?= h($suivi->date_controle) ?></td> |
124 | <td class="smallText"><?= h($suivi->date_prochain_controle) ?></td> | 131 | <td class="smallText"><?= h($suivi->date_prochain_controle) ?></td> |
125 | <td class="smallText"><?= $s_type_suivis->find()->where(['id =' => h($suivi->type_suivi_id)])->first()['nom'] ?></td> | 132 | <td class="smallText"><?= $s_type_suivis->find()->where(['id =' => h($suivi->type_suivi_id)])->first()['nom'] ?></td> |
133 | + <td class="smallText"><?= h($suivi->statut) ?></td> | ||
126 | 134 | ||
127 | <?php | 135 | <?php |
128 | echo '<td class="actions" style="padding: 6px 0;">'; | 136 | echo '<td class="actions" style="padding: 6px 0;">'; |
src/Template/Suivis/index.ctp
@@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
10 | <th><?= $this->Paginator->sort('date_controle', 'Date intervention') ?></th> | 10 | <th><?= $this->Paginator->sort('date_controle', 'Date intervention') ?></th> |
11 | <th><?= $this->Paginator->sort('date_prochain_controle', 'Date prochaine intervention') ?></th> | 11 | <th><?= $this->Paginator->sort('date_prochain_controle', 'Date prochaine intervention') ?></th> |
12 | <th><?= $this->Paginator->sort('type_suivi_id', "Type d'intervention") ?></th> | 12 | <th><?= $this->Paginator->sort('type_suivi_id', "Type d'intervention") ?></th> |
13 | + <th><?= $this->Paginator->sort('statut', "Statut") ?></th> | ||
13 | <th class="actions"><?= __('') ?></th> | 14 | <th class="actions"><?= __('') ?></th> |
14 | </tr> | 15 | </tr> |
15 | </thead> | 16 | </thead> |
@@ -22,6 +23,7 @@ | @@ -22,6 +23,7 @@ | ||
22 | <td class="smallText"><?= h($suivi->date_controle) ?></td> | 23 | <td class="smallText"><?= h($suivi->date_controle) ?></td> |
23 | <td class="smallText"><?= h($suivi->date_prochain_controle) ?></td> | 24 | <td class="smallText"><?= h($suivi->date_prochain_controle) ?></td> |
24 | <td class="smallText"><?= $suivi->has('type_suivi') ? h($suivi->type_suivi->nom) : '' ?></td> | 25 | <td class="smallText"><?= $suivi->has('type_suivi') ? h($suivi->type_suivi->nom) : '' ?></td> |
26 | + <td class="smallText"><?= h($suivi->statut) ?></td> | ||
25 | 27 | ||
26 | <td class="actions" style="padding: 6px 0;"> | 28 | <td class="actions" style="padding: 6px 0;"> |
27 | <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $suivi->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> | 29 | <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $suivi->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> |
src/Template/Suivis/view.ctp
@@ -33,6 +33,7 @@ | @@ -33,6 +33,7 @@ | ||
33 | 33 | ||
34 | $displayElement(__('Materiel'), $suivi->has('materiel') ? $this->Html->link($suivi->materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $suivi->materiel->id]) : ''); | 34 | $displayElement(__('Materiel'), $suivi->has('materiel') ? $this->Html->link($suivi->materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $suivi->materiel->id]) : ''); |
35 | $displayElement(__('Numéro interne (labo)'), $suivi->has('materiel') ? h($suivi->materiel->numero_laboratoire) : ''); | 35 | $displayElement(__('Numéro interne (labo)'), $suivi->has('materiel') ? h($suivi->materiel->numero_laboratoire) : ''); |
36 | + $displayElement(__('Statut'), h($suivi->statut)); | ||
36 | $displayElement(__('Date Intervention'), h($suivi->date_controle)); | 37 | $displayElement(__('Date Intervention'), h($suivi->date_controle)); |
37 | $displayElement(__('Date Prochaine Intervention'), h($suivi->date_prochain_controle)); | 38 | $displayElement(__('Date Prochaine Intervention'), h($suivi->date_prochain_controle)); |
38 | $displayElement(__('Type d\'intervention'), $suivi->has('type_suivi') ? h($suivi->type_suivi->nom) : ''); | 39 | $displayElement(__('Type d\'intervention'), $suivi->has('type_suivi') ? h($suivi->type_suivi->nom) : ''); |
@@ -80,20 +81,20 @@ | @@ -80,20 +81,20 @@ | ||
80 | 81 | ||
81 | ?> | 82 | ?> |
82 | <tr> | 83 | <tr> |
83 | - <td><?= h($documents->nom) ?></td> | 84 | + <td><?= $this->Html->link($documents->nom, ['controller' => 'documents', 'action' => 'view', $documents->id]) ?></td> |
84 | <td><?= $type ?></td> | 85 | <td><?= $type ?></td> |
85 | 86 | ||
86 | <td class="actions"> | 87 | <td class="actions"> |
87 | <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Documents', 'action' => 'view', $documents->id], ['escape' => false, 'style' => 'margin:0']) ?> | 88 | <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Documents', 'action' => 'view', $documents->id], ['escape' => false, 'style' => 'margin:0']) ?> |
88 | </td> | 89 | </td> |
89 | <td class="actions"> | 90 | <td class="actions"> |
90 | - <?= $this->Html->link(__('<i class="icon-download"></i>'), '/webroot/files/'.$documents->id.'.'.$documents->type_doc, ['title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]) ?> | 91 | + <?= $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/files/'.$documents->id.'.'.$documents->type_doc, ['title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]) ?> |
91 | </td> | 92 | </td> |
92 | <?php | 93 | <?php |
93 | if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || $role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) { | 94 | if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || $role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) { |
94 | ?> | 95 | ?> |
95 | <td class="actions"> | 96 | <td class="actions"> |
96 | - <?= $this->Html->link(__('<i class="icon-edit"></i>'), ['controller' => 'Documents', 'action' => 'edit', $documents->id], ['escape' => false, 'style' => 'margin:0'])?> | 97 | + <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Documents', 'action' => 'edit', $documents->id], ['escape' => false, 'style' => 'margin:0'])?> |
97 | </td> | 98 | </td> |
98 | <td class="actions"> | 99 | <td class="actions"> |
99 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id)]) ?> | 100 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id)]) ?> |
src/Template/TypeDocuments/index.ctp
@@ -11,6 +11,8 @@ | @@ -11,6 +11,8 @@ | ||
11 | <tbody> | 11 | <tbody> |
12 | <?php | 12 | <?php |
13 | foreach ($typeDocuments as $typeDocument): | 13 | foreach ($typeDocuments as $typeDocument): |
14 | + | ||
15 | + if($typeDocument->nom != 'N/A') { | ||
14 | ?> | 16 | ?> |
15 | 17 | ||
16 | <tr> | 18 | <tr> |
@@ -31,6 +33,7 @@ | @@ -31,6 +33,7 @@ | ||
31 | </tr> | 33 | </tr> |
32 | 34 | ||
33 | <?php | 35 | <?php |
36 | + } | ||
34 | endforeach; | 37 | endforeach; |
35 | ?> | 38 | ?> |
36 | </tbody> | 39 | </tbody> |
tests/Fixture/SuivisFixture.php
@@ -29,7 +29,8 @@ class SuivisFixture extends TestFixture | @@ -29,7 +29,8 @@ class SuivisFixture extends TestFixture | ||
29 | 'type_frequence' => ['type' => 'string', 'length' =>30, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null], | 29 | 'type_frequence' => ['type' => 'string', 'length' =>30, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null], |
30 | 'panne_resolu' => ['type' => 'boolean', 'length' =>null, 'null' => true, 'default' => 1, 'comment' => '', 'precision' => null, 'fixed' => null], | 30 | 'panne_resolu' => ['type' => 'boolean', 'length' =>null, 'null' => true, 'default' => 1, 'comment' => '', 'precision' => null, 'fixed' => null], |
31 | 'commentaire' => ['type' => 'string', 'length' => 100, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null], | 31 | 'commentaire' => ['type' => 'string', 'length' => 100, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null], |
32 | - 'nom_createur' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => 'nom du createur de la fiche', 'precision' => null, 'fixed' => null], | 32 | + 'statut' => ['type' => 'string', 'length' => 30, 'null' => true, 'default' => 'En cours', 'comment' => '', 'precision' => null, 'fixed' => null], |
33 | + 'nom_createur' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => 'nom du createur de la fiche', 'precision' => null, 'fixed' => null], | ||
33 | 'nom_modificateur' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => 'nom du modificateur de la fiche', 'precision' => null, 'fixed' => null], | 34 | 'nom_modificateur' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => 'nom du modificateur de la fiche', 'precision' => null, 'fixed' => null], |
34 | 'created' => ['type' => 'datetime', 'length' => null, 'null' => true, 'default' => null, 'comment' => 'date et heure de creation de la fiche', 'precision' => null], | 35 | 'created' => ['type' => 'datetime', 'length' => null, 'null' => true, 'default' => null, 'comment' => 'date et heure de creation de la fiche', 'precision' => null], |
35 | 'modified' => ['type' => 'datetime', 'length' => null, 'null' => true, 'default' => null, 'comment' => 'date et heure de modif de la fiche', 'precision' => null], | 36 | 'modified' => ['type' => 'datetime', 'length' => null, 'null' => true, 'default' => null, 'comment' => 'date et heure de modif de la fiche', 'precision' => null], |