Commit 0e5846aaa56783f2e98a1696c654dcb404e960da

Authored by Alexandre
1 parent 19798ef9

Css bouton valider form + validation sur les modeles + correction bug

Showing 43 changed files with 265 additions and 208 deletions   Show diff stats
src/Controller/EmpruntsController.php
... ... @@ -24,8 +24,10 @@ class EmpruntsController extends AppController
24 24 'contain' => ['Materiels']
25 25 ];
26 26 $emprunts = $this->paginate($this->Emprunts);
27   -
28   - $this->set(compact('emprunts'));
  27 +
  28 + $sites = TableRegistry::get('Sites')->find('list', [ 'keyField' => 'id', 'valueField' => 'nom'])->toArray();
  29 +
  30 + $this->set(compact('emprunts', 'sites'));
29 31 $this->set('_serialize', ['emprunts']);
30 32 }
31 33  
... ... @@ -42,6 +44,9 @@ class EmpruntsController extends AppController
42 44 'contain' => ['Materiels']
43 45 ]);
44 46  
  47 + $site = TableRegistry::get('Sites')->find()->where(['id =' => $emprunt->get('e_lieu_stockage')])->first()['nom'];
  48 + $this->set('site', $site);
  49 +
45 50 $this->set('emprunt', $emprunt);
46 51 $this->set('_serialize', ['emprunt']);
47 52 }
... ...
src/Model/Table/AppTable.php 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +<?php
  2 +namespace App\Model\Table;
  3 +
  4 +use Cake\ORM\Table;
  5 +
  6 +/**
  7 + * App Model
  8 + */
  9 +class AppTable extends Table
  10 +{
  11 +
  12 + // autoriser les caracteres habituels standards pour un ou plusieurs MOTs
  13 + // accents + - _ / () . , \s (=space)
  14 + private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_";
  15 +
  16 + public function check_string($check) {
  17 + return (bool) preg_match('/^['.$this->string.']*$/', $check);
  18 + }
  19 +
  20 + // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
  21 + // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
  22 + public function check_string_with_some_special_cars($check) {
  23 + return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check);
  24 + }
  25 +
  26 +
  27 +
  28 +
  29 +}
... ...
src/Model/Table/CategoriesTable.php
... ... @@ -12,7 +12,7 @@ use Cake\Validation\Validator;
12 12 *
13 13 * @property \Cake\ORM\Association\BelongsTo $SurCategories
14 14 */
15   -class CategoriesTable extends Table
  15 +class CategoriesTable extends AppTable
16 16 {
17 17  
18 18 /**
... ... @@ -49,6 +49,7 @@ class CategoriesTable extends Table
49 49  
50 50 $validator
51 51 ->requirePresence('nom', 'create')
  52 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table'])
52 53 ->notEmpty('nom')
53 54 ->add('nom', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']);
54 55  
... ...
src/Model/Table/DocumentsTable.php
... ... @@ -13,7 +13,7 @@ use Cake\Validation\Validator;
13 13 * @property \Cake\ORM\Association\BelongsTo $Materiels
14 14 * @property \Cake\ORM\Association\BelongsTo $Suivis
15 15 */
16   -class DocumentsTable extends Table
  16 +class DocumentsTable extends AppTable
17 17 {
18 18  
19 19 /**
... ...
src/Model/Table/EmpruntsTable.php
... ... @@ -6,13 +6,16 @@ use Cake\ORM\Query;
6 6 use Cake\ORM\RulesChecker;
7 7 use Cake\ORM\Table;
8 8 use Cake\Validation\Validator;
  9 +use Cake\ORM\toArray;
  10 +use Cake\Validation\Validation;
  11 +
9 12  
10 13 /**
11 14 * Emprunts Model
12 15 *
13 16 * @property \Cake\ORM\Association\BelongsTo $Materiels
14 17 */
15   -class EmpruntsTable extends Table
  18 +class EmpruntsTable extends AppTable
16 19 {
17 20  
18 21 /**
... ... @@ -50,47 +53,68 @@ class EmpruntsTable extends Table
50 53 ->allowEmpty('id', 'create');
51 54  
52 55 $validator
53   - ->allowEmpty('date_emprunt');
  56 + ->notEmpty('date_emprunt', 'Une date d\'emprunt doit être saisi');
54 57  
55 58 $validator
56   - ->allowEmpty('date_retour_emprunt')
57   - ->add('nom_emprunteur_ext', 'valid', ['rule' => ['checkReturnDateIsAfterLoanDate'], 'message' => 'La date de retour doit être postérieure à la date de l\'emprunt.', 'provider' => 'table']);
  59 + ->notEmpty('date_retour_emprunt', 'Une date de retour doit être saisie');
58 60  
59 61 $validator
60 62 ->boolean('emprunt_interne')
61 63 ->allowEmpty('emprunt_interne');
62 64  
63 65 $validator
64   - ->allowEmpty('laboratoire')
65   - ->add('laboratoire', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table'])
66   - ->add('laboratoire', 'valid', ['rule' => ['checkLaboratoire'], 'message' => 'Le champ doit être rempli pour un emprunt externe.', 'provider' => 'table']);
67   -
68   - /*
69   - $validator
70   - ->notEmpty('e_lieu_stockage');
71   - */
  66 + ->notEmpty('nom_emprunteur_int', 'Le champ doit être rempli.', function ($context) {
  67 + if (isset($context['data']['emprunt_interne'])) {
  68 + return $context['data']['emprunt_interne'];
  69 + }
  70 + });
72 71  
73 72 $validator
74   - ->allowEmpty('e_lieu_detail')
75   - ->add('e_lieu_detail', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table'])
76   - ->add('e_lieu_detail', 'valid', ['rule' => ['checkLieu'], 'message' => 'Le champ doit être rempli pour un emprunt interne.', 'provider' => 'table']);
77   -
78   - /*
  73 + ->notEmpty('email_emprunteur_int', 'Cet Email n\'est pas valide.', function ($context) {
  74 + if (isset($context['data']['emprunt_interne'])) {
  75 + return $context['data']['emprunt_interne'];
  76 + }
  77 + });
  78 +
79 79 $validator
80   - ->notEmpty('nom_emprunteur_int');
81   - */
  80 + ->notEmpty('e_lieu_detail', 'Le champ doit être rempli pour un emprunt interne.', function ($context) {
  81 + if (isset($context['data']['emprunt_interne'])) {
  82 + return $context['data']['emprunt_interne'];
  83 + }
  84 + })
  85 + ->add('e_lieu_detail', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
  86 +
82 87  
83 88 $validator
84   - ->allowEmpty('email_emprunteur_int');
  89 + ->notEmpty('laboratoire', 'Le champ doit être rempli pour un emprunt externe.', function ($context) {
  90 + if (isset($context['data']['emprunt_interne'])) {
  91 + return !$context['data']['emprunt_interne'];
  92 + }
  93 + })
  94 + ->add('laboratoire', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
85 95  
  96 +
  97 +
86 98 $validator
87   - ->allowEmpty('nom_emprunteur_ext')
88   - ->add('nom_emprunteur_ext', 'valid', ['rule' => ['checkEmpruntExt'], 'message' => 'Le champ doit être rempli.', 'provider' => 'table']);
  99 + ->notEmpty('nom_emprunteur_ext', 'Le champ doit être rempli.', function ($context) {
  100 + if (isset($context['data']['emprunt_interne'])) {
  101 + return !$context['data']['emprunt_interne'];
  102 + }
  103 + });
89 104  
90 105 $validator
91   - ->allowEmpty('email_emprunteur_ext')
92   - ->add('email_emprunteur_ext', 'valid', ['rule' => ['checkEmailExt'], 'message' => 'Cet Email n\'est pas valide.', 'provider' => 'table']);
93   -
  106 + ->notEmpty('email_emprunteur_ext', 'Cet Email n\'est pas valide.', function ($context) {
  107 + if (isset($context['data']['emprunt_interne'])) {
  108 + return !$context['data']['emprunt_interne'];
  109 + /*
  110 + if (!$context['data']['emprunt_interne']) {
  111 + return (Validation::email($context['data']['email_emprunteur_ext']));
  112 + }
  113 + */
  114 + }
  115 + });
  116 +
  117 +
94 118 $validator
95 119 ->allowEmpty('commentaire')
96 120 ->add('commentaire', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
... ... @@ -99,56 +123,6 @@ class EmpruntsTable extends Table
99 123 }
100 124  
101 125  
102   - // autoriser les caracteres habituels standards pour un ou plusieurs MOTs
103   - // accents + - _ / () . , \s (=space)
104   - private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_";
105   -
106   - public function check_string($check) {
107   - return (bool) preg_match('/^['.$this->string.']*$/', $check);
108   - }
109   -
110   - // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
111   - // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
112   - public function check_string_with_some_special_cars($check) {
113   - return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check);
114   - }
115   -
116   - function checkReturnDateIsAfterLoanDate() {
117   - /*
118   - $dateEmprunt = $this->data [$this->name] ['date_emprunt'];
119   - $dateRetour = $this->data [$this->name] ['date_retour_emprunt'];
120   - $dateEmprunt = explode("-", $dateEmprunt);
121   - $dateRetour = explode("-", $dateRetour);
122   - $dateEmprunt = $dateEmprunt[2].$dateEmprunt[1].$dateEmprunt[0];
123   - $dateRetour = $dateRetour[2].$dateRetour[1].$dateRetour[0];
124   - if ($dateEmprunt > $dateRetour) {
125   - return false;
126   - }
127   - return true;
128   - */
129   - return true;
130   - }
131   -
132   - function checkEmprunt() {
133   - //return ($this->data [$this->name] ['emprunt_interne'] == 1 || $this->data [$this->name] ['nom_emprunteur_ext'] != '');
134   - return true;
135   - }
136   -
137   - function checkEmail() {
138   - //return ($this->data [$this->name] ['emprunt_interne'] == 1 || Validation::email ( $this->data [$this->name] ['email_emprunteur_ext'] ));
139   - return true;
140   - }
141   -
142   - function checkLaboratoire() {
143   - //return ((($this->data [$this->name] ['emprunt_interne'] == 0) && ($this->data [$this->name] ['laboratoire'] != '')) || ($this->data [$this->name] ['emprunt_interne'] == 1));
144   - return true;
145   - }
146   -
147   - function checkLieu() {
148   - //return ((($this->data [$this->name] ['emprunt_interne'] == 1) && ($this->data [$this->name] ['e_lieu_detail'] != '')) || ($this->data [$this->name] ['emprunt_interne'] == 0));
149   - return true;
150   - }
151   -
152 126 /**
153 127 * Returns a rules checker object that will be used for validating
154 128 * application integrity.
... ... @@ -158,7 +132,58 @@ class EmpruntsTable extends Table
158 132 */
159 133 public function buildRules(RulesChecker $rules)
160 134 {
161   - $rules->add($rules->existsIn(['materiel_id'], 'Materiels'));
162   - return $rules;
  135 +
  136 + $checkReturnDateIsAfterLoanDate = function ($entity) {
  137 + $dateEmprunt = $entity->date_emprunt;
  138 + $dateRetour = $entity->date_retour_emprunt;
  139 + $dateEmprunt = explode("/", $dateEmprunt);
  140 + $dateRetour = explode("/", $dateRetour);
  141 + $dateEmprunt = $dateEmprunt[2].$dateEmprunt[1].$dateEmprunt[0];
  142 + $dateRetour = $dateRetour[2].$dateRetour[1].$dateRetour[0];
  143 + if ($dateEmprunt > $dateRetour) {
  144 + return false;
  145 + }
  146 + return true;
  147 + };
  148 +
  149 + $rules->add($checkReturnDateIsAfterLoanDate, [
  150 + 'errorField' => 'date_retour_emprunt',
  151 + 'message' => 'La date de retour doit être postérieure à la date de l\'emprunt.'
  152 + ]);
  153 +
  154 + $rules->add($rules->existsIn(['materiel_id'], 'Materiels'));
  155 + return $rules;
163 156 }
  157 +
  158 +
  159 + public function beforeSave($event, $entity, $options)
  160 + {
  161 + if (! empty ( $entity->toArray() )) {
  162 + $name = '';
  163 + $email = '';
  164 +
  165 + // EMPRUNT INTERNE ?
  166 + if ($entity->get('emprunt_interne') == 1) {
  167 + $name = $entity->get('nom_emprunteur_int');
  168 + $email = $entity->get('email_emprunteur_int');
  169 + }
  170 + // EMPRUNT EXTERNE
  171 + else {
  172 + $name = $entity->get('nom_emprunteur_ext');
  173 + $email = $entity->get('email_emprunteur_ext');
  174 + }
  175 +
  176 + $entity->set('nom_emprunteur', $name);
  177 + $entity->set('email_emprunteur', $email);
  178 +
  179 +
  180 + }
  181 + return true;
  182 + }
  183 +
  184 +
  185 +
  186 +
  187 +
  188 +
164 189 }
... ...
src/Model/Table/GroupesMetiersTable.php
... ... @@ -13,7 +13,7 @@ use Cake\Validation\Validator;
13 13 * @property \Cake\ORM\Association\HasMany $Materiels
14 14 * @property \Cake\ORM\Association\HasMany $Users
15 15 */
16   -class GroupesMetiersTable extends Table
  16 +class GroupesMetiersTable extends AppTable
17 17 {
18 18  
19 19 /**
... ... @@ -51,10 +51,12 @@ class GroupesMetiersTable extends Table
51 51 ->allowEmpty('id', 'create');
52 52  
53 53 $validator
54   - ->allowEmpty('nom');
  54 + ->allowEmpty('nom')
  55 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
55 56  
56 57 $validator
57   - ->allowEmpty('description');
  58 + ->allowEmpty('description')
  59 + ->add('description', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
58 60  
59 61 return $validator;
60 62 }
... ...
src/Model/Table/GroupesThematiquesTable.php
... ... @@ -12,7 +12,7 @@ use Cake\Validation\Validator;
12 12 *
13 13 * @property \Cake\ORM\Association\HasMany $Materiels
14 14 */
15   -class GroupesThematiquesTable extends Table
  15 +class GroupesThematiquesTable extends AppTable
16 16 {
17 17  
18 18 /**
... ... @@ -47,10 +47,12 @@ class GroupesThematiquesTable extends Table
47 47 ->allowEmpty('id', 'create');
48 48  
49 49 $validator
50   - ->allowEmpty('nom');
  50 + ->allowEmpty('nom')
  51 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
51 52  
52 53 $validator
53   - ->allowEmpty('description');
  54 + ->allowEmpty('description')
  55 + ->add('description', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
54 56  
55 57 return $validator;
56 58 }
... ...
src/Model/Table/MaterielsTable.php
... ... @@ -21,7 +21,7 @@ use Cake\Validation\Validator;
21 21 * @property \Cake\ORM\Association\HasMany $Emprunts
22 22 * @property \Cake\ORM\Association\HasMany $Suivis
23 23 */
24   -class MaterielsTable extends Table
  24 +class MaterielsTable extends AppTable
25 25 {
26 26  
27 27 public $ALL_STATUS = array('CREATED', 'VALIDATED', 'TOBEARCHIVED', 'ARCHIVED');
... ... @@ -107,11 +107,8 @@ class MaterielsTable extends Table
107 107  
108 108 $validator
109 109 ->boolean('materiel_administratif')
110   - ->allowEmpty('materiel_administratif')
111   - ->add('materiel_administratif', 'valid', ['rule' => 'checkAtLeastOneChecked', 'message' => 'Le matériel est obligatoirement inventoriable ou technique', 'provider' => 'table'])
112   - ->add('materiel_administratif', 'mustbeadministratif', ['rule' => 'checkIfIsAdministratifWhenShouldBe', 'message' => 'Le matériel vaut plus de 800€ HT, il est donc obligatoirement inventoriable', 'provider' => 'table'])
113   - ->add('materiel_administratif', 'canbeadministratif', ['rule' => 'checkIfIsNotAdministratifWhenShouldNotBe', 'message' => 'Le matériel vaut moins de 800€ HT, il n\'est donc pas inventoriable', 'provider' => 'table']);
114   -
  110 + ->allowEmpty('materiel_administratif');
  111 +
115 112 $validator
116 113 ->boolean('materiel_technique')
117 114 ->allowEmpty('materiel_technique');
... ... @@ -189,44 +186,11 @@ class MaterielsTable extends Table
189 186 }
190 187  
191 188  
192   - // autoriser les caracteres habituels standards pour un ou plusieurs MOTs
193   - // accents + - _ / () . , \s (=space)
194   - private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_";
195   -
196   - public function check_string($check) {
197   - return (bool) preg_match('/^['.$this->string.']*$/', $check);
198   - }
199   -
200   - // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
201   - // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
202   - public function check_string_with_some_special_cars($check) {
203   - return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check);
204   - }
205 189  
206 190 public function checkStatus($check) {
207 191 return ( isset($check) && in_array($check, $this->ALL_STATUS) );
208 192 }
209 193  
210   - public function checkAtLeastOneChecked() {
211   - //return ( 'materiel_administratif' || 'materiel_technique');
212   - return true;
213   - }
214   -
215   - // return if price >=800€ then must be checked as "administratif"
216   - public function checkIfIsAdministratifWhenShouldBe() {
217   - //error_log('test : '.$this->materiel->prix_ht);
218   -
219   - //return ! ( isset($this->prix_ht) && $this->prix_ht >= 800 && !$this->materiel_administratif );
220   - return true;
221   - }
222   -
223   - // return if price <800€ then must NOT be checked as "administratif"
224   - public function checkIfIsNotAdministratifWhenShouldNotBe() {
225   - //return ! ( isset($this->prix_ht) && $this->prix_ht < 800 && $this->materiel_administratif );
226   - return true;
227   - }
228   -
229   -
230 194  
231 195 /**
232 196 * Returns a rules checker object that will be used for validating
... ... @@ -237,6 +201,38 @@ class MaterielsTable extends Table
237 201 */
238 202 public function buildRules(RulesChecker $rules)
239 203 {
  204 +
  205 +
  206 + $checkAtLeastOneChecked = function($entity) {
  207 + return ( $entity->materiel_administratif || $entity->materiel_technique);
  208 + };
  209 +
  210 + // return if price >=800€ then must be checked as "administratif"
  211 + $checkIfIsAdministratifWhenShouldBe = function ($entity) {
  212 + return ! ( isset($entity->prix_ht) && $entity->prix_ht >= 800 && !$entity->materiel_administratif );
  213 + };
  214 +
  215 + // return if price <800€ then must NOT be checked as "administratif"
  216 + $checkIfIsNotAdministratifWhenShouldNotBe = function ($entity) {
  217 + return ! ( isset($entity->prix_ht) && $entity->prix_ht < 800 && $entity->materiel_administratif );
  218 + };
  219 +
  220 +
  221 + $rules->add($checkAtLeastOneChecked, [
  222 + 'errorField' => 'materiel_administratif',
  223 + 'message' => 'Le matériel est obligatoirement inventoriable ou technique.'
  224 + ]);
  225 + $rules->add($checkIfIsAdministratifWhenShouldBe, [
  226 + 'errorField' => 'materiel_administratif',
  227 + 'message' => 'Le matériel vaut plus de 800€ HT, il est donc obligatoirement inventoriable.'
  228 + ]);
  229 + $rules->add($checkIfIsNotAdministratifWhenShouldNotBe, [
  230 + 'errorField' => 'materiel_administratif',
  231 + 'message' => 'Le matériel vaut moins de 800€ HT, il n\'est donc pas inventoriable.'
  232 + ]);
  233 +
  234 +
  235 +
240 236 $rules->add($rules->isUnique(['numero_laboratoire']));
241 237 $rules->add($rules->existsIn(['sur_categorie_id'], 'SurCategories'));
242 238 $rules->add($rules->existsIn(['categorie_id'], 'Categories'));
... ...
src/Model/Table/OrganismesTable.php
... ... @@ -12,7 +12,7 @@ use Cake\Validation\Validator;
12 12 *
13 13 * @property \Cake\ORM\Association\HasMany $Materiels
14 14 */
15   -class OrganismesTable extends Table
  15 +class OrganismesTable extends AppTable
16 16 {
17 17  
18 18 /**
... ... @@ -47,7 +47,8 @@ class OrganismesTable extends Table
47 47 ->allowEmpty('id', 'create');
48 48  
49 49 $validator
50   - ->allowEmpty('nom');
  50 + ->allowEmpty('nom')
  51 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
51 52  
52 53 return $validator;
53 54 }
... ...
src/Model/Table/SitesTable.php
... ... @@ -12,7 +12,7 @@ use Cake\Validation\Validator;
12 12 *
13 13 * @property \Cake\ORM\Association\HasMany $Materiels
14 14 */
15   -class SitesTable extends Table
  15 +class SitesTable extends AppTable
16 16 {
17 17  
18 18 /**
... ... @@ -47,7 +47,8 @@ class SitesTable extends Table
47 47 ->allowEmpty('id', 'create');
48 48  
49 49 $validator
50   - ->allowEmpty('nom');
  50 + ->allowEmpty('nom')
  51 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
51 52  
52 53 return $validator;
53 54 }
... ...
src/Model/Table/SousCategoriesTable.php
... ... @@ -12,7 +12,7 @@ use Cake\Validation\Validator;
12 12 *
13 13 * @property \Cake\ORM\Association\BelongsTo $Categories
14 14 */
15   -class SousCategoriesTable extends Table
  15 +class SousCategoriesTable extends AppTable
16 16 {
17 17  
18 18 /**
... ... @@ -49,7 +49,8 @@ class SousCategoriesTable extends Table
49 49  
50 50 $validator
51 51 ->requirePresence('nom', 'create')
52   - ->notEmpty('nom');
  52 + ->notEmpty('nom')
  53 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
53 54  
54 55 return $validator;
55 56 }
... ...
src/Model/Table/SuivisTable.php
... ... @@ -13,7 +13,7 @@ use Cake\Validation\Validator;
13 13 * @property \Cake\ORM\Association\BelongsTo $Materiels
14 14 * @property \Cake\ORM\Association\HasMany $Documents
15 15 */
16   -class SuivisTable extends Table
  16 +class SuivisTable extends AppTable
17 17 {
18 18  
19 19 /**
... ... @@ -60,9 +60,8 @@ class SuivisTable extends Table
60 60 ->allowEmpty('date_controle');
61 61  
62 62 $validator
63   - ->allowEmpty('date_prochain_controle')
64   - ->add('date_prochain_controle', 'checkNextDateControlIsAfterDateControl', ['rule' => 'checkNextDateControlIsAfterDateControl', 'message' => 'La date de la prochaine intervention dois être postérieure à la date de l\'intervention précédente.', 'provider' => 'table']);
65   -
  63 + ->allowEmpty('date_prochain_controle');
  64 +
66 65 $validator
67 66 ->allowEmpty('type_intervention')
68 67 ->add('type_intervention', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
... ... @@ -84,37 +83,7 @@ class SuivisTable extends Table
84 83 return $validator;
85 84 }
86 85  
87   -
88   - // autoriser les caracteres habituels standards pour un ou plusieurs MOTs
89   - // accents + - _ / () . , \s (=space)
90   - private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_";
91   -
92   - public function check_string($check) {
93   - return (bool) preg_match('/^['.$this->string.']*$/', $check);
94   - }
95   -
96   - // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
97   - // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
98   - public function check_string_with_some_special_cars($check) {
99   - return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check);
100   - }
101   -
102   - function checkNextDateControlIsAfterDateControl() {
103   - /*
104   - $controle = $this->data [$this->name] ['date_controle'];
105   - if (empty($controle)) return true;
106   - $prochainControle = $this->data [$this->name] ['date_prochain_controle'];
107   - $controle = explode("-", $controle);
108   - $prochainControle = explode("-", $prochainControle);
109   - $controle = $controle[2].$controle[1].$controle[0];
110   - $prochainControle = $prochainControle[2].$prochainControle[1].$prochainControle[0];
111   - if ($controle > $prochainControle) {
112   - return false;
113   - }
114   - return true;
115   - */
116   - return true;
117   - }
  86 +
118 87  
119 88 /**
120 89 * Returns a rules checker object that will be used for validating
... ... @@ -125,6 +94,28 @@ class SuivisTable extends Table
125 94 */
126 95 public function buildRules(RulesChecker $rules)
127 96 {
  97 +
  98 + $checkNextDateControlIsAfterDateControl = function($entity) {
  99 +
  100 + $controle = $entity->date_controle;
  101 + if (empty($controle)) return true;
  102 + $prochainControle = $entity->date_prochain_controle;
  103 + $controle = explode("/", $controle);
  104 + $prochainControle = explode("/", $prochainControle);
  105 + $controle = $controle[2].$controle[1].$controle[0];
  106 + $prochainControle = $prochainControle[2].$prochainControle[1].$prochainControle[0];
  107 + if ($controle > $prochainControle) {
  108 + return false;
  109 + }
  110 + return true;
  111 +
  112 + };
  113 +
  114 + $rules->add($checkNextDateControlIsAfterDateControl, [
  115 + 'errorField' => 'date_prochain_controle',
  116 + 'message' => 'La date de la prochaine intervention dois être postérieure à la date de l\'intervention précédente.'
  117 + ]);
  118 +
128 119 $rules->add($rules->existsIn(['materiel_id'], 'Materiels'));
129 120 return $rules;
130 121 }
... ...
src/Model/Table/SurCategoriesTable.php
... ... @@ -11,7 +11,7 @@ use Cake\Validation\Validator;
11 11 * SurCategories Model
12 12 *
13 13 */
14   -class SurCategoriesTable extends Table
  14 +class SurCategoriesTable extends AppTable
15 15 {
16 16  
17 17 /**
... ... @@ -40,7 +40,8 @@ class SurCategoriesTable extends Table
40 40 $validator
41 41 ->requirePresence('nom', 'create')
42 42 ->notEmpty('nom')
43   - ->add('nom', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']);
  43 + ->add('nom', 'unique', ['rule' => 'validateUnique', 'provider' => 'table'])
  44 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
44 45  
45 46 return $validator;
46 47 }
... ...
src/Model/Table/TypeSuivisTable.php
... ... @@ -11,7 +11,7 @@ use Cake\Validation\Validator;
11 11 * TypeSuivis Model
12 12 *
13 13 */
14   -class TypeSuivisTable extends Table
  14 +class TypeSuivisTable extends AppTable
15 15 {
16 16  
17 17 /**
... ... @@ -42,7 +42,8 @@ class TypeSuivisTable extends Table
42 42 ->allowEmpty('id', 'create');
43 43  
44 44 $validator
45   - ->allowEmpty('nom');
  45 + ->allowEmpty('nom')
  46 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
46 47  
47 48 return $validator;
48 49 }
... ...
src/Model/Table/UsersTable.php
... ... @@ -12,7 +12,7 @@ use Cake\Validation\Validator;
12 12 *
13 13 * @property \Cake\ORM\Association\BelongsTo $GroupesMetiers
14 14 */
15   -class UsersTable extends Table
  15 +class UsersTable extends AppTable
16 16 {
17 17  
18 18 /**
... ... @@ -47,10 +47,12 @@ class UsersTable extends Table
47 47 ->allowEmpty('id', 'create');
48 48  
49 49 $validator
50   - ->notEmpty('nom', 'Un nom est nécessaire');
  50 + ->notEmpty('nom', 'Un nom est nécessaire')
  51 + ->add('nom', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
51 52  
52 53 $validator
53 54 ->notEmpty('username', 'Un login est nécessaire')
  55 + ->add('username', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table'])
54 56 ->add('username', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']);
55 57  
56 58 $validator
... ...
src/Template/Categories/add.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories]);
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/Categories/edit.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories]);
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/Emprunts/add.ctp
... ... @@ -92,7 +92,7 @@
92 92 echo $this->Form->hidden('nom_createur', ['value' => $username])
93 93 ?>
94 94 </fieldset>
95   - <?= $this->Form->button(__('Valider')) ?>
  95 + <?= $this->Form->submit(__('Valider')) ?>
96 96 <?= $this->Form->end() ?>
97 97 </div>
98 98  
... ...
src/Template/Emprunts/edit.ctp
... ... @@ -92,7 +92,7 @@
92 92 echo $this->Form->hidden('nom_modificateur', ['value' => $username]);
93 93 ?>
94 94 </fieldset>
95   - <?= $this->Form->button(__('Valider')) ?>
  95 + <?= $this->Form->submit(__('Valider')) ?>
96 96 <?= $this->Form->end() ?>
97 97 </div>
98 98  
... ...
src/Template/Emprunts/index.ctp
... ... @@ -26,8 +26,7 @@
26 26 <td><?= h($emprunt->date_emprunt) ?></td>
27 27 <td><?= h($emprunt->date_retour_emprunt) ?></td>
28 28 <td><?= h($emprunt->nom_emprunteur) ?></td>
29   - <td><?= h($emprunt->e_lieu_stockage).'-'.h($emprunt->e_lieu_detail) ?></td>
30   -
  29 + <td><?php if (h($emprunt->emprunt_interne) == '1') { echo $sites[h($emprunt->e_lieu_stockage)].'-'.h($emprunt->e_lieu_detail); } else { echo h($emprunt->laboratoire); } ?></td>
31 30  
32 31 <td class="actions" style="padding: 6px 0;">
33 32 <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $emprunt->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?>
... ...
src/Template/Emprunts/view.ctp
... ... @@ -27,7 +27,8 @@ function displayElement($nom, $valeur) {
27 27 displayElement(__('Type d\'emprunt'), $emprunt->emprunt_interne ? __('Interne') : __('Externe'));
28 28 displayElement(__('Date Emprunt'), strftime("%e %B %Y", strtotime(h($emprunt->date_emprunt))));
29 29 displayElement(__('Date Retour Emprunt'), strftime("%e %B %Y", strtotime(h($emprunt->date_retour_emprunt))));
30   - displayElement(__('Lieu de stockage'), h($emprunt->e_lieu_stockage).'-'.h($emprunt->e_lieu_detail));
  30 + if (h($emprunt->emprunt_interne) == '1') { displayElement(__('Lieu de stockage'), $site.'-'.h($emprunt->e_lieu_detail)); } else { displayElement('Lieu de stockage', h($emprunt->laboratoire)); }
  31 +
31 32 displayElement(__('Responsable'), h($emprunt->nom_emprunteur));
32 33 displayElement(__('Email'), h($emprunt->email_emprunteur));
33 34 if ($emprunt->emprunt_interne != 1) {
... ...
src/Template/GroupesMetiers/add.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('description');
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/GroupesMetiers/edit.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('description');
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/GroupesThematiques/add.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('description');
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/GroupesThematiques/edit.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('description');
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/Layout/default.ctp
... ... @@ -60,9 +60,10 @@ $cakeDescription = &#39;Labinvent 2.0&#39;;
60 60 </div>
61 61 </div>
62 62  
63   - <?= $this->Flash->render()?>
64   - <?= $this->Flash->render('auth') ?>
  63 +
65 64 <div class="content">
  65 + <?= $this->Flash->render()?>
  66 + <?= $this->Flash->render('auth') ?>
66 67 <?= $this->fetch('content')?>
67 68 </div>
68 69  
... ... @@ -92,7 +93,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;;
92 93 </i></td>
93 94 <td id="version">
94 95 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
95   - <font color="black">VERSION 2.0.2 (06/05/2016)</font>
  96 + <font color="black">VERSION 2.0.2.2 (06/05/2016)</font>
96 97 </td>
97 98 </tr>
98 99 </table>
... ...
src/Template/Materiels/add.ctp
... ... @@ -3,7 +3,7 @@
3 3 <?= $this->Form->create($materiel) ?>
4 4 <fieldset>
5 5 <h2><i class="icon-plus"></i> Ajouter un Matériel</h2>
6   - <?= $this->Form->button(__('Enregistrer')) ?>
  6 + <?= $this->Form->submit(__('Enregistrer')) ?>
7 7  
8 8 <?php
9 9 echo $this->Form->input('designation', ['label' => 'Désignation']);
... ... @@ -54,7 +54,7 @@
54 54  
55 55 ?>
56 56 </fieldset>
57   - <?= $this->Form->button(__('Enregistrer')) ?>
  57 + <?= $this->Form->submit(__('Enregistrer')) ?>
58 58 <?= $this->Form->end() ?>
59 59 </div>
60 60  
... ...
src/Template/Materiels/edit.ctp
... ... @@ -52,7 +52,7 @@ if (IS_VALIDATED)
52 52 <?= $this->Form->create($materiel) ?>
53 53 <fieldset>
54 54 <h2><i class="icon-edit"></i> Editer un Matériel</h2>
55   - <?= $this->Form->button(__('Enregistrer')) ?>
  55 + <?= $this->Form->submit(__('Enregistrer')) ?>
56 56  
57 57 <?php
58 58 echo $this->Form->input('designation', [
... ... @@ -205,7 +205,7 @@ if (IS_VALIDATED)
205 205  
206 206 ?>
207 207 </fieldset>
208   - <?= $this->Form->button(__('Enregistrer')) ?>
  208 + <?= $this->Form->submit(__('Enregistrer')) ?>
209 209 <?= $this->Form->end() ?>
210 210 </div>
211 211  
... ...
src/Template/Organismes/add.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/Organismes/edit.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/Pages/about.ctp
1 1 <div class="index">
2 2 <?php
3 3  
4   -//$localConfig = AppController::getLocalConfig();
5   -
6 4 $softwareName = "INVENTIRAP";
7   -//$softwareName = strtoupper($localConfig['softwareName']);
  5 +
8 6 echo '<h2><i class="icon-idea"></i> A PROPOS DU LOGICIEL '. $softwareName .'</h2>';
9 7  
10 8 echo <<<"EOD"
... ...
src/Template/Sites/add.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/Sites/edit.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/SousCategories/add.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories]);
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/SousCategories/edit.ctp
... ... @@ -8,7 +8,7 @@
8 8 echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories]);
9 9 ?>
10 10 </fieldset>
11   - <?= $this->Form->button(__('Valider')) ?>
  11 + <?= $this->Form->submit(__('Valider')) ?>
12 12 <?= $this->Form->end() ?>
13 13 </div>
14 14  
... ...
src/Template/Suivis/add.ctp
... ... @@ -53,7 +53,7 @@
53 53 echo $this->Form->hidden('nom_createur', ['value' => $username ]);
54 54 ?>
55 55 </fieldset>
56   - <?= $this->Form->button(__('Valider')) ?>
  56 + <?= $this->Form->submit(__('Valider')) ?>
57 57 <?= $this->Form->end() ?>
58 58 </div>
59 59  
... ...
src/Template/Suivis/edit.ctp
... ... @@ -53,7 +53,7 @@
53 53 echo $this->Form->hidden('nom_modificateur', ['value' => $username ]);
54 54 ?>
55 55 </fieldset>
56   - <?= $this->Form->button(__('Valider')) ?>
  56 + <?= $this->Form->submit(__('Valider')) ?>
57 57 <?= $this->Form->end() ?>
58 58 </div>
59 59  
... ...
src/Template/SurCategories/add.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/SurCategories/edit.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/TypeSuivis/add.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/TypeSuivis/edit.ctp
... ... @@ -7,7 +7,7 @@
7 7 echo $this->Form->input('nom');
8 8 ?>
9 9 </fieldset>
10   - <?= $this->Form->button(__('Valider')) ?>
  10 + <?= $this->Form->submit(__('Valider')) ?>
11 11 <?= $this->Form->end() ?>
12 12 </div>
13 13  
... ...
src/Template/Users/add.ctp
... ... @@ -14,7 +14,7 @@
14 14 echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers, 'empty' => true]);
15 15 ?>
16 16 </fieldset>
17   - <?= $this->Form->button(__('Valider')) ?>
  17 + <?= $this->Form->submit(__('Valider')) ?>
18 18 <?= $this->Form->end() ?>
19 19 </div>
20 20  
... ...
src/Template/Users/edit.ctp
... ... @@ -14,7 +14,7 @@
14 14 echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers, 'empty' => true]);
15 15 ?>
16 16 </fieldset>
17   - <?= $this->Form->button(__('Valider')) ?>
  17 + <?= $this->Form->submit(__('Valider')) ?>
18 18 <?= $this->Form->end() ?>
19 19 </div>
20 20  
... ...