# LabInvent : Logiciel d'inventaire du matériel d'un laboratoire 
(à l'origine, développé pour le laboratoire IRAP de Toulouse)

COPYRIGHT (C) 2012-2019 IRAP (Institut de Recherche en Astrophysique et Planetologie) Toulouse - France

Auteurs : Etienne Pallier <epallier@irap.omp.eu>, Elodie Bourrec <ebourrec@irap.omp.eu>, Alexandre Cases (alexandre.cases@etu.univ-tlse2.fr), Thibault Ajas (thibault.ajas@laposte.net)

Licence GPL (http://www.gnu.org/copyleft/gpl.html) - Voir le fichier LICENSE.txt

Ce logiciel est construit sur un framework Php orienté objets nommé "CakePhp", dans sa version 3.2 (http://cakephp.org)

Il fonctionne avec Php 5.6+ (et bientot Php 7)

Pour l'installer, aller dans le repertoire "install/" et lire le document INSTALLATION.txt

-----------------------------------------------------------------------------------------------------------

Logiciel testé et validé sur les configurations suivantes :


- Fedora 20 (version test Thibault Ajas, IRAP, avril 2017)

- Centos 6.6 (version de "production", SI IRAP ) :

	- PHP : 5.6.22
	- Mysql : 5.1.73-3.el6_5
	- Apache : 2.2.15-39.el6.centos

- Debian GNU/Linux 8.5 (jessie) (version de "production", IAS) :

	- PHP : 5.6.22
	- Mysql : MariaDB 10.0.25
	- Apache : 2.4.10

- Scientific Linux (=Centos) 6.4 (version dev/test Etienne Pallier linux, IRAP) :

	- PHP : 5.6.30
	- MYSQL : 5.5.56
	- APACHE : 2.2.15

- UBuntu 14.04.4 (version dev/test Alexandre Cases, IRAP) :

	- PHP : 5.5.9
	- MYSQL : 5.5.47 
	- Apache : 2.4.7

- Mac OS 10.12.5 avec XAMPP 5.6.3 et 7.1 (version dev/test Etienne Pallier, IRAP) :

	- PHP 5.6.3 + MySQL 5.6.21 + Apache 2.4.10
	- PHP7.1.6 + MariaDB 10.1.24 + 2.4.25

--------------------------------------------------------------------------------------------

VERSION ACTUELLE

Date: 14/03/2019
Version: 2.11.0
Author: EP
			Ajout nouvelle option permettant le "choix du format étiquette" 
			
			IMPORTANT: 
			- Pour connaitre la version actuelle, taper "./VERSION"
			- Pour mettre à jour le code, utiliser ./UPDATE depuis la racine du projet (ne plus se contenter de faire "git pull")
			(UPDATE fait "git pull" mais il met aussi à jour la BD, seulement si nécessaire)
			- Pour s'assurer que la version récupérée est stable, taper "./TESTS.sh" (tout doit passer ok)
			- En cas de problème, taper ./SHOW_LOGS pour voir si les logs d'erreur peuvent aider
			- Pour que "./TESTS.sh" s'exécute sans "deprecated error", 
			il faut ajouter cette ligne dans la clé 'Error' de votre fichier config/app.php
			    'Error' => [
			    		...
			        'errorLevel' => E_ALL & ~E_USER_DEPRECATED,
			       	...
			    ], 
			
			
Version majeure en cours : 2.10 (https://projects.irap.omp.eu/versions/207)

ROADMAP: https://projects.irap.omp.eu/projects/inventirap/roadmap


-----------------------------------------------------------------------------------------------------------
Messages à copier/coller en cas de besoin :
- ATTENTION : Mise à jour de la base de données requise (cf database/update)
- ATTENTION : Réinstallation des plugins nécessaire (cd install/ ; ./plugins_install.sh) : si ça ne marche pas bien, ne pas hésiter à faire 'rm -rf vendor/*' avant pour tout remettre au propre
-----------------------------------------------------------------------------------------------------------

CHANGEMENTS IMPORTANTS (MILESTONES)

(Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/commits/master)

La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https://tinyurl.com/labinvent#heading=h.2r55bflctpt5

-----------------------------------------------------------------------------------------------------------
23/01/2019	Version: 2.10.1, 2, 3, 4, et 6 (EP)
			Mise à jour framework cakephp et amélioration recherche matériel et bugfix ldap:
			- Mise à jour du framework cakephp à la version courante : passage de v3.5 à v3.7
				($ php composer.phar require --update-with-dependencies "cakephp/cakephp:3.7.*")
			- Adaptations pour cakephp 3.7
			- Ajout du dossier vendor/ dans git (désormais versionné pour faciliter la mise à jour du framework cakephp)
			- Recherche Matériels : Bugfixes et améliorations
				- Bugfix Recherche générale sur plusieurs mots : fait un AND de ces mots et non pas un OR !!!
				- Bugfix Recherche générale d'une date
                 - Ajout recherche générale d'un fournisseur et d'une catégorie
				- Bugfix recherche sur un montant à virgule...
				- Complète refactorisation de MaterielsController::find(), y avait besoin !
				- Ajout de tests
				- ...
			- Nouveaux fichiers VERSION, UPDATE.sh, et mise à jour de TESTS.sh 
			- LDAP authentified bugfix
			
15/01/2019	Version: 2.9.2 (EP)
			Nouveau script "install/update.sh" pour mettre à jour automatiquement le logiciel (git pull) ET la BD (si besoin)

10/01/2019	Version: 2.9.1.11 (EP)
			Nouveau mode LDAP AUTHENTIFIÉ opérationnel (pour le CRAL) :
			- **ATTENTION, MODIF DE LA BD, il faut exécuter le script de mise à jour suivant**:
			 	- cd database/update/
			 	- ./db-update-2019-01-09.sh ("-CRAL.sh" pour le CRAL) :
			- renommé tous les champs et variables *_ldap en ldap_* pour meilleure lisibilité
			- adapté la section LDAP de la config
			- cleanup
			- update fichier database/labinvent_last_version.sql contenant la BD COMPLETE

21/12/2018	Version: 2.9.1.4 (EP)
			Version et date affichés automatiquement et merge vues listes... :
			- Version et date affichés automatiquement à partir du README.md
			- Les vues "Voir les autres listes" et "Outils/Gérer le contenu variable..." sont désormais les mêmes

14/12/2018	Version: 2.9.1.0 (EP)
			- Ajout en cours du mode LDAP authentifié
			- Nouvelle documentation (dossier doc/)

ETE 2018		Version: 2.9.0 (Malik Imelhaine)
			- Nombreux petits bugfixes et petites améliorations (a priori sans changement structure BD)

-----------------------------------------------------------------------------------------------------------
02/02/2018	Version: 2.8.1 (EP)
			- Nombreux bugfixes (saisie dates, etiquette, doc admission...)

15/09/2017	Version: 2.8.0 (EP)
			- Nouveau système ACL simplifié basé sur les tableaux $easyACL (en cours)
			- Tests paramétrés
			- Bugfix emails

-----------------------------------------------------------------------------------------------------------
30/08/2017	Version: 2.7.9 (EP)
			- fonction intelligente AppController::getUserRole() qui donne le role "Utilisateur" par défaut pour un utilisateur non privilégié
			- Refactorisation des ACL (authorizations) dans isAuthorized() et beforeFilter()
			
28/08/2017	Version: 2.7.6 (EP)
			- renforcement important des TESTS : généralisation, refactorisation, simplification + numérotation systématique (cf doc ACL)
			- nouvelle classe General dont héritent tous les tests
			- nouvelle philo mise en place : 1 fichier tests par Controleur (c'était déjà le cas), puis pour un controleur donné, tri des tests par ACTION, puis pour chaque action, tests systématique de tous les ROLES (profils) avec les cas particuliers de chacun

06/07/2017	Version: 2.7.3 (EP)
			- suppression du contenu de vendor/ => désormais ignoré car autogénéré
			- update des plugins phpqrcode et fpdf => désormais via composer.json
			- amélioration script install => pour générer automatiquement le contenu de vendor/
	
30/06/2017	Version: 2.7.0 (EP)
			Passage de Cakephp3.2 à 3.4, Phpunit 5 à 6, et compatibilité avec Php5.6 et 7
			
-----------------------------------------------------------------------------------------------------------
12/05/2017	Version: 2.6.2 (Thibaud Ajas?)
			L'ajout d'un gestionnaire du matériel est désormais obligatoire à l'ajout d'un matériel

09/05/2017  Version: 2.6.0 (Thibaud Ajas?)
            Les noms des matériels sont en rouge dans la liste lorsque la date de garantie à été dépassée, 
            ainsi que la date elle-même dans leur fiche détaillée
            Petits bugfixes divers

-----------------------------------------------------------------------------------------------------------
25/04/2017  Version: 2.5.6 (Thibaud Ajas?)
            On peut maintenant configurer et choisir sur la page le nombre de materiels affichés (20 par défaut)
            Petits bugfixes divers
            Amélioration du script et de la doc d'installation

-----------------------------------------------------------------------------------------------------------
24/06/2016	Version: 2.4.7.2 (Version 2.4 finale)		
			Implémentation des ACL (droits) & Autres demandes
			https://projects.irap.omp.eu/versions/107

-----------------------------------------------------------------------------------------------------------
30/05/2016	Version: 2.3.2.1 (Version 2.3 finale)		
			Implémentation du LDAP (vrai et fake)
			https://projects.irap.omp.eu/versions/108

-----------------------------------------------------------------------------------------------------------
23/05/2016  Version: 2.2.5.4 (Version 2.2 finale)			
	        Implémentation de toutes les autres actions
            https://projects.irap.omp.eu/versions/106

-----------------------------------------------------------------------------------------------------------
12/05/2016	Version: 2.1.10 (Version 2.1 finale)		
			Implémentation complète du CRUD
			https://projects.irap.omp.eu/versions/101

-----------------------------------------------------------------------------------------------------------
04/05/16	Version 2.0.8 (Version 2.0 finale) 
			Version de base (from bake) : php5 + cakephp3
			https://projects.irap.omp.eu/versions/105

-----------------------------------------------------------------------------------------------------------
21/01/16	Version 1.3.636 (Version 1.3 finale)
			php5 + cakephp2.1
			https://projects.irap.omp.eu/versions/17
			
-----------------------------------------------------------------------------------------------------------
(SECTION OBSOLETE, HISTORIQUE) 

MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull)

30/06/16 (v2.5.4.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-30.sh

28/06/16 (v2.5.1.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-28.sh

27/06/16 (v2.5.0.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-27.sh

24/06/16 (v2.4.7.2) Se placer dans database/update et exécuter le script ./db-update-2016-06-24-2.sh

24/06/16 (v2.4.7.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh

23/06/16 (v2.4.6.5) Se placer dans database/update et exécuter le script ./db-update-2016-06-23.sh

23/06/16 (v2.4.6.4) Se placer dans database/update et exécuter le script ./db-update-2016-06-22.sh

20/06/16 (v2.4.6.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-20.sh

17/06/16 (v2.4.4.4) (Exceptionnel) 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

15/06/16 (v2.4.4.0) Adapter la BD en exécutant le script sql ./db-update-2016-06-15.sql

13/06/16 (v2.4.3.10) Adapter la BD en exécutant le script sql ./db-update-2016-06-13.sql

07/06/16 (v2.4.3.2) Adapter la BD en exécutant le script sql ./db-update-2016-06-07.sql

06/06/16 (v2.4.3.0) Adapter la BD en exécutant le script sql ./db-update-2016-06-06.sql

04/06/16 (v???) Se placer dans install/ et exécuter le script d'installation ./installation.sh (en mode UPDATE)