diff --git a/CHANGES.txt b/CHANGES.txt index 3c27f0d..9e8dfe3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -134,7 +134,12 @@ Outre ces changements, voici d'autres changements importants : ======= CHANGES ======= ------- -23/10/2020 v4.106.4-3.7.9 +23/10/2020 v4.106.5-3.7.9 + - (b) Bugfix tests (ajout Stats en fixture) + - (e) Ajout d'un champs "description" à toutes les tables qui en manquent + - (i) Ajout de contraintes d'unicité (index unique) sur le champs "nom" de toutes les tables qui le justifient + - (e) Réarrangement de la page d'accueil + - (e) Réarrangement de la page Outils - (b) Très Gros Bugfix des utilisateurs utilisés pour les tests !!! => maintenant c'est cohérent et clean => ca marche y-compris avec les stats de connexion ! diff --git a/README.md b/README.md index 4f71cea..bd24df9 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes : -------------------------------------------------------------------------------------------- Date: 23/10/2020 -Version: 4.106.4-3.7.9 +Version: 4.106.5-3.7.9 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) diff --git a/database/update/script_sql/db-update-2020-10-23.sql b/database/update/script_sql/db-update-2020-10-23.sql new file mode 100755 index 0000000..4b2a811 --- /dev/null +++ b/database/update/script_sql/db-update-2020-10-23.sql @@ -0,0 +1,36 @@ +use database; + + +-- +-- Ajout du champ description à toutes les tables qui en manquent +-- + +ALTER TABLE sur_categories ADD description TEXT NULL DEFAULT NULL AFTER nom; +ALTER TABLE categories ADD description TEXT NULL DEFAULT NULL AFTER nom; +ALTER TABLE sous_categories ADD description TEXT NULL DEFAULT NULL AFTER nom; + +ALTER TABLE fournisseurs ADD description TEXT NULL DEFAULT NULL AFTER nom; +ALTER TABLE organismes ADD description TEXT NULL DEFAULT NULL AFTER nom; +ALTER TABLE sites ADD description TEXT NULL DEFAULT NULL AFTER nom; + +ALTER TABLE suivis CHANGE commentaire commentaire TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL; + +ALTER TABLE type_documents ADD description TEXT NULL DEFAULT NULL AFTER nom; +ALTER TABLE type_suivis ADD description TEXT NULL DEFAULT NULL AFTER nom; + + +-- +-- Ajout d'une contrainte d'unicité (index UNIQUE) sur le champ nom pour toutes les tables qui en manquent +-- + +ALTER TABLE fakeldapusers ADD UNIQUE(uid); + +ALTER TABLE groupes_metiers ADD UNIQUE(nom); +ALTER TABLE groupes_thematiques ADD UNIQUE(nom); +ALTER TABLE organismes ADD UNIQUE(nom); +ALTER TABLE sites ADD UNIQUE(nom); +ALTER TABLE type_suivis ADD UNIQUE(nom); + +ALTER TABLE type_documents ADD UNIQUE(nom); +-- Ajout aussi du type DEVIS (obligatoire) +INSERT INTO type_documents (nom) VALUES ("DEVIS"); diff --git a/src/Template/Pages/home_app.ctp b/src/Template/Pages/home_app.ctp index 17a997a..eb4900a 100755 --- a/src/Template/Pages/home_app.ctp +++ b/src/Template/Pages/home_app.ctp @@ -1,8 +1,61 @@ viewVars); +$configuration = $configuration; +$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE; + + $lab_name = $configuration->labPresent; // ajout d'un espace ssi nécessaire if (strpos($configuration->labPresent,"l'")===false) $lab_name.=' '; $lab_name .= ''.$configuration->labName.''; + +$TABLE_START = ''; +$TABLE_END = '
'; +$SEP = ''; + + +function procedure_commande() { + ?> +
Procédure à suivre pour la commande d’un nouveau matériel :
+
+

+ Voici la procédure pour passer commande d’un matériel (je deviens “acheteur/utilisateur/référent” + de ce matériel) +

+
    +
  1. J’obtiens un devis
  2. +
  3. Je crée une fiche matériel (clic sur "Nouveau + Matériel") avec les quelques informations obligatoires (notamment une + description précise du matériel) (éventuellement, + je peux y associer le devis en document attaché)
  4. +
  5. J’imprime ma fiche et l’amène (avec le devis) à + un gestionnaire (ou bien par email)
  6. +
  7. Le gestionnaire retrouve cette fiche (en tapant son n° interne + labo dans le champ “Recherche”) et la complète avec + les informations administratives +
  8. +
  9. Le gestionnaire crée le bon de commande pour ce + matériel et passe la commande (éventuellement, il peut associer le + bon de commande à la fiche matériel en document attaché)
  10. +
  11. A la livraison du matériel, le gestionnaire valide + la fiche matériel (éventuellement, il peut y associer le bon de + livraison en document attaché) => (je reçois un email qui + m'informe de l'arrivée du matériel et me demande de vérifier + ma fiche) +
  12. +
  13. Le gestionnaire imprime l’étiquette d’inventaire + associée au matériel ainsi que la fiche complète du + matériel et la joint au carton du matériel reçu +
  14. +
  15. Je viens chercher mon nouveau matériel et y colle + l’étiquette d’inventaire +
  16. +
+
@@ -17,61 +70,81 @@ echo '

Vous êtes connecté en tant que ' . $username . ' '; echo 'et avec le niveau d\'authentification ' . $role . ''; echo '

'; -echo ''; -echo ''; - -echo ''; - -echo ''; - -echo ''; - -echo ''; -]); -echo ''; + echo ''; + +echo $TABLE_END; + + + +echo $TABLE_START; +echo $SEP; + + echo ''; + + echo ''; + +echo $TABLE_END; + + -echo '
'; -echo 'Changements faits sur le logiciel'; -echo '
'; -echo 'Statistiques sur les matériels'; -echo '
'; -echo $this->Html->link('Voir mes matériels', [ - 'controller' => 'materiels', - 'action' => 'index', - 'age' => 0, - 'MY' => $username -]); -echo '
'; -echo $this->Html->link('Voir les responsables des domaines', [ - 'controller' => 'users', - //'action' => 'indexRecap', - 'action' => 'index', - //'sort' => 'sur_categorie_id' - 'filtre' => 'responsable', + + +echo $TABLE_START; +echo $SEP; + + echo '
'; + echo 'Changements faits sur le logiciel'; + echo '
'; + echo 'Statistiques sur les matériels'; + echo '
'; + echo $this->Html->link('Voir mes matériels', [ + 'controller' => 'materiels', + 'action' => 'index', + 'age' => 0, + 'MY' => $username + ]); + echo '
'; + echo $this->Html->link('Voir les responsables des domaines', [ + 'controller' => 'users', + //'action' => 'indexRecap', + 'action' => 'index', + //'sort' => 'sur_categorie_id' + 'filtre' => 'responsable', + ]); + echo '
'; // Utilisateur admin/super admin if (in_array($role, [ 'Administration', 'Administration Plus' ])) { - echo ''; - echo ''; + +echo $TABLE_START; +echo $SEP; + echo ''; + echo ''; - echo '
' . $this->Html->link('Voir les matériels à valider', [ 'controller' => 'materiels', 'action' => 'index', 'CREATED' ]) . '
' . $this->Html->link('Voir les matériels à sortir de l\'inventaire', [ 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED' ]) . '
'; + +echo $TABLE_END; } // Utilisateur responsable -if ($role == 'Responsable') { +//if ($role == 'Responsable') { +if ($USER_IS_RESPONSABLE) { + +echo $TABLE_START; +echo $SEP; + echo ''; echo ''; echo ''; - echo '
' . $this->Html->link('Voir les matériels dont je suis responsable', [ @@ -86,54 +159,21 @@ if ($role == 'Responsable') { 'GM' => $priviledgedUser->groupes_metier_id, 'GT' => $priviledgedUser->groupes_thematique_id ]) . '
'; + +echo $TABLE_END; } -// A rendre configurable (pourquoi pas) -if (($role == 'Responsable' || $role == 'Utilisateur') && $configuration->procedure_sur_accueil) { - ?> -

Procédure à suivre pour la commande d’un nouveau matériel (8 - étapes)
-
-

- Voici la procédure pour passer commande d’un matériel de plus de 800€ - (matériel inventoriable) :
(je peux - aussi, si je le désire, suivre cette procédure pour un matériel < - 800€, afin qu'il soit référencé)
(je deviens “demandeur/utilisateur/référent” - de ce matériel) -

-
    -
  1. J’obtiens un devis
  2. -
  3. Je crée une fiche matériel (clic sur "Nouveau - Matériel") avec les quelques informations obligatoires (notamment une - description précise du matériel) (éventuellement, - je peux y associer le devis en document attaché)
  4. -
  5. J’imprime ma fiche et l’amène (avec le devis) à - un gestionnaire (ou bien par email)
  6. -
  7. Le gestionnaire retrouve cette fiche (en tapant son n° interne - labo dans le champ “Recherche”) et la complète avec - les informations administratives -
  8. -
  9. Le gestionnaire crée le bon de commande pour ce - matériel et passe la commande (éventuellement, il peut associer le - bon de commande à la fiche matériel en document attaché)
  10. -
  11. A la livraison du matériel, le gestionnaire valide - la fiche matériel (éventuellement, il peut y associer le bon de - livraison en document attaché) => (je reçois un email qui - m'informe de l'arrivée du matériel et me demande de vérifier - ma fiche) -
  12. -
  13. Le gestionnaire imprime l’étiquette d’inventaire - associée au matériel ainsi que la fiche complète du - matériel et la joint au carton du matériel reçu -
  14. -
  15. Je viens chercher mon nouveau matériel et y colle - l’étiquette d’inventaire -
  16. -
+//echo '
'; - '; + +// A rendre configurable (pourquoi pas) +if (($role == 'Responsable' || $role == 'Utilisateur') && $configuration->procedure_sur_accueil) + procedure_commande(); ?> diff --git a/src/Template/Pages/tools.ctp b/src/Template/Pages/tools.ctp index 903c3cb..fbd181c 100755 --- a/src/Template/Pages/tools.ctp +++ b/src/Template/Pages/tools.ctp @@ -1,3 +1,14 @@ +viewVars); + +$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN; +$USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE; + +?> +
@@ -13,21 +24,31 @@ '; + // - Page statistiques echo ''; - echo $this->Html->link('Statistiques', [ + echo $this->Html->link('Statistiques sur les matériels', [ 'controller' => 'pages', 'action' => 'stats', ]); echo ''; - echo ''; + if ($USER_IS_SUPERADMIN) { + echo ''; + echo $this->Html->link('Statistiques sur les connexions', [ + 'controller' => 'stats', + ]); + echo ''; + } + + echo $SEP; // - Page configuration //if ($role == 'Super Administrateur') : - if ($role == 'Super Administrateur') { + if ($USER_IS_SUPERADMIN) { echo ''; echo $this->Html->link("Configuration générale de l'application", [ 'controller' => 'configurations', @@ -39,7 +60,7 @@ //endif; echo ''; - echo $this->Html->link('Voir les Notifications', [ + echo $this->Html->link('Voir les Notifications activées', [ 'controller' => 'pages', 'action' => 'notifications' ]); @@ -53,60 +74,70 @@ echo ''; echo ''; - echo $this->Html->link('Etiqueteuse', [ + echo $this->Html->link('Etiqueteuse (documentation)', [ 'controller' => 'pages', 'action' => 'printers' ]); echo ''; - echo ''; + echo $SEP; // - Page "Gérer le contenu variable" + if ($USER_IS_ADMIN_OR_MORE) { + /* if (in_array($role, [ 'Administration', 'Administration Plus', 'Super Administrateur' ])) { + */ echo ''; echo $this->Html->link('Gérer le contenu variable de l\'application', [ 'controller' => 'pages', 'action' => 'tools_sm' ]); echo ''; + + echo ''; + echo $this->Html->link('Export de la liste des materiels actifs (format CSV)', [ + 'controller' => 'materiels', + 'action' => 'export' + ]); + echo ''; } -echo ''; -//echo $this->Html->link('Gérer les utilisateurs privilégiés', [ -echo $this->Html->link('Gérer les utilisateurs', [ + + +//if ($role == 'Super Administrateur') : +if ($USER_IS_SUPERADMIN) : + + echo ''; + //echo $this->Html->link('Gérer les utilisateurs privilégiés', [ + echo $this->Html->link('Gérer les utilisateurs', [ 'controller' => 'users', //'sort' => 'nom' -]); -echo ''; + ]); + echo ''; -if ($role == 'Super Administrateur') : echo ''; echo $this->Html->link('Gérer les fichiers', [ 'controller' => 'documents', 'action' => 'index' ]); echo ''; + endif; -echo ''; -echo $this->Html->link('Export de la liste des materiels actifs (format CSV)', [ - 'controller' => 'materiels', - 'action' => 'export' -]); -echo ''; -echo ''; +echo $SEP; -if ($role == 'Super Administrateur') : +if ($USER_IS_SUPERADMIN) : + /* // Exécution d'un script correctif (bugfix) temporaire (superadmin only) echo ''; echo $this->Html->link('Exécuter le dernier script correctif', [ @@ -114,6 +145,7 @@ if ($role == 'Super Administrateur') : 'action' => 'exec_sql_request_for_bugfix' ]); echo ''; + */ /* // Nettoyage de la liste des fournisseurs (superadmin only) @@ -141,6 +173,9 @@ if ($role == 'Super Administrateur') : ]); echo ''; + + echo $SEP; + /* * Mode debug */ diff --git a/tests/Fixture/GroupesMetiersFixture.php b/tests/Fixture/GroupesMetiersFixture.php index 40ef9ed..e90b940 100755 --- a/tests/Fixture/GroupesMetiersFixture.php +++ b/tests/Fixture/GroupesMetiersFixture.php @@ -41,12 +41,12 @@ class GroupesMetiersFixture extends TestFixture public $records = [ [ //'id' => 1, - 'nom' => 'Lorem ipsum dolor sit amet', + 'nom' => 'nom1', 'description' => 'Lorem ipsum dolor sit amet' ], [ //'id' => 2, - 'nom' => 'Lorem ipsum dolor sit amet', + 'nom' => 'nom2', 'description' => 'Lorem ipsum dolor sit amet' ], ]; diff --git a/tests/Fixture/GroupesThematiquesFixture.php b/tests/Fixture/GroupesThematiquesFixture.php index 985a19a..fe19026 100755 --- a/tests/Fixture/GroupesThematiquesFixture.php +++ b/tests/Fixture/GroupesThematiquesFixture.php @@ -41,12 +41,12 @@ class GroupesThematiquesFixture extends TestFixture public $records = [ [ //'id' => 1, - 'nom' => 'Lorem ipsum dolor sit amet', + 'nom' => 'nom1', 'description' => 'Lorem ipsum dolor sit amet' ], [ //'id' => 2, - 'nom' => 'Lorem ipsum dolor sit amet', + 'nom' => 'nom2', 'description' => 'Lorem ipsum dolor sit amet' ], ]; diff --git a/tests/Fixture/StatsFixture.php b/tests/Fixture/StatsFixture.php index 80a7148..b5a7a2d 100644 --- a/tests/Fixture/StatsFixture.php +++ b/tests/Fixture/StatsFixture.php @@ -51,16 +51,18 @@ class StatsFixture extends TestFixture public function init() { // (EP) - $this->records = []; + $this->records = null; + //$this->records = []; /* $this->records = [ [ - 'year' => 'a4a821dd-3174-4fa5-9672-b2d5b3d9903c', + //'year' => 'a4a821dd-3174-4fa5-9672-b2d5b3d9903c', + 'year' => 2020, 'user_id' => 1, - 'last_login_time' => '2020-10-21 17:11:18', - 'last_logout_time' => '2020-10-21 17:11:18', - 'connex_nb' => 1, - 'connex_dur' => 1 + //'last_login_time' => '2020-10-21 17:11:18', + //'last_logout_time' => '2020-10-21 17:11:18', + //'connex_nb' => 1, + //'connex_dur' => 1 ], ]; */ diff --git a/tests/TestCase/Controller/EmpruntsControllerTest.php b/tests/TestCase/Controller/EmpruntsControllerTest.php index 04ace43..875c61a 100755 --- a/tests/TestCase/Controller/EmpruntsControllerTest.php +++ b/tests/TestCase/Controller/EmpruntsControllerTest.php @@ -19,6 +19,7 @@ class EmpruntsControllerTest extends General */ public $fixtures = [ 'app.Configurations', + 'app.Stats', 'app.Emprunts', diff --git a/tests/TestCase/Controller/MaterielsControllerTest.php b/tests/TestCase/Controller/MaterielsControllerTest.php index 66c8378..e35135c 100755 --- a/tests/TestCase/Controller/MaterielsControllerTest.php +++ b/tests/TestCase/Controller/MaterielsControllerTest.php @@ -58,7 +58,8 @@ class MaterielsControllerTest extends General { */ public $fixtures = [ 'app.Configurations', - + 'app.Stats', + 'app.Materiels', //'app.sur_categories', -- libgit2 0.21.2