From e81243eafe1a494fc694ec29ae9b7dce3dbdfb53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr>
Date: Tue, 2 Apr 2019 14:19:10 +0200
Subject: [PATCH] =?UTF-8?q?R=C3=A9organisation=20des=20dossiers=20de=20don?=
 =?UTF-8?q?n=C3=A9es=20(simplification)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore                                    |   2 +-
 CHANGELOG.md                                  |  15 +++++++++++++--
 INSTALL.md                                    |   4 ++--
 README.md                                     |   6 +++++-
 UPDATE.md                                     |   5 +++--
 .../ose-ddl.sql" => bdd/install.sql           |   0
 .../06.3.2.sql" => bdd/update/06.3.2.sql      |   0
 .../06.3.sql" => bdd/update/06.3.sql          |   0
 .../07.0.sql" => bdd/update/07.0.sql          |   0
 .../08.0.1.sql" => bdd/update/08.0.1.sql      |   0
 .../08.0.3.sql" => bdd/update/08.0.3.sql      |   0
 .../08.0.sql" => bdd/update/08.0.sql          |   0
 .../08.1.sql" => bdd/update/08.1.sql          |   0
 bin/ose                                       |  18 +++++++++---------
 config/application.config.php                 |   2 +-
 config/autoload/application.global.php        |   2 +-
 config/autoload/zenddevelopertools.dev.php    |   2 +-
 .../Apogee-OSE-calculCharges.xls              | Bin
 .../Apogee-OSE-createTables.sql               |   0
 .../Apogee-OSE-export.sql                     |   0
 .../Apogee-OSE-lisezMoi.txt                   |   0
 .../Architecture connecteurs OSE.png          | Bin
 .../Connecteurs OSE.sql                       |   0
 .../FCAManager-OSE-controles.sql              |   0
 .../FCAManager-OSE-export.sql                 |   0
 .../FCAManager-OSE-lisezMoi.txt               |   0
 .../Application/config/aaa_module.config.php  |   2 +-
 .../Controller/AbstractController.php         |   2 +-
 .../Application/Service/EtatSortieService.php |   2 +-
 .../Service/ModeleContratService.php          |   2 +-
 public/install.php                            |  10 +++++-----
 31 files changed, 45 insertions(+), 29 deletions(-)
 rename "data/D\303\251ploiement/ose-ddl.sql" => bdd/install.sql (100%)
 rename "data/Mises \303\240 jour/06.3.2.sql" => bdd/update/06.3.2.sql (100%)
 rename "data/Mises \303\240 jour/06.3.sql" => bdd/update/06.3.sql (100%)
 rename "data/Mises \303\240 jour/07.0.sql" => bdd/update/07.0.sql (100%)
 rename "data/Mises \303\240 jour/08.0.1.sql" => bdd/update/08.0.1.sql (100%)
 rename "data/Mises \303\240 jour/08.0.3.sql" => bdd/update/08.0.3.sql (100%)
 rename "data/Mises \303\240 jour/08.0.sql" => bdd/update/08.0.sql (100%)
 rename "data/Mises \303\240 jour/08.1.sql" => bdd/update/08.1.sql (100%)
 rename "data/D\303\251ploiement/Connecteurs/Apogee-OSE-calculCharges.xls" => connecteurs/Apogee-OSE-calculCharges.xls (100%)
 rename "data/D\303\251ploiement/Connecteurs/Apogee-OSE-createTables.sql" => connecteurs/Apogee-OSE-createTables.sql (100%)
 rename "data/D\303\251ploiement/Connecteurs/Apogee-OSE-export.sql" => connecteurs/Apogee-OSE-export.sql (100%)
 rename "data/D\303\251ploiement/Connecteurs/Apogee-OSE-lisezMoi.txt" => connecteurs/Apogee-OSE-lisezMoi.txt (100%)
 rename "data/D\303\251ploiement/Connecteurs/Architecture connecteurs OSE.png" => connecteurs/Architecture connecteurs OSE.png (100%)
 rename "data/D\303\251ploiement/Connecteurs/Connecteurs OSE.sql" => connecteurs/Connecteurs OSE.sql (100%)
 rename "data/D\303\251ploiement/Connecteurs/FCAManager-OSE-controles.sql" => connecteurs/FCAManager-OSE-controles.sql (100%)
 rename "data/D\303\251ploiement/Connecteurs/FCAManager-OSE-export.sql" => connecteurs/FCAManager-OSE-export.sql (100%)
 rename "data/D\303\251ploiement/Connecteurs/FCAManager-OSE-lisezMoi.txt" => connecteurs/FCAManager-OSE-lisezMoi.txt (100%)

diff --git a/.gitignore b/.gitignore
index 5b05a4480e..9259104530 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
 config.local.php
 config/autoload/*.local.php
 vendor/*
-data/cache/*
+cache/*
 .idea
 deploy.log
 VERSION
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f92ba355fd..0c2ed80ab9 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,13 +27,24 @@ Attention toutefois : le travail de mise en place du dispositif n'en est qu'au t
 * Interface d'administration des motifs de modification de service dû
 * Interface d'administration des domaines fonctionnels
 * Installation possible via Docker d'une version de développement ou de test
+* Changements d'organisation des fichiers du projet
+    * Les fichiers liés à la base de données sont maintenant placés dans /bdd. Un sous-répertoire update recense tous les
+    fichiers de mises à jour de base de données liés aux nouvelles versions
+    * Le fichier /bdd/install.sql est à injecter dans un schéma de base de données vide pour toute nouvelle installation de OSE.
+    * Le dossier data/cache s'appelle maintenant directement /cache
+    * Les connecteurs sont maintenant placés dans un dossier /connecteurs
+* Les procédures d'installation et de mise à jour sont disposibles également dans le Gitlab 
+(Cf. [`INSTALL.md`](INSTALL.md) et [`UPDATE.md`](UPDATE.md))
 
 ## Notes de mise à jour
 
 * Modifiez la structure de votre base de données en exécutant dans SQL developer le script de mise à jour suivant :
-`data/Mises à jour/08.1.sql`
-Les mises à jour `data/Mises à jour/08.0.1.sql` et `data/Mises à jour/08.0.3.sql` sont inclues dans le précédent fichier.
+`bdd/update/08.1.sql`
+Les mises à jour `bdd/update/08.0.1.sql` et `bdd/update/08.0.3.sql` sont inclues dans le précédent fichier.
 Inutile, donc, de les exécuter si vous mettez à jour depuis la 8.0.
+* Attention : le dossier de cache est déplacé de /data/cache vers /cache. La procédure de mise à jour devrait lui attribuer
+automatiquement les accès nécessaires au bon fonctionnement de l'application. Vous pourrez supprimer manuellement l'ancien
+dossier /data/cache qui n'a plus d'utilité.
 * Attention : au niveau de votre configuration Apache, APPLICATION_ENV peut prendre désormais trois valeurs possibles :
 dev,test ou prod. Les anciennes valeurs development et production doivent donc être respectivement remplacées par dev et prod.
 
diff --git a/INSTALL.md b/INSTALL.md
index 9919c944b4..7270b75baa 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -293,7 +293,7 @@ OSE sera accessible sur votre machine, à l'adresse http://ose-test.localhost
 
 # Création de la base de données
 Créez une base de données avec un utilisateur pour OSE, un schéma, puis un tablespace vides.
-Un script d'initialisation vous est fourni (répertoire data/Déploiement/ose-ddl.sql). Il vous revient de le lancer pour peupler la base de données.
+Un script d'initialisation vous est fourni (répertoire bdd/install.sql). Il vous revient de le lancer pour peupler la base de données.
 
 Attention à bien veiller à ce que les accents soient correctement traités.
 Les caractères du fichier sont en **UTF8**.
@@ -354,7 +354,7 @@ OSE est maintenant installé.
 
 # Connecteurs
 Afin de pouvoir intégrer OSE à votre système d'information, 
-des [connecteurs](https://git.unicaen.fr/open-source/OSE/tree/master/data/D%C3%A9ploiement/Connecteurs) 
+des [connecteurs](https://git.unicaen.fr/open-source/OSE/tree/master/connecteurs) 
 vous sont fournis à titre d'exemple.
 Vous devrez en effet les adapter à vos besoins.
 
diff --git a/README.md b/README.md
index b9e8ce466d..99395f7391 100644
--- a/README.md
+++ b/README.md
@@ -14,4 +14,8 @@ Cf. [`INSTALL.md`](INSTALL.md).
 
 ## Procédure de mise à jour
 
-Cf. [`UPDATE.md`](UPDATE.md).
\ No newline at end of file
+Cf. [`UPDATE.md`](UPDATE.md).
+
+## Modèle de données de l'application
+
+Cf. [`doc/Modèle de données`](doc/Modèle de données).
\ No newline at end of file
diff --git a/UPDATE.md b/UPDATE.md
index 21ede90046..ab6b658e86 100644
--- a/UPDATE.md
+++ b/UPDATE.md
@@ -26,12 +26,13 @@ de travail dans son état originel au moyen de la commande suivante :
 
 ## Mise à jour de la base de données
 
-* Dans le répertoire `data/Mises à jour`, si un fichier `.sql` corresopnd à la nouvelle version installée,
+* Dans le répertoire `bdd/update`, si un fichier `.sql` corresopnd à la nouvelle version installée,
 exécutez les requêtes dans SQL Developer pour mettre à jour la base de données.
 
 ## Tests
 
-Le fichier `data/Déploiement/Changements.pdf` recense les changements apportés par les différentes versions de l'application.
+[La liste des changements](https://ose.unicaen.fr/deploiement/changements.html) 
+recense les changements apportés par les différentes versions de l'application.
 Vous êtes invité à tester prioritairement ces changements.
 
 ## Passage en production
diff --git "a/data/D\303\251ploiement/ose-ddl.sql" b/bdd/install.sql
similarity index 100%
rename from "data/D\303\251ploiement/ose-ddl.sql"
rename to bdd/install.sql
diff --git "a/data/Mises \303\240 jour/06.3.2.sql" b/bdd/update/06.3.2.sql
similarity index 100%
rename from "data/Mises \303\240 jour/06.3.2.sql"
rename to bdd/update/06.3.2.sql
diff --git "a/data/Mises \303\240 jour/06.3.sql" b/bdd/update/06.3.sql
similarity index 100%
rename from "data/Mises \303\240 jour/06.3.sql"
rename to bdd/update/06.3.sql
diff --git "a/data/Mises \303\240 jour/07.0.sql" b/bdd/update/07.0.sql
similarity index 100%
rename from "data/Mises \303\240 jour/07.0.sql"
rename to bdd/update/07.0.sql
diff --git "a/data/Mises \303\240 jour/08.0.1.sql" b/bdd/update/08.0.1.sql
similarity index 100%
rename from "data/Mises \303\240 jour/08.0.1.sql"
rename to bdd/update/08.0.1.sql
diff --git "a/data/Mises \303\240 jour/08.0.3.sql" b/bdd/update/08.0.3.sql
similarity index 100%
rename from "data/Mises \303\240 jour/08.0.3.sql"
rename to bdd/update/08.0.3.sql
diff --git "a/data/Mises \303\240 jour/08.0.sql" b/bdd/update/08.0.sql
similarity index 100%
rename from "data/Mises \303\240 jour/08.0.sql"
rename to bdd/update/08.0.sql
diff --git "a/data/Mises \303\240 jour/08.1.sql" b/bdd/update/08.1.sql
similarity index 100%
rename from "data/Mises \303\240 jour/08.1.sql"
rename to bdd/update/08.1.sql
diff --git a/bin/ose b/bin/ose
index cfd0fccf96..951e9f4d80 100755
--- a/bin/ose
+++ b/bin/ose
@@ -97,16 +97,16 @@ function install(Console $c, OseAdmin $oa, $fromMaster=true)
         $c->exec([
             "cd $osedir",
             "git checkout tags/$version",
-            "mkdir data/cache",
-            "chmod 777 data/cache",
+            "mkdir cache",
+            "chmod 777 cache",
             "chmod +7 bin/ose",
         ]);
         $oa->writeVersion($osedir, $version);
     }else{
         $c->exec([
             "cd $osedir",
-            "mkdir data/cache",
-            "chmod 777 data/cache",
+            "mkdir cache",
+            "chmod 777 cache",
             "chmod +7 bin/ose",
         ]);
     }
@@ -152,8 +152,8 @@ function install(Console $c, OseAdmin $oa, $fromMaster=true)
     $c->exec([
         "cd $osedir",
         "php vendor/bin/doctrine-module orm:generate-proxies",
-        "chmod -R 777 data/cache/DoctrineProxy",
-        "chmod -R 777 data/cache/Doctrine",
+        "chmod -R 777 cache/DoctrineProxy",
+        "chmod -R 777 cache/Doctrine",
     ]);
 
     // Mise en place des tâches CRON ??
@@ -216,10 +216,10 @@ function update(Console $c, OseAdmin $oa)
     // Néttoyage des caches et mise à jour des proxies, lancement du script de migration éventuel
     $c->exec([
         "cd $osedir",
-        "rm -Rf data/cache/*",
+        "rm -Rf cache/*",
         "php vendor/bin/doctrine-module orm:generate-proxies",
-        "chmod -R 777 data/cache/DoctrineProxy",
-        "chmod -R 777 data/cache/Doctrine",
+        "chmod -R 777 cache/DoctrineProxy",
+        "chmod -R 777 cache/Doctrine",
         "php bin/ose migration $oldVersion $version",
     ]);
 
diff --git a/config/application.config.php b/config/application.config.php
index d775f73b08..6919bf6780 100755
--- a/config/application.config.php
+++ b/config/application.config.php
@@ -99,7 +99,7 @@ class AppConfig
                     './module',
                     './vendor',
                 ],
-                'cache_dir'                => 'data/cache/',
+                'cache_dir'                => 'cache/',
                 'config_cache_enabled'     => ('prod' == $env),
                 'module_map_cache_enabled' => ('prod' == $env),
             ],
diff --git a/config/autoload/application.global.php b/config/autoload/application.global.php
index 9cbd3bee08..53b7d97b68 100755
--- a/config/autoload/application.global.php
+++ b/config/autoload/application.global.php
@@ -22,7 +22,7 @@ return [
                 'result_cache'     => 'filesystem',
                 'hydration_cache'  => 'array',
                 'generate_proxies' => AppConfig::get('bdd', 'generateProxies'),
-                'proxy_dir'        => 'data/cache/DoctrineProxy',
+                'proxy_dir'        => 'cache/DoctrineProxy',
             ],
         ],
     ],
diff --git a/config/autoload/zenddevelopertools.dev.php b/config/autoload/zenddevelopertools.dev.php
index ed016e4d44..a3555eee39 100644
--- a/config/autoload/zenddevelopertools.dev.php
+++ b/config/autoload/zenddevelopertools.dev.php
@@ -41,7 +41,7 @@ return array(
              * Expects: string
              * Default: 'data/cache'
              */
-            'cache_dir' => 'data/cache',
+            'cache_dir' => 'cache',
 
             /**
              * If a matches is defined, the profiler will be disabled if the request does not match the pattern.
diff --git "a/data/D\303\251ploiement/Connecteurs/Apogee-OSE-calculCharges.xls" b/connecteurs/Apogee-OSE-calculCharges.xls
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/Apogee-OSE-calculCharges.xls"
rename to connecteurs/Apogee-OSE-calculCharges.xls
diff --git "a/data/D\303\251ploiement/Connecteurs/Apogee-OSE-createTables.sql" b/connecteurs/Apogee-OSE-createTables.sql
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/Apogee-OSE-createTables.sql"
rename to connecteurs/Apogee-OSE-createTables.sql
diff --git "a/data/D\303\251ploiement/Connecteurs/Apogee-OSE-export.sql" b/connecteurs/Apogee-OSE-export.sql
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/Apogee-OSE-export.sql"
rename to connecteurs/Apogee-OSE-export.sql
diff --git "a/data/D\303\251ploiement/Connecteurs/Apogee-OSE-lisezMoi.txt" b/connecteurs/Apogee-OSE-lisezMoi.txt
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/Apogee-OSE-lisezMoi.txt"
rename to connecteurs/Apogee-OSE-lisezMoi.txt
diff --git "a/data/D\303\251ploiement/Connecteurs/Architecture connecteurs OSE.png" b/connecteurs/Architecture connecteurs OSE.png
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/Architecture connecteurs OSE.png"
rename to connecteurs/Architecture connecteurs OSE.png
diff --git "a/data/D\303\251ploiement/Connecteurs/Connecteurs OSE.sql" b/connecteurs/Connecteurs OSE.sql
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/Connecteurs OSE.sql"
rename to connecteurs/Connecteurs OSE.sql
diff --git "a/data/D\303\251ploiement/Connecteurs/FCAManager-OSE-controles.sql" b/connecteurs/FCAManager-OSE-controles.sql
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/FCAManager-OSE-controles.sql"
rename to connecteurs/FCAManager-OSE-controles.sql
diff --git "a/data/D\303\251ploiement/Connecteurs/FCAManager-OSE-export.sql" b/connecteurs/FCAManager-OSE-export.sql
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/FCAManager-OSE-export.sql"
rename to connecteurs/FCAManager-OSE-export.sql
diff --git "a/data/D\303\251ploiement/Connecteurs/FCAManager-OSE-lisezMoi.txt" b/connecteurs/FCAManager-OSE-lisezMoi.txt
similarity index 100%
rename from "data/D\303\251ploiement/Connecteurs/FCAManager-OSE-lisezMoi.txt"
rename to connecteurs/FCAManager-OSE-lisezMoi.txt
diff --git a/module/Application/config/aaa_module.config.php b/module/Application/config/aaa_module.config.php
index 69e105b735..20bd6a8292 100755
--- a/module/Application/config/aaa_module.config.php
+++ b/module/Application/config/aaa_module.config.php
@@ -51,7 +51,7 @@ $config = [
                 'namespace' => 'OSE__' . __NAMESPACE__,
             ],
             'filesystem' => [
-                'directory' => getcwd().'/data/cache/Doctrine',
+                'directory' => getcwd().'/cache/Doctrine',
             ],
         ],
     ],
diff --git a/module/Application/src/Application/Controller/AbstractController.php b/module/Application/src/Application/Controller/AbstractController.php
index b38bb92588..5dcb75061d 100755
--- a/module/Application/src/Application/Controller/AbstractController.php
+++ b/module/Application/src/Application/Controller/AbstractController.php
@@ -57,7 +57,7 @@ abstract class AbstractController extends AbstractActionController
      */
     protected function pdf()
     {
-        $pdfPath = getcwd().'/data/cache/mpdf/';
+        $pdfPath = getcwd().'/cache/mpdf/';
         if (!file_exists($pdfPath)){
             mkdir($pdfPath);
         }
diff --git a/module/Application/src/Application/Service/EtatSortieService.php b/module/Application/src/Application/Service/EtatSortieService.php
index d2d54e791c..c8c90c83b8 100755
--- a/module/Application/src/Application/Service/EtatSortieService.php
+++ b/module/Application/src/Application/Service/EtatSortieService.php
@@ -78,7 +78,7 @@ class EtatSortieService extends AbstractEntityService
     public function genererPdf(EtatSortie $etatSortie, array $filtres): Document
     {
         $document = new Document();
-        $document->setTmpDir(getcwd() . '/data/cache/');
+        $document->setTmpDir(getcwd() . '/cache/');
         $document->getPublisher()->setAutoBreak($etatSortie->isAutoBreak());
         $document->setPdfOutput(true);
         if ($etatSortie->hasFichier()) {
diff --git a/module/Application/src/Application/Service/ModeleContratService.php b/module/Application/src/Application/Service/ModeleContratService.php
index b89bef56cf..570772dc98 100755
--- a/module/Application/src/Application/Service/ModeleContratService.php
+++ b/module/Application/src/Application/Service/ModeleContratService.php
@@ -66,7 +66,7 @@ class ModeleContratService extends AbstractEntityService
         }
 
         $document = new Document();
-        $document->setTmpDir(getcwd() . '/data/cache/');
+        $document->setTmpDir(getcwd() . '/cache/');
 
         if ($modele->hasFichier()) {
             $document->loadFromData(stream_get_contents($modele->getFichier(),-1,0));
diff --git a/public/install.php b/public/install.php
index 98d223e20e..5de83dfba8 100755
--- a/public/install.php
+++ b/public/install.php
@@ -226,10 +226,10 @@ class Installateur
                         return true;
                     }
                 },
-                'Droit d\'écriture sur le dossier data/cache' => function () {
-                    $cacheDir = __DIR__ . '/../data/cache';
+                'Droit d\'écriture sur le dossier cache' => function () {
+                    $cacheDir = __DIR__ . '/../cache';
 
-                    return is_writable($cacheDir) ? true : 'Répertoire data/cache non accessible en écriture';
+                    return is_writable($cacheDir) ? true : 'Répertoire cache non accessible en écriture';
                 },
                 'Présence d\'UnoConv'                         => function () {
                     return substr(shell_exec('unoconv --version'), 0, 7) == 'unoconv' ? true : 'Commande "unoconv" introuvable';
@@ -360,8 +360,8 @@ class Installateur
     public function affTests()
     {
         /* Au besoin, on supprime le cache de onfiguration */
-        if (file_exists('data/cache/module-config-cache.php')){
-            unlink('data/cache/module-config-cache.php');
+        if (file_exists('cache/module-config-cache.php')){
+            unlink('cache/module-config-cache.php');
         }
 
         $tests = $this->makeTests();
-- 
GitLab