Compare commits

..

133 Commits

Author SHA1 Message Date
3ee3eeceab load specs for ticket bundle in swagger 2024-04-18 11:37:29 +02:00
8089e54c14 Load migrations for ticket bundle 2024-04-17 09:57:27 +02:00
d2741cc10a Bootstrap loading of controllers and routes for ticket bundle 2024-04-15 15:48:25 +02:00
80aad92190 Compiles with ticket bundle 2024-04-15 13:48:50 +02:00
8d70ca871b update recipes symfony/translation 2024-02-14 09:58:40 +01:00
ca84e9416d update recipes symfony/phpunit-bridge 2024-02-14 09:57:09 +01:00
e03b0f71bf update recipes symfony/monolog-bundle 2024-02-14 09:56:09 +01:00
e287a832d2 update recipes symfony/mailer 2024-02-14 09:49:21 +01:00
1b5b62ba49 update recipes doctrine/doctrine-bundle 2024-02-14 09:48:36 +01:00
eb3c561f85 configure var-dump server in docker stack 2024-02-14 09:43:25 +01:00
008291bddb upgrade composer 2024-02-13 20:55:05 +01:00
c466dc297c Merge remote-tracking branch 'origin/main' into upgrade-sf5 2024-02-13 19:24:00 +01:00
2c6fb97f31 Merge pull request 'release/upgrade_vue' (#17) from release/upgrade_vue into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #17
2024-02-13 13:39:47 +00:00
LenaertsJ
c58443dd72 update composer.lock and file (automatic update) 2024-02-13 13:39:25 +00:00
b6c17f62d0 add changie
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 33s
2024-02-13 14:38:18 +01:00
7712d146c7 update yarn.lock and makefile to use node 20 and upgrade vue 2024-02-13 14:37:18 +01:00
9b42f328ae fixes after merge of master into upgrade-sf4 2024-02-13 10:59:30 +01:00
8a83372e2f make sure translations directory is kept
All checks were successful
continuous-integration/drone/tag Build is passing
2024-02-12 18:31:06 +01:00
883725af10 Merge pull request 'release/delete_translations' (#16) from release/delete_translations into main
Reviewed-on: #16
2024-02-12 16:42:12 +00:00
LenaertsJ
7faee98294 update composer.lock and file (automatic update) 2024-02-12 16:40:41 +00:00
96e0c4c97e add changie
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 32s
2024-02-12 17:39:42 +01:00
921726ec75 remove translations to prevent overwriting 2024-02-12 17:39:27 +01:00
fecb561b3b Merge branch 'main' into upgrade-sf5 2024-02-11 22:20:04 +01:00
61a77cc1de Merge pull request 'update chill to release 2.16.1' (#13) from release/chill-2.16.1 into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #13
2024-02-08 23:15:49 +00:00
julienfastre
0c65d3d681 update composer.lock and file (automatic update) 2024-02-08 23:13:55 +00:00
9c125c6af6 update chill to release 2.16.1
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 33s
2024-02-08 23:13:22 +00:00
e701b75f1e upgrade to node 20
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-09 00:00:13 +01:00
6c0caef3d5 release 1.4.4
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 22:58:06 +01:00
103282e44b restore previous version of yarn.lock 2024-02-08 22:57:12 +01:00
dd591628a8 better restriction for bootstrap version and release 1.4.3
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 22:38:38 +01:00
656d27080b release 1.4.2
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 22:13:30 +01:00
8d1693285d fix version of bootstrap to 5.2.3 2024-02-08 22:10:52 +01:00
818b4c36a3 upgrade node version and update 1.4.1
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 21:53:25 +01:00
0fb57fcdd8 Merge pull request 'upgrade chill to version 2.16.0' (#12) from release/chill-2.16.0 into main
Some checks failed
continuous-integration/drone/tag Build is failing
Reviewed-on: #12
2024-02-08 20:31:04 +00:00
julienfastre
c8d89e2a1d update composer.lock and file (automatic update) 2024-02-08 20:26:12 +00:00
d142fbe471 upgrade chill to version 2.16.0
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 1m13s
2024-02-08 20:24:58 +00:00
deadabefa1 Merge pull request 'activate bundle event in app' (#7) from 6-activate-event-bundle into main
Reviewed-on: #7
2024-02-08 20:23:54 +00:00
e8c506e883 fixup! rename main firewall 2023-12-14 22:31:09 +01:00
e5a73e666b Merge branch 'merge-async-upload-app' into upgrade-sf5 2023-12-12 16:53:12 +01:00
c3d666ed74 symfony recipes: update symfony/phpunit-bridge 2023-12-12 16:52:40 +01:00
bc68b65cfb symfony recipes: update symfony/translations 2023-12-12 16:51:55 +01:00
62c96df759 symfony recipes: update phpstan/phpstan recipes 2023-12-12 16:49:52 +01:00
c00f7fa209 Update chill-bundles: remove async-upload app 2023-12-12 16:47:10 +01:00
ad1327a351 Upgrade recipes: doctrine/doctrine-migrations-bundle (fake change)
Manual intervention in symfony.lock
2023-12-12 16:25:05 +01:00
9b2e7d1aad Upgrade recipes: phpstan/phpstan 2023-12-12 16:25:05 +01:00
7090e678ef Upgrade recipes: doctrine/annotations 2023-12-12 16:25:04 +01:00
7f1ee500a0 Upgrade recipes: symfony/webpack-encore-bundle 2023-12-12 16:25:04 +01:00
ca5f69b911 Upgrade recipes: symfony/routing 2023-12-12 16:25:04 +01:00
475228297f Upgrade recipes: symfony/validator 2023-12-12 16:25:03 +01:00
f6216567f7 Upgrade recipes: symfony/twig-bundle 2023-12-12 16:25:03 +01:00
59625879a8 Upgrade recipes: symfony/security-bundle 2023-12-12 16:25:03 +01:00
f0645d0c45 Upgrade recipes: symfony/routing 2023-12-12 16:25:03 +01:00
fb1259ba81 Upgrade recipes: symfony/phpunit-bridge 2023-12-12 16:25:02 +01:00
cd876bd889 Upgrade recipes: symfony/monolog-bundle 2023-12-12 16:25:02 +01:00
d2717b0875 Upgrade recipes: symfony/messenger 2023-12-12 16:25:02 +01:00
cda9ecc8ec Upgrade recipes: symfony/mailer 2023-12-12 16:25:02 +01:00
070c1f963a Upgrade recipes: symfony/framework 2023-12-12 16:25:00 +01:00
9dd52af2c6 Upgrade recipes: symfony/flex 2023-12-12 16:24:40 +01:00
91172e45cb Upgrade recipes: symfony/debug-bundle 2023-12-12 16:24:39 +01:00
22ff9fe53f Upgrade recipes: symfony/console 2023-12-12 16:24:38 +01:00
11ab7f01c7 Upgrade recipes: phpunit/phpunit 2023-12-12 16:24:21 +01:00
498118d434 Upgrade recipes: nyholm/psr7 2023-12-12 16:24:20 +01:00
93d0e13f81 Upgrade recipes: nelmio/alice 2023-12-12 16:24:20 +01:00
9bb77b136d composer: chill-bundles to upgrade-sf5 branch + downgrade some bundles 2023-12-12 16:24:18 +01:00
b2636e5ab8 recipes update: lexik/jwt-authentication-bundle 2023-12-12 16:24:04 +01:00
04270eea26 Upgrade recipes: doctrine/doctrine-fixtures-bundle 2023-12-12 16:24:04 +01:00
28954f036e Upgrade recipes: doctrine-annotation 2023-12-12 16:24:04 +01:00
965f2e0281 update doctrine-annotations recipes 2023-12-12 16:24:04 +01:00
99e1763332 reset templates while upgrade 2023-12-12 16:24:03 +01:00
c3499c1881 upgrade chill-bundles to upgrade-sf5 branch 2023-12-12 16:24:01 +01:00
1f6e5a807b Remove comments into bundles.php file 2023-12-12 16:02:44 +01:00
db4effd727 Revert "Revert "Add configuration for chill-doc-store into skeleton""
This reverts commit 2c9ec9db55.
2023-12-12 15:59:16 +01:00
2c9ec9db55 Revert "Add configuration for chill-doc-store into skeleton"
This reverts commit 4aea2fe135.
2023-12-12 15:57:56 +01:00
4aea2fe135 Add configuration for chill-doc-store into skeleton 2023-12-12 15:17:18 +01:00
6fe97f3659 Merge pull request 'update chill to release 2.14.1' (#8) from release/chill-2.14.1 into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #8
2023-11-30 08:27:55 +00:00
julienfastre
d9980a7e18 update composer.lock and file (automatic update) 2023-11-30 08:27:10 +00:00
59852c709d update chill to release 2.14.1
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 1m10s
2023-11-30 08:25:54 +00:00
f7dc506506 upgrade node dependencies 2023-11-29 13:21:26 +01:00
8ef752fdd0 activate bundle event in app 2023-11-27 13:24:34 +01:00
1c544d392a Merge pull request 'Prepare for release - chill 2.14.0' (#5) from release/chill-2.14.0 into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #5
2023-11-24 11:41:27 +00:00
julienfastre
dcfd7e4924 update composer.lock and file (automatic update) 2023-11-24 11:40:51 +00:00
deb47dd3aa Prepare for release - chill 2.14.0
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 31s
2023-11-24 11:40:19 +00:00
ac909e8107 Merge pull request 'update to chill-bundles 2.13.0 - prepare for release' (#4) from release/chill-2.13.0 into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #4
2023-11-22 15:35:12 +00:00
julienfastre
414b4e11ca update composer.lock and file (automatic update) 2023-11-22 15:34:21 +00:00
86e27595f5 restore release workflow
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 48s
2023-11-22 15:33:33 +00:00
cb3ac56084 delete create-release-on-tag 2023-11-22 15:32:28 +00:00
4ef93ef722 update to chill-bundles 2.13.0 - prepare for release 2023-11-22 15:31:11 +00:00
7e3d741ea0 Merge pull request 'Integrate changie and create a workflow for publishing app' (#3) from julienfastre/chill-skeleton-basic:release/test2 into main
Reviewed-on: #3
2023-11-19 20:55:48 +00:00
bd011775a6 Integrate changie and create a workflow for publishing app
update composer.lock and file (automatic update)

prepare for realease

Signed-off-by: Julien Fastré <julienfastre@noreply.localhost>

update composer.lock and file (automatic update)

Workflow: tag and create release

Fix expressions

checkout before

remove permissions

finalize
2023-11-19 21:55:02 +01:00
f06b8dcd1e upgrade to chill 2.9.2
Some checks reported errors
continuous-integration/drone/tag Build was killed
2023-10-17 23:39:58 +02:00
7f85d66337 upgrade chill to 2.9.1
Some checks reported errors
continuous-integration/drone/tag Build was killed
2023-10-17 22:14:11 +02:00
cc716beaec upgrade to chill version 2.9.0
Some checks reported errors
continuous-integration/drone/tag Build was killed
2023-10-17 16:22:42 +02:00
ac61038625 update to last chill dep version 2023-10-05 07:56:04 +00:00
9827832753 Add symfony flex and symfony runtime to composer.json 2023-09-26 16:26:22 +02:00
0706901415 update composer.json to chill-bundles version 2.6.3 2023-09-26 12:41:43 +02:00
c4d3c784d3 fix mismatches of variables in Makefile 2023-09-22 17:47:13 +02:00
ce136ba0f3 revert 05d4a10a5b
revert Dav: configuration of security for allowing dav endpoints
2023-09-22 09:16:51 +00:00
05d4a10a5b Dav: configuration of security for allowing dav endpoints 2023-09-17 15:47:05 +02:00
Lucas Silva
c06166fdc2 update composer 2023-04-26 13:43:36 +02:00
fb1219163e DX: sign drone file 2023-04-25 15:09:50 +02:00
52c40e5f52 update node deps
All checks were successful
continuous-integration/drone/tag Build is passing
2023-04-25 15:03:11 +02:00
a144b0e4be Deploy: update chill-bundles 2023-04-25 15:02:54 +02:00
8d310ef7c8 remove overwrote translation on activity roles (see admin-permissiongroup-templates branch, chill-bundles MR !504) 2023-04-14 15:30:54 +02:00
eff7e9470d update yarn 2023-04-14 14:42:52 +02:00
cad7c0c53d Feature: [messenger] Update config for messenger to handle document generation 2023-03-30 18:20:54 +02:00
c29f6cdf96 adapt drone config 2023-03-30 18:14:30 +02:00
430915f831 Merge branch 'php82' 2023-03-30 18:11:43 +02:00
29253b4f01 update deps 2023-03-30 18:08:02 +02:00
93972a0135 remove budget element in config 2023-03-30 18:00:51 +02:00
63c7130be3 update yarn deps 2023-03-30 18:00:13 +02:00
63489e7055 yarn upgrade 2023-03-30 16:27:37 +02:00
6d8b858cc8 Merge branch 'php82' into main 2023-03-30 15:56:17 +02:00
28444d5bbf DX: upgrade packages to next minor versions 2023-03-21 11:06:28 +01:00
fb25e8b346 Merge remote-tracking branch 'origin/main' into php82 2023-03-21 10:35:07 +01:00
efed281312 Merge pull request 'Allow devs to directly open profiler links in php storm IDE' (#2) from skeleton/phpstorm-dev-integration into main
Reviewed-on: #2
2023-03-08 15:46:30 +00:00
a6a988a33a Merge remote-tracking branch 'origin/config-chill-budget' into main 2023-03-08 16:42:56 +01:00
859eb37526 Merge remote-tracking branch 'origin/main' into main 2023-03-08 16:07:55 +01:00
b55914e40f add a generic .ignore directory 2023-03-08 10:45:52 +01:00
7f1085d2c2 DX: add dev config for profiler <-> phpstorm links integration 2023-03-08 10:29:07 +01:00
Lucas Silva
b81638eda9 Fix error credit 2023-03-07 15:06:15 +01:00
571d662737 Merge pull request 'Feature: build a php base image usable for CI' (#1) from php82_ci into php82
Reviewed-on: #1
2023-02-17 15:41:16 +00:00
78a98bff40 Feature: publish base image 2023-02-17 16:39:53 +01:00
2f18130e72 Revert "remove gd deps"
This reverts commit eb059453282539b899b3dbdce72cb970d5c28bff.
2023-02-08 09:36:41 +01:00
2af27e8b42 Feature: add php-cs-fixer to the base image
Php-cs-fixer have conflicts with the symfony and doctrine version in use for us.

I propose to add it to the image until php-cs-fixer becomes compatible again with our dependencies.

This commit also add the environment variable PHP_CS_FIXER_IGNORE_ENV to make it works with php 8.2 (currently, it does not work with php > 8.1)
2023-02-08 09:36:41 +01:00
fcd00855f9 improve DockerFile deps to avoid errors with chill 2023-02-08 09:36:41 +01:00
e9c478c062 adapt Makefile and rename chill_php occurences by chill_php82 2023-02-08 09:36:41 +01:00
d38e9a5c0a add shell preference 2023-02-08 09:36:41 +01:00
b63a4f2a5f finish image 2023-02-08 09:36:41 +01:00
1a1188c612 merge deps RUN blocks to optimize 2023-02-08 09:36:41 +01:00
39b9e839c2 remove gd deps 2023-02-08 09:36:41 +01:00
23c438f0d7 add postgresql-client 2023-02-08 09:36:41 +01:00
a4fd3dbeb6 Upgrade chill_base_php image to PHP8: install deps and php extension 2023-02-08 09:36:41 +01:00
da2149cb60 Deploy: update dependencies
All checks were successful
continuous-integration/drone/tag Build is passing
2023-02-01 12:46:15 +01:00
96 changed files with 6937 additions and 6250 deletions

6
.changes/header.tpl.md Normal file
View File

@@ -0,0 +1,6 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).

View File

3
.changes/v1.0.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.0.0 - 2023-11-19
### Feature
* Integrate changie and automate release management

3
.changes/v1.1.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.1.0 - 2023-11-22
### Release
* Update dependencies. Chill-bundles upgraded from 2.12.1 to 2.13.0

3
.changes/v1.2.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.2.0 - 2023-11-24
### Release
* Update dependencies. Chill-bundles upgraded from 2.13.0 to 2.14.0

3
.changes/v1.3.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.3.0 - 2023-11-30
### Release
* Update dependencies. Chill-bundles upgraded from 2.14.0 to 2.14.1

4
.changes/v1.4.0.md Normal file
View File

@@ -0,0 +1,4 @@
## v1.4.0 - 2024-02-08
### Release
* Upgrade nodes dependencies
* Update dependencies. Chill-bundles upgraded from 2.14.1 to 2.16.0

3
.changes/v1.4.1.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.1 - 2024-02-08
### Fixed
* upgrade node version while compiling

3
.changes/v1.4.2.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.2 - 2024-02-08
### Fixed
* Fix version of bootstrap temporarily

3
.changes/v1.4.3.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.3 - 2024-02-08
### Fixed
* better restriction for bootstrap version

3
.changes/v1.4.4.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.4 - 2024-02-08
### Fixed
* fix incorrect upgrade

3
.changes/v1.5.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.5.0 - 2024-02-08
### Release
* Update dependencies. Chill-bundles upgraded from 2.16.0 to 2.16.1

5
.changes/v1.6.0.md Normal file
View File

@@ -0,0 +1,5 @@
## v1.6.0 - 2024-02-12
### Release
* Update dependencies. Chill-bundles upgraded from 2.16.1 to 2.16.1
### Fixed
* Overwriting of bundles translations removed

5
.changes/v1.7.0.md Normal file
View File

@@ -0,0 +1,5 @@
## v1.7.0 - 2024-02-13
### Release
* Update dependencies. Chill-bundles upgraded from 2.16.1 to 2.16.1
### Fixed
* Upgrade vue to fix multiselect

35
.changie.yaml Normal file
View File

@@ -0,0 +1,35 @@
changesDir: .changes
unreleasedDir: unreleased
headerPath: header.tpl.md
changelogPath: CHANGELOG.md
versionExt: md
versionFormat: '## {{.Version}} - {{.Time.Format "2006-01-02"}}'
kindFormat: '### {{.Kind}}'
# Note: it is possible to add a `.custom.Long` text manually into the yaml file produced by `changie new`. This will add a long description.
changeFormat: >-
* {{ if and (ne .Custom.Issue "") (ne .Custom.Issue "0") }}([#{{ .Custom.Issue }}](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/{{ .Custom.Issue }})) {{ end }}{{.Body}}
custom:
- key: Issue
label: Issue number (on chill-bundles repository) (optional)
optional: true
type: int
kinds:
- label: Release
auto: minor
- label: Feature
auto: minor
- label: Deprecated
auto: minor
- label: Fixed
auto: patch
- label: Security
auto: patch
- label: DX
auto: patch
- label: UX
auto: patch
newlines:
afterChangelogHeader: 1
beforeChangelogVersion: 1
endOfVersion: 1
envPrefix: CHANGIE_

View File

@@ -21,7 +21,7 @@ steps:
registry: h3m6q87t.gra7.container-registry.ovh.net
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base
tag: latest
target: chill_base_php
target: chill_base_php82
pull_image: true
cache_from:
- h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
@@ -37,10 +37,11 @@ steps:
- build-base-image
- name: build-assets
image: node:14
image: node:20
pull: always
commands:
- yarn install
- yarn list
- yarn run encore production
depends_on:
- composer-install
@@ -79,3 +80,38 @@ steps:
Dockerfile: docker/nginx/Dockerfile
depends_on:
- build-assets
---
kind: pipeline
type: docker
name: build-base-image-php82
trigger:
event:
- cron
- push
cron:
- base-image-php82
steps:
- name: build-base-image
image: plugins/docker
settings:
username:
from_secret: docker_username_gitea
password:
from_secret: docker_password_gitea
registry: gitea.champs-libres.be/chill-project/chill-skeleton-basic
repo: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image
tag:
- php82
- latest
target: chill_base_php82
pull_image: true
---
kind: signature
hmac: 0bca4dec9822a08338f6f3b88badf771558aee19b41967837aa64853a1573cad
...

23
.env
View File

@@ -1,7 +1,15 @@
##
## Manually dump .env files in .env.local.php with
## `$ composer symfony:dump-env prod`
##
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
# https://symfony.com/doc/current/configuration/secrets.html
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
## Locale
LOCALE=fr
@@ -20,11 +28,8 @@ WOPI_SERVER=http://collabora:9980
# must be manually set in .env.local
# ADMIN_PASSWORD=
## Symfony/swiftmailer
## Mailer
###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
MAILER_DSN=
# MAILER_DSN=null://null
###< symfony/mailer ###
## Notifications
@@ -69,10 +74,10 @@ SHORT_MESSAGE_DSN=null://null
###> symfony/messenger ###
# Choose one of the transports below
# MESSENGER_TRANSPORT_DSN=doctrine://default
# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
MESSENGER_TRANSPORT_DSN=sync://
MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
###< symfony/messenger ###
###> doctrine/doctrine-bundle ###

View File

@@ -11,3 +11,8 @@ MAILER_URL=smtp://smtp:1025
PGADMIN_DEFAULT_EMAIL=admin@chill.social
PGADMIN_DEFAULT_PASSWORD=password
VAR_DUMPER_SERVER=dumper:9912
## Phpstorm IDE project path
PROJECT_DIR=

View File

@@ -1,4 +1,7 @@
# define your env variables for the test env here
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
ADMIN_PASSWORD=password

View File

@@ -0,0 +1,59 @@
name: Prepare release for chill app
run-name: Update composer.lock and dependencies for preparing a release
on:
push:
branches:
- 'release/**'
jobs:
update-deps:
runs-on: ubuntu-latest
steps:
- name: check out repository
uses: https://github.com/actions/checkout@v4
- name: get the previous chill version
# parse the composer.lock file using jq to get the chill version before the upgrade
id: chill-before
uses: https://github.com/sergeysova/jq-action@v2
with:
cmd: 'cat composer.lock | jq --raw-output ''.packages[] | select ( .name | contains ("chill-project/chill-bundles")) | .version'''
- name: run composer update to update composer.lock
uses: docker://gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:latest
with:
# this is where we set the command to execute
args: composer update --no-install
- name: is composer.lock changed ?
id: composer-lock-changed
run: 'echo is_composer_lock_changed=$(git diff --name-only | grep "composer\.lock" | wc -l) >> $GITHUB_OUTPUT'
- name: get the new chill version
# parse the composer.lock file using jq to get the chill version after the upgrade
id: chill-after
uses: https://github.com/sergeysova/jq-action@v2
with:
cmd: 'cat composer.lock | jq --raw-output ''.packages[] | select ( .name | contains ("chill-project/chill-bundles")) | .version'''
- name: add a changie file for the upgrade
uses: https://github.com/miniscruff/changie-action@v2
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
with:
version: latest
args: 'new --body "Update dependencies. Chill-bundles upgraded from ${{ steps.chill-before.outputs.value }} to ${{ steps.chill-after.outputs.value }}" --kind Release --custom "Issue=0"'
- name: changie batch
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
uses: https://github.com/miniscruff/changie-action@v2
with:
version: latest
args: 'batch auto'
- name: changie merge
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
uses: https://github.com/miniscruff/changie-action@v2
with:
version: latest
args: 'merge'
- name: commit changed files
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
uses: https://github.com/stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "update composer.lock and file (automatic update)"
commit_user_name: Action Bot
commit_user_email: bot@chill.social

9
.gitignore vendored
View File

@@ -9,6 +9,7 @@ config/secrets/
## env files
.env.local
.env.dev.local
.composer/*
composer.phar
@@ -49,19 +50,19 @@ phpunit.xml
nbproject/*
.idea
.ignore
### template/api/specs.yaml should be compiled
templates/api/specs.yaml
###> symfony/webpack-encore-bundle ###
/node_modules/
/public/build/
npm-debug.log
yarn-error.log
###< symfony/webpack-encore-bundle ###
###> symfony/phpunit-bridge ###
.phpunit
.phpunit.result.cache
/phpunit.xml
###< symfony/phpunit-bridge ###
@@ -79,3 +80,7 @@ docker-compose.override.yaml
###> lexik/jwt-authentication-bundle ###
/config/jwt/*.pem
###< lexik/jwt-authentication-bundle ###
###> phpstan/phpstan ###
phpstan.neon
###< phpstan/phpstan ###

View File

@@ -1,12 +1,60 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).
* [Semantic Versioning](https://semver.org/spec/v2.0.0.html) for stable releases;
* date versioning for test releases
## Unreleased
## v1.7.0 - 2024-02-13
### Release
* Update dependencies. Chill-bundles upgraded from 2.16.1 to 2.16.1
### Fixed
* Upgrade vue to fix multiselect
## v1.6.0 - 2024-02-12
### Release
* Update dependencies. Chill-bundles upgraded from 2.16.1 to 2.16.1
### Fixed
* Overwriting of bundles translations removed
## v1.5.0 - 2024-02-08
### Release
* Update dependencies. Chill-bundles upgraded from 2.16.0 to 2.16.1
## v1.4.4 - 2024-02-08
### Fixed
* fix incorrect upgrade
## v1.4.3 - 2024-02-08
### Fixed
* better restriction for bootstrap version
## v1.4.2 - 2024-02-08
### Fixed
* Fix version of bootstrap temporarily
## v1.4.1 - 2024-02-08
### Fixed
* upgrade node version while compiling
## v1.4.0 - 2024-02-08
### Release
* Upgrade nodes dependencies
* Update dependencies. Chill-bundles upgraded from 2.14.1 to 2.16.0
## v1.3.0 - 2023-11-30
### Release
* Update dependencies. Chill-bundles upgraded from 2.14.0 to 2.14.1
## v1.2.0 - 2023-11-24
### Release
* Update dependencies. Chill-bundles upgraded from 2.13.0 to 2.14.0
## v1.1.0 - 2023-11-22
### Release
* Update dependencies. Chill-bundles upgraded from 2.12.1 to 2.13.0
## v1.0.0 - 2023-11-19
### Feature
* Integrate changie and automate release management

View File

@@ -1,4 +1,4 @@
FROM php:7.4-fpm-buster AS chill_base_php
FROM php:8.2-fpm-alpine AS chill_base_php82
ENV POSTGRES_VERSION 14
@@ -6,27 +6,31 @@ ENV POSTGRES_VERSION 14
ARG UID=1000
ARG GID=1000
RUN apt update && apt -y --no-install-recommends install wget gnupg \
&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
&& apt update && apt -y --no-install-recommends install \
libicu-dev \
g++ \
postgresql-server-dev-$POSTGRES_VERSION \
libzip-dev libzip4 unzip \
libfreetype6-dev \
libonig-dev `# install oniguruma, required for mbstring` \
libpng-dev \
libjpeg62-turbo-dev \
git \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install intl pdo_pgsql mbstring zip bcmath sockets exif \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& apt remove -y wget libicu-dev g++ gnupg libzip-dev \
&& apt autoremove -y \
&& apt purge -y
# install php extensions and deps
RUN apk update && apk add --no-cache \
wget gnupg \
libpq-dev \
icu-dev icu-libs icu-data-full \
oniguruma-dev \
libzip libzip-dev \
linux-headers \
gcc g++ make autoconf \
bash git \
&& docker-php-ext-install pdo_pgsql intl mbstring zip bcmath exif sockets \
&& git clone https://github.com/nikic/php-ast.git \
&& cd php-ast \
&& phpize \
&& ./configure \
&& make install \
&& echo 'extension=ast.so' > /usr/local/etc/php/php.ini \
&& cd .. && rm -rf php-ast \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& apk add libpng-dev libjpeg-turbo-dev freetype-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd \
&& apk add postgresql${POSTGRES_VERSION}-client \
&& apk del --purge wget gnupg libpq-dev icu-dev oniguruma-dev libzip-dev linux-headers gcc g++ make autoconf
RUN { \
echo ""; \
@@ -41,15 +45,31 @@ RUN { \
echo ""; \
} >> /usr/local/etc/php/conf.d/date.ini
# temporary fix, while php-cs-fixer has conflict dependencies
# with chill
RUN curl -o /usr/local/bin/php-cs-fixer https://cs.symfony.com/download/php-cs-fixer-v3.phar \
&& chmod +x /usr/local/bin/php-cs-fixer
# to make php-cs-fixer works with php 8.2
ENV PHP_CS_FIXER_IGNORE_ENV=1
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER=1
ENV COMPOSER_MEMORY_LIMIT=-1
# shell bash preference
RUN sed -i " \
s|root:x:0:0:root:/root:/bin/ash|root:x:0:0:root:/root:/bin/bash|g; \
s|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/sh|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/bash|g" \
/etc/passwd
# chmod on redis.so
RUN chmod 755 -R /usr/local/lib/php/extensions/
WORKDIR /var/www/app
CMD ["php-fpm"]
FROM chill_base_php AS chill_php
FROM chill_base_php82 AS chill_php82
# copy directories

View File

@@ -2,12 +2,12 @@ THIS_FILE := $(lastword $(MAKEFILE_LIST))
PWD:=$(shell echo ${PWD})
UID:=$(shell id -u)
GID:=$(shell id -g)
BASE_TAG=chill_base_php
DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:16
DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:20
DOCKER_COMPOSE_PHP_EXEC_CMD=docker-compose run --rm --user $(UID):$(GID) -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env php
DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env $(BASE_TAG)
PHP_BASE_IMAGE=php:7.4-fpm-buster
PHP_BASE_IMAGE_CHILL=chill_base_php
DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env $(PHP_BASE_IMAGE_TAG)
PHP_BASE_IMAGE=php:8.2-fpm-alpine
PHP_BASE_IMAGE_TARGET=chill_base_php82
PHP_BASE_IMAGE_TAG=chill_php82
NGINX_BASE_IMAGE=nginx
CALVER=$(shell date "+v%Y%m%d%H%M")-${CALVERSION}
ifneq (,$(wildcard ./.env))
@@ -39,7 +39,7 @@ build-assets:
$(DOCKERNODE_CMD) yarn run encore production
init:
docker build --target chill_base_php -t $(BASE_TAG) .
docker build --pull --target $(PHP_BASE_IMAGE_TARGET) --tag $(PHP_BASE_IMAGE_TAG) .
$(DOCKER_PHP_EXEC_CMD_BASE) composer update --no-scripts --no-interaction
@$(MAKE) -f $(THIS_FILE) build-assets
@$(MAKE) -f $(THIS_FILE) post-install

2
assets/bootstrap.js vendored
View File

@@ -4,7 +4,7 @@ import { startStimulusApp } from '@symfony/stimulus-bridge';
export const app = startStimulusApp(require.context(
'@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
true,
/\.(j|t)sx?$/
/\.[jt]sx?$/
));
// register any custom, 3rd party controllers here

View File

@@ -3,40 +3,15 @@
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\ErrorHandler\Debug;
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
}
set_time_limit(0);
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
require dirname(__DIR__).'/vendor/autoload.php';
return function (array $context) {
$kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
if (!class_exists(Application::class)) {
throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
}
$input = new ArgvInput();
if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
}
if ($input->hasParameterOption('--no-debug', true)) {
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
}
require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) {
umask(0000);
if (class_exists(Debug::class)) {
Debug::enable();
}
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$application = new Application($kernel);
$application->run($input);
return new Application($kernel);
};

View File

@@ -15,16 +15,14 @@
},
"require": {
"ext-redis": "*",
"chill-project/chill-bundles": "dev-master#c64ec89274196fa1532fc88584a3a88430c4cfa1",
"chill-project/chill-bundles": "dev-ticket-app-master@dev",
"symfony/flex": "^1.9",
"symfony/http-client": "^4.4 || ^5",
"nelmio/alice": "^3.8",
"phpoffice/phpword": "^0.18.2",
"phpstan/phpstan": "^1.0",
"spomky-labs/base64url": "^2.0",
"twig/string-extra": "^3.3",
"symfony/mailer": "^5.4",
"symfony/dependency-injection": "5.4.16"
"symfony/runtime": "^5.4"
},
"require-dev": {
"fakerphp/faker": "^1.13",
@@ -32,13 +30,11 @@
"symfony/dotenv": "^5.1",
"symfony/maker-bundle": "^1.20",
"doctrine/doctrine-fixtures-bundle": "^3.3",
"symfony/stopwatch": "^5.1",
"symfony/twig-bundle": "^4.4",
"symfony/stopwatch": "^5.4",
"symfony/web-profiler-bundle": "^5.0",
"symfony/var-dumper": "4.*",
"symfony/phpunit-bridge": "^5.2",
"symfony/debug-bundle": "^5.1",
"box/spout": "^3.3"
"symfony/debug-bundle": "^5.1"
},
"minimum-stability": "dev",
"prefer-stable": true,
@@ -55,7 +51,8 @@
"bin-dir": "bin",
"allow-plugins": {
"ocramius/package-versions": true,
"symfony/flex": true
"symfony/flex": true,
"symfony/runtime": true
},
"preferred-install": {
"chill-project/chill-bundles": "source",

5292
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +0,0 @@
<?php
use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
if (!class_exists(Dotenv::class)) {
throw new LogicException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
}
// Load cached env vars if the .env.local.php file exists
// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
(new Dotenv(false))->populate($env);
} else {
// load all the .env files
(new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');
}
$_SERVER += $_ENV;
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';

View File

@@ -12,11 +12,9 @@ return [
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true],
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true],
Knp\Bundle\TimeBundle\KnpTimeBundle::class => ['all' => true],
ChampsLibres\AsyncUploaderBundle\ChampsLibresAsyncUploaderBundle::class => ['all' => true],
Chill\MainBundle\ChillMainBundle::class => ['all' => true],
Chill\PersonBundle\ChillPersonBundle::class => ['all' => true],
Chill\CustomFieldsBundle\ChillCustomFieldsBundle::class => ['all' => true],
@@ -37,4 +35,6 @@ return [
App\App::class => ['all' => true],
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true],
Chill\EventBundle\ChillEventBundle::class => ['all' => true],
Chill\TicketBundle\ChillTicketBundle::class => ['all' => true],
];

View File

@@ -1,3 +0,0 @@
framework:
assets:
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'

View File

@@ -1,14 +0,0 @@
champs_libres_async_uploader:
openstack:
os_username: '%env(resolve:OS_USERNAME)%' # Required
os_password: '%env(resolve:OS_PASSWORD)%' # Required
os_tenant_id: '%env(resolve:OS_TENANT_ID)%' # Required
os_region_name: '%env(resolve:OS_REGION_NAME)%' # Required
os_auth_url: '%env(resolve:OS_AUTH_URL)%' # Required
temp_url:
temp_url_key: '%env(resolve:ASYNC_UPLOAD_TEMP_URL_KEY)%' # Required
container: '%env(resolve:ASYNC_UPLOAD_TEMP_URL_CONTAINER)%' # Required
temp_url_base_path: '%env(resolve:ASYNC_UPLOAD_TEMP_URL_BASE_PATH)%' # Required. Do not forget a trailing slash
max_post_file_size: 15000000 # 15Mo (bytes)
max_expires_delay: 180
max_submit_delay: 3600

View File

@@ -56,7 +56,6 @@ chill_budget:
- { key: mutuelle, labels: [{lang: fr, label: "Mutuelle"}]}
- { key: transport, labels: [{lang: fr, label: "Frais de transport"}]}
- { key: decouvbank, labels: [{lang: fr, label: "Découvert bancaire utilisé"}]}
- { key: credit, labels: [{lang: fr, label: "Procédure de saisie"}]}
- { key: procsaisie, labels: [{lang: fr, label: "Procédure de saisie"}]}
- { key: indus, labels: [{lang: fr, label: "Indus"}]}
- { key: apurement, labels: [{lang: fr, label: "Plan d'apurement"}]}
@@ -82,6 +81,5 @@ chill_budget:
- { key: debt_bank, labels: [{lang: fr, label: "Dette de découvert bancaire utilisé"}]}
- { key: debt_garbage, labels: [{lang: fr, label: "Dette de taxe dordures ménagère"}]}
- { key: debt_other, labels: [{lang: fr, label: "Dette autre"}]}
- { key: credit, labels: [{lang: fr, label: "Crédit"}]}
- { key: autre, labels: [{lang: fr, label: "Autre"}]}

View File

@@ -0,0 +1,6 @@
chill_doc_store:
openstack:
temp_url:
temp_url_key: '%env(resolve:ASYNC_UPLOAD_TEMP_URL_KEY)%' # Required
container: '%env(resolve:ASYNC_UPLOAD_TEMP_URL_CONTAINER)%' # Required
temp_url_base_path: '%env(resolve:ASYNC_UPLOAD_TEMP_URL_BASE_PATH)%' # Required

View File

@@ -0,0 +1,5 @@
when@dev:
debug:
# Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
# See the "server:dump" command to start a new server.
dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"

View File

@@ -1,4 +0,0 @@
debug:
# Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
# See the "server:dump" command to start a new server.
dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"

View File

@@ -3,3 +3,10 @@ framework:
# allow to debug from ngrok, useful for webhooks coming from outside:
- '^(.+\.)?ngrok\.io$'
- 'nginx'
## Open files in phpstorm IDE from profiler links
# ref: https://symfony.com/doc/current/reference/configuration/framework.html#ide
# need: https://github.com/sanduhrs/phpstorm-url-handler/blob/master/phpstorm-url-handler
# set var in file .env.dev.local (PROJECT_DIR=<relative path from home folder>)
ide: 'phpstorm://open?file=%%f&line=%%l&/var/www/app/>%env(resolve:PROJECT_DIR)%'

View File

@@ -1,21 +0,0 @@
monolog:
handlers:
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: ["!event"]
# uncomment to get logging in your browser
# you may have to allow bigger header sizes in your Web server configuration
#firephp:
# type: firephp
# level: info
#chromephp:
# type: chromephp
# level: info
console:
type: console
process_psr_3_messages: false
channels: ['!event', '!doctrine', '!console']
bubble: false

View File

@@ -1,9 +0,0 @@
nelmio_alice:
functions_blacklist:
- 'current'
- 'shuffle'
- 'date'
- 'time'
- 'file'
- 'md5'
- 'sha1'

View File

@@ -1,4 +0,0 @@
# See https://symfony.com/doc/current/email/dev_environment.html
swiftmailer:
# send all emails to a specific address
#delivery_addresses: ['me@example.com']

View File

@@ -1,6 +0,0 @@
web_profiler:
toolbar: true
intercept_redirects: false
framework:
profiler: { only_exceptions: false }

View File

@@ -12,7 +12,8 @@ doctrine:
geometry: string
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '14'
#server_version: '16'
use_savepoints: true
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.default
@@ -20,7 +21,32 @@ doctrine:
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
when@test:
doctrine:
dbal:
# "TEST_TOKEN" is typically set by ParaTest
dbname_suffix: '_test%env(default::TEST_TOKEN)%'
when@prod:
doctrine:
orm:
auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool
result_cache_driver:
type: pool
pool: doctrine.result_cache_pool
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system

View File

@@ -7,7 +7,7 @@ doctrine_migrations:
'Chill\Migrations\Activity': '@ChillActivityBundle/migrations'
'Chill\Migrations\DocStore': '@ChillDocStoreBundle/migrations'
'Chill\Migrations\CustomFields': '@ChillCustomFieldsBundle/migrations'
# 'Chill\Migrations\Event': '@ChillEventBundle/migrations'
'Chill\Migrations\Event': '@ChillEventBundle/migrations'
'Chill\Migrations\Person': '@ChillPersonBundle/migrations'
'Chill\Migrations\Task': '@ChillTaskBundle/migrations'
'Chill\Migrations\ThirdParty': '@ChillThirdPartyBundle/migrations'
@@ -15,6 +15,7 @@ doctrine_migrations:
'Chill\Migrations\AsideActivity': '@ChillAsideActivityBundle/migrations'
'Chill\Migrations\Calendar': '@ChillCalendarBundle/migrations'
'Chill\Migrations\Budget': '@ChillBudgetBundle/migrations'
'Chill\Migrations\Ticket': '@ChillTicketBundle/migrations'
all_or_nothing:
true

View File

@@ -14,7 +14,7 @@ framework:
- '%env(resolve:TRUSTED_HOSTS)%'
#csrf_protection: true
#http_method_override: true
http_method_override: false
# Enables session support. Note that the session will ONLY be started if you read or write from it.
# Remove or comment this section to explicitly disable session support.
@@ -22,6 +22,7 @@ framework:
handler_id: null
cookie_secure: auto
cookie_samesite: lax
storage_factory_id: session.storage.factory.native
#esi: true
#fragments: true
@@ -34,5 +35,8 @@ framework:
assets:
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
templating:
engines: ['twig']
when@test:
framework:
test: true
session:
storage_factory_id: session.storage.factory.mock_file

View File

@@ -9,6 +9,8 @@ framework:
transports:
# https://symfony.com/doc/current/messenger.html#transport-configuration
async: '%env(MESSENGER_TRANSPORT_DSN)%'
priority:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
failed: 'doctrine://default?queue_name=failed'
# sync: 'sync://'
@@ -22,3 +24,4 @@ framework:
'Chill\CalendarBundle\Messenger\Message\InviteUpdateMessage': async
'Chill\CalendarBundle\Messenger\Message\MSGraphChangeNotificationMessage': async
'Chill\MainBundle\Service\ShortMessage\ShortMessage': async
'Chill\DocGeneratorBundle\Service\Messenger\RequestGenerationMessage': priority

View File

@@ -0,0 +1,63 @@
monolog:
channels:
- deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
when@dev:
monolog:
handlers:
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: ["!event"]
# uncomment to get logging in your browser
# you may have to allow bigger header sizes in your Web server configuration
#firephp:
# type: firephp
# level: info
#chromephp:
# type: chromephp
# level: info
console:
type: console
process_psr_3_messages: false
channels: ["!event", "!doctrine", "!console"]
when@test:
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
excluded_http_codes: [404, 405]
channels: ["!event"]
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
# those comes from the symfony recipe. But this is overriden by the ./prod/monolog.yaml config
# when@prod:
# monolog:
# handlers:
# main:
# type: fingers_crossed
# action_level: error
# handler: nested
# excluded_http_codes: [404, 405]
# buffer_size: 50 # How many messages should be saved? Prevent memory leaks
# nested:
# type: stream
# path: php://stderr
# level: debug
# formatter: monolog.formatter.json
# console:
# type: console
# process_psr_3_messages: false
# channels: ["!event", "!doctrine"]
# deprecation:
# type: stream
# channels: [deprecation]
# path: php://stderr
# formatter: monolog.formatter.json

View File

@@ -0,0 +1,12 @@
when@dev: &dev
nelmio_alice:
functions_blacklist:
- 'current'
- 'shuffle'
- 'date'
- 'time'
- 'file'
- 'md5'
- 'sha1'
when@test: *dev

View File

@@ -7,15 +7,5 @@ services:
Psr\Http\Message\UploadedFileFactoryInterface: '@nyholm.psr7.psr17_factory'
Psr\Http\Message\UriFactoryInterface: '@nyholm.psr7.psr17_factory'
# Register nyholm/psr7 services for autowiring with HTTPlug factories
Http\Message\MessageFactory: '@nyholm.psr7.httplug_factory'
Http\Message\RequestFactory: '@nyholm.psr7.httplug_factory'
Http\Message\ResponseFactory: '@nyholm.psr7.httplug_factory'
Http\Message\StreamFactory: '@nyholm.psr7.httplug_factory'
Http\Message\UriFactory: '@nyholm.psr7.httplug_factory'
nyholm.psr7.psr17_factory:
class: Nyholm\Psr7\Factory\Psr17Factory
nyholm.psr7.httplug_factory:
class: Nyholm\Psr7\Factory\HttplugFactory

View File

@@ -1,8 +0,0 @@
# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists
#monolog:
# channels: [deprecation]
# handlers:
# deprecation:
# type: stream
# channels: [deprecation]
# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"

View File

@@ -1,17 +0,0 @@
doctrine:
orm:
auto_generate_proxy_classes: false
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool
result_cache_driver:
type: pool
pool: doctrine.result_cache_pool
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system

View File

@@ -25,6 +25,7 @@ monolog:
id: monolog.gelf_handler
level: info
channels: ['!event', '!php']
excluded_http_codes: [404, 405]
console:
type: console

View File

@@ -1,3 +0,0 @@
framework:
router:
strict_requirements: null

View File

@@ -1,4 +0,0 @@
#webpack_encore:
# Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# Available in version 1.2
#cache: true

View File

@@ -5,3 +5,8 @@ framework:
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
#default_uri: http://localhost
when@prod:
framework:
router:
strict_requirements: null

View File

@@ -4,9 +4,14 @@ security:
strategy: unanimous
allow_if_all_abstain: false
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
enable_authenticator_manager: true
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers:
Chill\MainBundle\Entity\User: 'auto'
Symfony\Component\Security\Core\User\User: plaintext
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
# https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
providers:
chain_provider:
chain :
providers: [in_memory, users]
@@ -16,19 +21,13 @@ security:
admin: { password: '%env(resolve:ADMIN_PASSWORD)%', roles: ['ROLE_ADMIN', 'ROLE_ALLOWED_TO_SWITCH', 'ROLE_USER'] }
users:
id: chill.main.user_provider
encoders:
Chill\MainBundle\Entity\User:
algorithm: bcrypt
Chill\MainBundle\Entity\User: auto
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
wopi:
pattern: ^/wopi
provider: chain_provider
@@ -36,15 +35,16 @@ security:
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
default:
anonymous: ~
main:
# remove during upgrade from symfony 4 to symfony 5 TODO check this
#anonymous: ~
provider: chain_provider
form_login:
csrf_parameter: _csrf_token
csrf_token_id: authenticate
#csrf_provider: security.csrf.token_manager
logout_on_user_change: true
# remove during upgrade from symfony 4 to symfony 5 TODO check this
# logout_on_user_change: true
logout:
path: /logout
@@ -72,3 +72,16 @@ security:
- { path: ^/([a-z]+/)?admin, roles: ROLE_ADMIN }
# other pages, only for regular user (no admin)
- { path: ^/, roles: ROLE_USER }
when@test:
security:
password_hashers:
# By default, password hashers are resource intensive and take time. This is
# important to generate secure password hashes. In tests however, secure hashes
# are not important, waste resources and increase test times. The following
# reduces the work factor to the lowest possible values.
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
algorithm: auto
cost: 4 # Lowest possible value for bcrypt
time_cost: 3 # Lowest possible value for argon
memory_cost: 10 # Lowest possible value for argon

View File

@@ -1,3 +0,0 @@
swiftmailer:
url: '%env(MAILER_URL)%'
spool: { type: 'memory' }

View File

@@ -1,4 +0,0 @@
doctrine:
dbal:
# "TEST_TOKEN" is typically set by ParaTest
dbname: 'main_test%env(default::TEST_TOKEN)%'

View File

@@ -1,6 +0,0 @@
framework:
test: true
session:
storage_id: session.storage.mock_file
assets:
json_manifest_path: NULL

View File

@@ -1,12 +0,0 @@
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
excluded_http_codes: [404, 405]
channels: ["!event"]
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug

View File

@@ -1,2 +0,0 @@
imports:
- { resource: ../dev/nelmio_alice.yaml }

View File

@@ -1,2 +0,0 @@
swiftmailer:
disable_delivery: true

View File

@@ -1,2 +0,0 @@
twig:
strict_variables: true

View File

@@ -1,3 +0,0 @@
framework:
validation:
not_compromised_password: false

View File

@@ -1,6 +0,0 @@
web_profiler:
toolbar: false
intercept_redirects: false
framework:
profiler: { collect: false }

View File

@@ -1,2 +0,0 @@
webpack_encore:
strict_mode: false

View File

@@ -1,7 +1,6 @@
framework:
default_locale: '%env(resolve:LOCALE)%'
translator:
default_path: '%kernel.project_dir%/translations'
fallbacks: [ '%env(resolve:LOCALE)%' ]
providers:

View File

@@ -1,8 +1,5 @@
twig:
default_path: '%kernel.project_dir%/templates'
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
exception_controller: null
## In Symfony 5, bootstrap_5 theme is supported. But not yet in sf4 !!
# see sf5 https://symfony.com/doc/current/form/form_themes.html
@@ -15,3 +12,7 @@ twig:
#
form_themes: ['@ChillMain/Form/bootstrap5/bootstrap_5_horizontal_layout.html.twig']
#form_themes: ['bootstrap_5_horizontal_layout.html.twig']
when@test:
twig:
strict_variables: true

View File

@@ -6,3 +6,8 @@ framework:
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
#auto_mapping:
# App\Entity\: []
when@test:
framework:
validation:
not_compromised_password: false

View File

@@ -0,0 +1,15 @@
when@dev:
web_profiler:
toolbar: true
intercept_redirects: false
framework:
profiler: { only_exceptions: false }
when@test:
web_profiler:
toolbar: false
intercept_redirects: false
framework:
profiler: { collect: false }

View File

@@ -1,16 +1,18 @@
---
webpack_encore:
# The path where Encore is building the assets - i.e. Encore.setOutputPath()
output_path: '%kernel.project_dir%/public/build'
# If multiple builds are defined (as shown below), you can disable the default build:
# output_path: false
# Set attributes that will be rendered on all script and link tags
script_attributes:
defer: true
# Uncomment (also under link_attributes) if using Turbo Drive
# https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change
# 'data-turbo-track': reload
# link_attributes:
#
# Uncomment if using Turbo Drive
# 'data-turbo-track': reload
# If using Encore.enableIntegrityHashes() and need the crossorigin attribute (default: false, or use 'anonymous' or 'use-credentials')
# crossorigin: 'anonymous'
@@ -23,11 +25,17 @@ webpack_encore:
# If you have multiple builds:
# builds:
# pass "frontend" as the 3rg arg to the Twig functions
# pass the build name as the 3rd argument to the Twig functions
# {{ encore_entry_script_tags('entry1', null, 'frontend') }}
# frontend: '%kernel.project_dir%/public/frontend/build'
# Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# Put in config/packages/prod/webpack_encore.yaml
# cache: true
#when@prod:
# webpack_encore:
# # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# # Available in version 1.2
# cache: true
#when@test:
# webpack_encore:
# strict_mode: false

View File

@@ -1,2 +1,3 @@
wopi:
server: "%env(resolve:WOPI_SERVER)%"
enable_lock: false

View File

@@ -1,9 +1,5 @@
<?php
if (file_exists(dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php';
}
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
}

View File

@@ -0,0 +1,3 @@
chill_ticket_app:
resource: '@ChillTicketBundle/Controller/'
type: annotation

View File

@@ -1,3 +0,0 @@
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error

View File

@@ -1,7 +0,0 @@
web_profiler_wdt:
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
prefix: /_wdt
web_profiler_profiler:
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
prefix: /_profiler

View File

@@ -0,0 +1,4 @@
when@dev:
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error

View File

@@ -0,0 +1,8 @@
when@dev:
web_profiler_wdt:
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
prefix: /_wdt
web_profiler_profiler:
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
prefix: /_profiler

View File

@@ -2,7 +2,7 @@
# Files in the packages/ subdirectory configure your dependencies.
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
# https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration
parameters:
services:
@@ -20,12 +20,6 @@ services:
- '../src/Entity/'
- '../src/Kernel.php'
# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Controller\:
resource: '../src/Controller/'
tags: ['controller.service_arguments']
# add more service definitions when explicit configuration is needed
# please note that last definitions always *replace* previous ones

View File

@@ -8,7 +8,7 @@ services:
args:
UID: ${PHP_FPM_USER:-1000}
# uncomment and set your own image if needed
image: ${IMAGE_PHP-chill_php}:${VERSION:-latest}
image: ${IMAGE_PHP-chill_php82}:${VERSION:-latest}
volumes:
- .:/var/www/app
environment:

View File

@@ -22,6 +22,14 @@ services:
- DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres?serverVersion=14&charset=utf8
links:
- smtp
- dumper
dumper:
image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:latest
entrypoint: ["/usr/bin/env"]
command: ["bin/var-dump-server", "--host", "0.0.0.0:9912"]
volumes:
- .:/var/www/app
nginx:
volumes:
@@ -97,5 +105,5 @@ services:
# volumes:
# - "./docker/pgadmin4/servers.json:/pgadmin4/servers.json:ro"
#

View File

@@ -10,7 +10,7 @@ services:
args:
UID: ${PHP_FPM_USER:-1000}
# uncomment and set your own image if needed
image: ${IMAGE_PHP-chill_php}:${VERSION:-latest}
image: ${IMAGE_PHP-chill_php82}:${VERSION:-latest}
#
# normally, you should not mount any volume and use your own image
#

View File

@@ -8,7 +8,7 @@ services:
args:
UID: ${PHP_FPM_USER:-1000}
# uncomment and set your own image if needed
image: ${IMAGE_PHP:-chill_php}:${VERSION:-latest}
image: ${IMAGE_PHP:-chill_php82}:${VERSION:-latest}
volumes:
- .:/var/www/app
environment:

View File

@@ -18,4 +18,4 @@ docker run \
--volume ${PWD}:/app \
--workdir /app \
--env YARN_CACHE_FOLDER=/app/.yarncache \
node:16 ${cmd}
node:20 ${cmd}

View File

@@ -3,8 +3,11 @@
"vendor/chill-project/chill-bundles"
],
"private": true,
"devDependencies": {
"bootstrap": "5.2.3"
},
"scripts": {
"specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml",
"specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillTicketBundle/chill.api.specs.yaml> templates/api/specs.yaml",
"specs-validate": "swagger-cli validate templates/api/specs.yaml",
"specs": "yarn run specs-build && yarn run specs-validate"
}

8
phpstan.dist.neon Normal file
View File

@@ -0,0 +1,8 @@
parameters:
level: 6
paths:
- bin/
- config/
- public/
- src/
- tests/

View File

@@ -6,36 +6,34 @@
backupGlobals="false"
colors="true"
bootstrap="tests/bootstrap.php"
convertDeprecationsToExceptions="false"
>
<php>
<ini name="display_errors" value="1" />
<ini name="error_reporting" value="-1" />
<server name="APP_ENV" value="test" force="true" />
<server name="SHELL_VERBOSITY" value="-1" />
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak" />
<server name="SYMFONY_PHPUNIT_REMOVE" value="" />
<server name="SYMFONY_PHPUNIT_VERSION" value="9.5" />
</php>
<testsuites>
<!--
Test suites for chill-bundles
Those test suites are repeated here for convenience for
developers
-->
<testsuite name="MainBundle">
<directory suffix="Test.php">vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/Tests/</directory>
</testsuite>
<testsuite name="PersonBundle">
<directory suffix="Test.php">vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/Tests/</directory>
</testsuite>
<testsuite name="VendeeBundle">
<directory suffix="Test.php">tests/</directory>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">src</directory>
</include>
</coverage>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
<!-- Uncomment when adding extensions
<extensions>
</extensions>
</phpunit>

View File

@@ -1,27 +1,9 @@
<?php
use App\Kernel;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/config/bootstrap.php';
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
return function (array $context) {
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};

View File

@@ -3,52 +3,9 @@
namespace App;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
use Symfony\Component\Routing\RouteCollectionBuilder;
class Kernel extends BaseKernel
{
use MicroKernelTrait;
private const CONFIG_EXTS = '.{php,xml,yaml,yml}';
public function registerBundles(): iterable
{
$contents = require $this->getProjectDir().'/config/bundles.php';
foreach ($contents as $class => $envs) {
if ($envs[$this->environment] ?? $envs['all'] ?? false) {
yield new $class();
}
}
}
public function getProjectDir(): string
{
return \dirname(__DIR__);
}
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{
$container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
$container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
$container->setParameter('container.dumper.inline_factories', true);
$confDir = $this->getProjectDir().'/config';
$loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
}
protected function configureRoutes(RouteCollectionBuilder $routes): void
{
$confDir = $this->getProjectDir().'/config';
$routes->import($confDir.'/{routes}/'.$this->environment.'/*'.self::CONFIG_EXTS, '/', 'glob');
$routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob');
$routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob');
}
}

View File

@@ -1,13 +1,7 @@
{
"box/spout": {
"version": "v3.3.0"
},
"brick/math": {
"version": "0.9.3"
},
"champs-libres/async-uploader-bundle": {
"version": "dev-sf4"
},
"champs-libres/wopi-bundle": {
"version": "dev-master"
},
@@ -21,10 +15,10 @@
"version": "1.11.99.5"
},
"doctrine/annotations": {
"version": "1.0",
"version": "1.14",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"branch": "main",
"version": "1.0",
"ref": "a2759dd6123694c8d901d0ec80006e044c2e6457"
},
@@ -51,40 +45,38 @@
"version": "v0.5.3"
},
"doctrine/doctrine-bundle": {
"version": "2.7",
"version": "2.11",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "2.3",
"ref": "b8ddff356705ad8e704ea75b6872ce89a15d614d"
"version": "2.4",
"ref": "cc62b7e9470998c640ee99d284a013a676f1fc5e"
},
"files": [
"config/packages/doctrine.yaml",
"config/packages/prod/doctrine.yaml",
"config/packages/test/doctrine.yaml",
"src/Entity/.gitignore",
"src/Repository/.gitignore"
]
},
"doctrine/doctrine-fixtures-bundle": {
"version": "3.0",
"version": "3.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"branch": "main",
"version": "3.0",
"ref": "fc52d86631a6dfd9fdf3381d0b7e3df2069e51b3"
"ref": "1f5514cfa15b947298df4d771e694e578d4c204d"
},
"files": [
"src/DataFixtures/AppFixtures.php"
]
},
"doctrine/doctrine-migrations-bundle": {
"version": "2.2",
"version": "3.2",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "2.2",
"ref": "baaa439e3e3179e69e3da84b671f0a3e4a2f56ad"
"branch": "main",
"version": "3.1",
"ref": "1d01ec03c6ecbd67c3375c5478c9a423ae5d6a33"
},
"files": [
"config/packages/doctrine_migrations.yaml",
@@ -148,15 +140,9 @@
"guzzlehttp/psr7": {
"version": "1.6.1"
},
"guzzlehttp/uri-template": {
"version": "v0.2.0"
},
"hslavich/oneloginsaml-bundle": {
"version": "v1.5.2"
},
"justinrainbow/json-schema": {
"version": "5.2.10"
},
"knplabs/knp-menu": {
"version": "v3.1.1"
},
@@ -188,12 +174,12 @@
"version": "9.6.2"
},
"lexik/jwt-authentication-bundle": {
"version": "2.16",
"version": "2.19",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "2.5",
"ref": "5b2157bcd5778166a5696e42f552ad36529a07a6"
"ref": "e9481b233a11ef7e15fe055a2b21fd3ac1aa2bb7"
},
"files": [
"config/packages/lexik_jwt_authentication.yaml"
@@ -230,28 +216,27 @@
"version": "1.7.7"
},
"nelmio/alice": {
"version": "3.2",
"version": "3.12",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.2",
"ref": "0b9900ece737bec7752e4155c0164639dd9b0cb0"
"branch": "main",
"version": "3.3",
"ref": "42b52d2065dc3fde27912d502c18ca1926e35ae2"
},
"files": [
"config/packages/dev/nelmio_alice.yaml",
"config/packages/test/nelmio_alice.yaml"
"config/packages/nelmio_alice.yaml"
]
},
"nikic/php-parser": {
"version": "v4.7.0"
},
"nyholm/psr7": {
"version": "1.0",
"version": "1.8",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"branch": "main",
"version": "1.0",
"ref": "0cd4d2d0e7f646fda75f9944f747a56e6ed13d4c"
"ref": "4a8c0345442dcca1d8a2c65633dcf0285dd5a5a2"
},
"files": [
"config/packages/nyholm_psr7.yaml"
@@ -284,9 +269,6 @@
"php-http/message-factory": {
"version": "v1.0.2"
},
"php-opencloud/openstack": {
"version": "v3.0.7"
},
"phpdocumentor/reflection-common": {
"version": "2.2.0"
},
@@ -309,7 +291,16 @@
"version": "1.11.1"
},
"phpstan/phpstan": {
"version": "1.1.2"
"version": "1.10",
"recipe": {
"repo": "github.com/symfony/recipes-contrib",
"branch": "main",
"version": "1.0",
"ref": "5e490cc197fb6bb1ae22e5abbc531ddc633b6767"
},
"files": [
"phpstan.dist.neon"
]
},
"phpunit/php-code-coverage": {
"version": "6.1.4"
@@ -327,12 +318,12 @@
"version": "2.1.2"
},
"phpunit/phpunit": {
"version": "4.7",
"version": "10.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.7",
"ref": "00fdb38c318774cd39f475a753028a5e8d25d47c"
"branch": "main",
"version": "9.6",
"ref": "7364a21d87e658eb363c5020c072ecfdc12e2326"
},
"files": [
".env.test",
@@ -358,9 +349,6 @@
"psr/http-message": {
"version": "1.0.1"
},
"psr/link": {
"version": "1.0.0"
},
"psr/log": {
"version": "1.1.3"
},
@@ -430,9 +418,6 @@
"sebastian/recursion-context": {
"version": "3.0.0"
},
"sebastian/resource-operations": {
"version": "2.0.1"
},
"sebastian/type": {
"version": "3.0.0"
},
@@ -454,9 +439,6 @@
"spomky-labs/base64url": {
"version": "v2.0.4"
},
"swiftmailer/swiftmailer": {
"version": "v6.2.5"
},
"symfony/asset": {
"version": "v4.4.11"
},
@@ -473,34 +455,30 @@
"version": "v5.1.3"
},
"symfony/console": {
"version": "4.4",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.4",
"ref": "ea8c0eda34fda57e7d5cd8cbd889e2a387e3472c"
"branch": "main",
"version": "5.3",
"ref": "da0c8be8157600ad34f10ff0c9cc91232522e047"
},
"files": [
"bin/console",
"config/bootstrap.php"
"bin/console"
]
},
"symfony/css-selector": {
"version": "v5.2.3"
},
"symfony/debug": {
"version": "v4.4.11"
},
"symfony/debug-bundle": {
"version": "4.1",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.1",
"ref": "f8863cbad2f2e58c4b65fa1eac892ab189971bea"
"branch": "main",
"version": "5.3",
"ref": "5aa8aa48234c8eb6dbdd7b3cd5d791485d2cec4b"
},
"files": [
"config/packages/dev/debug.yaml"
"config/packages/debug.yaml"
]
},
"symfony/dependency-injection": {
@@ -537,12 +515,12 @@
"version": "v5.1.3"
},
"symfony/flex": {
"version": "1.0",
"version": "1.20",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"branch": "main",
"version": "1.0",
"ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e"
"ref": "146251ae39e06a95be0fe3d13c807bcf3938b172"
},
"files": [
".env"
@@ -552,20 +530,18 @@
"version": "v5.1.3"
},
"symfony/framework-bundle": {
"version": "4.4",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "4.4",
"ref": "24eb45d1355810154890460e6a05c0ca27318fe7"
"version": "5.4",
"ref": "3cd216a4d007b78d8554d44a5b1c0a446dab24fb"
},
"files": [
"config/bootstrap.php",
"config/packages/cache.yaml",
"config/packages/framework.yaml",
"config/packages/test/framework.yaml",
"config/preload.php",
"config/routes/dev/framework.yaml",
"config/routes/framework.yaml",
"config/services.yaml",
"public/index.php",
"src/Controller/.gitignore",
@@ -591,9 +567,9 @@
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"branch": "main",
"version": "4.3",
"ref": "bbfc7e27257d3a3f12a6fb0a42540a42d9623a37"
"ref": "df66ee1f226c46f01e85c29c2f7acce0596ba35a"
},
"files": [
"config/packages/mailer.yaml"
@@ -614,7 +590,7 @@
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.4",
"ref": "dfe610928a5c61619bdfc830cd7fa7f091368023"
"ref": "8bd5f27013fb1d7217191c548e340f0bdb11912c"
},
"files": [
"config/packages/messenger.yaml"
@@ -627,30 +603,27 @@
"version": "v5.1.3"
},
"symfony/monolog-bundle": {
"version": "3.3",
"version": "3.10",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "d7249f7d560f6736115eee1851d02a65826f0a56"
"branch": "main",
"version": "3.7",
"ref": "aff23899c4440dd995907613c1dd709b6f59503f"
},
"files": [
"config/packages/dev/monolog.yaml",
"config/packages/prod/deprecations.yaml",
"config/packages/prod/monolog.yaml",
"config/packages/test/monolog.yaml"
"config/packages/monolog.yaml"
]
},
"symfony/options-resolver": {
"version": "v5.1.3"
},
"symfony/phpunit-bridge": {
"version": "5.1",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "5.1",
"ref": "bf16921ef8309a81d9f046e9b6369c46bcbd031f"
"branch": "main",
"version": "5.3",
"ref": "07ce01a897311647520b43d4ddddad9537b99ba6"
},
"files": [
".env.test",
@@ -662,9 +635,6 @@
"symfony/polyfill-ctype": {
"version": "v1.18.0"
},
"symfony/polyfill-iconv": {
"version": "v1.22.0"
},
"symfony/polyfill-intl-grapheme": {
"version": "v1.18.0"
},
@@ -702,26 +672,25 @@
"version": "v2.1.1"
},
"symfony/routing": {
"version": "5.1",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "5.1",
"ref": "b4f3e7c95e38b606eef467e8a42a8408fc460c43"
"branch": "main",
"version": "5.3",
"ref": "85de1d8ae45b284c3c84b668171d2615049e698f"
},
"files": [
"config/packages/prod/routing.yaml",
"config/packages/routing.yaml",
"config/routes.yaml"
]
},
"symfony/security-bundle": {
"version": "4.4",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.4",
"ref": "7b4408dc203049666fe23fabed23cbadc6d8440f"
"branch": "main",
"version": "5.3",
"ref": "98f1f2b0d635908c2b40f3675da2d23b1a069d30"
},
"files": [
"config/packages/security.yaml"
@@ -751,30 +720,13 @@
"symfony/string": {
"version": "v5.1.3"
},
"symfony/swiftmailer-bundle": {
"version": "2.5",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "2.5",
"ref": "ae4d22af30bbd484506bc1817c5a3ef72c855b93"
},
"files": [
"config/packages/dev/swiftmailer.yaml",
"config/packages/swiftmailer.yaml",
"config/packages/test/swiftmailer.yaml"
]
},
"symfony/templating": {
"version": "v4.4.11"
},
"symfony/translation": {
"version": "3.3",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "2ad9d2545bce8ca1a863e50e92141f0b9d87ffcd"
"branch": "main",
"version": "5.3",
"ref": "e28e27f53663cc34f0be2837aba18e3a1bef8e7b"
},
"files": [
"config/packages/translation.yaml",
@@ -788,29 +740,27 @@
"version": "v4.4.11"
},
"symfony/twig-bundle": {
"version": "4.4",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.4",
"ref": "15a41bbd66a1323d09824a189b485c126bbefa51"
"branch": "main",
"version": "5.4",
"ref": "bb2178c57eee79e6be0b297aa96fc0c0def81387"
},
"files": [
"config/packages/test/twig.yaml",
"config/packages/twig.yaml",
"templates/base.html.twig"
]
},
"symfony/validator": {
"version": "4.3",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.3",
"ref": "d902da3e4952f18d3bf05aab29512eb61cabd869"
"branch": "main",
"version": "5.3",
"ref": "c32cfd98f714894c4f128bb99aa2530c1227603c"
},
"files": [
"config/packages/test/validator.yaml",
"config/packages/validator.yaml"
]
},
@@ -820,30 +770,26 @@
"symfony/var-exporter": {
"version": "v5.1.3"
},
"symfony/web-link": {
"version": "v5.2.12"
},
"symfony/web-profiler-bundle": {
"version": "3.3",
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6"
"branch": "main",
"version": "5.3",
"ref": "24bbc3d84ef2f427f82104f766014e799eefcc3e"
},
"files": [
"config/packages/dev/web_profiler.yaml",
"config/packages/test/web_profiler.yaml",
"config/routes/dev/web_profiler.yaml"
"config/packages/web_profiler.yaml",
"config/routes/web_profiler.yaml"
]
},
"symfony/webpack-encore-bundle": {
"version": "1.9",
"version": "1.17",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.9",
"ref": "9399a0bfc6ee7a0c019f952bca46d6a6045dd451"
"branch": "main",
"version": "1.10",
"ref": "eff2e505d4557c967b6710fe06bd947ba555cae5"
},
"files": [
"assets/app.js",
@@ -851,9 +797,6 @@
"assets/controllers.json",
"assets/controllers/hello_controller.js",
"assets/styles/app.css",
"config/packages/assets.yaml",
"config/packages/prod/webpack_encore.yaml",
"config/packages/test/webpack_encore.yaml",
"config/packages/webpack_encore.yaml",
"package.json",
"webpack.config.js"

View File

@@ -1,143 +0,0 @@
{% extends "@ChillMain/layout.html.twig" %}
{% block content %}
<div class="col-md-10 col-xxl error-page">
<h1 class="chill-red">{{ 'Oops, we came across an error!'|trans }}</h1>
<p>{{ 'Don\'t panick though, we\'ll fix it as soon as possible. To help us out, please send us the information below.'|trans }}</p>
<div id="error-details" class="flex-table alert alert-warning">
<dl>
<dt>{{ 'Date and time of error'|trans }}:</dt><dd>{{ "now"|date("d/m/Y H:i:s") }}</dd>
<dt>{{ 'Error message'|trans }}:</dt><dd>{{ exception.message }}</dd>
<dt>Stacktrace:</dt><dd>{{ exception.traceAsString }}</dd>
</dl>
</div>
<ul class="record_actions sticky-form-buttons">
<li>
<button data-copy="#error-details" data-done="Error details copied" class="btn btn-warning" id="copy">
<i class="fa fa-copy"></i>
{{ 'Copy'|trans }}
</button>
</li>
<li>
<a class="btn btn-success" href="mailto:?subject=Chill Error {{ exception.statusCode }}&amp;body=Datetime:%0D%0A{{ "now"|date("d/m/Y H:i:s") }}%0D%0A%0D%0AError message:%0D%0A{{ exception.message|escape('html_attr') }}%0D%0A%0D%0AStacktrace:%0D%0A{{ exception.traceAsString|escape('html_attr') }}">
{{ 'Send by email'|trans }}
</a>
</li>
</ul>
</div>
{% endblock %}
{% block js %}
<script>
const activeClass = { copy: 'copyactive', paste: 'pasteactive' }
const doneMessage = { copy: 'copied', paste: 'pasted' }
const doneClass = 'done';
window && window.addEventListener('DOMContentLoaded', init);
function init() {
const body = document && document.body;
// clipboard API available?
if (!body || !navigator.clipboard) return;
// text copy active
if (navigator.clipboard.writeText) body.classList.add(activeClass.copy);
// text paste active
if (navigator.clipboard.readText) body.classList.add(activeClass.paste);
// copy/paste handler
body.addEventListener('click', clipboardHandler);
}
async function clipboardHandler(e) {
// get clicked element
const
target = e.target,
type = (undefined === target.dataset.paste ? 'copy' : 'paste'),
content = target.dataset[type];
if (undefined === content) return;
// is CSS selector?
let select;
try {
select = content && document.querySelector(content);
}
catch (error) {}
// call copy or paste handler
const handler = { copy, paste };
if (!await handler[type]( select, content )) return;
// show success message
if (!target.dataset.done) target.dataset.done = doneMessage[type];
target.addEventListener('animationend', () => target.classList.remove(doneClass), { once: true });
target.classList.add(doneClass);
}
// copy to clipboard
async function copy(select, content) {
// get text
const copytext = select ? select.value || select.innerText : content;
try {
await navigator.clipboard.writeText(copytext);
document.getElementById("copy").innerText = "Copié";
return true;
}
catch (error) {
console.log('copy error', error);
}
}
// paste handler
async function paste(select) {
if (!select) return;
// paste from clipboard
try {
const pastetext = await navigator.clipboard.readText();
if (undefined === select.value) {
select.innerText += pastetext;
}
else {
select.value += pastetext;
}
return true;
}
catch (error) {
console.log('paste error', error);
}
}
</script>
{% endblock %}

View File

@@ -4,8 +4,10 @@ use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
if (file_exists(dirname(__DIR__).'/config/bootstrap.php')) {
require dirname(__DIR__).'/config/bootstrap.php';
} elseif (method_exists(Dotenv::class, 'bootEnv')) {
if (method_exists(Dotenv::class, 'bootEnv')) {
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
}
if ($_SERVER['APP_DEBUG']) {
umask(0000);
}

0
translations/.gitkeep Normal file
View File

View File

@@ -1,212 +0,0 @@
# activity
Show the activity: Voir l'échange
Edit the activity: Modifier l'échange
Activity: Échange
Add a new activity: Ajouter un nouvel échange
Activity list: Liste des échanges
Update activity: Modifier l'échange
Activity data: Données de l'échange
Activity location: Localisation de l'échange
Activity creation: Nouvel échange
Save activity: Sauver l'échange
'%user% has done an %activity_type%': '%user% a effectué un échange de type "%activity_type%"'
'Success : activity created!': L'échange a été créé.
'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé.
'Success : activity updated!': L'échange a été mis à jour.
'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mis à jour.
CHILL_ACTIVITY_CREATE: Créer un échange
CHILL_ACTIVITY_UPDATE: Modifier un échange
CHILL_ACTIVITY_SEE: Voir un échange
CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des échanges
CHILL_ACTIVITY_DELETE: Supprimer un échange
CHILL_ACTIVITY_STATS: Statistique des échanges
CHILL_ACTIVITY_LIST: Liste des échanges
Activity configuration: Configuration des échanges
Activity configuration menu: Configuration des échanges
Activity Types: Types d'échange
Activity Reasons: Sujets d'un échange
Activity Reasons Category: Catégories de sujet d'échanges
Activity Types Categories: Catégories des types d'échange
Activity Presences: Présences aux échanges
Travel time: Durée du trajet (aller/retour)
Sent received: Entrant / sortant
Sent: Sortant
Received: Entrant
activity:
comment: Compte-rendu
See activity in accompanying course context: Voir l'échange dans le contexte du parcours d'accompagnement
ActivityPresence list: Liste des Présences aux échanges
Create a new activity presence: Créer une nouvelle "Présence aux échanges"
# crud activity
crud:
save: Enregistrer
activity_type:
title_new: Nouveau type d'échange
title_edit: Edition d'un type d'échange
activity_type_category:
title_new: Nouvelle catégorie de type d'échange
title_edit: Edition d'une catégorie de type d'échange
activity_presence:
title_new: Nouvelle Présence aux échanges
title_edit: Edition d'une Présence aux échanges
vendee_security_profile:
index:
title: Profils de droits
add_new: Créer
title_new: Nouveau profil
title_edit: Modifier profil
# activity reason admin
ActivityReason list: Liste des sujets
Create a new activity reason: Créer un nouveau sujet
ActivityReason creation: Nouveau sujet
ActivityReason edit: Modification d'un sujet
ActivityReason: Sujet d'échange
#activity reason category admin
ActivityReasonCategory list: Catégories de sujets
Create a new activity category reason: Créer une nouvelle catégorie
ActivityReasonCategory creation: Nouvelle catégorie de sujet
ActivityReasonCategory edit: Modification d'une catégorie de sujet
ActivityReasonCategory: Catégorie de sujet d'échange
ActivityReasonCategory is active and will be proposed: La catégorie est active et sera proposée
ActivityReasonCategory is inactive and won't be proposed: La catégorie est inactive et ne sera pas proposée
# activity type type admin
ActivityType list: Types d'échanges
Create a new activity type: Créer un nouveau type d'échange
# activity type category admin
ActivityTypeCategory list: Liste des catégories des types d'échange
Create a new activity type category: Créer une nouvelle catégorie de type d'échange
# activity delete
Remove activity: Supprimer un échange
Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr de vouloir supprimer un échange qui concerne "%name%" ?
The activity has been successfully removed.: L'échange a été supprimé.
Sum activity duration: Total de la durée des échanges
'Filtered by activity type: only %list%': "Filtré par type d'activity: seulement %list%"
Filtered by date activity: Filtrer par date d'échange
"Filtered by date of activity: only between %date_from% and %date_to%": "Filtré par date de l'échange: uniquement entre %date_from% et %date_to%"
This date should be after the date given in "Implied in an activity after this date" field: Cette date devrait être postérieure à la date donnée dans le champ "échanges après cette date"
Filtered by person having an activity in a period: Uniquement les personnes ayant eu un échange dans la période donnée
Implied in an activity after this date: Impliqué dans un échange après cette date
Implied in an activity before this date: Impliqué dans un échange avant cette date
Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Filtré par personnes associées à un échange entre %date_from% et %date_to% avec les sujets %reasons_name%
Activity reasons for those activities: Sujets de ces échanges
Filter by activity type: Filtrer par type d'échange
Activity type: Type d'échange
Activity user: Utilisateur lié à l'activity
Aggregate by activity user: Aggréger par utilisateur lié à l'échange
Aggregate by activity type: Aggréger par type d'échange
Aggregate by activity reason: Aggréger par sujet de l'échange
There isn't any activities.: Aucun échange enregistré.
Last activities: Les derniers échanges
Activities: Échanges
# person
Person: Usager
'Add a person': 'Ajout d''un usager'
'Person details': 'Généralités'
Back to the person details: Retour aux détails de l'usager
Show person: Voir la fiche de l'usager
Any person selected: Aucun usager sélectionné
Male: Masculin
Man: Masculin
man: Masculin
Female: Féminin
woman: Féminin
Woman: Féminin
both: Neutre, non binaire
Both: Neutre, non binaire
Neuter: Neutre, non binaire
neuter: Neutre, non binaire
'Add the person': "Créer l'usager"
'Add the person and create an accompanying period': "Créer lusager ET créer un parcours daccompagnement"
'Add the person and create an household': "Créer l'usager ET créer un ménage"
'Add an accompanying period in the past': Ajouter un parcours d'accompagnement dans le passé
Begin a new accompanying period: Commencer un nouveau parcours d'accompagnement
Create an accompanying period: Créer un parcours d'accompagnement
'A period has been created.': Une parcours d'accompagnement a été créé.
'Error! Period not created!': Le parcours d'accompagnement n'a pas été créé.
Update accompanying period: Mettre à jour un parcours d'accompagnement
'An accompanying period has been updated.': Un parcours d'accompagnement a été mis à jour
'Error when updating the period': Erreur pendant la mise à jour du parcours d'accompagnement.
'An accompanying period has been closed.': Un parcours d'accompagnement a été fermé.
'Error! Period not closed!': "Erreur: le parcours d'accompagnement n'a pas été fermé."
'An accompanying period has been opened.': Un parcours d'accompagnement a été ouvert.
'Period not opened': "Le parcours d'accompagnement n'a pas été ouvert"
An accompanying period starts: Un parcours d'accompagnement est ouvert
Any accompanying periods are open: Aucun parcours d'accompagnement ouvert
An accompanying period is open: Un parcours d'accompagnement est ouvert
Accompanying period list: Parcours d'accompagnement
Accompanying period list for person: Parcours d'accompagnement de l'usager
Period number %number%: 'Parcours n° %number%'
Are you sure you want to re-open this period ?: Êtes-vous sûr de vouloir ré-ouvrir ce parcours d'accompagnement ?
'The period has been re-opened': Le parcours d'accompagnement a été ré-ouvert.
See accompanying period: Voir le parcours
See accompanying periods: Voir tous les parcours d'accompagnement
Edit accompanying period: Modifier le parcours
Close accompanying period: Clôre le parcours
Re-open accompanying period: Ré-ouvrir le parcours
Closing the accompanying period: Fermeture du parcours d'accompagnement
Opening the accompanying period: Ouverture d'un parcours d'accompagnement
"Filter by accompanying period: active period": "Filtrer par parcours d'accompagnement: en file active"
Some peoples does not belong to any household currently. Add them to an household soon: Certains usagers n'appartiennent à aucun ménage actuellement. Renseignez leur appartenance à un ménage dès que possible.
This course is located at a temporarily address. You should locate this course to an user: Le parcours est localisé à une adresse temporaire. Il devrait être localisé auprès d'un usager concerné.
Having an accompanying period opened after this date: Ayant un parcours d'accompagnement ouvert après cette date
Having an accompanying period ending before this date, or still opened at this date: Ayant un parcours d'accompagnement fermé après cette date, ou toujours ouvert à cette date
"Filtered by accompanying period: persons having an accompanying period opened after the %date_from% and closed before the %date_to% (or still opened at the %date_to%)": "Filtré par parcours d'accompagnement: personnes ayant un parcours d'accompagnement ouvert après le %date_from%, et cloturé le %date_to% (ou toujours ouvert le %date_to%)"
"Filter by accompanying period: starting between two dates": "Filtrer par parcours d'accompagnement: début de la période entre deux dates"
"Having an accompanying period opened before this date": "Ayant un parcours d'accompagnement ouvert avant cette date"
"Filtered by accompanying period: persons having an accompanying period opened between the %date_from% and %date_to%": "Filtrer par parcours d'accompagnement: ayant une période ouverte entre le %date_from% et le %date_to%"
"Filter by accompanying period: closed between two dates": "Filtrer par parcours d'accompagnement: période fermée entre deux dates"
Having an accompanying period closed after this date: Ayant un parcours d'accompagnement fermé après cette date
"Having an accompanying period closed before this date": "Ayant un parcours d'accompagnement fermé avant cette date"
"Filtered by accompanying period: persons having an accompanying period closed between the %date_from% and %date_to%": "Filtrer par parcours d'accompagnement: ayant une période fermée entre le %date_from% et le %date_to%"
Accompanying user: Référent
No accompanying user: Aucun référent
Participants: Usagers concernés
person_admin:
closing motive explanation: >
Les motifs de clotûre donnent des indications sur la fermeture d'un parcours d'accompagnement.
Delete accompanying period: Supprimer le parcours
Are you sure you want to remove the accompanying period "%id%" ?: Êtes-vous sûr de vouloir supprimer le parcours %id% ?
The accompanying course has been successfully removed.: Le parcours a été supprimé.
Unknown: Non renseigné
Center: Territoire
Centers: Territoires
'Marital status': 'État matrimonial'
Comment on the marital status: Remarques sur l'état matrimonial
Date of last marital status change: État matrimonial depuis le
# thirdparty
List of third parties: Liste des tiers professionnels
The party is visible in those centers: Le tiers est visible dans ces territoires
# household
household:
Household history for person: Historique des ménages de l'usager
# thirdparty
chill_3party:
key_label:
caisse_secu: Caisse primaire d'assurance maladie (CPAM)
doctor: Médecin
# error page
Send by email: Envoyer par email
Don't panick though, we'll fix it as soon as possible. To help us out, please send us the information below. : Pas de panique, nous allons la corriger au plus vite. Pour faciliter la résolution, communiquez les informations ci-dessous.
Oops, we came across an error!: Oops, nous avons rencontré une erreur!
Date and time of error: Date et heure de l'erreur
Error message: Contenu de l'erreur
Copy: Copier
Copied: Copié
You are getting a notification for a period which does not exists any more: Cette notification ne correspond pas à un parcours d'accompagnement valide
You are getting a notification for a period you are not allowed to see: La notification fait référence à un parcours d'accompagnement auquel vous n'avez pas accès.
This is the minimal period details: Parcours d'accompagnement n°
You get notified of an activity which does not exists any more: Cette notification ne correspond pas à un échange valide.
you are not allowed to see it details: La notification fait référence à un échange auquel vous n'avez pas accès.
This is the minimal activity data: Échange n°

View File

@@ -1,20 +0,0 @@
# Activity validators
For this type of activity, you must add at least one person: Pour ce type d'échange, vous devez ajouter au moins un usager
For this type of activity, you must add at least one user: Pour ce type d'échange, vous devez ajouter au moins un TMS
For this type of activity, you must add at least one third party: Pour ce type d'échange, vous devez ajouter au moins un tiers
For this type of activity, the user is required: Pour ce type d'échange, l'utilisateur est requis
For this type of activity, the date is required: Pour ce type d'échange, la date est requise
For this type of activity, the location is required: Pour ce type d'échange, la localisation est requise
For this type of activity, user is required: Pour ce type d'échange, l'utilisateur est requis
For this type of activity, date is required: Pour ce type d'échange, la date est requise
For this type of activity, location is required: Pour ce type d'échange, la localisation est requise
For this type of activity, attendee is required: Pour ce type d'échange, le champ "Présence de la personne" est requis
For this type of activity, duration time is required: Pour ce type d'échange, la durée est requise
For this type of activity, travel time is required: Pour ce type d'échange, la durée du trajet est requise
For this type of activity, reasons is required: Pour ce type d'échange, le champ "sujet" est requis
For this type of activity, comment is required: Pour ce type d'échange, un commentaire est requis
For this type of activity, sent/received is required: Pour ce type d'échange, le champ Entrant/Sortant est requis
For this type of activity, document is required: Pour ce type d'échange, un document est requis
For this type of activity, emergency is required: Pour ce type d'échange, le champ "Urgent" est requis
For this type of activity, accompanying period is required: Pour ce type d'échange, le parcours d'accompagnement est requis
This social issue cannot be deleted because it is associated with an activity or an action: La problématique sociale ne peut pas être supprimée car elle est associée à un échange ou une action

View File

@@ -109,15 +109,30 @@ module.exports = (async () => {
.autoProvidejQuery()
.enableSourceMaps(!Encore.isProduction())
.cleanupOutputBeforeBuild()
//.enableBuildNotifications()
.enableVersioning()
.enableSingleRuntimeChunk()
.splitEntryChunks()
// added when upgrading to symfony 5.4
// enables and configure @babel/preset-env polyfills
//.configureBabelPresetEnv((config) => {
// config.useBuiltIns = 'usage';
// config.corejs = '3.23';
//})
//.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } })
;
// populate config with chill entries
let chillEntries = [];
await populateConfig(Encore, chillEntries);
// configure Babel
// .configureBabel((config) => {
// config.plugins.push('@babel/a-babel-plugin');
// })
// enables Sass/SCSS support
//.enableSassLoader()
// add swagger UI
if (!Encore.isProduction()) {

6253
yarn.lock

File diff suppressed because it is too large Load Diff