Commit 1f42188e39faa419bf05af2c4967d3fa1daa69e3

Authored by Alexandre
1 parent 8b121bd7

Version: 2.4.4.4

!!!
Exécuter les lignes suivantes (à la racine) :
cp -p config/app.php ../config/app.php.ORIG
cp config/app.default.php ../config/app.php

Puis completez app.php (datasources => default & test (username,
password, database)) avec app.php.ORIG
!!!

Qrcode (url) + modele script update bd & cache + script copie app.php 

Demande (terminé) : https://projects.irap.omp.eu/issues/3841
	
Demande (en cours) : https://projects.irap.omp.eu/issues/3843
					 
					   
Version majeure en cours (2.4):
https://projects.irap.omp.eu/versions/107

ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
README-LABINVENT.md
@@ -50,10 +50,23 @@ Logiciel testé et validé sur les configurations suivantes : @@ -50,10 +50,23 @@ Logiciel testé et validé sur les configurations suivantes :
50 50
51 VERSION ACTUELLE 51 VERSION ACTUELLE
52 52
53 -Date: 16/06/2016  
54 -Version: 2.4.4.3 53 +Date: 17/06/2016
  54 +Version: 2.4.4.4
55 55
56 -Demande (en terminé) : bugfixes users (mail et login auto) 56 +!!!
  57 +Exécuter les lignes suivantes (à la racine) :
  58 +cp -p config/app.php ../config/app.php.ORIG
  59 +cp config/app.default.php ../config/app.php
  60 +
  61 +Puis completez app.php (datasources => default & test (username, password, database)) avec app.php.ORIG
  62 +!!!
  63 +
  64 +Qrcode (url) + modele script update bd & cache + script copie app.php
  65 +
  66 +Demande (terminé) : https://projects.irap.omp.eu/issues/3841
  67 +
  68 +Demande (en cours) : https://projects.irap.omp.eu/issues/3843
  69 +
57 70
58 Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107 71 Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107
59 72
@@ -89,7 +102,11 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c @@ -89,7 +102,11 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c
89 102
90 MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull) 103 MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull)
91 104
92 -Note: après chaque mise à jour de la BD, il faut repasser l'application en mode debug = true (au début du fichier config/app.php) pour mettre à jour le cache (puis repasser ensuite en mode debug = false) 105 +17/06/16 (v2.4.4.4) (Exceptionnel) Exécuter les lignes suivantes (à la racine) :
  106 + cp -p config/app.php ../config/app.php.ORIG
  107 + cp config/app.default.php ../config/app.php
  108 + Puis completez app.php (datasources => default & test (username, password, database)) avec app.php.ORIG
  109 +
93 110
94 15/06/16 (v2.4.4.0) Adapter la BD en exécutant le script sql database/update/db-update-2016-06-15.sql 111 15/06/16 (v2.4.4.0) Adapter la BD en exécutant le script sql database/update/db-update-2016-06-15.sql
95 112
config/app.default.php
@@ -240,9 +240,9 @@ return [ @@ -240,9 +240,9 @@ return [
240 * the following line and set the port accordingly 240 * the following line and set the port accordingly
241 */ 241 */
242 //'port' => 'non_standard_port_number', 242 //'port' => 'non_standard_port_number',
243 - 'username' => 'username',  
244 - 'password' => 'password',  
245 - 'database' => 'database', 243 + /*d*/'username' => 'username',
  244 + /*d*/'password' => 'password',
  245 + /*d*/'database' => 'database',
246 'encoding' => 'utf8', 246 'encoding' => 'utf8',
247 'timezone' => 'UTC', 247 'timezone' => 'UTC',
248 'flags' => [], 248 'flags' => [],
@@ -280,9 +280,9 @@ return [ @@ -280,9 +280,9 @@ return [
280 'persistent' => false, 280 'persistent' => false,
281 'host' => 'localhost', 281 'host' => 'localhost',
282 //'port' => 'non_standard_port_number', 282 //'port' => 'non_standard_port_number',
283 - 'username' => 'test_username',  
284 - 'password' => 'test_password',  
285 - 'database' => 'test_database', 283 + /*t*/'username' => 'test_username',
  284 + /*t*/'password' => 'test_password',
  285 + /*t*/'database' => 'test_database',
286 'encoding' => 'utf8', 286 'encoding' => 'utf8',
287 'timezone' => 'UTC', 287 'timezone' => 'UTC',
288 'cacheMetadata' => true, 288 'cacheMetadata' => true,
database/update/db-update-modele.sh 0 → 100755
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +#!/bin/bash
  2 +
  3 +username=$(grep "/\*d\*/'username'" ../../config/app.php.ORIG | cut -d"'" -f4)
  4 +password=$(grep "/\*d\*/'password'" ../../config/app.php.ORIG | cut -d"'" -f4)
  5 +database=$(grep "/\*d\*/'database'" ../../config/app.php.ORIG | cut -d"'" -f4)
  6 +
  7 +mysql --user=$username --password=$password -h $database < ./db-update-xxxx-xx-xx.sql
  8 +
  9 +rm ../../tmp/cache/models/*
  10 +rm ../../tmp/cache/persistent/*
install/update-app-php.sh 0 → 100755
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +#!/bin/bash
  2 +
  3 +cp -p ../config/app.php ../config/app.php.ORIG
  4 +cp ../config/app.default.php ../config/app.php
  5 +
  6 +username=$(grep "/\*d\*/'username'" ../config/app.php.ORIG | cut -d"'" -f4)
  7 +password=$(grep "/\*d\*/'password'" ../config/app.php.ORIG | cut -d"'" -f4)
  8 +database=$(grep "/\*d\*/'database'" ../config/app.php.ORIG | cut -d"'" -f4)
  9 +
  10 +usernameTEST=$(grep "/\*t\*/'username'" ../config/app.php.ORIG | cut -d"'" -f4)
  11 +passwordTEST=$(grep "/\*t\*/'password'" ../config/app.php.ORIG | cut -d"'" -f4)
  12 +databaseTEST=$(grep "/\*t\*/'database'" ../config/app.php.ORIG | cut -d"'" -f4)
  13 +
  14 +sed -e "s/'database' => 'database'/'database' => '$database'/" -i ../config/app.php
  15 +sed -e "s/'username' => 'username'/'username' => '$username'/" -i ../config/app.php
  16 +sed -e "s/'password' => 'password'/'password' => '$password'/" -i ../config/app.php
  17 +
  18 +sed -e "s/'database' => 'test_database'/'database' => '$databaseTEST'/" -i ../config/app.php
  19 +sed -e "s/'username' => 'test_username'/'username' => '$usernameTEST'/" -i ../config/app.php
  20 +sed -e "s/'password' => 'test_password'/'password' => '$passwordTEST'/" -i ../config/app.php
  21 +
  22 +sed -e "s/'debug' => filter_var(env('DEBUG', true/'debug' => filter_var(env('DEBUG', false/" -i ../config/app.php
  23 +
src/Controller/MaterielsController.php
@@ -219,7 +219,13 @@ class MaterielsController extends AppController @@ -219,7 +219,13 @@ class MaterielsController extends AppController
219 $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); 219 $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']);
220 $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); 220 $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']);
221 221
222 - $utilisateurs = TableRegistry::get('LdapConnections')->getListUsers(); 222 + $users = TableRegistry::get('LdapConnections')->getListUsers();
  223 + //tri des utilisateurs par nom
  224 + sort($users);
  225 + $utilisateurs = [];
  226 + for($i = 0; $i < sizeof($users); $i++) {
  227 + $utilisateurs[$users[$i]] = $users[$i];
  228 + }
223 229
224 $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; 230 $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email'];
225 231
@@ -263,7 +269,13 @@ class MaterielsController extends AppController @@ -263,7 +269,13 @@ class MaterielsController extends AppController
263 $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); 269 $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']);
264 $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); 270 $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']);
265 271
266 - $utilisateurs = TableRegistry::get('LdapConnections')->getListUsers(); 272 + $users = TableRegistry::get('LdapConnections')->getListUsers();
  273 + //tri des utilisateurs par nom
  274 + sort($users);
  275 + $utilisateurs = [];
  276 + for($i = 0; $i < sizeof($users); $i++) {
  277 + $utilisateurs[$users[$i]] = $users[$i];
  278 + }
267 279
268 if(!empty($materiel->get('nom_responsable'))){ 280 if(!empty($materiel->get('nom_responsable'))){
269 if(!in_array($materiel->get('nom_responsable'), $utilisateurs)){ 281 if(!in_array($materiel->get('nom_responsable'), $utilisateurs)){
src/Controller/QrCodesController.php
@@ -7,16 +7,21 @@ use QRcode; @@ -7,16 +7,21 @@ use QRcode;
7 class QrCodesController extends AppController 7 class QrCodesController extends AppController
8 { 8 {
9 9
10 - public function creer($message) { 10 + public function creer($message = null) {
11 11
12 $fileName = $this->request->session()->id().'.png'; 12 $fileName = $this->request->session()->id().'.png';
13 $cakephpPath = str_replace('webroot/index.php', '', $_SERVER['SCRIPT_FILENAME']); 13 $cakephpPath = str_replace('webroot/index.php', '', $_SERVER['SCRIPT_FILENAME']);
14 $qrCodePath = $cakephpPath . 'webroot/img/qrcodes/' . $fileName; 14 $qrCodePath = $cakephpPath . 'webroot/img/qrcodes/' . $fileName;
15 15
16 -  
17 $this->request->session()->write('filename', $fileName); 16 $this->request->session()->write('filename', $fileName);
18 $this->request->session()->write('qrCodePath', $qrCodePath); 17 $this->request->session()->write('qrCodePath', $qrCodePath);
19 - return QRcode::png($message, $qrCodePath); 18 +
  19 + if($message == null) {
  20 + return QRcode::png($this->request->session()->read('qrUrl'), $qrCodePath);
  21 + } else {
  22 + return QRcode::png($message, $qrCodePath);
  23 + }
  24 +
20 } 25 }
21 26
22 } 27 }
23 \ No newline at end of file 28 \ No newline at end of file
src/Controller/UsersController.php
@@ -127,7 +127,13 @@ class UsersController extends AppController @@ -127,7 +127,13 @@ class UsersController extends AppController
127 $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); 127 $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
128 $groupesThematiques = $this->Users->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); 128 $groupesThematiques = $this->Users->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
129 129
130 - $utilisateurs = TableRegistry::get('LdapConnections')->getListUsers(); 130 + $users = TableRegistry::get('LdapConnections')->getListUsers();
  131 + //tri des utilisateurs par nom
  132 + sort($users);
  133 + $utilisateurs = [];
  134 + for($i = 0; $i < sizeof($users); $i++) {
  135 + $utilisateurs[$users[$i]] = $users[$i];
  136 + }
131 137
132 $this->set(compact('user', 'groupesMetiers', 'utilisateurs', 'groupesThematiques')); 138 $this->set(compact('user', 'groupesMetiers', 'utilisateurs', 'groupesThematiques'));
133 $this->set('_serialize', ['user']); 139 $this->set('_serialize', ['user']);
src/Model/Table/LdapConnectionsTable.php
@@ -188,15 +188,7 @@ class LdapConnectionsTable extends AppTable { @@ -188,15 +188,7 @@ class LdapConnectionsTable extends AppTable {
188 } 188 }
189 } 189 }
190 190
191 - //tri des utilisateurs par nom  
192 - sort($utilisateurs);  
193 -  
194 - $users = [];  
195 - for($i = 0; $i < sizeof($utilisateurs); $i++) {  
196 - $users[$utilisateurs[$i]] = $utilisateurs[$i];  
197 - }  
198 -  
199 - return $users; 191 + return $utilisateurs;
200 } 192 }
201 193
202 /** 194 /**
src/Template/Documents/fiche_materiel.ctp
@@ -7,7 +7,7 @@ $this-&gt;layout = &#39;pdf_print&#39;; @@ -7,7 +7,7 @@ $this-&gt;layout = &#39;pdf_print&#39;;
7 // Nouvelle page de document 7 // Nouvelle page de document
8 $fpdf->AddPage(); 8 $fpdf->AddPage();
9 9
10 -$this->requestAction('/QrCodes/creer/'.$materiel->numero_laboratoire); 10 +$this->requestAction('/QrCodes/creer/');
11 $qrCode=$this->request->session()->read("qrCodePath"); 11 $qrCode=$this->request->session()->read("qrCodePath");
12 $fpdf->Image($qrCode,180,10,-100); 12 $fpdf->Image($qrCode,180,10,-100);
13 13
src/Template/Layout/default.ctp
@@ -94,7 +94,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;; @@ -94,7 +94,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;;
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.4.3 (16/06/2016)</font> 97 + <font color="black">VERSION 2.4.4.4 (17/06/2016)</font>
98 </td> 98 </td>
99 </tr> 99 </tr>
100 </table> 100 </table>
src/Template/Materiels/view.ctp
@@ -9,12 +9,14 @@ @@ -9,12 +9,14 @@
9 <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?> 9 <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?>
10 </span> 10 </span>
11 <?php 11 <?php
  12 + //Url transformé en QrCode
  13 + $this->request->session()->write("qrUrl", $this->request->env('SERVER_NAME').$this->request->env('REQUEST_URI'));
12 14
13 - $this->requestAction('/QrCodes/creer/'.$materiel->numero_laboratoire); 15 + $this->requestAction('/QrCodes/creer/');
14 echo $this->Html->image('qrcodes/'.$this->request->session()->read("filename"), [ 16 echo $this->Html->image('qrcodes/'.$this->request->session()->read("filename"), [
15 'alt' => 'QrCode : '.$materiel->numero_laboratoire, 17 'alt' => 'QrCode : '.$materiel->numero_laboratoire,
16 'style' => 'float: right']); 18 'style' => 'float: right']);
17 - 19 +
18 ?> 20 ?>
19 </h2> 21 </h2>
20 22
@@ -126,7 +128,7 @@ @@ -126,7 +128,7 @@
126 128
127 echo $this->Html->link('<i class="icon-file"></i> Fiche matériel', 129 echo $this->Html->link('<i class="icon-file"></i> Fiche matériel',
128 ['controller' => 'documents', 'action' => 'ficheMateriel', $materiel->numero_laboratoire], 130 ['controller' => 'documents', 'action' => 'ficheMateriel', $materiel->numero_laboratoire],
129 - ['title' => 'Voir la fichedu materiel', 'style' => 'margin-right: 10px', 'escape' => false]); 131 + ['title' => 'Voir la fiche du materiel', 'style' => 'margin-right: 10px', 'escape' => false]);
130 132
131 // BOUTON ETIQUETTE POSEE 133 // BOUTON ETIQUETTE POSEE
132 if ($configuration->hasPrinter && in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) { 134 if ($configuration->hasPrinter && in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
src/Template/Pages/tools.ctp
@@ -62,6 +62,7 @@ @@ -62,6 +62,7 @@
62 } 62 }
63 echo '</td></tr>'; 63 echo '</td></tr>';
64 64
  65 +
65 endif; 66 endif;
66 67
67 ?> 68 ?>