Commit 2fdfccc1b42f682c44be03f7b2e960467fb1c7ae
Exists in
master
and in
1 other branch
Merge dev branch into master branch (vv3.7.9.53)
Showing
9 changed files
with
163 additions
and
23 deletions
Show diff stats
README.md
... | ... | @@ -53,20 +53,16 @@ Logiciel testé et validé sur les configurations suivantes : |
53 | 53 | |
54 | 54 | VERSION ACTUELLE |
55 | 55 | |
56 | -Date: 30/06/2020 | |
57 | -Version: 3.7.9.52 | |
56 | +Date: 03/07/2020 | |
57 | +Version: 3.7.9.53 | |
58 | 58 | Author: EP |
59 | 59 | Commentaire: |
60 | - - Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel | |
61 | - => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci) | |
62 | - => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !! | |
63 | - - Bugfix test de ces mêmes actions (mal testées avant) | |
64 | - - L'ajout (/add) d'un suivi, emprunt, ou doc doit toujours se faire avec l'id de l'entité parente associée (en général materiel id) | |
65 | - => (/add/id) sinon refus | |
66 | - - ... | |
67 | - | |
60 | + - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php | |
61 | + - Changement stratégie find matériels, liste des Propriétaire : ce n'est plus la liste des gens qui ont au moins 1 materiel, mais la liste de tous les utilisateurs (tout le ldap) | |
62 | + - Bugfix suivis : type suivi doit être obligatoire !!! | |
63 | + - Désactivé tests en php5 sur SurCategories à cause erreur Template file "Surcategories/index.ctp" is missing (General.php line 1101) | |
64 | + | |
68 | 65 | - Amélioration page /pages/acls |
69 | - | |
70 | 66 | - Tests génériques automatiques pour (presque) toutes les actions de (presque) tous les controleurs principaux (Materiels, Suivis, Emprunts, Users) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi !!!) |
71 | 67 | - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...) |
72 | 68 | - Le nombre total de tests (en ajoutant ces tests automatiques) monte à 220 !! |
... | ... | @@ -108,11 +104,15 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
108 | 104 | |
109 | 105 | ----------------------------------------------------------------------------------------------------------- |
110 | 106 | |
111 | -29/06/2020 v3.7.9.51 (EP) | |
112 | - - bugfix et réécriture des actions documents /admission, /sortie, /fiche !!! (pas d'id) | |
107 | +30/06/2020 v3.7.9.51-52 (EP) | |
108 | + - Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel | |
113 | 109 | => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci) |
114 | - => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !! | |
115 | - | |
110 | + => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !! | |
111 | + - Bugfix test de ces mêmes actions (mal testées avant) | |
112 | + - L'ajout (/add) d'un suivi, emprunt, ou doc doit toujours se faire avec l'id de l'entité parente associée (en général materiel id) | |
113 | + => (/add/id) sinon refus | |
114 | + - ... | |
115 | + | |
116 | 116 | 29/06/2020 v3.7.9.50 (EP) |
117 | 117 | - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED) |
118 | 118 | - bugfix (en cours) des actions documents/admission et documents/sortie qui ne marchent plus car on ne leur passe pas un id mais un nom de doc... | ... | ... |
... | ... | @@ -0,0 +1,57 @@ |
1 | +#!/bin/bash | |
2 | + | |
3 | +#myname=`basename $0 .sh` | |
4 | +myname=`basename $0` | |
5 | +myname=${myname%%.*} | |
6 | + | |
7 | +# Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente | |
8 | +# Il faut donc exécuter ce script de la manière suivante : | |
9 | +# ./macos-db-update.sh <ce_script.sh> | |
10 | + | |
11 | + | |
12 | +function abort() { | |
13 | + echo "******************************************************" | |
14 | + echo "!!! Script $0 aborté à cause d'une erreur d'exécution !!!" | |
15 | + echo "******************************************************" | |
16 | + exit 1 | |
17 | +} | |
18 | + | |
19 | + | |
20 | +if [ ! -f ../../config/app.php ] ; then | |
21 | +echo "Vous devez executer ce script depuis le dossier database/update/" | |
22 | +exit 1 | |
23 | +fi | |
24 | + | |
25 | + | |
26 | +# Get login, pass, dbname, and hostname | |
27 | +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) || abort | |
28 | +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) || abort | |
29 | +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) || abort | |
30 | +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) || abort | |
31 | + | |
32 | + | |
33 | +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql | |
34 | +cp -p ./script_sql/$myname.sql ./script_sql/$myname-build.sql || abort | |
35 | + | |
36 | +# Execute sql update script | |
37 | +sed -e "s/database/$database/" -i ./script_sql/$myname-build.sql || abort | |
38 | +mysql --user=$username --password=$password -h $host < ./script_sql/$myname-build.sql || abort | |
39 | + | |
40 | +# Delete temporary file and cakephp cache (-f avoids warning if no file) | |
41 | +rm -f ./script_sql/$myname-build.sql | |
42 | +sudo rm -f ../../tmp/cache/models/* | |
43 | +sudo rm -f ../../tmp/cache/persistent/* | |
44 | + | |
45 | +# Faire ca aussi si ca suffit pas... | |
46 | +#sudo chmod -R 777 ../../tmp | |
47 | +#sudo chmod -R 777 ../../vendor | |
48 | +#sudo chmod -R 777 ../../webroot | |
49 | + | |
50 | + | |
51 | +# PLUGIN update | |
52 | +# Installation plugin cakephp-dompdf | |
53 | +# (on va a la racine du projet) | |
54 | +#cd ../../ | |
55 | +#php composer.phar require daoandco/cakephp-dompdf | |
56 | +#bin/cake plugin assets symlink | |
57 | +#cd - | ... | ... |
... | ... | @@ -0,0 +1,57 @@ |
1 | +#!/bin/bash | |
2 | + | |
3 | +#myname=`basename $0 .sh` | |
4 | +myname=`basename $0` | |
5 | +myname=${myname%%.*} | |
6 | + | |
7 | +# Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente | |
8 | +# Il faut donc exécuter ce script de la manière suivante : | |
9 | +# ./macos-db-update.sh <ce_script.sh> | |
10 | + | |
11 | + | |
12 | +function abort() { | |
13 | + echo "******************************************************" | |
14 | + echo "!!! Script $0 aborté à cause d'une erreur d'exécution !!!" | |
15 | + echo "******************************************************" | |
16 | + exit 1 | |
17 | +} | |
18 | + | |
19 | + | |
20 | +if [ ! -f ../../config/app.php ] ; then | |
21 | +echo "Vous devez executer ce script depuis le dossier database/update/" | |
22 | +exit 1 | |
23 | +fi | |
24 | + | |
25 | + | |
26 | +# Get login, pass, dbname, and hostname | |
27 | +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) || abort | |
28 | +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) || abort | |
29 | +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) || abort | |
30 | +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) || abort | |
31 | + | |
32 | + | |
33 | +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql | |
34 | +cp -p ./script_sql/$myname.sql ./script_sql/$myname-build.sql || abort | |
35 | + | |
36 | +# Execute sql update script | |
37 | +sed -e "s/database/$database/" -i ./script_sql/$myname-build.sql || abort | |
38 | +mysql --user=$username --password=$password -h $host < ./script_sql/$myname-build.sql || abort | |
39 | + | |
40 | +# Delete temporary file and cakephp cache (-f avoids warning if no file) | |
41 | +rm -f ./script_sql/$myname-build.sql | |
42 | +sudo rm -f ../../tmp/cache/models/* | |
43 | +sudo rm -f ../../tmp/cache/persistent/* | |
44 | + | |
45 | +# Faire ca aussi si ca suffit pas... | |
46 | +#sudo chmod -R 777 ../../tmp | |
47 | +#sudo chmod -R 777 ../../vendor | |
48 | +#sudo chmod -R 777 ../../webroot | |
49 | + | |
50 | + | |
51 | +# PLUGIN update | |
52 | +# Installation plugin cakephp-dompdf | |
53 | +# (on va a la racine du projet) | |
54 | +#cd ../../ | |
55 | +#php composer.phar require daoandco/cakephp-dompdf | |
56 | +#bin/cake plugin assets symlink | |
57 | +#cd - | ... | ... |
... | ... | @@ -0,0 +1,7 @@ |
1 | +use database; | |
2 | + | |
3 | +-- Table emprunts | |
4 | +-- 17/6/20 : ajouté champ “nom” à emprunts (comme pour suivis) | |
5 | +-- car toute entité devrait avoir au moins les champs “id” et “nom” | |
6 | +-- (afin de pouvoir faire des traitements génériques sur toute entité) | |
7 | +ALTER TABLE emprunts ADD nom VARCHAR(45) NULL DEFAULT NULL AFTER id; | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -2310,15 +2310,27 @@ class MaterielsController extends AppController { |
2310 | 2310 | 'lieu_detail !=' => 'null' |
2311 | 2311 | ) |
2312 | 2312 | ]); |
2313 | - $s_nomresp = $this->Materiels->find('list', [ | |
2314 | - 'keyField' => 'nom_responsable', | |
2315 | - 'valueField' => 'nom_responsable', | |
2316 | - 'order' => 'nom_responsable', | |
2313 | + // (EP 202007) TOUS les utilisateurs (même ceux qui n'ont aucun matériel) | |
2314 | + $s_nomresp = $this->Materiels->Users->find('list', [ | |
2315 | + 'keyField' => 'nom', | |
2316 | + 'valueField' => 'nom', | |
2317 | + 'order' => 'nom', | |
2317 | 2318 | 'conditions' => array( |
2318 | - 'status !=' => 'ARCHIVED', | |
2319 | - 'nom_responsable !=' => 'null' | |
2319 | + 'nom !=' => 'SUPERADMIN FAKE_LDAP', | |
2320 | 2320 | ) |
2321 | 2321 | ]); |
2322 | + // Uniquement les utilisateurs qui ont au moins 1 matériel | |
2323 | + /* | |
2324 | + $s_nomresp = $this->Materiels->find('list', [ | |
2325 | + 'keyField' => 'nom_responsable', | |
2326 | + 'valueField' => 'nom_responsable', | |
2327 | + 'order' => 'nom_responsable', | |
2328 | + 'conditions' => array( | |
2329 | + 'status !=' => 'ARCHIVED', | |
2330 | + 'nom_responsable !=' => 'null' | |
2331 | + ) | |
2332 | + ]); | |
2333 | + */ | |
2322 | 2334 | /* (EP) Depuis le 2/4/19, cette variable n'est plus utilisée |
2323 | 2335 | * car on préfère la recherche plein texte plutot que dans une liste |
2324 | 2336 | * On pourrait donc mettre en commentaire, mais bon... | ... | ... |
src/Controller/SuivisController.php
... | ... | @@ -40,10 +40,12 @@ class SuivisController extends AppController |
40 | 40 | |
41 | 41 | // 2) Puis on fait nos petites règles locales pour notre labo à nous tout seul |
42 | 42 | // Par exemple, si je veux adapter la règle pour la modificaiton d'un suivi ("edit") : |
43 | + /* | |
43 | 44 | $this->setAuthorizationsForAction('edit', 'add', [ |
44 | 45 | //'user' => ['default',0], |
45 | 46 | 'super' => ['default',0], |
46 | 47 | ]); |
48 | + */ | |
47 | 49 | } |
48 | 50 | |
49 | 51 | //@Override parent | ... | ... |
src/Model/Entity/Emprunt.php
... | ... | @@ -103,7 +103,7 @@ class Emprunt extends Entity { |
103 | 103 | } |
104 | 104 | */ |
105 | 105 | $this->d($this->date_emprunt); |
106 | - echo($this->date_emprunt); // '17/04/2020' | |
106 | + //echo($this->date_emprunt); // '17/04/2020' | |
107 | 107 | $this->d($this->date_emprunt->__toString()); // '17/04/2020' |
108 | 108 | //$date_emprunt = new \DateTime(strtr($this->_properties['date_emprunt'],'/','-')) ; //->format('d/m/y'); |
109 | 109 | //$date_emprunt = new \DateTime(str($this->date_emprunt)) ; //->format('d/m/y'); | ... | ... |
tests/TestCase/Controller/SurCategoriesControllerTest.php
... | ... | @@ -112,7 +112,7 @@ class SurCategoriesControllerTest extends General |
112 | 112 | * |
113 | 113 | * @dataProvider dataProviderActionsAndRoles4 |
114 | 114 | * |
115 | - * @requires PHP 5.6 | |
115 | + * @requires PHP 7 | |
116 | 116 | * (https://phpunit.readthedocs.io/fr/latest/incomplete-and-skipped-tests.html#sauter-des-tests-en-utilisant-requires) |
117 | 117 | */ |
118 | 118 | public function testAuthorizationsForAllActionsOnSurCategories($action, $role_short, $role_long) { | ... | ... |