Commit 8e44d87c authored by THEO GUILLON's avatar THEO GUILLON
Browse files

Merge branch '339-mise-en-place-de-docker' into '1.2.0'

Resolve "Mise en place de docker"

See merge request web-DPO/web-DPO!302
parents abbdff0b df0ce494
DB_HOST=web-dpo-db
DB_USERNAME=webdpo
DB_PASSWORD=webdpo
DB_APP_NAME=webdpo
DB_TEST_NAME=webdpo_test
TZ=Europe/Paris
......@@ -14,6 +14,7 @@
/app/Plugin/Database
/app/Plugin/FusionConv
/app/Plugin/LdapManager
/app/Plugin/LibricielChecks
/app/Plugin/Postgres
/app/Plugin/Translator
/app/webroot/js/bootstrap
......
# Docker
## Avertissements
### Fichiers envoyés dans les conteneurs docker
L'utilisation avec docker en mode développement implique, pour éviter de polluer l'espace de travail sur le poste du
développeur avec les répertoires `app/tmp`, `vendors` ou `node_modules`, de lister les fichiers à envoyer dans le
conteneur docker dans les fichiers `docker-compose.yml` et `docker/app/Dockerfile`.
Cela ne pose pas de problème pour les fichiers se trouvant dans `app`, mais peut nécessiter des ajustements si des fichiers
sont ajoutés dans d'autres répertoires ou à la racine.
### Patches SQL
Par ailleurs, pour pouvoir passer les fichiers SQL au lancement du docker, il faut penser, si on renomme ou ajoute des
fichiers SQL, à modifier la fonction `init_data_db` du fichier `docker/app/usr/bin/docker-entrypoint.sh`.
### Fichiers importants pour docker
| Fichier / dossier | Git | Commentaire |
| --- | --- | --- |
| `docker/app/Dockerfile` | Nouveau | `Dockerfile` du conteneur applicatif |
| `docker/app/etc/apache2/sites-available/webdpo.conf` | Nouveau | Configuration apache du conteneur applicatif |
| `docker/app/etc/cron.d/web-dpo` | Nouveau | Tâche planifiée du conteneur applicatif |
| `docker/app/usr/bin/composer-install.php` | Nouveau | Script facilitant l'installation de `composer` sur le conteneur applicatif |
| `docker/app/usr/bin/docker-entrypoint.sh` | Nouveau | Script exécuté au lancement du conteneur applicatif, passe les patches SQL, corrige les sources de PHPUnit, création de liens symboliques, modification des permissions et lancement des services (cron, apache) |
| `docker/app/var/www/html/web-dpo/app/Config/database.php` | Nouveau | Configuration de la connexion à la base de données propre au conteneur applicatif |
| `docker/app/var/www/html/web-dpo/app/Config/email.php` | Nouveau | Configuration du serveur de mail propre au conteneur applicatif |
| `docker/postgres/docker-entrypoint-initdb.d/000-init.sql` | Nouveau | Création de l'utilisateur et de la base de données `webdpo` sur le conteneur PostgreSQL |
| `.env` | Nouveau | Variables d'environnement utilisées pour les conteneurs docker |
| `cake_utils.sh` | Nouveau | Lancement de commandes (pre_commit, lint, tests, ...) dans le conteneur applicatif |
| `docker-compose.sh` | Nouveau | Commandes permettant de nettoyer ou de lancer les conteneurs docker nécessaires à web-DPO (voir ci-dessous) |
| `docker-compose.yml` | Nouveau | `docker-compose` des services de `web-DPO` |
| `README-docker.md` | Nouveau | Ce fichier d'information |
## Commandes
### Lancement de web-DPO
```bash
./docker-compose.sh web-dpo
```
### Nettoyage des images docker etc...
Lorsqu'on change de page ou que l'on a fait des modifications importantes, pour supprimer les images docker etc et
repartir sur une installation propre.
```bash
./docker-compose.sh clear
```
### Exécution côté conteneur applicatif
```bash
docker-compose exec web-dpo-app /bin/bash
```
#### Console de vérification de l'application
```bash
sudo -u www-data vendors/bin/cake checks -app app
```
#### Lancement de l'intégration continue manuellement
```bash
./cake_utils.sh pre_commit
```
## Conteneurs Docker
| Application | Container | URL | Identifiant |
| --- | --- | --- | --- |
| __Cloudooo__ | `web-dpo-cloudooo` | | |
| __Golem__ | `web-dpo-golem` | | |
| __Mailcatcher__ | `web-dpo-mailcatcher` | http://localhost:2081/ | |
| __PostgreSQL__ | `web-dpo-db` | | `webdpo` / `webdpo` |
| __web-DPO__ | `web-dpo-app` | http://localhost:2080/ | `superadmin` / `admin` |
Voir le fichier `docker-compose.yml`
......@@ -106,7 +106,7 @@ ALTER TABLE fiches
DROP CONSTRAINT fiches_form_id_fkey,
ADD CONSTRAINT fiches_form_id_fkey FOREIGN KEY (form_id) REFERENCES formulaires (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE fiches ADD COLUMN soustraitance NOT NULL BOOLEAN DEFAULT FALSE;
ALTER TABLE fiches ADD COLUMN soustraitance BOOL NOT NULL DEFAULT FALSE;
ALTER TABLE fiches ADD COLUMN obligation_pia BOOL DEFAULT NULL;
ALTER TABLE fiches ADD COLUMN realisation_pia BOOL DEFAULT NULL;
ALTER TABLE fiches ADD COLUMN depot_pia BOOL DEFAULT NULL;
......
......@@ -80,10 +80,9 @@ Inflector::rules('plural', array(
*/
CakePlugin::loadAll([
//['bootstrap' => false],
'AuthManager' => ['bootstrap' => true, 'routes' => false],
'Appchecks' => ['bootstrap' => false, 'routes' => false],
'Database' => ['bootstrap' => false, 'routes' => false],
'LibricielChecks' => ['bootstrap' => false, 'routes' => false],
'Postgres' => ['bootstrap' => false, 'routes' => false],
'Translator' => ['bootstrap' => true, 'routes' => false]
]);
......@@ -271,6 +270,7 @@ require_once(APP . DS . 'Lib' . DS . 'basics.php');
CakePlugin::load('Cakeflow', ['bootstrap' => true, 'routes' => false]);
CakePlugin::load('FusionConv', ['bootstrap' => true, 'routes' => false]);
CakePlugin::load('LdapManager', ['bootstrap' => true, 'routes' => false]);
CakePlugin::load('LibricielChecks', ['bootstrap' => false, 'routes' => false]);
//appVersion
$versionFile = file(ROOT . DS . 'VERSION.txt');
......
......@@ -88,7 +88,7 @@ define('FORMAT_DATE', '%e-%m-%Y');
define('FORMAT_DATE_HEURE', '%e-%m-%Y à %H:%M');
//Validation champs Nom, Prenom etc...
define('REGEXP_ALPHA_FR', ""/^[a-zA-Z\'-ÂÀâàÇçÉÊÈËéêèëÎÏîïÔÖôöÛÙûù ]*$/i");
define('REGEXP_ALPHA_FR', "/^[a-zA-Z\'-ÂÀâàÇçÉÊÈËéêèëÎÏîïÔÖôöÛÙûù ]*$/i");
//Validation champs email
define('REGEXP_EMAIL_FR', '/^[a-zA-Z1-9\-@._]*$/i');
......
......@@ -69,6 +69,7 @@ class ChecksShell extends AppShell
}
foreach($results as $key => $result) {
$result += ['value' => null];
if ($result['success'] === true) {
$icon = "\xE2\x9C\x94";
} else {
......
......@@ -28,7 +28,9 @@ class ChecksController extends AppController {
public $uses = ['User'];
public $helpers = [
'Appchecks.Checks'
'Checks' => [
'className' => 'LibricielChecks.LibricielChecks'
]
];
public function index() {
......
......@@ -40,10 +40,6 @@ class OrganisationsController extends AppController
'EtatFiche'
];
public $helpers = [
'Appchecks.Checks'
];
/**
* Accueil de la page, listing des organisations
*
......@@ -408,6 +404,7 @@ class OrganisationsController extends AppController
$this->set('informationsUsers', $result);
} else {
$array_users = null;
$this->set('informationsUsers', []);
}
$roles = $this->Role->find('list', [
......
# Locale fra
# admin.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
####################### Controller/AdminsController.php #######################
......
# Locale fra
# article.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
####################### Controller/AdminsController.php #######################
......
# Locale fra
# authentification.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
####################### Controller/AuthentificationsController.php ########################
......@@ -78,4 +82,4 @@ msgstr "CAS"
msgid "ENUM::TYPE::LDAP"
msgstr "LDAP"
###############################################################################
\ No newline at end of file
###############################################################################
# Locale fra
# circuit.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
##################### Controller/ChecksController.php #######################
......
# Locale fra
# circuit.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
##################### Controller/CircuitsController.php #######################
......@@ -54,4 +58,4 @@ msgstr "Une erreur est survenue pendant la suppression"
###############################################################
###############################################################################
\ No newline at end of file
###############################################################################
# Locale fra
# composition.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
#################### Controller/CompositionsController.php ####################
......@@ -44,4 +48,4 @@ msgstr "Impossible d'ajouter une composition à cette étape"
###############################################################
###############################################################################
\ No newline at end of file
###############################################################################
# Locale fra
# connecteur.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
#################### Controller/ConnecteursController.php #####################
......@@ -51,4 +55,4 @@ msgstr "URI"
msgid "connecteur.placeholderChampUri"
msgstr "Exemple : cas_login"
###############################################################################
\ No newline at end of file
###############################################################################
# Locale fra
# connecteur_ldap.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
####################### Controller/LdapsController.php ########################
......@@ -165,4 +169,4 @@ msgstr "2"
msgid "ENUM::VERSION::3"
msgstr "3"
###############################################################################
\ No newline at end of file
###############################################################################
# Locale fra
# cron.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
#################### Controller/ConnecteursController.php #####################
......@@ -43,7 +47,7 @@ msgstr "La tâche automatique est verrouillée, impossible de l'exécuter"
msgid "cron.flasherrorErreurCronEnregistrementUser"
msgstr "La tâche automatique ne peut pas être planifier"
msgid "cron.flashsuccessTacheDeverrouiller"
msgid "cron.flasherrorTacheDeverrouiller"
msgstr "La tâche automatique n'a pas pu être déverrouillée"
#############
......@@ -119,4 +123,4 @@ msgstr "Heure(s)"
msgid "cron.champMinutesExecutionDuration"
msgstr "Minute(s)"
###############################################################################
\ No newline at end of file
###############################################################################
# Locale fra
# default.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
##########################: View/Layouts/default.ctp ##########################
#: Barre du menu
......
# Locale fra
# element.po
#
# web-DPO : https://www.libriciel.fr/web-cil/
#
# @author Théo Guillon
# @copyright Libriciel SCOP
# @link https://www.libriciel.fr/
# @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt CeCiLL v2
#
msgid ""
msgstr ""
"Project-Id-Version: web-DPO 1.2\n"
"PO-Revision-Date: 2020-04-03 12:00+0100\n"
"Last-Translator: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language-Team: Théo GUILLON <theo.guillon@libriciel.coop>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
# ======================================================================================================================
######################### View/Elements/parcours.ctp ##########################
......@@ -59,9 +63,6 @@ msgstr "Refusé par"
msgid "element.ValideeInsereeRegistre"
msgstr "Validé et inscrit au registre"
msgid "element.ValideePar"
msgstr "Validé par"
msgid "element.CommenterPar"
msgstr "Commenté par"
......@@ -80,4 +81,4 @@ msgstr "Initialisation du traitement par le DPO"
msgid "element.RedactionInitialisation"
msgstr "Rédaction du traitement, initialisé par le DPO"
###############################################################################
\ No newline at end of file
###############################################################################
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment