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 = '
@@ -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 'Changements faits sur le logiciel';
-echo ' |
';
-
-echo '';
-echo 'Statistiques sur les matériels';
-echo ' |
';
-
-echo '';
-echo $this->Html->link('Voir mes matériels', [
- 'controller' => 'materiels',
- 'action' => 'index',
- 'age' => 0,
- 'MY' => $username
-]);
-echo ' |
';
-
-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 '';
+ echo '';
+ echo 'Statistiques sur les matériels';
+ echo ' |
';
+
+echo $TABLE_END;
+
+
+
+echo $TABLE_START;
+echo $SEP;
+
+ echo '';
+ echo $this->Html->link('Voir mes matériels', [
+ 'controller' => 'materiels',
+ 'action' => 'index',
+ 'age' => 0,
+ 'MY' => $username
+ ]);
+ echo ' |
';
+
+ echo '';
+ echo $this->Html->link('Voir les responsables des domaines', [
+ 'controller' => 'users',
+ //'action' => 'indexRecap',
+ 'action' => 'index',
+ //'sort' => 'sur_categorie_id'
+ 'filtre' => 'responsable',
+ ]);
+ echo ' |
';
+
+echo $TABLE_END;
+
+
-echo '
';
// Utilisateur admin/super admin
if (in_array($role, [
'Administration',
'Administration Plus'
])) {
- echo '
';
- echo ' |
';
+
+echo $TABLE_START;
+echo $SEP;
+
echo ' ' . $this->Html->link('Voir les matériels à valider', [
'controller' => 'materiels',
'action' => 'index',
'CREATED'
]) . ' |
';
+
echo ' ' . $this->Html->link('Voir les matériels à sortir de l\'inventaire', [
'controller' => 'materiels',
'action' => 'index',
'TOBEARCHIVED'
]) . ' |
';
- echo '
';
+
+echo $TABLE_END;
}
// Utilisateur responsable
-if ($role == 'Responsable') {
+//if ($role == 'Responsable') {
+if ($USER_IS_RESPONSABLE) {
+
+echo $TABLE_START;
+echo $SEP;
+
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 '
';
+
+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)
-
-
- - J’obtiens un devis
- - 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é)
- - J’imprime ma fiche et l’amène (avec le devis) à
- un gestionnaire (ou bien par email)
- - Le gestionnaire retrouve cette fiche (en tapant son n° interne
- labo dans le champ “Recherche”) et la complète avec
- les informations administratives
-
- - 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é)
- - 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)
-
- - 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
-
- - Je viens chercher mon nouveau matériel et y colle
- l’étiquette d’inventaire
-
-
+//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