Commit c7dcac63f25ac85a2864dfe3fa5b4b4f2e482dd9

Authored by Etienne Pallier
1 parent a938d08e
Exists in master and in 1 other branch dev

Mise à jour script de création COMPLET de la BD (structure)

- et aussi Mise à jour (cleanup) du script d'installation du projet

- A tester : install from scratch

v4.107.25-3.7.9
CHANGES.txt
... ... @@ -158,7 +158,7 @@ Modif d’une fiche materiel ne doit pas refaire une commande !!!
158 158  
159 159 - Update VM
160 160  
161   -- lire article juridique
  161 +
162 162  
163 163 - check add by copy
164 164  
... ... @@ -184,50 +184,35 @@ cakephp 3.9
184 184  
185 185 cake crud + view
186 186  
  187 +Install DOCKER
187 188  
  189 +Install WSL2 sur pc
188 190  
189 191  
190   -======= TODO2 - URGENT =======
191   -
192   -- Adapter règles "nouveau suivi"
193   -
194   -
195   -- lot1 toujours obligatoire (en dur dans Table), LOT2 = ssi status > CREATED (géré via soft dans add_edit(), la vue ne doit rien gérer du tout !)
196   -
197   -
198   -- technique/admin inutile
199 192  
200 193  
201   -- Gestionnaire de ref : + “Je ne sais pas”
  194 +- Adapter règles "nouveau suivi"
202 195  
  196 +======= TODO2 - URGENT =======
203 197  
204   -Install titreuse Carole
205 198  
206   -DB complète à mettre à jour
207 199  
208   -- (MT) Install locale, puis répondre stagiaire
209 200  
210   -- install GEPI
211 201  
212 202 - déclarer etiquette collée => supprimer ?
213 203  
214   -- Commande directe ou seulement pour inventaire : "Enregistrer & Commander" et "Enregistrer seulement"
215   -
216   -- Infos obligatoires LOT1
217 204  
218   -- Supprimer un CREATED + Annuler cde + tobeordered=true + edit possible
219   -
220   -- Validation (LOT2 obligatoire) + invalider + edit LOT2
221 205  
222 206 ADMIN Dernier modificateur = Gestionnaire de ref.
223 207  
224 208 Ancien seuil 800€ doit rester valable pour anciens matos
225 209  
226   -Partager les imprimantes de Jean-Louis (pour Roche) et Carole (pour Belin)
  210 +
227 211  
228 212 Responsable = groupe métier, ou projet, ou pôle (PIME), MAIS PAS thématique
229 213  
230   -Bug groupe thématique dans groupe metier sur fiche materiel (+ virer “code comptable” et changer le nom des champs eotp, ajouter ligne budgétaire…)
  214 +Bug groupe thématique dans groupe metier sur fiche materiel
  215 +(+ virer “code comptable” et changer le nom des champs eotp, ajouter ligne budgétaire…)
231 216  
232 217 Procédure accueil :
233 218 >=10K obligatoire (inventaire comptable)
... ... @@ -244,21 +229,20 @@ A commander sur le(s) budget(s) :
244 229 Devis en pièce jointe
245 230  
246 231  
247   -GEPI (Laurence)
248 232  
249 233 Nouvelle fiche matos :
250 234 Bouton “Commander”
251 235 => Si ADMIN, devient “Enregistrer” (et pas de mail envoyé)
252 236 Menu Matos/Nouveau materiel => ADMIN only
253 237  
254   -Commander etiqueteuses
  238 +
255 239  
256 240  
257 241 Bugfix : un profil Utilisateur ne doit pas pouvoir changer l’acheteur (acheteur = lui) !!!
258 242  
259   -User = Acheteur
260 243  
261   -Modif possible sans devoir dévalider/revalider
  244 +
  245 +
262 246  
263 247 Outils : voir/gérer ?
264 248  
... ... @@ -277,32 +261,58 @@ Voir Mes matériels (que j’ai achetés)
277 261 Voir les Matériels que j’utilise (find sur champ utilisateur)
278 262 (admin) Voir Matériels à commander (tous les TOBEORDERED qui sont à mon nom de gestionnaire ET qui ont (date-cde null OU num-BC null)
279 263 (admin) “Voir toutes les commandes en cours”
280   -(admin) “Voir les matériels ‘zombie’” (materiels CREATED depuis longtemps, et toujours pas ORDERED => sans doute à virer (pour ne pas fausser les stats...)
  264 +(admin) “Voir les matériels ‘zombie’” (materiels CREATED depuis longtemps, et toujours pas ORDERED ou VALIDATED => sans doute à virer (pour ne pas fausser les stats...)
281 265 (admin) Voir matos à archiver
282 266  
283 267  
284 268  
285   -TAG version 3.7.9 finale ANCIEN workflow
286 269  
287 270  
288   -Install DCD sur postes :
  271 +
  272 +
  273 +
  274 +
  275 +======= TODO1 - BUGFIXES (ou TRES URGENT) =======
  276 +
  277 +- (MT) Install locale, puis répondre stagiaire
  278 +
  279 +DB complète à mettre à jour
  280 +- install GEPI
  281 +
  282 +User = Acheteur
  283 +
  284 +(Elodie) Install DCD sur postes :
  285 +- Carole (+titreuse)
289 286 - Marjorie et Dorine en premier lieu.
290 287 - Quand elles reviendront : Nathalie et Joëlle.
  288 +- Partager les imprimantes de Jean-Louis (pour Roche) et Carole (pour Belin)
291 289  
292   -Install DOCKER
293 290  
294   -Install WSL2 sur pc
  291 +TAG version 3.7.9 finale ANCIEN workflow
295 292  
  293 +- technique/admin inutile
296 294  
297   -======= TODO1 - BUGFIXES (TRES URGENT) =======
298 295  
  296 +Commencer à implémenter le nouveau workflow v5 :
  297 +- Gestionnaire de ref : + “Je ne sais pas”
  298 +- lot1 toujours obligatoire (en dur dans Table), LOT2 = ssi status > CREATED (géré via soft dans add_edit(), la vue ne doit rien gérer du tout !)
  299 +- Infos obligatoires LOT1
  300 +- Commande directe ou seulement pour inventaire : "Enregistrer & Commander" et "Enregistrer seulement"
  301 +- Supprimer un CREATED + Annuler cde + tobeordered=true + edit possible
  302 +- Validation (LOT2 obligatoire) + invalider + edit LOT2
299 303  
300 304  
301 305  
302 306 ======= CHANGES =======
303 307  
304 308 -------
305   -30/11/2020 v4.107.24-3.7.9
  309 +01/12/2020 v4.107.25-3.7.9 (total projet : 357367 lignes)
  310 + - Mise à jour (update et cleanup) du script de création COMPLET de la BD (structure)
  311 + - Mise à jour (cleanup) du script d'installation du projet
  312 + - A tester : install from scratch
  313 +
  314 +-------
  315 +30/11/2020 v4.107.24-3.7.9 (total projet : 357367 lignes)
306 316 - (b) Bugfix Recherche matériels : bug sur tri par numéro d'inventaire
307 317 - (i) Gros ménage fait dans la doc technique, séparation en 3 documentations :
308 318 => 1) Installation
... ...
README.md
... ... @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes :
52 52  
53 53 --------------------------------------------------------------------------------------------
54 54  
55   -Date: 30/11/2020
56   -Version: 4.107.24-3.7.9
  55 +Date: 01/12/2020
  56 +Version: 4.107.25-3.7.9
57 57  
58 58  
59 59 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
... ...
database/create_database.sql renamed to database/DB1_create_database_and_users.sql
... ... @@ -62,3 +62,11 @@ flush privileges;
62 62 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
63 63 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
64 64 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
  65 +
  66 +
  67 +
  68 +USE _mydb_;
  69 +
  70 +-- Est-ce bien utile ?
  71 +SET FOREIGN_KEY_CHECKS = 0;
  72 +
... ...
database/create_tables.sql renamed to database/DB2_create_tables.sql
1 1  
2   -USE _mydb_;
  2 +-- --------------------------------------------------------
  3 +
  4 +-- (EP 01/12/2020)
  5 +-- DUMP FAIT A PARTIR DE PHPMYADMIN (EP) :
  6 +-- Il faut seulement la STRUCTURE (COCHER la colonne "Structure" et DÉCOCHER la colonne "Données")
  7 +-- Tout en bas, COCHER "Ajouter une instruction DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER"
  8 +-- ("pour avoir des drop if exists")
  9 +-- Enfin, DÉCOCHER tout en bas "Entourer les noms des tables et des colonnes par des guillemets"
  10 +-- (Les data minimum par défaut sont insérées ensuite via le script DB3_insert_tables_default_mandatory_data.sql)
  11 +
  12 +-- ATTENTION, il faut quand meme ajouter 2 choses tout a la fin de ce fichier :
  13 +-- 1) S'il est absent, ajouter le commit transaction
  14 +-- COMMIT;
  15 +-- 2) Je ne sais pas si c'est absolument utile ou pas...
  16 +-- autocommit pour la suite (insert data)
  17 +-- SET AUTOCOMMIT = 1;
  18 +
  19 +-- (Voir la fin de ce fichier)
  20 +
  21 +-- --------------------------------------------------------
3 22  
4   --- Est-ce bien utile ?
5   -SET FOREIGN_KEY_CHECKS = 0;
6 23  
7 24  
8 25  
9 26  
10 27  
11   --- --------------------------------------------------------
12   --- (EP 12/06/19)
13   --- DUMP FAIT A PARTIR DE PHPMYADMIN (EP) - STRUCTURE ONLY, NO INSERT DATA
14   --- (Les data minimum par défaut sont insérées ensuite via le script insert_tables_default_data_general.sql)
15   --- --------------------------------------------------------
16 28  
17 29 -- phpMyAdmin SQL Dump
18 30 -- version 4.8.4
19 31 -- https://www.phpmyadmin.net/
20 32 --
21 33 -- Hôte : 127.0.0.1
22   --- Généré le : mer. 12 juin 2019 à 16:08
23   --- Version du serveur : 10.3.12-MariaDB
24   --- Version de PHP : 7.3.1
  34 +-- Généré le : mar. 01 déc. 2020 à 16:12
  35 +-- Version du serveur : 10.5.6-MariaDB
  36 +-- Version de PHP : 7.2.33
25 37  
26 38 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
27   -SET time_zone = "+00:00";
28 39 SET AUTOCOMMIT = 0;
29 40 START TRANSACTION;
  41 +SET time_zone = "+00:00";
  42 +
  43 +
  44 +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  45 +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  46 +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  47 +/*!40101 SET NAMES utf8mb4 */;
30 48  
31 49 --
32 50 -- Base de données : labinvent
... ... @@ -42,6 +60,7 @@ DROP TABLE IF EXISTS categories;
42 60 CREATE TABLE categories (
43 61 id int(11) NOT NULL,
44 62 nom varchar(45) NOT NULL COMMENT 'obligatoire (et unique)',
  63 + description text DEFAULT NULL,
45 64 sur_categorie_id int(11) NOT NULL
46 65 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
47 66  
... ... @@ -57,6 +76,7 @@ CREATE TABLE configurations (
57 76 nom varchar(45) NOT NULL COMMENT 'obligatoire (et unique)',
58 77 mode_install tinyint(1) DEFAULT 1,
59 78 mode_debug tinyint(1) DEFAULT 0,
  79 + mode_nolimit tinyint(1) NOT NULL DEFAULT 0 COMMENT 'superadmin a tous les droits',
60 80 labNameShort varchar(10) DEFAULT NULL,
61 81 labPresent varchar(10) DEFAULT NULL,
62 82 labUmr varchar(30) DEFAULT NULL,
... ... @@ -101,7 +121,6 @@ CREATE TABLE configurations (
101 121 ldap_cache_validity_duration int(11) NOT NULL DEFAULT 60
102 122 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
103 123  
104   -
105 124 -- --------------------------------------------------------
106 125  
107 126 --
... ... @@ -129,6 +148,7 @@ CREATE TABLE documents (
129 148 DROP TABLE IF EXISTS emprunts;
130 149 CREATE TABLE emprunts (
131 150 id int(11) NOT NULL,
  151 + nom varchar(45) DEFAULT NULL,
132 152 materiel_id int(11) NOT NULL,
133 153 date_emprunt date DEFAULT NULL,
134 154 date_retour_emprunt date DEFAULT NULL,
... ... @@ -222,7 +242,8 @@ CREATE TABLE formules (
222 242 DROP TABLE IF EXISTS fournisseurs;
223 243 CREATE TABLE fournisseurs (
224 244 id int(11) NOT NULL,
225   - nom varchar(45) DEFAULT NULL
  245 + nom varchar(45) DEFAULT NULL,
  246 + description text DEFAULT NULL
226 247 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
227 248  
228 249 -- --------------------------------------------------------
... ... @@ -235,7 +256,7 @@ DROP TABLE IF EXISTS groupes_metiers;
235 256 CREATE TABLE groupes_metiers (
236 257 id int(11) NOT NULL,
237 258 nom varchar(45) DEFAULT NULL,
238   - description varchar(100) DEFAULT NULL
  259 + description text DEFAULT NULL
239 260 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
240 261  
241 262 -- --------------------------------------------------------
... ... @@ -248,7 +269,7 @@ DROP TABLE IF EXISTS groupes_thematiques;
248 269 CREATE TABLE groupes_thematiques (
249 270 id int(11) NOT NULL,
250 271 nom varchar(45) DEFAULT NULL,
251   - description varchar(100) DEFAULT NULL
  272 + description text DEFAULT NULL
252 273 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
253 274  
254 275 -- --------------------------------------------------------
... ... @@ -261,6 +282,7 @@ DROP TABLE IF EXISTS materiels;
261 282 CREATE TABLE materiels (
262 283 id int(11) NOT NULL,
263 284 designation varchar(50) DEFAULT NULL,
  285 + will_stay tinyint(1) NOT NULL DEFAULT 1 COMMENT 'ce materiel restera au labo ?',
264 286 sur_categorie_id int(11) DEFAULT NULL,
265 287 categorie_id int(11) DEFAULT NULL,
266 288 sous_categorie_id int(11) DEFAULT NULL,
... ... @@ -269,19 +291,22 @@ CREATE TABLE materiels (
269 291 materiel_administratif tinyint(1) DEFAULT NULL,
270 292 materiel_technique tinyint(1) DEFAULT NULL,
271 293 status varchar(15) DEFAULT 'CREATED',
  294 + date_validated date DEFAULT NULL,
  295 + date_archived date DEFAULT NULL,
272 296 date_acquisition date DEFAULT NULL,
273   - prix_ht float UNSIGNED DEFAULT NULL,
  297 + prix_ht decimal(13,2) DEFAULT NULL,
274 298 eotp varchar(45) DEFAULT NULL,
275 299 numero_commande varchar(45) DEFAULT NULL,
276 300 code_comptable varchar(45) DEFAULT NULL,
277 301 numero_serie varchar(45) DEFAULT NULL,
278 302 groupes_thematique_id int(11) DEFAULT NULL,
279 303 groupes_metier_id int(11) DEFAULT NULL,
  304 + projet_id int(11) DEFAULT NULL,
280 305 numero_inventaire_organisme varchar(45) DEFAULT NULL,
281 306 numero_inventaire_old varchar(45) DEFAULT NULL COMMENT 'Ancien numero inventaire',
282   - date_archivage date DEFAULT NULL,
283 307 etiquette tinyint(1) DEFAULT 0 COMMENT 'etiquette sur materiel oui ou non',
284 308 lieu_detail varchar(45) DEFAULT NULL,
  309 + nom_user varchar(45) DEFAULT NULL COMMENT 'Le destinataire utilisateur du matos',
285 310 nom_responsable varchar(45) DEFAULT NULL,
286 311 email_responsable varchar(45) DEFAULT NULL,
287 312 gestionnaire_id int(11) DEFAULT NULL,
... ... @@ -291,7 +316,7 @@ CREATE TABLE materiels (
291 316 modified datetime DEFAULT NULL COMMENT 'date et heure de modif de la fiche',
292 317 date_reception date DEFAULT NULL,
293 318 organisme_id int(11) DEFAULT NULL,
294   - site_id int(11) DEFAULT 2,
  319 + site_id int(11) DEFAULT NULL,
295 320 date_fin_garantie date DEFAULT NULL,
296 321 duree_garantie int(10) DEFAULT NULL,
297 322 unite_duree_garantie varchar(30) DEFAULT NULL,
... ... @@ -324,7 +349,8 @@ CREATE TABLE mesures (
324 349 DROP TABLE IF EXISTS organismes;
325 350 CREATE TABLE organismes (
326 351 id int(11) NOT NULL,
327   - nom varchar(50) DEFAULT NULL
  352 + nom varchar(50) DEFAULT NULL,
  353 + description text DEFAULT NULL
328 354 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
329 355  
330 356 -- --------------------------------------------------------
... ... @@ -345,13 +371,32 @@ CREATE TABLE phinxlog (
345 371 -- --------------------------------------------------------
346 372  
347 373 --
  374 +-- Structure de la table projets
  375 +--
  376 +
  377 +DROP TABLE IF EXISTS projets;
  378 +CREATE TABLE projets (
  379 + id int(11) NOT NULL,
  380 + nom varchar(45) NOT NULL,
  381 + description text DEFAULT NULL,
  382 + groupes_thematique_id int(11) DEFAULT NULL,
  383 + chef_science_id int(11) DEFAULT NULL,
  384 + chef_projet_id int(11) DEFAULT NULL,
  385 + date_start date DEFAULT NULL,
  386 + date_stop date DEFAULT NULL
  387 +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  388 +
  389 +-- --------------------------------------------------------
  390 +
  391 +--
348 392 -- Structure de la table sites
349 393 --
350 394  
351 395 DROP TABLE IF EXISTS sites;
352 396 CREATE TABLE sites (
353 397 id int(11) NOT NULL,
354   - nom varchar(50) DEFAULT NULL
  398 + nom varchar(50) DEFAULT NULL,
  399 + description text DEFAULT NULL
355 400 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
356 401  
357 402 -- --------------------------------------------------------
... ... @@ -364,12 +409,30 @@ DROP TABLE IF EXISTS sous_categories;
364 409 CREATE TABLE sous_categories (
365 410 id int(11) NOT NULL,
366 411 nom varchar(45) NOT NULL,
  412 + description text DEFAULT NULL,
367 413 categorie_id int(11) NOT NULL
368 414 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
369 415  
370 416 -- --------------------------------------------------------
371 417  
372 418 --
  419 +-- Structure de la table stats
  420 +--
  421 +
  422 +DROP TABLE IF EXISTS stats;
  423 +CREATE TABLE stats (
  424 + year year(4) NOT NULL,
  425 + user_id int(11) NOT NULL,
  426 + last_login_time datetime DEFAULT NULL,
  427 + last_connex_dur int(11) NOT NULL DEFAULT 0 COMMENT 'Temps de connexion de la derniere session',
  428 + last_logout_time datetime DEFAULT NULL,
  429 + connex_nb int(11) NOT NULL DEFAULT 0 COMMENT 'nb connexions sur l''année',
  430 + connex_dur_tot int(11) NOT NULL DEFAULT 0 COMMENT 'Total temps connexion cumulé sur année (sec)'
  431 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Statistiques de connexion des utilisateurs';
  432 +
  433 +-- --------------------------------------------------------
  434 +
  435 +--
373 436 -- Structure de la table suivis
374 437 --
375 438  
... ... @@ -381,7 +444,7 @@ CREATE TABLE suivis (
381 444 date_prochain_controle date DEFAULT NULL,
382 445 organisme varchar(50) DEFAULT NULL,
383 446 frequence int(11) DEFAULT NULL,
384   - commentaire varchar(100) DEFAULT NULL,
  447 + commentaire text DEFAULT NULL,
385 448 nom_createur varchar(45) DEFAULT NULL COMMENT 'nom du createur de la fiche',
386 449 nom_modificateur varchar(45) DEFAULT NULL COMMENT 'nom du modificateur de la fiche',
387 450 created datetime DEFAULT NULL COMMENT 'date et heure de creation de la fiche',
... ... @@ -402,7 +465,7 @@ CREATE TABLE suivis (
402 465 intitule varchar(100) DEFAULT NULL,
403 466 conforme varchar(100) DEFAULT NULL,
404 467 formule_id int(11) DEFAULT NULL,
405   - type_suivi_id int(11) DEFAULT NULL,
  468 + type_suivi_id int(11) NOT NULL DEFAULT 1,
406 469 type_frequence varchar(30) DEFAULT NULL,
407 470 panne_resolu tinyint(1) DEFAULT 1,
408 471 groupes_metier_id int(11) DEFAULT NULL,
... ... @@ -419,7 +482,8 @@ CREATE TABLE suivis (
419 482 DROP TABLE IF EXISTS sur_categories;
420 483 CREATE TABLE sur_categories (
421 484 id int(11) NOT NULL,
422   - nom varchar(45) NOT NULL
  485 + nom varchar(45) NOT NULL,
  486 + description text DEFAULT NULL
423 487 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
424 488  
425 489 -- --------------------------------------------------------
... ... @@ -431,10 +495,10 @@ CREATE TABLE sur_categories (
431 495 DROP TABLE IF EXISTS type_documents;
432 496 CREATE TABLE type_documents (
433 497 id int(11) NOT NULL,
434   - nom varchar(100) DEFAULT NULL
  498 + nom varchar(100) DEFAULT NULL,
  499 + description text DEFAULT NULL
435 500 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
436 501  
437   -
438 502 -- --------------------------------------------------------
439 503  
440 504 --
... ... @@ -444,7 +508,10 @@ CREATE TABLE type_documents (
444 508 DROP TABLE IF EXISTS type_suivis;
445 509 CREATE TABLE type_suivis (
446 510 id int(11) NOT NULL,
447   - nom varchar(50) DEFAULT NULL
  511 + nom varchar(50) DEFAULT NULL,
  512 + description text DEFAULT NULL,
  513 + is_regular tinyint(1) NOT NULL DEFAULT 0 COMMENT 'suivi de type régulier (avec fréquence et non pas date)',
  514 + is_metro tinyint(1) NOT NULL DEFAULT 0 COMMENT 'type de suivi lié au module métrologie'
448 515 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
449 516  
450 517 -- --------------------------------------------------------
... ... @@ -476,8 +543,10 @@ CREATE TABLE users (
476 543 email varchar(45) DEFAULT NULL,
477 544 role varchar(45) DEFAULT NULL,
478 545 groupes_metier_id int(11) DEFAULT NULL,
  546 + is_resp_groupes_metier tinyint(1) NOT NULL DEFAULT 0 COMMENT 'responsable du groupe metier o/n',
479 547 password varchar(255) DEFAULT '$2y$10$nBQMNstgN.sgad1ZANznY.pbJI.ZG/.Q5qX4gC8SXCFQnDIZC8rcW',
480   - groupe_thematique_id int(11) DEFAULT NULL,
  548 + groupes_thematique_id int(11) DEFAULT NULL,
  549 + is_resp_groupes_thematique tinyint(1) NOT NULL DEFAULT 0 COMMENT 'responsable du groupe thematique o/n',
481 550 sur_categorie_id int(11) DEFAULT NULL
482 551 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
483 552  
... ... @@ -538,7 +607,8 @@ ALTER TABLE emprunts
538 607 -- Index pour la table fakeldapusers
539 608 --
540 609 ALTER TABLE fakeldapusers
541   - ADD PRIMARY KEY (id);
  610 + ADD PRIMARY KEY (id),
  611 + ADD UNIQUE KEY uid (uid);
542 612  
543 613 --
544 614 -- Index pour la table fichemetrologiques
... ... @@ -564,13 +634,15 @@ ALTER TABLE fournisseurs
564 634 -- Index pour la table groupes_metiers
565 635 --
566 636 ALTER TABLE groupes_metiers
567   - ADD PRIMARY KEY (id);
  637 + ADD PRIMARY KEY (id),
  638 + ADD UNIQUE KEY index_groupes_metiers_nom_unique (nom);
568 639  
569 640 --
570 641 -- Index pour la table groupes_thematiques
571 642 --
572 643 ALTER TABLE groupes_thematiques
573   - ADD PRIMARY KEY (id);
  644 + ADD PRIMARY KEY (id),
  645 + ADD UNIQUE KEY index_groupes_thematiques_nom_unique (nom);
574 646  
575 647 --
576 648 -- Index pour la table materiels
... ... @@ -579,13 +651,14 @@ ALTER TABLE materiels
579 651 ADD PRIMARY KEY (id),
580 652 ADD UNIQUE KEY numero_irap (numero_laboratoire),
581 653 ADD KEY fk_administrative_materials_sub_categories1 (sous_categorie_id),
582   - ADD KEY fk_materials_thematic_group1 (groupes_thematique_id),
583   - ADD KEY fk_materials_work_group1 (groupes_metier_id),
584 654 ADD KEY fk_materiels_categories1 (categorie_id),
585   - ADD KEY fk_materiels_sur_categorie_id (sur_categorie_id),
586 655 ADD KEY fk_materiels_organisme_id (organisme_id),
587 656 ADD KEY fk_materiels_site_id (site_id),
588 657 ADD KEY fk_materiels_fournisseurs_id_idx (fournisseur_id),
  658 + ADD KEY fk_materiels_projet_id (projet_id),
  659 + ADD KEY fk_materiels_sur_categorie_id (sur_categorie_id),
  660 + ADD KEY fk_materials_thematic_group1 (groupes_thematique_id),
  661 + ADD KEY fk_materials_work_group1 (groupes_metier_id),
589 662 ADD KEY fk_materiels_gestionnaire_id (gestionnaire_id);
590 663  
591 664 --
... ... @@ -599,7 +672,8 @@ ALTER TABLE mesures
599 672 -- Index pour la table organismes
600 673 --
601 674 ALTER TABLE organismes
602   - ADD PRIMARY KEY (id);
  675 + ADD PRIMARY KEY (id),
  676 + ADD UNIQUE KEY index_organismes_nom_unique (nom);
603 677  
604 678 --
605 679 -- Index pour la table phinxlog
... ... @@ -608,10 +682,19 @@ ALTER TABLE phinxlog
608 682 ADD PRIMARY KEY (version);
609 683  
610 684 --
  685 +-- Index pour la table projets
  686 +--
  687 +ALTER TABLE projets
  688 + ADD PRIMARY KEY (id),
  689 + ADD UNIQUE KEY nom (nom),
  690 + ADD KEY fk_projets_groupes_thematique_id (groupes_thematique_id);
  691 +
  692 +--
611 693 -- Index pour la table sites
612 694 --
613 695 ALTER TABLE sites
614   - ADD PRIMARY KEY (id);
  696 + ADD PRIMARY KEY (id),
  697 + ADD UNIQUE KEY nom (nom);
615 698  
616 699 --
617 700 -- Index pour la table sous_categories
... ... @@ -621,6 +704,14 @@ ALTER TABLE sous_categories
621 704 ADD KEY category_id (categorie_id);
622 705  
623 706 --
  707 +-- Index pour la table stats
  708 +--
  709 +ALTER TABLE stats
  710 + ADD PRIMARY KEY (year,user_id),
  711 + ADD KEY fk_stats_users (user_id),
  712 + ADD KEY index_stats_year (year);
  713 +
  714 +--
624 715 -- Index pour la table suivis
625 716 --
626 717 ALTER TABLE suivis
... ... @@ -643,13 +734,15 @@ ALTER TABLE sur_categories
643 734 -- Index pour la table type_documents
644 735 --
645 736 ALTER TABLE type_documents
646   - ADD PRIMARY KEY (id);
  737 + ADD PRIMARY KEY (id),
  738 + ADD UNIQUE KEY index_type_documents_nom_unique (nom) USING BTREE;
647 739  
648 740 --
649 741 -- Index pour la table type_suivis
650 742 --
651 743 ALTER TABLE type_suivis
652   - ADD PRIMARY KEY (id);
  744 + ADD PRIMARY KEY (id),
  745 + ADD UNIQUE KEY nom (nom);
653 746  
654 747 --
655 748 -- Index pour la table unites
... ... @@ -662,9 +755,10 @@ ALTER TABLE unites
662 755 --
663 756 ALTER TABLE users
664 757 ADD PRIMARY KEY (id),
665   - ADD KEY fk_users_groupes_travails1 (groupes_metier_id),
666   - ADD KEY fk_users_groupe_thematique_id (groupe_thematique_id),
667   - ADD KEY fk_users_sur_categories_id_idx (sur_categorie_id);
  758 + ADD UNIQUE KEY username (username),
  759 + ADD UNIQUE KEY nom (nom),
  760 + ADD KEY fk_users_sur_categories_id_idx (sur_categorie_id),
  761 + ADD KEY fk_users_groupe_thematique_id (groupes_thematique_id);
668 762  
669 763 --
670 764 -- Index pour la table `variables`
... ... @@ -687,7 +781,7 @@ ALTER TABLE categories
687 781 -- AUTO_INCREMENT pour la table configurations
688 782 --
689 783 ALTER TABLE configurations
690   - MODIFY id int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
  784 + MODIFY id int(11) NOT NULL AUTO_INCREMENT;
691 785  
692 786 --
693 787 -- AUTO_INCREMENT pour la table documents
... ... @@ -756,6 +850,12 @@ ALTER TABLE organismes
756 850 MODIFY id int(11) NOT NULL AUTO_INCREMENT;
757 851  
758 852 --
  853 +-- AUTO_INCREMENT pour la table projets
  854 +--
  855 +ALTER TABLE projets
  856 + MODIFY id int(11) NOT NULL AUTO_INCREMENT;
  857 +
  858 +--
759 859 -- AUTO_INCREMENT pour la table sites
760 860 --
761 861 ALTER TABLE sites
... ... @@ -783,7 +883,7 @@ ALTER TABLE sur_categories
783 883 -- AUTO_INCREMENT pour la table type_documents
784 884 --
785 885 ALTER TABLE type_documents
786   - MODIFY id int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;
  886 + MODIFY id int(11) NOT NULL AUTO_INCREMENT;
787 887  
788 888 --
789 889 -- AUTO_INCREMENT pour la table type_suivis
... ... @@ -843,18 +943,31 @@ ALTER TABLE materiels
843 943 ADD CONSTRAINT fk_materials_work_group1 FOREIGN KEY (groupes_metier_id) REFERENCES groupes_metiers (id) ON DELETE NO ACTION ON UPDATE NO ACTION,
844 944 ADD CONSTRAINT fk_materiels_categories1 FOREIGN KEY (categorie_id) REFERENCES categories (id) ON DELETE NO ACTION ON UPDATE NO ACTION,
845 945 ADD CONSTRAINT fk_materiels_fournisseurs_id FOREIGN KEY (fournisseur_id) REFERENCES fournisseurs (id) ON DELETE NO ACTION ON UPDATE NO ACTION,
846   - ADD CONSTRAINT fk_materiels_gestionnaire_id FOREIGN KEY (gestionnaire_id) REFERENCES `users` (id) ON DELETE SET NULL ON UPDATE NO ACTION,
  946 + ADD CONSTRAINT fk_materiels_gestionnaire_id FOREIGN KEY (gestionnaire_id) REFERENCES `users` (id) ON DELETE NO ACTION ON UPDATE NO ACTION,
847 947 ADD CONSTRAINT fk_materiels_organisme_id FOREIGN KEY (organisme_id) REFERENCES organismes (id) ON DELETE NO ACTION ON UPDATE NO ACTION,
  948 + ADD CONSTRAINT fk_materiels_projet_id FOREIGN KEY (projet_id) REFERENCES projets (id) ON DELETE SET NULL,
848 949 ADD CONSTRAINT fk_materiels_site_id FOREIGN KEY (site_id) REFERENCES sites (id) ON DELETE NO ACTION ON UPDATE NO ACTION,
849 950 ADD CONSTRAINT fk_materiels_sur_categorie_id FOREIGN KEY (sur_categorie_id) REFERENCES sur_categories (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
850 951  
851 952 --
  953 +-- Contraintes pour la table projets
  954 +--
  955 +ALTER TABLE projets
  956 + ADD CONSTRAINT fk_projets_groupes_thematique_id FOREIGN KEY (groupes_thematique_id) REFERENCES groupes_thematiques (id) ON DELETE SET NULL;
  957 +
  958 +--
852 959 -- Contraintes pour la table sous_categories
853 960 --
854 961 ALTER TABLE sous_categories
855 962 ADD CONSTRAINT category_id FOREIGN KEY (categorie_id) REFERENCES categories (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
856 963  
857 964 --
  965 +-- Contraintes pour la table stats
  966 +--
  967 +ALTER TABLE stats
  968 + ADD CONSTRAINT fk_stats_users FOREIGN KEY (user_id) REFERENCES `users` (id) ON DELETE CASCADE;
  969 +
  970 +--
858 971 -- Contraintes pour la table suivis
859 972 --
860 973 ALTER TABLE suivis
... ... @@ -869,13 +982,21 @@ ALTER TABLE suivis
869 982 -- Contraintes pour la table users
870 983 --
871 984 ALTER TABLE users
  985 + ADD CONSTRAINT fk_users_groupe_thematique_id FOREIGN KEY (groupes_thematique_id) REFERENCES groupes_thematiques (id) ON DELETE SET NULL ON UPDATE NO ACTION,
872 986 ADD CONSTRAINT fk_users_sur_categories_id FOREIGN KEY (sur_categorie_id) REFERENCES sur_categories (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
873 987  
874   -
875   -
876 988 -- commit transaction
877 989 COMMIT;
878 990  
  991 +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  992 +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  993 +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
  994 +
  995 +
  996 +
  997 +
  998 +
  999 +
  1000 +
879 1001 -- autocommit pour la suite (insert data)
880 1002 SET AUTOCOMMIT = 1;
881   -
... ...
database/insert_tables_default_data_general.sql renamed to database/DB3_insert_tables_default_data_mandatory.sql
... ... @@ -36,26 +36,25 @@ NULL, 1000,
36 36 --
37 37  
38 38 INSERT INTO type_suivis(nom) values ('Réparation');
39   -INSERT INTO sites(id, nom) values (9, 'N/A');
40 39  
41 40  
42 41 --
43 42 -- Insertion par défaut pour la table type_documents
44 43 --
45 44  
46   -INSERT INTO type_documents (id, nom) VALUES
47   -(1, 'N/A'),
48   -(2, 'Bon de commande'),
49   -(3, 'Bon de livraison'),
50   -(4, 'Photo'),
51   -(5, 'Documentation technique'),
52   -(6, 'Spécifications'),
53   -(7, 'CR de maintenance'),
54   -(8, 'CR d\'étalonnage'),
55   -(9, 'Suivi de panne'),
56   -(10, 'Certificat de garantie'),
57   -(11, 'Certificat de conformité'),
58   -(12, 'Manuel d\'utilisation'),
59   -(13, 'Devis');
  45 +INSERT INTO type_documents (nom) VALUES
  46 +('DEVIS'),
  47 +('BC (Bon de commande)'),
  48 +('BL (Bon de livraison)'),
  49 +('FACTURE'),
  50 +('Photo'),
  51 +('Documentation technique'),
  52 +('Spécifications'),
  53 +('CR de maintenance'),
  54 +("CR d'étalonnage"),
  55 +('Suivi de panne'),
  56 +('Certificat de garantie'),
  57 +('Certificat de conformité'),
  58 +("Manuel d'utilisation");
60 59  
61 60  
... ...
database/insert_tables_default_data_IRAP.sql renamed to database/DB4_insert_tables_default_data_IRAP_optional.sql
... ... @@ -9,12 +9,13 @@
9 9 -- ATTENTION : remplacer le nom "_mydb_" par le nom de votre base de donnée
10 10 use _mydb_;
11 11  
12   -INSERT INTO sur_categories (id, nom) VALUES (1, 'Electronique'),
13   -(2, 'Informatique'),
14   -(3, 'Instrumentation'),
15   -(4, 'Logistique'),
16   -(5, 'Mecanique'),
17   -(6, 'Optique');
  12 +INSERT INTO sur_categories (nom) VALUES
  13 +('Electronique'),
  14 +('Informatique'),
  15 +('Instrumentation'),
  16 +('Logistique'),
  17 +('Mecanique'),
  18 +('Optique');
18 19  
19 20 -- ---------------------------------------
20 21 --
... ... @@ -150,30 +151,28 @@ INSERT INTO `sous_categories` (`id`, `nom`, `categorie_id`) VALUES
150 151 -- Contenu de la table 'groupes_metiers'
151 152 --
152 153  
153   -INSERT INTO groupes_metiers (id, nom, description) VALUES
154   -(1, 'N/A', NULL),
155   -(2, 'GEDI', 'Electronique'),
156   -(3, 'GT2I', 'Informatique'),
157   -(4, 'GI', 'Instrumentation'),
158   -(5, 'GACL', 'Administration, gestion, logistique'),
159   -(6, 'GGPAQ', 'Gestion projet, Qualité'),
160   -(7, 'GM', 'Mécanique'),
161   -(8,'SI','Service Informatique'),
162   -(9, 'RS', 'Réseau Sismique');
  154 +INSERT INTO groupes_metiers (nom, description) VALUES
  155 +('GEDI', 'Electronique'),
  156 +('GT2I', 'Informatique'),
  157 +('GI', 'Instrumentation'),
  158 +('GACL', 'Administration, gestion, logistique'),
  159 +('GGPAQ', 'Gestion projet, Qualité'),
  160 +('GM', 'Mécanique'),
  161 +('SI', 'Service Informatique'),
  162 +('RS', 'Réseau Sismique');
163 163  
164 164 -- -----------------------------------------
165 165 --
166 166 -- Contenu de la table 'groupes_thematiques'
167 167 --
168 168  
169   -INSERT INTO groupes_thematiques (id, nom, description) VALUES
170   -(1, 'N/A', NULL),
171   -(2, 'PSE', NULL),
172   -(3, 'MICMAC', NULL),
173   -(4, 'GAHEC', NULL),
174   -(5, 'SISU', NULL),
175   -(6, 'SG', NULL),
176   -(7, 'GPPS', NULL);
  169 +INSERT INTO groupes_thematiques (nom, description) VALUES
  170 +('PSE', NULL),
  171 +('MICMAC', NULL),
  172 +('GAHEC', NULL),
  173 +('SISU', NULL),
  174 +('SG', NULL),
  175 +('GPPS', NULL);
177 176  
178 177 -- -------------------------------------------
179 178 --
... ...
database/insert_superadmin_user.sql renamed to database/DB5_insert_superadmin_user.sql
database/insert_fake_users.sql renamed to database/DB6_insert_fake_users_optional.sql
database/create_database_test.sql renamed to database/old/create_database_test.sql
database/create_tables_2019_05.sql renamed to database/old/create_tables_2019_05.sql
database/labinvent_mode_update.sql renamed to database/old/labinvent_mode_update.sql
database/BDD_schema.mwb renamed to database/schema/BDD_schema.mwb
No preview for this file type
database/BDD_schema.pdf renamed to database/schema/BDD_schema.pdf
No preview for this file type
database/BDD_schema.png renamed to database/schema/BDD_schema.png

367 KB

database/BDD_schema.svg renamed to database/schema/BDD_schema.svg
install/INSTALLATION.txt
... ... @@ -5,7 +5,7 @@ Veuillez plutôt suivre les instructions de la documentation technique en ligne
5 5  
6 6  
7 7  
8   -h1. Labinvent 2.0 (cakephp3) - Installation
  8 +h1. Labinvent 4.0 (cakephp3) - Installation
9 9  
10 10  
11 11 Cette page décrit la phase d'installation du logiciel.
... ...
install/installation.sh
... ... @@ -3,6 +3,12 @@
3 3 # Pour pouvoir ajouter les donnees IRAP (categories...) pendant l'installation, mettre à 1
4 4 INSTALL_DATA_IRAP=1
5 5  
  6 +# Chemins vers fichier de conf
  7 +cakephp_app_path=./
  8 +config_path=$cakephp_app_path/config
  9 +config_file=$config_path/app.php
  10 +default_config_file=$config_path/app.default.php
  11 +
6 12  
7 13  
8 14 # Le script peut-il continuer et créer les fichiers qui lui sont nécessaires ?
... ... @@ -293,19 +299,17 @@ echo "==> Utilisation en mode $mode"
293 299 echo
294 300 echo
295 301 echo "---------------------------------"
296   -echo "E - CONFIGURATION BASE DE DONNÉES"
  302 +echo "E - CRÉATION DU FICHIER DE CONSTRUCTION DE LA BASE DE DONNÉES (build.sql)"
297 303 echo "---------------------------------"
298 304  
299   -cakephpAppPath=./
300   -configPath=$cakephpAppPath/config
301   -dbConfigFile=$configPath/app.php
302   -myConfigFile=$configPath/app.php
303   -configFile=$configPath/app.php
304 305  
305   -# If INSTALL mode => copy sample GENERAL config file to real personal file (make a copy first if already exists !)
306   -[[ -f $myConfigFile ]] && cp -p $myConfigFile $myConfigFile.ORIG
307   -[[ $mode == "install" ]] && cp $configPath/app.default.php $myConfigFile
  306 +# - Copie perso du fichier de config par défaut (Si INSTALL mode)
  307 +# (on crée une copie privée (perso) du fichier de config par défaut (sauvegarde aussi la version existante))
  308 +[[ -f $config_file ]] && cp -p $config_file $config_file.ORIG
  309 +[[ $mode == "install" ]] && cp $default_config_file $config_file
  310 +#[[ $mode == "install" ]] && cp $config_path/app.default.php $config_file
308 311  
  312 +# - (re)-Création de la BD ?
309 313 echo
310 314 while : ; do
311 315 echo "Voulez-vous (re-)créer la base de données (default=N) [O/N] ?"
... ... @@ -315,12 +319,12 @@ while : ; do
315 319 done
316 320 BDD=$rep
317 321 if [[ $BDD == "O" ]] ; then
318   - echo "==> La BDD sera (re-)créée"
  322 + echo "==> La BD sera (re-)créée"
319 323 else
320   - echo "==> Pas de création de la base de donnees (la BD existe déjà)"
  324 + echo "==> Pas de création de la BD (ce qui suppose qu'elle existe déjà)"
321 325 fi
322 326  
323   -# Set database ip
  327 +# - Set database ip
324 328 echo
325 329 echo "Entrez le nom ou l'adresse du serveur MySQL hebergeant la base de donnees (defaut=localhost) :"
326 330 read bddIp
... ... @@ -328,14 +332,17 @@ if [ -z $bddIp ] ; then
328 332 bddIp="localhost"
329 333 fi
330 334 echo "==> Adresse du serveur MySql = $bddIp"
  335 +#sed -e "s#/\*d\*/'host' => 'localhost'//\*d\*/'host' => '$bddIp'/" -i $config_file
  336 +sed -e "s/\*d\*\/'host' => 'localhost'/\*d\*\/'host' => '$bddIp'/" -i $config_file
331 337  
  338 +# - Set Mysql login
332 339 echo
333 340 if [[ $BDD == "O" ]] ; then
334 341 echo "Entrez le login privilegie vous donnant le droit de CREER des bases de donnees"
335 342 echo "(ce login ne sera utilisé qu'une seule fois, pour la creation des bases)"
336 343 #echo "Si vous n'avez pas la permission de créer de nouvelles bases sur le serveur mais souhaitez installer le logiciel dans une base existante, entrez 'latmos'"
337 344 echo "Si vous n'avez pas la permission de créer de nouvelles bases sur le serveur mais souhaitez installer le logiciel dans une base existante, entrez 'bd_existante'"
338   - echo "(defaut=root) [root/bd_existante/...] :"
  345 + echo "(defaut=root) [root/bd_existante/...] :"
339 346 read bddAdminName
340 347 if [ -z $bddAdminName ] ; then
341 348 bddAdminName="root"
... ... @@ -346,142 +353,147 @@ if [[ $BDD == "O" ]] ; then
346 353 read -s bddAdminPass
347 354 fi
348 355  
349   -# Configuration BD test et prod dans fichier config/app.php
350   -
351   -# - BD prod
352   -
353   -#sed -e "s#/\*d\*/'host' => 'localhost'//\*d\*/'host' => '$bddIp'/" -i $dbConfigFile
354   -sed -e "s/\*d\*\/'host' => 'localhost'/\*d\*\/'host' => '$bddIp'/" -i $dbConfigFile
355   -
356   -echo
357   -echo "Entrez le nom de la BDD à utiliser pour l'inventaire (defaut=labinvent) :"
358   -read bddName
359   -if [ -z $bddName ] ; then bddName="labinvent" ; fi
360   -echo "==> Nom de la BDD = $bddName"
361   -echo
362   -sed -e "s/'database' => 'database'/'database' => '$bddName'/" -i $dbConfigFile
363   -
364   -# - BD test
365   -
366   -default_test_db_name="test_labinvent2"
367   -echo "Entrez maintenant le nom de la BDD de TEST à utiliser pour l'inventaire (defaut=$default_test_db_name) :"
368   -read bddName_test
369   -if [ -z $bddName_test ] ; then bddName_test=$default_test_db_name ; fi
370   -echo "==> Nom de la BDD de test = $bddName_test"
371   -sed -e "s/'database' => 'test_database'/'database' => '$bddName_test'/" -i $dbConfigFile
372   -sed -e "s/'username' => 'test_username'/'username' => 'superadmin'/" -i $dbConfigFile
373   -sed -e "s/'password' => 'test_password'/'password' => 'superadmin'/" -i $dbConfigFile
374   -
375   -
376   -# Attention, le login doit faire maximum 16 caracteres, car Mysql ne supporte pas plus
377   -defaultBddUserName=${bddName:0:12}user
  356 +# - Nom de la BD prod
  357 +default="labinvent"
  358 +echo
  359 +echo "Entrez le nom de la BD à utiliser pour l'inventaire (defaut=$default) :"
  360 +read answer
  361 +if [ -z $answer ] ; then answer=$default ; fi
  362 +bddName=$answer
  363 +echo "==> Nom de la BD = $bddName"
  364 +echo
  365 +sed -e "s/'database' => 'database'/'database' => '$bddName'/" -i $config_file
  366 +
  367 +# - Nom de la BD test
  368 +#default="test_labinvent2"
  369 +default="test_labinvent"
  370 +echo "Entrez maintenant le nom de la BD de TEST à utiliser (pour l'exécution des tests) (defaut=$default) :"
  371 +read answer
  372 +if [ -z $answer ] ; then answer=$default ; fi
  373 +bddName_test=$answer
  374 +echo "==> Nom de la BD de test = $bddName_test"
  375 +sed -e "s/'database' => 'test_database'/'database' => '$bddName_test'/" -i $config_file
  376 +sed -e "s/'username' => 'test_username'/'username' => 'superadmin'/" -i $config_file
  377 +sed -e "s/'password' => 'test_password'/'password' => 'superadmin'/" -i $config_file
  378 +
  379 +# - Set login (+ pass) de l'application pour accéder à la BD (lecture/ecriture)
  380 +# (Attention, le login doit faire maximum 16 caracteres, car Mysql ne supporte pas plus)
  381 +# -- login
  382 +default=${bddName:0:12}user
378 383 echo
379 384 echo "Entrez le login qui doit etre cree pour que le logiciel puisse avoir acces a la base de donnees inventaire."
380 385 echo "Ce login sera utilisé par le logiciel pour acceder et modifier la BD d'inventaire."
381 386 echo "Attention, il ne s'agit pas d'un utilisateur humain, mais d'un login associe au logiciel, il peut donc porter le nom du logiciel par exemple."
382   -echo "Ce login doit faire 16 caracteres MAX (defaut=$defaultBddUserName) :"
383   -read bddUserName
384   -if [ -z $bddUserName ] ; then bddUserName=$defaultBddUserName ; fi
385   -echo "==> BDD inventaire user login = $bddUserName"
386   -sed -e "s/'username' => 'username'/'username' => '$bddUserName'/" -i $dbConfigFile
387   -sed -e "s/'username' => 'superadmin'/'username' => '$bddUserName'/" -i $dbConfigFile
388   -
  387 +echo "Ce login doit faire 16 caracteres MAX (defaut=$default) :"
  388 +read answer
  389 +if [ -z $answer ] ; then answer=$default ; fi
  390 +bddUserName=$answer
  391 +echo "==> BD inventaire user login = $bddUserName"
  392 +# Pourquoi 2 fois la même chose ???
  393 +sed -e "s/'username' => 'username'/'username' => '$bddUserName'/" -i $config_file
  394 +sed -e "s/'username' => 'superadmin'/'username' => '$bddUserName'/" -i $config_file
  395 +# -- pass
389 396 echo
390 397 echo "Entrez le mot de passe de cet utilisateur :"
391 398 read -s bddUserPass
392 399 echo "==> BDD inventaire user pass = $bddUserPass"
393   -sed -e "s/'password' => 'password'/'password' => '$bddUserPass'/" -i $dbConfigFile
394   -sed -e "s/'password' => 'superadmin'/'password' => '$bddUserPass'/" -i $dbConfigFile
  400 +sed -e "s/'password' => 'password'/'password' => '$bddUserPass'/" -i $config_file
  401 +sed -e "s/'password' => 'superadmin'/'password' => '$bddUserPass'/" -i $config_file
  402 +
395 403  
396   -# DATABASE INSTALLATION
  404 +# - Création du Script de construction "build.sql"
397 405  
398 406 #if [ $BDD == "N" ] ; then
399 407 # #Structure de la base de test présente dans le fichier "labinvent_mode_update.sql"
400 408 # cat ./labinvent_mode_update.sql > ./build_update.sql
401 409 # mysql --user=$bddAdminName --password=$bddAdminPass -h $bddIp < ./build_update.sql
402 410 #else
403   -
404 411 echo
405 412 if [ $BDD == "O" ] ; then
406 413 cd database/
407   -
408 414 echo
409 415 echo "Creation script de construction de la BD... (./database/build.sql)"
  416 +
  417 + # (0) On sauvegarde build.sql s'il existe déjà
  418 + # (le fichier build.sql est ignoré par git)
410 419 [[ -f build.sql ]] && cp -p build.sql build.sql.ORIG
411 420  
412   - # Structure de la base présente dans le fichier "labinvent_last_version.sql"
  421 + # (1) DATABASE et USERS : création du fichier build.sql avec les 1ères instructions de création de la BD et users (prod et test)
413 422 # (EP 25/5/19) TODO: il faut un script sql adapté au cas 'bd_existante',
414 423 # c'est à dire SANS "create schema...", mais juste des "drop table if exists + create table"
415 424 if [ $bddAdminName == 'bd_existante' ] ; then
416 425 #cat ./labinvent_2.1_22-05-17.sql > ./build.sql
417   - #cat ./labinvent_last_version_from_existing_bd.sql > ./build.sql
418   - # (1) On crée un fichier vide
419   - echo "" > ./build.sql
  426 + #cat ./labinvent_last_version_from_existing_bd.sql > ./build.sql
  427 + # (1) On crée un fichier vide
  428 + echo "" > ./build.sql
420 429 else
421   - # (1) Instructions de création de la BD
422   - cat ./create_database.sql > ./build.sql
  430 + #cat ./create_database.sql > ./build.sql
  431 + cat ./DB1_create_database_and_users.sql > ./build.sql
  432 + # Set login & mdp utlisateur application dans le script build.sql
  433 + #sed -e "s/'mydb'/'$bddUserName'/" -i ./build.sql
  434 + sed -e "s/'mydb_user'/'$bddUserName'/" -i ./build.sql
  435 + #sed -e "s/'mydb1'/'$bddUserPass'/" -i ./build.sql
  436 + sed -e "s/'mydb_pass'/'$bddUserPass'/" -i ./build.sql
423 437 fi
424   - # (2) Instructions de création des tables
425   - #cat ./labinvent_last_version_from_scratch.sql >> ./build.sql
426   - cat ./create_tables.sql >> ./build.sql
427   - # (3) Insertions des données de base indispensables (surtout la table configurations)
428   - cat ./insert_tables_default_data_general.sql >> ./build.sql
429   -
430 438  
431   - # Ajout login & mdp utlisateur application dans le script build.sql
432   - #sed -e "s/'mydb'/'$bddUserName'/" -i ./build.sql
433   - sed -e "s/'mydb_user'/'$bddUserName'/" -i ./build.sql
434   - #sed -e "s/'mydb1'/'$bddUserPass'/" -i ./build.sql
435   - sed -e "s/'mydb_pass'/'$bddUserPass'/" -i ./build.sql
  439 + # (2) TABLES : ajout des instructions de création des tables
  440 + #cat ./labinvent_last_version_from_scratch.sql >> ./build.sql
  441 + #cat ./create_tables.sql >> ./build.sql
  442 + cat ./DB2_create_tables.sql >> ./build.sql
  443 +
  444 + # (3) DATA obligatoires : ajout des données de base indispensables (surtout la table configurations)
  445 + #cat ./insert_tables_default_data_general.sql >> ./build.sql
  446 + cat ./DB3_insert_tables_default_data_mandatory.sql >> ./build.sql
436 447  
437   - # Seulement pour IRAP
  448 + # (4) (optionnel) DATA optionnelles (IRAP only) : ajout données IRAP (catégories, groupes)
438 449 echo
439 450 if [ $INSTALL_DATA_IRAP -eq 1 ] ; then
440 451 echo "Voulez-vous installer les donnees propres a l'IRAP (categories, groupes metiers, groupes thematiques) dans la base de donnees (defaut=O) [O/N] ?"
441 452 read rep
442   - if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
443   - echo "==> Les données IRAP seront installées dans la BDD"
444   - #cat ./Insert_TablesFunct.sql >> ./build.sql
445   - cat ./insert_tables_default_data_IRAP.sql >> ./build.sql
446   - else
447   - echo "==> Pas d'install de donnees IRAP dans la base"
448   - fi
  453 + if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
  454 + echo "==> Les données IRAP seront installées dans la BDD"
  455 + #cat ./Insert_TablesFunct.sql >> ./build.sql
  456 + #cat ./insert_tables_default_data_IRAP.sql >> ./build.sql
  457 + cat ./DB4_insert_tables_default_data_IRAP_optional.sql >> ./build.sql
  458 + else
  459 + echo "==> Pas d'install de donnees IRAP dans la base"
  460 + fi
449 461 fi
450 462  
451   - #rep=" "
452   - cat ./insert_superadmin_user.sql >> ./build.sql
453   -
  463 + # (5) Ajout du user superadmin (dans table 'users')
454 464 echo
455 465 echo "Maintenant, nous allons definir l'utilisateur qui sera superadministrateur de l'application, ca peut etre VOUS (Pas de mot de passe par défaut) :"
456   - echo "- Entrez ses (vos) Nom et Prenom (sous forme : Nom Prenom ) :"
  466 + echo "- Entrez ses (vos) Nom et Prenom (sous forme : Nom Prenom ) :"
457 467 read UserName UserPrenom
458   -
459 468 echo
460   - echo "- Entrez son (votre) login (par exemple, votre login ldap (défaut=superadmin) :"
461   - read login
462   - # par defaut, on met superadmin (utilisé en fake ldap)
463   - if [ -z $login ] ; then login="superadmin" ; fi
  469 + echo "- Entrez son (votre) login (par exemple, votre login ldap (défaut=superadmin) :"
  470 + read login
  471 + # par defaut, on met superadmin (utilisé en fake ldap)
  472 + if [ -z $login ] ; then login="superadmin" ; fi
464 473 echo "==> login du super administrateur de LabInvent = $login"
465   - echo "*** ATTENTION *** : Notez bien ce login, c'est celui qui vous permettra par défaut de vous connecter à LabInvent en tant que super administrateur (avec le mot de passe 'login')"
466   -
  474 + echo "*** ATTENTION *** : Notez bien ce login, c'est celui qui vous permettra par défaut de vous connecter à LabInvent en tant que super administrateur (avec le mot de passe 'login')"
467 475 echo
468   - echo "- Entrez son (votre) email :"
469   - read mel
470   - sed -e "s/Nom/$UserName/" -i ./build.sql
471   - sed -e "s/Prenom/$UserPrenom/" -i ./build.sql
472   - sed -e "s/userlogin/$login/" -i ./build.sql
473   - sed -e "s/'__@__'/'$mel'/" -i ./build.sql
  476 + echo "- Entrez son (votre) email :"
  477 + read mel
  478 + #cat ./insert_superadmin_user.sql >> ./build.sql
  479 + cat ./DB5_insert_superadmin_user.sql >> ./build.sql
  480 + sed -e "s/Nom/$UserName/" -i ./build.sql
  481 + sed -e "s/Prenom/$UserPrenom/" -i ./build.sql
  482 + sed -e "s/userlogin/$login/" -i ./build.sql
  483 +
474 484  
  485 + # (6) (optionnel) Ajout de quelques users (bidons) par défaut (1 par profil)
475 486 echo
476 487 echo "Voulez-vous installer quelques utilisateurs supplémentaires (bidons, 1 par profil) dans la base de donnees (vous pourrez ensuite changer leur nom dans l'application, ou meme les supprimer) (defaut=O) [O/N] ?"
477   - read rep
478   - if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
  488 + read rep
  489 + if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
479 490 echo "==> Oui"
480   - echo "Ajout de quelques utilisateurs supplementaires dans la base (Mot de passe par défaut : login)"
481   - cat ./insert_fake_users.sql >> ./build.sql
  491 + echo "Ajout de quelques utilisateurs supplementaires dans la base (Mot de passe par défaut : login)"
  492 + #cat ./insert_fake_users.sql >> ./build.sql
  493 + cat ./DB6_insert_fake_users_optional.sql >> ./build.sql
482 494 fi
483 495  
484   - # Remplacement des "use mydb" par "use $bddName"
  496 + # (7) Remplacement des "use _mydb_" par "use $bddName" (idem pour bd test)
485 497 sed -e "s/_mydb_/$bddName/" -i ./build.sql
486 498 sed -e "s/_mydbtest_/$bddName_test/" -i ./build.sql
487 499  
... ... @@ -491,23 +503,23 @@ if [ $BDD == &quot;O&quot; ] ; then
491 503 echo
492 504 echo
493 505 echo "----------------------------------"
494   -echo "E - CRÉATION DE LA BASE DE DONNÉES"
  506 +echo "E - CRÉATION DE LA BASE DE DONNÉES (à partir du fichier build.sql)"
495 507 echo "----------------------------------"
496 508  
497 509 echo
498   - echo "Je vais maintenant procéder à la création de la BDD inventaire (Attention, votre serveur de BD doit etre demarré), ok ?"
  510 + echo "Je vais maintenant procéder à la création de la BD inventaire (Attention, votre serveur de BD doit etre demarré), ok ?"
499 511 echo "...[taper une touche]..."
500 512 read rep
501   - if [ $bddAdminName == 'bd_existante' ] ; then
  513 + if [ $bddAdminName == 'bd_existante' ] ; then
502 514 mysql --user=$bddUserName --password="$bddUserPass" -h $bddIp < ./build.sql
503 515 else
504 516 #echo "mysql --user=$bddAdminName --password="$bddAdminPass" -h $bddIp < ./build.sql"
505 517 mysql --user=$bddAdminName --password="$bddAdminPass" -h $bddIp < ./build.sql
506   - fi
507   - echo "==> Done (a verifier quand même)"
  518 + fi
  519 + echo "==> Done (à verifier quand même)"
508 520 echo "NB: "
509 521 echo " Si jamais il y a eu des erreurs lors de la création de la BD,"
510   - echo " veuillez modifier à la main le script de création de la BD qui est ../database/build.sql"
  522 + echo " veuillez modifier à la main le script de création de la BD qui est ../database/build.sql"
511 523 echo " puis exécutez à la main cette ligne pour re-créer la BDD :"
512 524 #echo " $ mysql --user=$bddAdminName --password="$bddAdminPass" -h $bddIp < ../database/build.sql"
513 525 echo " $ mysql --user=$bddAdminName --password="votre-mot-de-pass-admin-de-mysql" -h $bddIp < ../database/build.sql"
... ...