Commit 345a9eec40a50c8b39fe31cdd3127c1dcd5033bb
Exists in
master
and in
3 other branches
Merge branch 'master' of https://gitlab.irap.omp.eu/epallier/labinvent.git
Showing
17 changed files
with
121 additions
and
19 deletions
Show diff stats
README-LABINVENT.md
@@ -50,12 +50,16 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -50,12 +50,16 @@ Logiciel testé et validé sur les configurations suivantes : | ||
50 | 50 | ||
51 | VERSION ACTUELLE | 51 | VERSION ACTUELLE |
52 | 52 | ||
53 | -Date: 23/06/2016 | ||
54 | -Version: 2.4.6.9 | 53 | +Date: 24/06/2016 |
54 | +Version: 2.4.7.0 | ||
55 | 55 | ||
56 | -Date garantie (materiel) + bugfixes calcul date (suivi) | 56 | +!!! Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh !!! |
57 | 57 | ||
58 | -Demande (terminé) : https://projects.irap.omp.eu/issues/3804 | 58 | +gérer panne matériel + validation si champ rempli + menu home profil responsable |
59 | + | ||
60 | +Demande (terminé) : https://projects.irap.omp.eu/issues/3897 | ||
61 | + https://projects.irap.omp.eu/issues/3807 | ||
62 | + https://projects.irap.omp.eu/issues/3781 | ||
59 | 63 | ||
60 | Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107 | 64 | Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107 |
61 | 65 | ||
@@ -91,6 +95,8 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c | @@ -91,6 +95,8 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c | ||
91 | 95 | ||
92 | MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull) | 96 | MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull) |
93 | 97 | ||
98 | +24/06/16 (v2.4.7.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh | ||
99 | + | ||
94 | 23/06/16 (v2.4.6.5) Se placer dans database/update et exécuter le script ./db-update-2016-06-23.sh | 100 | 23/06/16 (v2.4.6.5) Se placer dans database/update et exécuter le script ./db-update-2016-06-23.sh |
95 | 101 | ||
96 | 23/06/16 (v2.4.6.4) Se placer dans database/update et exécuter le script ./db-update-2016-06-22.sh | 102 | 23/06/16 (v2.4.6.4) Se placer dans database/update et exécuter le script ./db-update-2016-06-22.sh |
database/labinvent_2.1_12-05-16.sql
@@ -412,7 +412,7 @@ ALTER TABLE `users` | @@ -412,7 +412,7 @@ ALTER TABLE `users` | ||
412 | ADD CONSTRAINT `fk_users_groupe_thematique_id` FOREIGN KEY (`groupe_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; | 412 | ADD CONSTRAINT `fk_users_groupe_thematique_id` FOREIGN KEY (`groupe_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; |
413 | 413 | ||
414 | -- Insertion par défaut | 414 | -- Insertion par défaut |
415 | -Insert into type_suivis(id, nom) values (9, 'Panne'); | 415 | +Insert into type_suivis(nom) values ('Réparation'); |
416 | Insert into sites(id, nom) values (9, 'N/A'); | 416 | Insert into sites(id, nom) values (9, 'N/A'); |
417 | 417 | ||
418 | -- Insertion par défaut pour la table configuration | 418 | -- Insertion par défaut pour la table configuration |
@@ -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-24.sql ./script_sql/db-update-2016-06-24-build.sql | ||
23 | + | ||
24 | +# Execute sql update script | ||
25 | +sed -e "s/database/$database/" -i ./script_sql/db-update-2016-06-24-build.sql | ||
26 | +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2016-06-24-build.sql | ||
27 | + | ||
28 | +# Delete cakephp cache | ||
29 | +sudo rm ../../tmp/cache/models/* | ||
30 | +sudo rm ../../tmp/cache/persistent/* | ||
31 | + | ||
32 | +sudo chmod -R 770 ../../tmp | ||
33 | +sudo chmod -R 770 ../../vendor | ||
34 | +sudo chmod -R 770 ../../webroot |
database/update/db-update-modele.sh
@@ -29,6 +29,6 @@ mysql --user=$username --password=$password -h $host < ./script_sql/db-update-xx | @@ -29,6 +29,6 @@ mysql --user=$username --password=$password -h $host < ./script_sql/db-update-xx | ||
29 | sudo rm ../../tmp/cache/models/* | 29 | sudo rm ../../tmp/cache/models/* |
30 | sudo rm ../../tmp/cache/persistent/* | 30 | sudo rm ../../tmp/cache/persistent/* |
31 | 31 | ||
32 | -sudo chmod -R 777 ../../tmp | ||
33 | -sudo chmod -R 777 ../../vendor | ||
34 | -sudo chmod -R 777 ../../webroot | 32 | +sudo chmod -R 770 ../../tmp |
33 | +sudo chmod -R 770 ../../vendor | ||
34 | +sudo chmod -R 770 ../../webroot |
database/update/script_sql/.gitignore
install/installation.sh
@@ -124,7 +124,7 @@ sudo chgrp -R $grp ./vendor/phpqrcode/ | @@ -124,7 +124,7 @@ sudo chgrp -R $grp ./vendor/phpqrcode/ | ||
124 | # Normalement, il faudrait ecrire dans app/tmp et pas dans app/webroot | 124 | # Normalement, il faudrait ecrire dans app/tmp et pas dans app/webroot |
125 | # EP 2014/12/11 chmod 775 ne suffit pas | 125 | # EP 2014/12/11 chmod 775 ne suffit pas |
126 | #chmod -R 775 ./webroot/img/ | 126 | #chmod -R 775 ./webroot/img/ |
127 | -sudo chmod -R 777 ./webroot/img/ | 127 | +sudo chmod -R 770 ./webroot/img/ |
128 | #sudo chown -R $grp:$grp ./webroot/img/ | 128 | #sudo chown -R $grp:$grp ./webroot/img/ |
129 | sudo chgrp -R $grp ./webroot/img/ | 129 | sudo chgrp -R $grp ./webroot/img/ |
130 | # TODO: il faudrait plutot faire ceci : | 130 | # TODO: il faudrait plutot faire ceci : |
@@ -149,7 +149,7 @@ sudo chgrp -R $grp ./tmp/ | @@ -149,7 +149,7 @@ sudo chgrp -R $grp ./tmp/ | ||
149 | chmod -R 777 ./logs/ | 149 | chmod -R 777 ./logs/ |
150 | sudo chgrp -R $grp ./logs/ | 150 | sudo chgrp -R $grp ./logs/ |
151 | #Il semble qu'il manque des droits au dossier Vendor, droit trop général à réduire (identifié les composants qui ont besoin de s'éxécuter ou de se lire, pas d'écriture dans le dossier Vendor normalement...) | 151 | #Il semble qu'il manque des droits au dossier Vendor, droit trop général à réduire (identifié les composants qui ont besoin de s'éxécuter ou de se lire, pas d'écriture dans le dossier Vendor normalement...) |
152 | -sudo chmod -R 777 ./vendor/ | 152 | +sudo chmod -R 770 ./vendor/ |
153 | echo "==>Done" | 153 | echo "==>Done" |
154 | 154 | ||
155 | 155 |
src/Controller/AppController.php
@@ -80,7 +80,7 @@ class AppController extends Controller | @@ -80,7 +80,7 @@ class AppController extends Controller | ||
80 | if($role == 'Super Administrateur') return true; | 80 | if($role == 'Super Administrateur') return true; |
81 | 81 | ||
82 | //Pour tout le monde | 82 | //Pour tout le monde |
83 | - if (in_array($action, ['index', 'find', 'view', 'creer', 'add', 'getNextDate'])) return true; | 83 | + if (in_array($action, ['index', 'find', 'view', 'creer', 'add', 'getNextDate', 'getDateGarantie'])) return true; |
84 | 84 | ||
85 | 85 | ||
86 | // Par défaut refuser | 86 | // Par défaut refuser |
src/Controller/MaterielsController.php
@@ -170,7 +170,18 @@ class MaterielsController extends AppController | @@ -170,7 +170,18 @@ class MaterielsController extends AppController | ||
170 | $this->set('STATUS', $this->passedArgs[0]); | 170 | $this->set('STATUS', $this->passedArgs[0]); |
171 | } | 171 | } |
172 | 172 | ||
173 | - if(!(in_array($this->role, ['Administration', 'Administration Plus', 'Super Administrateur']))) { | 173 | + $GM = $this->request->query('GM'); |
174 | + if(isset($GM)) { | ||
175 | + $condition = ['Materiels.groupes_metier_id =' => $this->request->query('GM'), 'Materiels.status !=' => 'ARCHIVED']; | ||
176 | + } | ||
177 | + | ||
178 | + $GMV = $this->request->query('GMV'); | ||
179 | + if(isset($GMV)) { | ||
180 | + $condition = ['Materiels.groupes_metier_id =' => $this->request->query('GMV'), 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; | ||
181 | + } | ||
182 | + | ||
183 | + | ||
184 | + if($this->role == 'Utilisateur') { | ||
174 | $condition = ['Materiels.status !=' => 'ARCHIVED']; | 185 | $condition = ['Materiels.status !=' => 'ARCHIVED']; |
175 | } | 186 | } |
176 | 187 | ||
@@ -363,6 +374,13 @@ class MaterielsController extends AppController | @@ -363,6 +374,13 @@ class MaterielsController extends AppController | ||
363 | $materiel->set('date_archivage', date('Y-m-d')); | 374 | $materiel->set('date_archivage', date('Y-m-d')); |
364 | } | 375 | } |
365 | 376 | ||
377 | + if($newStatus == 'VALIDATED') { | ||
378 | + if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { | ||
379 | + $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'); | ||
380 | + return $this->redirect(['action' => 'edit', $id]); | ||
381 | + } | ||
382 | + } | ||
383 | + | ||
366 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { | 384 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { |
367 | $this->Flash->success(__($message)); | 385 | $this->Flash->success(__($message)); |
368 | $this->sendEmailToManagement($id); | 386 | $this->sendEmailToManagement($id); |
src/Controller/SuivisController.php
@@ -58,12 +58,19 @@ class SuivisController extends AppController | @@ -58,12 +58,19 @@ class SuivisController extends AppController | ||
58 | */ | 58 | */ |
59 | public function index() | 59 | public function index() |
60 | { | 60 | { |
61 | + $condition = ''; | ||
62 | + | ||
63 | + $GM = $this->request->query('GM'); | ||
64 | + if(isset($GM)) { | ||
65 | + $condition = ['Suivis.groupes_metier_id =' => $this->request->query('GM')]; | ||
66 | + } | ||
67 | + | ||
61 | $this->paginate = [ | 68 | $this->paginate = [ |
62 | 'contain' => ['Materiels', 'TypeSuivis'] | 69 | 'contain' => ['Materiels', 'TypeSuivis'] |
63 | ]; | 70 | ]; |
64 | - $suivis = $this->paginate($this->Suivis); | 71 | + $suivis = $this->paginate($this->Suivis->find('all', ['conditions' => $condition])); |
65 | 72 | ||
66 | - $this->set('nbSuivis', $this->Suivis->find('all')->count()); | 73 | + $this->set('nbSuivis', $this->Suivis->find('all', ['conditions' => $condition])->count()); |
67 | 74 | ||
68 | $this->set(compact('suivis')); | 75 | $this->set(compact('suivis')); |
69 | $this->set('_serialize', ['suivis']); | 76 | $this->set('_serialize', ['suivis']); |
src/Model/Entity/Materiel.php
@@ -48,6 +48,7 @@ use Cake\ORM\Entity; | @@ -48,6 +48,7 @@ use Cake\ORM\Entity; | ||
48 | * @property int $organisme_id | 48 | * @property int $organisme_id |
49 | * @property \App\Model\Entity\Organisme $organisme | 49 | * @property \App\Model\Entity\Organisme $organisme |
50 | * @property int $site_id | 50 | * @property int $site_id |
51 | + * @property bool $hors_service | ||
51 | * @property \App\Model\Entity\Site $site | 52 | * @property \App\Model\Entity\Site $site |
52 | * @property \App\Model\Entity\Document[] $documents | 53 | * @property \App\Model\Entity\Document[] $documents |
53 | * @property \App\Model\Entity\Emprunt[] $emprunts | 54 | * @property \App\Model\Entity\Emprunt[] $emprunts |
src/Model/Table/MaterielsTable.php
@@ -161,6 +161,11 @@ class MaterielsTable extends AppTable | @@ -161,6 +161,11 @@ class MaterielsTable extends AppTable | ||
161 | ->allowEmpty('etiquette'); | 161 | ->allowEmpty('etiquette'); |
162 | 162 | ||
163 | $validator | 163 | $validator |
164 | + ->boolean('hors_service') | ||
165 | + ->allowEmpty('hors_service'); | ||
166 | + | ||
167 | + | ||
168 | + $validator | ||
164 | ->notEmpty('site_id', 'Ce champ doit être rempli'); | 169 | ->notEmpty('site_id', 'Ce champ doit être rempli'); |
165 | 170 | ||
166 | $validator | 171 | $validator |
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.4.6.9 (23/06/2016)</font> | 97 | + <font color="black">VERSION 2.4.7.0 (24/06/2016)</font> |
98 | </td> | 98 | </td> |
99 | </tr> | 99 | </tr> |
100 | </table> | 100 | </table> |
src/Template/Materiels/edit.ctp
@@ -21,6 +21,7 @@ if ($IS_VALIDATED) | @@ -21,6 +21,7 @@ if ($IS_VALIDATED) | ||
21 | 'materiel_technique', | 21 | 'materiel_technique', |
22 | 'site_id', | 22 | 'site_id', |
23 | 'date_acquisition', | 23 | 'date_acquisition', |
24 | + 'date_reception', | ||
24 | 'organisme_id', | 25 | 'organisme_id', |
25 | 'prix_ht' | 26 | 'prix_ht' |
26 | ), | 27 | ), |
@@ -48,6 +49,10 @@ if ($IS_VALIDATED) | @@ -48,6 +49,10 @@ if ($IS_VALIDATED) | ||
48 | 49 | ||
49 | ]); | 50 | ]); |
50 | 51 | ||
52 | + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']) || ($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | ||
53 | + echo $this->Form->input('hors_service', ['label' => 'Appareil hors_service']); | ||
54 | + } | ||
55 | + | ||
51 | echo $this->Form->input('sur_categorie_id', [ | 56 | echo $this->Form->input('sur_categorie_id', [ |
52 | 'label' => 'Domaine', | 57 | 'label' => 'Domaine', |
53 | 'options' => $surCategories, | 58 | 'options' => $surCategories, |
src/Template/Materiels/view.ctp
@@ -2,8 +2,14 @@ | @@ -2,8 +2,14 @@ | ||
2 | <div class="materiels view"> | 2 | <div class="materiels view"> |
3 | 3 | ||
4 | <h2> | 4 | <h2> |
5 | - <?php if (h($materiel->status) == 'ARCHIVED') echo '<i class="icon-inbox"></i> '; ?> | ||
6 | - <?= h($materiel->designation) ?> | 5 | + <?php if (h($materiel->status) == 'ARCHIVED') echo '<i class="icon-inbox"></i> '; |
6 | + $panne = ''; | ||
7 | + if(h($materiel->hors_service)) { | ||
8 | + $panne = ' (HORS SERVICE)'; | ||
9 | + } | ||
10 | + ?> | ||
11 | + | ||
12 | + <?= h($materiel->designation).$panne?> | ||
7 | <span style="font-size: 70%; color: grey;"> | 13 | <span style="font-size: 70%; color: grey;"> |
8 | <?= h($materiel->numero_laboratoire) ?> | 14 | <?= h($materiel->numero_laboratoire) ?> |
9 | <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?> | 15 | <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?> |
@@ -202,7 +208,9 @@ | @@ -202,7 +208,9 @@ | ||
202 | $displayElement(__('Date d\'achat'), h($materiel->date_acquisition)); | 208 | $displayElement(__('Date d\'achat'), h($materiel->date_acquisition)); |
203 | 209 | ||
204 | $displayElement(__('Date de reception'), h($materiel->date_reception)); | 210 | $displayElement(__('Date de reception'), h($materiel->date_reception)); |
205 | - $displayElement(__('Duree garantie'), h($materiel->duree_garantie).' '.h($materiel->unite_duree_garantie)); | 211 | + if(!empty(h($materiel->duree_garntie))) { |
212 | + $displayElement(__('Duree garantie'), h($materiel->duree_garantie).' '.h($materiel->unite_duree_garantie)); | ||
213 | + } | ||
206 | $displayElement(__('Date fin de garantie'), h($materiel->date_fin_garantie)); | 214 | $displayElement(__('Date fin de garantie'), h($materiel->date_fin_garantie)); |
207 | 215 | ||
208 | $displayElement(__('Statut'), h($materiel->status)); | 216 | $displayElement(__('Statut'), h($materiel->status)); |
src/Template/Pages/home_app.ctp
@@ -20,6 +20,19 @@ | @@ -20,6 +20,19 @@ | ||
20 | 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED']).' </td></tr>'; | 20 | 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED']).' </td></tr>'; |
21 | echo '</table>'; | 21 | echo '</table>'; |
22 | } | 22 | } |
23 | + | ||
24 | + //Utilisateur responsable | ||
25 | + if ($role == 'Responsable') { | ||
26 | + echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; | ||
27 | + echo '<tr><th></th></tr>'; | ||
28 | + echo '<tr><td> '.$this->Html->link('Voir les matériels de mon groupe métier', [ | ||
29 | + 'controller' => 'materiels', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id]).' </td></tr>'; | ||
30 | + echo '<tr><td> '.$this->Html->link('Voir les matériels de mon groupe métier à valider', [ | ||
31 | + 'controller' => 'materiels', 'action' => 'index', 'GMV' => $userConnected->groupes_metier_id]).' </td></tr>'; | ||
32 | + echo '<tr><td> '.$this->Html->link('Voir les suivis des materiels donc je suis responsable', [ | ||
33 | + 'controller' => 'suivis', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id]).' </td></tr>'; | ||
34 | + echo '</table>'; | ||
35 | + } | ||
23 | ?> | 36 | ?> |
24 | 37 | ||
25 | </div> | 38 | </div> |
tests/Fixture/MaterielsFixture.php
@@ -53,7 +53,8 @@ class MaterielsFixture extends TestFixture | @@ -53,7 +53,8 @@ class MaterielsFixture extends TestFixture | ||
53 | 'date_reception' => ['type' => 'date', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null], | 53 | 'date_reception' => ['type' => 'date', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null], |
54 | 'organisme_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null], | 54 | 'organisme_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null], |
55 | 'site_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '2', 'comment' => '', 'precision' => null, 'autoIncrement' => null], | 55 | 'site_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '2', 'comment' => '', 'precision' => null, 'autoIncrement' => null], |
56 | - '_indexes' => [ | 56 | + 'hors_service' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null], |
57 | + '_indexes' => [ | ||
57 | 'fk_administrative_materials_sub_categories1' => ['type' => 'index', 'columns' => ['sous_categorie_id'], 'length' => []], | 58 | 'fk_administrative_materials_sub_categories1' => ['type' => 'index', 'columns' => ['sous_categorie_id'], 'length' => []], |
58 | 'fk_materials_thematic_group1' => ['type' => 'index', 'columns' => ['groupes_thematique_id'], 'length' => []], | 59 | 'fk_materials_thematic_group1' => ['type' => 'index', 'columns' => ['groupes_thematique_id'], 'length' => []], |
59 | 'fk_materials_work_group1' => ['type' => 'index', 'columns' => ['groupes_metier_id'], 'length' => []], | 60 | 'fk_materials_work_group1' => ['type' => 'index', 'columns' => ['groupes_metier_id'], 'length' => []], |