Commit 21b79a83 authored by Fabrice Gangler's avatar Fabrice Gangler 🎨
Browse files

Comptoir v2.6.0

parents 1807c433 a9590d6d
Pipeline #9026 failed with stage
in 4 minutes and 33 seconds
......@@ -36,6 +36,9 @@
*.phar binary
*.jpeg binary
*.svg binary
*.zip binary
*.7z binary
*.bz2 binary
*.tar binary
*.tar.gz binary
*.tar.bz2 binary
......
......@@ -5,6 +5,58 @@ Tous les changements notables de ce projet sont documentés dans ce fichier.
Le format s'appuie sur [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
et le projet suit [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
[2.6.0](https://gitlab.adullact.net/Comptoir/Comptoir-srv/tags/v2.6.0) - 2020-04-07
### Added
* [#788](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/788) Cartographie - 1er version en accès restreint
Pour la prod :
* [#801](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/801) DOC - Ajout d'un prérequis optionnel : mode headers et deflate d'Apache
Pour le dev :
* [#807](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/807) Vagrant : ajout de scripts utiles (évolution db, ...)
* [#808](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/808) Cartographie : auto-generation des templates MVC via bin/cake bake
### Changed
* [#846](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/846) UX - Le formulaire de contact n'est plus utilisable anonymement
* [#847](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/847) UX - Le formulaire de contact n'est plus utilisable par les prestataires
* [#787](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/787) SEO - Imposer le préfixe /fr/ ou /en/ sur tous les liens du site web
* [#809](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/809) Webperf - Optimiser le chargement de Matomo (ex-Piwik)
* [#838](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/838) Vagrant - Le mode debug est désactivé pour les tests fonctionnels
### Fixed
* [#810](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/810) UX - Trie alphabétique de logiciels sur une page "Tag"
* [#826](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/826) UX - Trie alphabétique pour les pages "Utilisateurs" et "Prestataires" du logiciel
* [#830](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/830) UX - Témoignage : le titre n'est plus tronqué à l'affichage
* [#840](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/840) UX - Les espaces en trop dans une recherche n'ont pas d'impact sur le résultat affiché
* [#844](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/844) UX - Ajouter un message explicite au mail de contact d'un utilisateur
* [#851](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/851) UX - Le formulaire de recherche ne peut plus être envoyé si il est vide
* [#856](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/856) UX - Correction des liens du fil d’Ariane des pages "Mentions légales" et "Accessibilité"
* [#815](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/815) SEO - Ajout du fil d'ariane au format JsonLD pour les moteurs de recherche
* [#813](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/813) Webperf - Supprimer un fichier CSS inutilisé
* [#825](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/825) Webperf - Optimisation des logos (Comptoir, Adullact, Feder) + arrière-plan
* [#827](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/827) DOC - Correction de la syntaxe markdown
* [#850](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/850) Correction d'une erreur PHP si la recherche est vide
* [#857](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/857) Page d'erreur : entête HTML avec le code de la langue de l'utilisateur
Pour le dev :
* [#816](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/816) SILL - Adaptation du script d'import aux changements de format du fichier source
* [#831](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/831) DOC - Compléter les prérequis pour l'utilisation de hirak/prestissimo
* [#832](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/832) Git - Ajout des extensions .7z|.zip|.bz2 au fichier .gitattributes
* [#859](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/859) Cmposer - Mise à jour du fichier des dépendances .lock
### Deprecated
* [#828](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/828) Test - Suppression d'un test unitaire inutile
### Security
* [#833](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/833) L'utilisateur ne doit pas pouvoir modifier son rôle
* [#835](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/835) Un nouvel utilisateur ne doit pas pouvoir forcer son rôle
* [#836](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/836) API - L'ajout d'un utilisateur ne permet pas de modifier son rôle
* [#837](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/837) API - La modification d'utilisateur ne permet pas de modifier son rôle
* [#843](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/843) Log - Ajout d'un log pour l'utilisation du formulaire de contact d'un utilisateur
* [#853](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/853) L'édition ou la suppression d'un tag est autorisé uniquement pour les rôles > "user"
## [2.5.0](https://gitlab.adullact.net/Comptoir/Comptoir-srv/tags/v2.5.0) - 2020-02-06
### Added
......@@ -16,7 +68,7 @@ et le projet suit [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
* [#798](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/798) UX - Logo par défault en fonction du type d'utilisateur (associaion, collectivité...)
* [#796](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/796) WebPerf - Ajout des en-têtes HTTP "Cache-Control : immuable" pour les fichiers CSS et JS
Pour développeurs :
Pour le dev :
* [#694](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/694) Vagrant : afficher les erreurs PHP et augmenter le niveau d'erreur
* [#695](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/695) Vagrant : permettre la synchronisation du code de l'IDE avec la VM
* [#702](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/702) Vagrant : activer l'auto-correction de collision des ports
......@@ -29,7 +81,7 @@ Pour développeurs :
* [#637](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/637) UX - Monter la limite autorisé à 10 tags pour un logiciel
* [#759](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/759) SEO - Fiche utilisateur : passer le lien externe en nofollow
Pour développeurs :
Pour le dev :
* [#753](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/753) Préciser de manière plus précise la version de PHP dans le composer.json
### Fixed
......@@ -52,7 +104,7 @@ Pour développeurs :
* [#797](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/797) modifier l'email de contact pour limiter le spam
Pour développeurs :
Pour le dev :
* [#648](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/648) Vagrant : les tests unitaires en cours ne doivent pas effacer le DB du comptoir
### Security
......@@ -66,16 +118,15 @@ Pour développeurs :
### Added
Pour développeurs :
Pour le dev :
* [#646](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/646) Vagrant: choix d'installer en mode debug ou production
## [2.4.10-rc.1](https://gitlab.adullact.net/Comptoir/Comptoir-srv/tags/v2.4.10-rc.1) - 2019-03-27
### Added
Pour développeurs :
Pour le dev :
* [#575](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/575) Les images Docker peuvent envoyer des mails
* [#584](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/584) Les images Docker peuvent s'appuient l'image PHP (et non plus Ubuntu, trop volumineuse)
* [#580](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/580) Ajout de code sniffer dans les tests automatiques sur les fichiers modififés ajoutés dans le code source
......@@ -98,6 +149,7 @@ Pour développeurs :
* [#609](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/609) Mot de passe perdu : Correction de l'envoi du mauvais formulaire qui demandait l'ancien mot de passe.
* [#587](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/587) Correction de l'erreur affichée lors de la déclaration d'un compte utilisateur comme utilisateur d'un logiciel
## [2.4.9](https://gitlab.adullact.net/Comptoir/Comptoir-srv/tags/v2.4.9) - 2018-08-16
### Fixed
......@@ -105,12 +157,14 @@ Pour développeurs :
* [#573](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/573) Correction du lien erroné dans le courriel de mot de passe perdu
* [#572](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/572) Mise à jour des paramètres STMP par défaut
## [2.4.8](https://gitlab.adullact.net/Comptoir/Comptoir-srv/tags/v2.4.8) - 2018-08-14
### Fixed
* [#542](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/542) Correction de l'affichage de tous les logiciels d'un tag
## [2.4.8-rc.2](https://gitlab.adullact.net/Comptoir/Comptoir-srv/tags/v2.4.8-rc.2) - 2018-08-14
### Added
......@@ -130,6 +184,7 @@ Pour développeurs :
* [#467](https://gitlab.adullact.net/Comptoir/Comptoir-srv/issues/467) Correction XSS sur les formulaires
## [2.4.8-rc.1](https://gitlab.adullact.net/Comptoir/Comptoir-srv/tags/v2.4.8-rc.1) - 2018-08-07
### Added
......@@ -141,6 +196,7 @@ Pour développeurs :
* Les prestataires sont maintenant séparés des utilisateurs et disposent d'une entrée propre dans la barre de navigation.
* Correction de bugs d'internationalisation (tout est censé être traduit de l'anglais vers le français)
## 2.4.7 - 2018-03-28
(not tagged; SHA: `86d815d1a1476683716130d81870725375ea2170`)
......
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community
leaders responsible for enforcement at [https://adullact.org/contact](https://adullact.org/contact).
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of actions.
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,
available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
# Contributing
First off, thanks for taking the time to contribute!
## How Can I Contribute?
- Reporting bugs
- Suggesting enhancements
- Code contribution
## Styleguides
- [Git Commit message](Documentation/GIT_CONVENTION.md)
## Sources of inspiration for CONTRIBUTING.md
* For contributors doc [Gitlab Workflow](https://about.gitlab.com/handbook/#gitlab-workflow)
* [Atom's Contributing file](https://github.com/atom/atom/blob/master/CONTRIBUTING.md) that is really good and brightly written.
# Composer dependencies
## Composer files (.json / .lock)
- The composer.json and composer.lock files **must** be committed at the same time.
- A pre-commit hook (`GrumPHP`) and the CI checks it too.
......@@ -13,7 +14,6 @@ composer validate
## Dev dependencies
### GrumPHP
[phpro/grumphp](https://phpqa.io/projects/grumphp.html)
......@@ -21,6 +21,7 @@ will register some git hooks in your package repository.
When somebody commits changes, GrumPHP will run some tests on the committed code.
Usage on the project:
- [ ] IDE
- [X] manual check
- [X] pre-commit check
......@@ -28,7 +29,7 @@ Usage on the project:
```bash
# install
composer require --dev jphpro/grumphp
composer require --dev phpro/grumphp
# config file
grumphp.yml
......@@ -74,10 +75,8 @@ phpro/grumphp suggests installing
....
```
### PHP_CodeSniffer (phpcs)
[squizlabs/php_codesniffer](https://phpqa.io/projects/phpcs.html)
detects violations of a defined set of coding standards.
......@@ -112,8 +111,8 @@ vendor/bin/phpcs --standard=PSR12 src/*
vendor/bin/phpcbf
```
### PHP Compatibility (adds rules to phpcs)
[phpcompatibility/php-compatibility](https://phpqa.io/projects/php-compatibility.html)
is a set of sniffs for PHP_CodeSniffer that checks for PHP version compatibility.
It will allow you to analyse your code for compatibility with higher and lower versions of PHP.
......@@ -137,8 +136,9 @@ vendor/bin/phpcs src/ -p --standard=PHPCompatibility --runtime-set testVersion 7
```
### PHP Copy/Paste Detector (PHCPD)
[sebastian/phpcpd ](https://phpqa.io/projects/phpcpd.html)
is a Copy/Paste Detector for PHP code..
is a Copy/Paste Detector for PHP code.
Usage on the project:
- [ ] IDE
......@@ -157,6 +157,7 @@ vendor/bin/phpcpd --exclude=vendor . -v
### PHP Mess Detector (PHPMD)
[phpmd/phpmd](https://phpqa.io/projects/phpmd.html)
scans PHP source code and looks for potential problems such as possible bugs,
dead code, suboptimal code, and overcomplicated expressions.
......@@ -184,6 +185,7 @@ vendor/bin/phpmd src/ html unusedcode > phpmdReport_unusedcode.html
### PHP Parallel Lint
[jakub-onderka/php-parallel-lint](https://phpqa.io/projects/php-parallel-lint.html)
checks the syntax of PHP files, because "Parse error: syntax error" is not allowed
......@@ -204,6 +206,7 @@ vendor/bin/parallel-lint --exclude "vendor" .
```
### SensioLabs Security Checker
[sensiolabs/security-checker](https://phpqa.io/projects/security-checker.html) is
command line tool that checks if your application uses dependencies with known security vulnerabilities.
......@@ -224,17 +227,17 @@ vendor/bin/security-checker security:check
## On 2019-05-03
### Necessary for unit tests:
### Necessary for unit tests:
- "josegonzalez/cakephp-upload": "~3.8"
- "cakephp/migrations": "~1.7"
- "alt3/cakephp-swagger": "1.0.*"
### Necessary for CRUD
### Necessary for CRUD
- "friendsofcake/crud": "~5.2.2"
### Necessary for using helper (view)
### Necessary for using helper (view)
- "gourmet/social-meta": "^1.0"
......
# Dev prerequisites for Comptoir
## 0. Verify prerequisites Ubuntu 18.04
Checks that PHP and extensions versions match the platform requirements of the installed packages:
```bash
composer check-platform-reqs
```
Documentation: https://getcomposer.org/doc/03-cli.md#check-platform-reqs
List php versions available on the host:
```bash
sudo update-alternatives --list php
```
Display the default php version:
```bash
sudo update-alternatives --display php
```
If suitable PHP version is available, enable it:
```bash
sudo update-alternatives --set php /usr/bin/php7.0
```
## 1. Install correct PHP version + extensions
```bash
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt install \
php7.0 \
php7.0-intl \
php7.0-mbstring \
php7.0-curl \
php7.0-xml \
php7.0-dom
```
## 2. Enabled the PHP version needed by comptoir app
```bash
sudo update-alternatives --set php /usr/bin/php7.0
```
and verify again with:
```bash
composer check-platform-reqs
```
-- taxonomys table
DELETE FROM public.taxonomys;
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (1, null, 'Business', 'Métiers', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (2, null, 'Activities', 'Activités', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (3, null, 'Generics', 'Génériques', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (4, 2, 'Citizen Relationship Management', 'GRU - Gestion de la Relation Usager', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (5, 2, 'GIS - Geographic Information System', 'SIG - Système d''information Géographique', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (6, 2, 'DMS - Document Management System', 'GED - Gestion Electronique de Document', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (7, 2, 'Archiving', 'SAE (archivage)', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (8, 2, 'Mail', 'Courrier', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (9, 2, 'Civic-tech', 'Civic-tech', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (10, 2, 'Signature', 'Signature', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (11, 1, 'General Administration / HR / Finance', 'Administration générale / RH / Finances', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (12, 1, 'Town planning / Public space / Environment', 'Urbanisme / Espace public / Environnement', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (13, 1, 'Sovereign services (Civil status, cemetery, elections, public security...)', 'Régalien (Etat civil, cimetière, élections, sécurité publique...)', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (14, 1, 'Healthcare / Social', 'Santé / Social', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (15, 1, 'Transport', 'Transport', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (16, 1, 'Culture / Heritage', 'Culture / Patrimoine', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (17, 1, 'Sport', 'Sport', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (18, 1, 'Family / Childhood / Education / Schooling', 'Famille / Enfance / Éducation / Scolaire', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (19, 1, 'Economic life', 'Vie économique', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (20, 3, 'Office automation', 'Bureautique', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (21, 3, 'Design', 'Design', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (22, 3, 'Infrastructure', 'Infrastructure', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (23, 3, 'Data-Mining', 'Data-Mining', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
ALTER SEQUENCE taxonomys_id_seq RESTART WITH 24;
-- taxonomys_softwares table
DELETE FROM public.taxonomys_softwares;
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (1, 20, 33, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (2, 20, 79, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (4, 21, 67, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (5, 22, 98, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (6, 22, 212, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (7, 22, 123, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (9, 4, 26, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (11, 5, 60, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (13, 6, 29, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (14, 7, 3, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (15, 10, 4, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (16, 8, 49, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (17, 12, 23, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
INSERT INTO public.taxonomys_softwares (id, taxonomy_id, software_id, user_id, created, modified) VALUES (19, 13, 17, null, '2020-03-13 15:15:31.000000', '2020-03-13 15:15:31.000000');
ALTER SEQUENCE taxonomys_softwares_id_seq RESTART WITH 20;
id;parent_id;title_i18n_en;title_i18n_fr;description_i18n_en;description_i18n_fr;created;modified
1;;Business;Métiers;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
2;;Activities;Activités;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
3;;Generics;Génériques;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
4;2;Citizen Relationship Management;GRU - Gestion de la Relation Usager;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
5;2;GIS - Geographic Information System;SIG - Système d'information Géographique;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
6;2;DMS - Document Management System;GED - Gestion Electronique de Document;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
7;2;Archiving;SAE (archivage);;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
8;2;Mail;Courrier;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
9;2;Civic-tech;Civic-tech;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
10;2;Signature;Signature;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
11;1;General Administration / HR / Finance;Administration générale / RH / Finances;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
12;1;Town planning / Public space / Environment;Urbanisme / Espace public / Environnement;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
13;1;Sovereign services (Civil status, cemetery, elections, public security...);Régalien (Etat civil, cimetière, élections, sécurité publique...);;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
14;1;Healthcare / Social;Santé / Social;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
15;1;Transport;Transport;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
16;1;Culture / Heritage;Culture / Patrimoine;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
17;1;Sport;Sport;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
18;1;Family / Childhood / Education / Schooling;Famille / Enfance / Éducation / Scolaire;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
19;1;Economic life;Vie économique;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
20;3;Office automation;Bureautique;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
21;3;Design;Design;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
22;3;Infrastructure;Infrastructure;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
23;3;Data-Mining;Data-Mining;;;2020-01-31 15:12:58.000000;2020-01-31 15:12:58.000000
DELETE FROM public.taxonomys;
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (1, null, 'Business', 'Métiers', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (2, null, 'Activities', 'Activités', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (3, null, 'Generics', 'Génériques', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (4, 2, 'Citizen Relationship Management', 'GRU - Gestion de la Relation Usager', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (5, 2, 'GIS - Geographic Information System', 'SIG - Système d''information Géographique', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (6, 2, 'DMS - Document Management System', 'GED - Gestion Electronique de Document', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (7, 2, 'Archiving', 'SAE (archivage)', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (8, 2, 'Mail', 'Courrier', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (9, 2, 'Civic-tech', 'Civic-tech', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (10, 2, 'Signature', 'Signature', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (11, 1, 'General Administration / HR / Finance', 'Administration générale / RH / Finances', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (12, 1, 'Town planning / Public space / Environment', 'Urbanisme / Espace public / Environnement', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (13, 1, 'Sovereign services (Civil status, cemetery, elections, public security...)', 'Régalien (Etat civil, cimetière, élections, sécurité publique...)', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (14, 1, 'Healthcare / Social', 'Santé / Social', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (15, 1, 'Transport', 'Transport', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (16, 1, 'Culture / Heritage', 'Culture / Patrimoine', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (17, 1, 'Sport', 'Sport', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (18, 1, 'Family / Childhood / Education / Schooling', 'Famille / Enfance / Éducation / Scolaire', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (19, 1, 'Economic life', 'Vie économique', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (20, 3, 'Office automation', 'Bureautique', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (21, 3, 'Design', 'Design', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (22, 3, 'Infrastructure', 'Infrastructure', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
INSERT INTO public.taxonomys (id, parent_id, title_i18n_en, title_i18n_fr, description_i18n_en, description_i18n_fr, created, modified) VALUES (23, 3, 'Data-Mining', 'Data-Mining', null, null, '2020-01-31 15:12:58.000000', '2020-01-31 15:12:58.000000');
ALTER SEQUENCE taxonomys_id_seq RESTART WITH 24;
1 Business Métiers 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
2 Activities Activités 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
3 Generics Génériques 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
4 2 Citizen Relationship Management GRU - Gestion de la Relation Usager 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
5 2 GIS - Geographic Information System SIG - Système d'information Géographique 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
6 2 DMS - Document Management System GED - Gestion Electronique de Document 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
7 2 Archiving SAE (archivage) 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
8 2 Mail Courrier 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
9 2 Civic-tech Civic-tech 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
10 2 Signature Signature 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
11 1 General Administration / HR / Finance Administration générale / RH / Finances 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
12 1 Town planning / Public space / Environment Urbanisme / Espace public / Environnement 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
13 1 Sovereign services (Civil status, cemetery, elections, public security...) Régalien (Etat civil, cimetière, élections, sécurité publique...) 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
14 1 Healthcare / Social Santé / Social 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
15 1 Transport Transport 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
16 1 Culture / Heritage Culture / Patrimoine 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
17 1 Sport Sport 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
18 1 Family / Childhood / Education / Schooling Famille / Enfance / Éducation / Scolaire 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
19 1 Economic life Vie économique 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
20 3 Office automation Bureautique 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
21 3 Design Design 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
22 3 Infrastructure Infrastructure 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
23 3 Data-Mining Data-Mining 2020-01-31 15:12:58.000000 2020-01-31 15:12:58.000000
UPDATE public.taxonomys SET parent_id = null, title_i18n_en = 'Business', title_i18n_fr = 'Métiers', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 1;
UPDATE public.taxonomys SET parent_id = null, title_i18n_en = 'Activities', title_i18n_fr = 'Activités', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 2;
UPDATE public.taxonomys SET parent_id = null, title_i18n_en = 'Generics', title_i18n_fr = 'Génériques', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 3;
UPDATE public.taxonomys SET parent_id = 2, title_i18n_en = 'Citizen Relationship Management', title_i18n_fr = 'GRU - Gestion de la Relation Usager', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 4;
UPDATE public.taxonomys SET parent_id = 2, title_i18n_en = 'GIS - Geographic Information System', title_i18n_fr = 'SIG - Système d''information Géographique', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 5;
UPDATE public.taxonomys SET parent_id = 2, title_i18n_en = 'DMS - Document Management System', title_i18n_fr = 'GED - Gestion Electronique de Document', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 6;
UPDATE public.taxonomys SET parent_id = 2, title_i18n_en = 'Archiving', title_i18n_fr = 'SAE (archivage)', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 7;
UPDATE public.taxonomys SET parent_id = 2, title_i18n_en = 'Mail', title_i18n_fr = 'Courrier', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 8;
UPDATE public.taxonomys SET parent_id = 2, title_i18n_en = 'Civic-tech', title_i18n_fr = 'Civic-tech', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 9;
UPDATE public.taxonomys SET parent_id = 2, title_i18n_en = 'Signature', title_i18n_fr = 'Signature', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 10;
UPDATE public.taxonomys SET parent_id = 1, title_i18n_en = 'General Administration / HR / Finance', title_i18n_fr = 'Administration générale / RH / Finances', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 11;
UPDATE public.taxonomys SET parent_id = 1, title_i18n_en = 'Town planning / Public space / Environment', title_i18n_fr = 'Urbanisme / Espace public / Environnement', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 12;
UPDATE public.taxonomys SET parent_id = 1, title_i18n_en = 'Sovereign services (Civil status, cemetery, elections, public security...)', title_i18n_fr = 'Régalien (Etat civil, cimetière, élections, sécurité publique...)', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 13;
UPDATE public.taxonomys SET parent_id = 1, title_i18n_en = 'Healthcare / Social', title_i18n_fr = 'Santé / Social', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 14;
UPDATE public.taxonomys SET parent_id = 1, title_i18n_en = 'Transport', title_i18n_fr = 'Transport', description_i18n_en = null, description_i18n_fr = null, created = '2020-01-31 15:12:58.000000', modified = '2020-01-31 15:12:58.000000' WHERE id = 15;
UPDATE public.taxonomys SET parent_id = 1, title_i18n_en = 'Culture / Heritage', title_i18n_fr = 'Culture / Patrimoine', description_i18n_en = null, description_i18n_fr = null, created