mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-25 16:14:59 +00:00
Compare commits
257 Commits
migrate_to
...
ticket/64-
Author | SHA1 | Date | |
---|---|---|---|
bfbde078b7
|
|||
d42a1296c4
|
|||
4b7e3c1601
|
|||
6ea9af588b
|
|||
0fd76d3fa8
|
|||
34af53130b
|
|||
a1fd395868
|
|||
b8a7cbb321
|
|||
6124eb9e34
|
|||
a5b06de92a
|
|||
52404956d2
|
|||
4207efd6bf
|
|||
840fde4ad4
|
|||
3611ea2518
|
|||
bbd4292cb9
|
|||
54f8c92240
|
|||
5330befc8f
|
|||
c19206be0c
|
|||
5ff374d2fa
|
|||
4a73aaae94
|
|||
ff2c567d05
|
|||
a734e84f28
|
|||
4367ed086e
|
|||
3227bfcd3a
|
|||
8d29fb260a
|
|||
bda0743c63
|
|||
d9b730627f
|
|||
27548ad654
|
|||
bec7297039
|
|||
852523e644
|
|||
c05d0aad47
|
|||
1c0ed9abc8
|
|||
9aed5cc216
|
|||
e4fe5bff68
|
|||
4c73c4d9d0
|
|||
38935edb93 | |||
|
e1ef65d4ca | ||
ec9d0be70b | |||
|
0ba2cbc1e8 | ||
e87429933a | |||
8e2e676e3d
|
|||
e12ad563a3 | |||
|
711aa8db9b | ||
e78d44953f | |||
18f67801c7 | |||
c815e6bc69
|
|||
807f2711fe | |||
|
cd594cd580 | ||
fb6b26bfb5
|
|||
c5cedb8bd6
|
|||
2665e43a61
|
|||
25561cdf63
|
|||
10b73e06e1 | |||
|
e7c04e34a9 | ||
164beee7c6 | |||
|
4d96eb9457 | ||
fe2eba3b29 | |||
|
61d1232e31 | ||
6594d4f6a6 | |||
1a66a9e864 | |||
1b74c119dc | |||
14d88810f3 | |||
445a2c9358 | |||
c8baf0a8aa | |||
faed443a96 | |||
bbf387d96f | |||
|
b7c9b60744 | ||
2bd303bbbe
|
|||
c5e6122d2c
|
|||
088b876e20 | |||
3400656d7c | |||
568c8be7fd
|
|||
538ecc42ea
|
|||
15d26d4b06
|
|||
d8bd9bd7cd
|
|||
dcdfba5ccd
|
|||
0204bdd38d
|
|||
392fd01b56
|
|||
35844f3b73 | |||
7506b918d7 | |||
cfba291f2c | |||
|
04438c09d3 | ||
2a54d1b909 | |||
|
628eeac5e0 | ||
a2263b3fa1 | |||
74796d0fb0 | |||
c19481e40a
|
|||
|
6eeb717b1a | ||
beb7c462da
|
|||
|
dbf363a9e8 | ||
64a2f7c9ed
|
|||
f26d9739c8 | |||
afa5edc1d8
|
|||
42d6c9e672
|
|||
2b22d4cb7c
|
|||
c8e5d0eb37
|
|||
2bf8ad5d6c | |||
11698a52e3 | |||
70955573e8 | |||
|
3df4043eb9 | ||
06e8264dde
|
|||
b451d2c4a3 | |||
4f93150874 | |||
0566ab0910 | |||
|
f4eeee1598 | ||
33cf16fc13 | |||
0a331aab37 | |||
d43b739654 | |||
c72432efae | |||
95975fae55
|
|||
95a7efa138
|
|||
45e193ff6d
|
|||
dfc146ff3f
|
|||
b41fcf66a9 | |||
|
a8dd1b3548 | ||
2b99a480ac
|
|||
7633e587bb
|
|||
fc61dfdf3a
|
|||
f1a5b5c49e
|
|||
ec685dcd47
|
|||
631ae3eedd
|
|||
440a7837ac
|
|||
e0abf34784
|
|||
377ae9a9dc
|
|||
034dc30e30
|
|||
d615111a0f
|
|||
ffb756c712
|
|||
69daccb860
|
|||
16435423cf
|
|||
697b4ab436
|
|||
67d804e28e
|
|||
cf41fa9574
|
|||
b8b325f7d7
|
|||
e97bd8c4ef
|
|||
e28d7df533
|
|||
4b20b1bc01
|
|||
b15733076c
|
|||
25be5c9ea3
|
|||
b035020c6f
|
|||
128101dc46
|
|||
5f2711023e
|
|||
bdf2ed4bbd
|
|||
1df542603e
|
|||
80bcc68ce5
|
|||
154fc3e2f6
|
|||
e45af94c78
|
|||
166a6fde20
|
|||
631f047338
|
|||
a777588bb8
|
|||
ca78d112c2
|
|||
bcfd317d83
|
|||
348740f073
|
|||
0d74f0980f
|
|||
be19dc00db
|
|||
643028ffd6
|
|||
ac4e2e5bf2
|
|||
498572b96e
|
|||
d2a61ce69b
|
|||
a9c0567ee1
|
|||
76cec5b5a8
|
|||
efe8a67697
|
|||
26dfa9b028
|
|||
50025044d3
|
|||
e6202a2e34
|
|||
b863bd967d
|
|||
e65bcf7275
|
|||
e00ece4200
|
|||
640fd71402
|
|||
aae50ca290
|
|||
1fa483598b
|
|||
e4b6a468f8
|
|||
|
66c7758023 | ||
|
4750d2c24e | ||
|
ca05e3d979 | ||
|
a20f9b4f86 | ||
|
c73c1eb8d5 | ||
|
8778bb0731 | ||
|
c7d20eebc5 | ||
|
b9e130c159 | ||
|
3e8bc94af3 | ||
|
0c914c9f9f | ||
|
580a60c939 | ||
|
4996ac3b7c | ||
|
2a23bf19cb | ||
|
650d2596d9 | ||
|
2bdd5a329e | ||
78d1776733
|
|||
66dc603c85
|
|||
3a8154ecce
|
|||
c81828e04f
|
|||
|
ec17dd7de2 | ||
76c076a5f3 | |||
|
f0045edd6c | ||
|
d00b76ffcd | ||
|
8991f0ef3f | ||
|
d6f5eae0c9 | ||
|
821fce3dd8 | ||
|
1d33ae1e39 | ||
|
19af0feb57 | ||
|
1c09e9a692 | ||
|
d72e748388 | ||
|
ab850b7b70 | ||
|
3f9745d8cf | ||
|
473765366a | ||
|
6500c24a7f | ||
|
1d00457141 | ||
|
eb0bf56cff | ||
|
7b8cd90cf1 | ||
|
a27d92aba0 | ||
|
85bdfb9e21 | ||
|
4cffcf4de1 | ||
|
b2587a688f | ||
|
c9f0e9843b | ||
|
b40ad9e445 | ||
|
3e10e47e29 | ||
|
2a1963e993 | ||
34c171659b | |||
2d8b960d9e
|
|||
831ae03431 | |||
45828174d1
|
|||
ed45f14a45
|
|||
fa67835690
|
|||
b434d38091
|
|||
|
800a952532 | ||
9f355032a8
|
|||
0bc6e62d4d
|
|||
46fb1c04b5
|
|||
3b2c3d1464 | |||
|
0bd6038160 | ||
|
baab8e94ce | ||
e2deb55fdb
|
|||
|
2cdfb50058 | ||
39d701feb2
|
|||
613ee8b186
|
|||
56a1a488de
|
|||
3f789ad0f4 | |||
467bea7cde
|
|||
670b8eb82b
|
|||
a9760b323f
|
|||
71a3a1924a
|
|||
ecdc1e25bf
|
|||
dd37427be1
|
|||
c8467df1b1
|
|||
4c89a954fa
|
|||
7c1f3b114d
|
|||
36bc4dab24
|
|||
4b30d92282
|
|||
75fbec5489
|
|||
912fdd6349
|
|||
5832542978
|
|||
5c3585a1ed
|
|||
a2f1e20ddf
|
|||
4d67702a76
|
|||
18e442db29 | |||
|
deb3d92189 | ||
a59ea7db31
|
|||
a738b0cac9
|
6
.changes/unreleased/Feature-20240530-160003.yaml
Normal file
6
.changes/unreleased/Feature-20240530-160003.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: |
|
||||
Upgrade import of address list to the last version of compiled addresses of belgian-best-address
|
||||
time: 2024-05-30T16:00:03.440767606+02:00
|
||||
custom:
|
||||
Issue: ""
|
6
.changes/unreleased/Feature-20240531-190242.yaml
Normal file
6
.changes/unreleased/Feature-20240531-190242.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: |
|
||||
Upgrade CKEditor and refactor configuration with use of typescript
|
||||
time: 2024-05-31T19:02:42.776662753+02:00
|
||||
custom:
|
||||
Issue: ""
|
6
.changes/unreleased/Feature-20250904-181032.yaml
Normal file
6
.changes/unreleased/Feature-20250904-181032.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: Add a command to generate a list of permissions
|
||||
time: 2025-09-04T18:10:32.334524026+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
@@ -1,6 +0,0 @@
|
||||
kind: Fixed
|
||||
body: Fix display of 'duplicate' and 'merge' buttons in CRUD templates
|
||||
time: 2025-09-09T17:36:39.960419639+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
@@ -1,10 +0,0 @@
|
||||
## v4.3.0 - 2025-09-08
|
||||
### Feature
|
||||
* ([#409](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/409)) Add 45 and 60 min calendar ranges
|
||||
* Add a command to generate a list of permissions
|
||||
* ([#412](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/412)) Add an absence end date
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
### Fixed
|
||||
* fix date formatting in calendar range display
|
||||
* Change route URL to avoid clash with person duplicate controller method
|
@@ -19,11 +19,11 @@ max_line_length = 80
|
||||
[COMMIT_EDITMSG]
|
||||
max_line_length = 0
|
||||
|
||||
[*.{js, vue, ts}]
|
||||
[*.{js,vue,ts}]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[.rst]
|
||||
ident_size = 3
|
||||
ident_style = space
|
||||
[*.rst]
|
||||
indent_size = 3
|
||||
indent_style = space
|
||||
|
||||
|
2
.env
2
.env
@@ -86,7 +86,7 @@ ADD_ADDRESS_MAP_CENTER_Z=15
|
||||
## Redis Cache & redis database
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
REDIS_URL="redis://${REDIS_HOST}:${REDIS_PORT}"
|
||||
REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT}
|
||||
###< chill-project/chill-bundles ###
|
||||
|
||||
###> symfony/ovh-cloud-notifier ###
|
||||
|
4
.env.dev
4
.env.dev
@@ -1,4 +0,0 @@
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
APP_SECRET=72759e571285ef25677c88f967a73386
|
||||
###< symfony/framework-bundle ###
|
40
.env.test
40
.env.test
@@ -1,5 +1,39 @@
|
||||
# define your env variables for the test env here
|
||||
# variables for .env environement
|
||||
# those variables suits for gitlab-ci
|
||||
# Run tests from root to adapt your own environment
|
||||
KERNEL_CLASS='App\Kernel'
|
||||
APP_SECRET='$ecretf0rt3st'
|
||||
SYMFONY_DEPRECATIONS_HELPER=999999
|
||||
DEFAULT_CARRIER_CODE=TEST
|
||||
|
||||
ADMIN_PASSWORD=password
|
||||
|
||||
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
|
||||
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
|
||||
JWT_PASSPHRASE=2a30f6ba26521a2613821da35f28386e
|
||||
|
||||
TWILIO_SID=~
|
||||
TWILIO_SECRET=~
|
||||
DEFAULT_CARRIER_CODE=BE
|
||||
|
||||
ADD_ADDRESS_DEFAULT_COUNTRY=BE
|
||||
ADD_ADDRESS_MAP_CENTER_X=50.8443
|
||||
ADD_ADDRESS_MAP_CENTER_Y=4.3523
|
||||
ADD_ADDRESS_MAP_CENTER_Z=15
|
||||
|
||||
SHORT_MESSAGE_DSN=null://null
|
||||
MESSENGER_TRANSPORT_DSN=sync://
|
||||
|
||||
###> doctrine/doctrine-bundle ###
|
||||
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
|
||||
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
|
||||
#
|
||||
DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5454/test?serverVersion=14&charset=utf8"
|
||||
###< doctrine/doctrine-bundle ###
|
||||
|
||||
ASYNC_UPLOAD_TEMP_URL_KEY=
|
||||
ASYNC_UPLOAD_TEMP_URL_BASE_PATH=
|
||||
ASYNC_UPLOAD_TEMP_URL_CONTAINER=
|
||||
|
||||
MAILER_DSN=null://null
|
||||
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PORT=6363
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -33,7 +33,7 @@ config/packages/dev/*
|
||||
|
||||
###> phpunit/phpunit ###
|
||||
/phpunit.xml
|
||||
/.phpunit.cache/
|
||||
.phpunit.result.cache
|
||||
###< phpunit/phpunit ###
|
||||
|
||||
/.php-cs-fixer.cache
|
||||
|
@@ -234,20 +234,16 @@ This must be a decision made by a human, not by an AI. Every AI task must abort
|
||||
|
||||
#### Running Tests
|
||||
|
||||
The tests are run from the project's root (not from the bundle's root).
|
||||
The tests are run from the project's root (not from the bundle's root: so, do not change the directory to any bundle directory before running tests).
|
||||
|
||||
Tests must be run using the `symfony` command:
|
||||
|
||||
```bash
|
||||
# Run all tests
|
||||
vendor/bin/phpunit
|
||||
|
||||
# Run tests for a specific bundle
|
||||
vendor/bin/phpunit --testsuite NameBundle
|
||||
|
||||
# Run a specific test file
|
||||
vendor/bin/phpunit path/to/TestFile.php
|
||||
symfony composer exec phpunit -- path/to/TestFile.php
|
||||
|
||||
# Run a specific test method
|
||||
vendor/bin/phpunit --filter methodName path/to/TestFile.php
|
||||
symfony composer exec phpunit -- --filter methodName path/to/TestFile.php
|
||||
```
|
||||
|
||||
#### Test Structure
|
||||
|
4
.prettierrc
Normal file
4
.prettierrc
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"tabWidth": 2,
|
||||
"useTabs": false
|
||||
}
|
30
.vscode/launch.json
vendored
Normal file
30
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Chill Debug",
|
||||
"type": "php",
|
||||
"request": "launch",
|
||||
"port": 9000,
|
||||
"pathMappings": {
|
||||
"/var/www/html": "${workspaceFolder}"
|
||||
},
|
||||
"preLaunchTask": "symfony"
|
||||
},
|
||||
{
|
||||
"name": "Yarn Encore Dev (Watch)",
|
||||
"type": "node-terminal",
|
||||
"request": "launch",
|
||||
"command": "yarn encore dev --watch",
|
||||
"cwd": "${workspaceFolder}"
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Chill Debug + Yarn Encore Dev (Watch)",
|
||||
"configurations": ["Chill Debug", "Yarn Encore Dev (Watch)"]
|
||||
}
|
||||
]
|
||||
}
|
23
.vscode/tasks.json
vendored
Normal file
23
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"tasks": [
|
||||
{
|
||||
"type": "shell",
|
||||
"command": "symfony",
|
||||
"args": [
|
||||
"server:start",
|
||||
"--allow-http",
|
||||
"--no-tls",
|
||||
"--port=8000",
|
||||
"--allow-all-ip",
|
||||
"-d"
|
||||
],
|
||||
"label": "symfony"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"command": "yarn",
|
||||
"args": ["encore", "dev", "--watch"],
|
||||
"label": "webpack"
|
||||
}
|
||||
]
|
||||
}
|
11
CHANGELOG.md
11
CHANGELOG.md
@@ -6,17 +6,6 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
||||
and is generated by [Changie](https://github.com/miniscruff/changie).
|
||||
|
||||
|
||||
## v4.3.0 - 2025-09-08
|
||||
### Feature
|
||||
* ([#409](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/409)) Add 45 and 60 min calendar ranges
|
||||
* Add a command to generate a list of permissions
|
||||
* ([#412](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/412)) Add an absence end date
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
### Fixed
|
||||
* fix date formatting in calendar range display
|
||||
* Change route URL to avoid clash with person duplicate controller method
|
||||
|
||||
## v4.2.1 - 2025-09-03
|
||||
### Fixed
|
||||
* Fix exports to work with DirectExportInterface
|
||||
|
@@ -54,7 +54,7 @@ Arborescence:
|
||||
- person
|
||||
- personvendee
|
||||
- household_edit_metadata
|
||||
- index.js
|
||||
- index.ts
|
||||
```
|
||||
|
||||
## Organisation des feuilles de styles
|
||||
|
107
composer.json
107
composer.json
@@ -8,7 +8,7 @@
|
||||
"social worker"
|
||||
],
|
||||
"require": {
|
||||
"php": "^8.3",
|
||||
"php": "^8.2",
|
||||
"ext-dom": "*",
|
||||
"ext-json": "*",
|
||||
"ext-openssl": "*",
|
||||
@@ -19,10 +19,10 @@
|
||||
"doctrine/data-fixtures": "^1.8",
|
||||
"doctrine/doctrine-bundle": "^2.1",
|
||||
"doctrine/doctrine-migrations-bundle": "^3.0",
|
||||
"doctrine/orm": "^3.5.2",
|
||||
"doctrine/orm": "^2.13.0",
|
||||
"erusev/parsedown": "^1.7",
|
||||
"knplabs/knp-menu-bundle": "^3.0",
|
||||
"knplabs/knp-time-bundle": "^2.0",
|
||||
"knplabs/knp-time-bundle": "^1.12",
|
||||
"knpuniversity/oauth2-client-bundle": "^2.10",
|
||||
"league/csv": "^9.7.1",
|
||||
"lexik/jwt-authentication-bundle": "^2.16",
|
||||
@@ -32,53 +32,54 @@
|
||||
"ovh/ovh": "^3.0",
|
||||
"phpoffice/phpspreadsheet": "^1.16",
|
||||
"ramsey/uuid-doctrine": "^1.7",
|
||||
"sensio/framework-extra-bundle": "^5.5",
|
||||
"smalot/pdfparser": "^2.10",
|
||||
"spomky-labs/base64url": "^2.0",
|
||||
"symfony/amqp-messenger": "^7.3",
|
||||
"symfony/asset": "^7.2",
|
||||
"symfony/browser-kit": "^7.2",
|
||||
"symfony/cache": "^7.2",
|
||||
"symfony/clock": "^7.2",
|
||||
"symfony/config": "^7.2",
|
||||
"symfony/console": "^7.2",
|
||||
"symfony/css-selector": "^7.2",
|
||||
"symfony/dom-crawler": "^7.2",
|
||||
"symfony/error-handler": "^7.2",
|
||||
"symfony/event-dispatcher": "^7.2",
|
||||
"symfony/event-dispatcher-contracts": "^3.0",
|
||||
"symfony/expression-language": "^7.2",
|
||||
"symfony/filesystem": "^7.2",
|
||||
"symfony/finder": "^7.2",
|
||||
"symfony/form": "^7.2",
|
||||
"symfony/framework-bundle": "^7.2",
|
||||
"symfony/http-client": "^7.2",
|
||||
"symfony/http-foundation": "^7.2",
|
||||
"symfony/intl": "^7.2",
|
||||
"symfony/mailer": "^7.2",
|
||||
"symfony/messenger": "^7.2",
|
||||
"symfony/mime": "^7.2",
|
||||
"symfony/asset": "^5.4",
|
||||
"symfony/browser-kit": "^5.4",
|
||||
"symfony/cache": "^5.4",
|
||||
"symfony/clock": "^6.2",
|
||||
"symfony/config": "^5.4",
|
||||
"symfony/console": "^5.4",
|
||||
"symfony/css-selector": "^5.4",
|
||||
"symfony/dom-crawler": "^5.4",
|
||||
"symfony/error-handler": "^5.4",
|
||||
"symfony/event-dispatcher": "^5.4",
|
||||
"symfony/event-dispatcher-contracts": "^2.4",
|
||||
"symfony/expression-language": "^5.4",
|
||||
"symfony/filesystem": "^5.4",
|
||||
"symfony/finder": "^5.4",
|
||||
"symfony/form": "^5.4",
|
||||
"symfony/framework-bundle": "^5.4",
|
||||
"symfony/http-client": "^5.4",
|
||||
"symfony/http-foundation": "^5.4",
|
||||
"symfony/intl": "^5.4",
|
||||
"symfony/mailer": "^5.4",
|
||||
"symfony/messenger": "^5.4",
|
||||
"symfony/mime": "^5.4",
|
||||
"symfony/monolog-bundle": "^3.5",
|
||||
"symfony/notifier": "^7.2",
|
||||
"symfony/options-resolver": "^7.2",
|
||||
"symfony/ovh-cloud-notifier": "^7.2",
|
||||
"symfony/polyfill-intl-messageformatter": "^1.32",
|
||||
"symfony/process": "^7.2",
|
||||
"symfony/property-access": "^7.2",
|
||||
"symfony/property-info": "^7.2",
|
||||
"symfony/routing": "^7.2",
|
||||
"symfony/security-bundle": "^7.3",
|
||||
"symfony/security-core": "^7.2",
|
||||
"symfony/security-csrf": "^7.2",
|
||||
"symfony/security-http": "^7.2",
|
||||
"symfony/serializer": "^7.2",
|
||||
"symfony/string": "^7.2",
|
||||
"symfony/translation": "^7.2",
|
||||
"symfony/twig-bundle": "^7.2",
|
||||
"symfony/notifier": "^5.4",
|
||||
"symfony/options-resolver": "^5.4",
|
||||
"symfony/ovh-cloud-notifier": "^5.4",
|
||||
"symfony/process": "^5.4",
|
||||
"symfony/property-access": "^5.4",
|
||||
"symfony/property-info": "^5.4",
|
||||
"symfony/routing": "^5.4",
|
||||
"symfony/security-bundle": "^5.4",
|
||||
"symfony/security-core": "^5.4",
|
||||
"symfony/security-csrf": "^5.4",
|
||||
"symfony/security-guard": "^5.4",
|
||||
"symfony/security-http": "^5.4",
|
||||
"symfony/serializer": "^5.4",
|
||||
"symfony/string": "^5.4",
|
||||
"symfony/templating": "^5.4",
|
||||
"symfony/translation": "^5.4",
|
||||
"symfony/twig-bundle": "^5.4",
|
||||
"symfony/ux-translator": "^2.22",
|
||||
"symfony/validator": "^7.2",
|
||||
"symfony/webpack-encore-bundle": "^2.0",
|
||||
"symfony/workflow": "^7.2",
|
||||
"symfony/yaml": "^7.2",
|
||||
"symfony/validator": "^5.4",
|
||||
"symfony/webpack-encore-bundle": "^1.11",
|
||||
"symfony/workflow": "^5.4",
|
||||
"symfony/yaml": "^5.4",
|
||||
"thenetworg/oauth2-azure": "^2.0",
|
||||
"twig/extra-bundle": "^3.0",
|
||||
"twig/intl-extra": "^3.0",
|
||||
@@ -100,15 +101,16 @@
|
||||
"phpstan/phpstan-strict-rules": "^1.0",
|
||||
"phpunit/phpunit": "^10.5.24",
|
||||
"rector/rector": "^1.1.0",
|
||||
"symfony/debug-bundle": "^7.2",
|
||||
"symfony/dotenv": "^7.2",
|
||||
"symfony/amqp-messenger": "^5.4.45",
|
||||
"symfony/debug-bundle": "^5.4",
|
||||
"symfony/dotenv": "^5.4",
|
||||
"symfony/flex": "^2.4",
|
||||
"symfony/maker-bundle": "^1.20",
|
||||
"symfony/phpunit-bridge": "^7.1",
|
||||
"symfony/runtime": "^7.2",
|
||||
"symfony/stopwatch": "^7.2",
|
||||
"symfony/var-dumper": "^7.2",
|
||||
"symfony/web-profiler-bundle": "^7.2"
|
||||
"symfony/runtime": "^5.4",
|
||||
"symfony/stopwatch": "^5.4",
|
||||
"symfony/var-dumper": "^5.4",
|
||||
"symfony/web-profiler-bundle": "^5.4"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/symfony": "*"
|
||||
@@ -131,6 +133,7 @@
|
||||
"Chill\\TaskBundle\\": "src/Bundle/ChillTaskBundle",
|
||||
"Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle",
|
||||
"Chill\\WopiBundle\\": "src/Bundle/ChillWopiBundle/src",
|
||||
"Chill\\TicketBundle\\": "src/Bundle/ChillTicketBundle/src",
|
||||
"Chill\\Utils\\Rector\\": "utils/rector/src"
|
||||
}
|
||||
},
|
||||
|
@@ -14,6 +14,7 @@ return [
|
||||
Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true],
|
||||
Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['dev' => true, 'test' => true],
|
||||
Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true],
|
||||
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
|
||||
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
|
||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
||||
@@ -34,6 +35,7 @@ return [
|
||||
Chill\ThirdPartyBundle\ChillThirdPartyBundle::class => ['all' => true],
|
||||
Chill\BudgetBundle\ChillBudgetBundle::class => ['all' => true],
|
||||
Chill\WopiBundle\ChillWopiBundle::class => ['all' => true],
|
||||
Chill\TicketBundle\ChillTicketBundle::class => ['all' => true],
|
||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||
Symfony\UX\Translator\UxTranslatorBundle::class => ['all' => true],
|
||||
];
|
||||
|
@@ -1,5 +1,5 @@
|
||||
chill_doc_store:
|
||||
use_driver: openstack
|
||||
use_driver: local_storage
|
||||
local_storage:
|
||||
storage_path: '%kernel.project_dir%/var/storage'
|
||||
openstack:
|
||||
|
5
config/packages/chill_ticket.yaml
Normal file
5
config/packages/chill_ticket.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
chill_ticket:
|
||||
ticket:
|
||||
person_per_ticket: one # One of "one"; "many"
|
||||
response_time_exceeded_delay: PT12H
|
||||
|
@@ -1,11 +0,0 @@
|
||||
# Enable stateless CSRF protection for forms and logins/logouts
|
||||
framework:
|
||||
form:
|
||||
csrf_protection:
|
||||
token_id: submit
|
||||
|
||||
csrf_protection:
|
||||
stateless_token_ids:
|
||||
- submit
|
||||
- authenticate
|
||||
- logout
|
@@ -7,7 +7,6 @@ doctrine:
|
||||
#server_version: '16'
|
||||
use_savepoints: true
|
||||
orm:
|
||||
enable_lazy_ghost_objects: true
|
||||
auto_generate_proxy_classes: true
|
||||
naming_strategy: doctrine.orm.naming_strategy.default
|
||||
auto_mapping: true
|
||||
|
@@ -14,6 +14,7 @@ doctrine_migrations:
|
||||
'Chill\Migrations\Calendar': '@ChillCalendarBundle/migrations'
|
||||
'Chill\Migrations\Budget': '@ChillBudgetBundle/migrations'
|
||||
'Chill\Migrations\Report': '@ChillReportBundle/migrations'
|
||||
'Chill\Migrations\Ticket': '@ChillTicketBundle/migrations'
|
||||
all_or_nothing:
|
||||
true
|
||||
|
||||
|
@@ -4,16 +4,6 @@ framework:
|
||||
#csrf_protection: true
|
||||
http_method_override: false
|
||||
|
||||
|
||||
# Enable EntityValueResolver for automatic entity injection in controllers
|
||||
# This replaces the functionality previously provided by SensioFrameworkExtraBundle
|
||||
http_client:
|
||||
enabled: true
|
||||
|
||||
request:
|
||||
formats:
|
||||
json: ['application/json']
|
||||
|
||||
# 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.
|
||||
session:
|
||||
|
@@ -1,5 +1,7 @@
|
||||
framework:
|
||||
messenger:
|
||||
# reset services after consuming messages
|
||||
reset_on_message: true
|
||||
|
||||
# Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
|
||||
failure_transport: failed
|
||||
|
@@ -1,3 +0,0 @@
|
||||
framework:
|
||||
property_info:
|
||||
enabled: true
|
@@ -1,4 +1,5 @@
|
||||
security:
|
||||
enable_authenticator_manager: true
|
||||
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
|
||||
password_hashers:
|
||||
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
|
||||
@@ -27,13 +28,16 @@ security:
|
||||
pattern: ^/wopi
|
||||
provider: chill_chain_provider
|
||||
stateless: true
|
||||
jwt: ~
|
||||
guard:
|
||||
authenticators:
|
||||
- lexik_jwt_authentication.jwt_token_authenticator
|
||||
dav:
|
||||
pattern: ^/dav
|
||||
provider: chill_chain_provider
|
||||
stateless: true
|
||||
custom_authenticator:
|
||||
- Chill\DocStoreBundle\Security\Authenticator\JWTOnDavUrlAuthenticator
|
||||
guard:
|
||||
authenticators:
|
||||
- Chill\DocStoreBundle\Security\Guard\JWTOnDavUrlAuthenticator
|
||||
# this firewall is the main firewall for chill. It should be the last one in the stack,
|
||||
# unless you have specific needs
|
||||
chill_main:
|
||||
@@ -59,7 +63,7 @@ security:
|
||||
# Note: Only the *first* access control that matches will be used
|
||||
access_control:
|
||||
# those lines are added by chill-bundles recipes, and are requires to make chill-bundles working
|
||||
- { path: ^/(login|logout), roles: PUBLIC_ACCESS }
|
||||
- { path: ^/(login|logout), roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/wopi, roles: IS_AUTHENTICATED_FULLY }
|
||||
# access for homepage, the homepage redirect admin to admin section
|
||||
|
3
config/packages/sensio_framework_extra.yaml
Normal file
3
config/packages/sensio_framework_extra.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
sensio_framework_extra:
|
||||
router:
|
||||
annotations: false
|
@@ -7,8 +7,7 @@ framework:
|
||||
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluationDocument
|
||||
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork
|
||||
- Chill\DocStoreBundle\Entity\AccompanyingCourseDocument
|
||||
label: Suivi
|
||||
translated_labels:
|
||||
label:
|
||||
fr: 'Suivi'
|
||||
support_strategy: Chill\MainBundle\Workflow\RelatedEntityWorkflowSupportsStrategy
|
||||
marking_store:
|
||||
@@ -17,13 +16,11 @@ framework:
|
||||
places:
|
||||
initial:
|
||||
metadata:
|
||||
label: Étape initiale
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Étape initiale
|
||||
attenteModification:
|
||||
metadata:
|
||||
label: En attente de modification du document
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente de modification du document
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Modification effectuée}
|
||||
@@ -31,8 +28,7 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteMiseEnForme:
|
||||
metadata:
|
||||
label: En attente de mise en forme
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente de mise en forme
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Mise en forme terminée}
|
||||
@@ -40,8 +36,7 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteVisa:
|
||||
metadata:
|
||||
label: En attente de visa
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente de visa
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Visa accordé}
|
||||
@@ -52,8 +47,7 @@ framework:
|
||||
isSignature: ['user', 'person']
|
||||
onSignatureCompleted:
|
||||
transitionName: signatureApplied
|
||||
label: En attente de signature
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente de signature
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Signature accordée}
|
||||
@@ -61,8 +55,7 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
postSignature:
|
||||
metadata:
|
||||
label: Signatures traitées
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Signatures traitées
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Poursuite du traitement}
|
||||
@@ -70,8 +63,7 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteTraitement:
|
||||
metadata:
|
||||
label: En attente de traitement
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente de traitement
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Traitement terminé favorablement}
|
||||
@@ -79,8 +71,7 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteEnvoi:
|
||||
metadata:
|
||||
label: En attente d'envoi
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente d'envoi
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Document envoyé}
|
||||
@@ -88,8 +79,7 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteValidationMiseEnForme:
|
||||
metadata:
|
||||
label: En attente de validation de la mise en forme
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente de validation de la mise en forme
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Validation de la mise en forme}
|
||||
@@ -99,8 +89,7 @@ framework:
|
||||
metadata:
|
||||
isSentExternal: true
|
||||
onExternalView: clotureApresLectureEnvoiExterne
|
||||
label: En attente d'ouverture par un destinataire externe
|
||||
translated_labels:
|
||||
label:
|
||||
fr: En attente d'ouverture par un destinataire externe
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Document reçu par un destinataire externe}
|
||||
@@ -110,15 +99,13 @@ framework:
|
||||
metadata:
|
||||
isFinal: true
|
||||
isFinalPositive: false
|
||||
label: Annulé
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Annulé
|
||||
final:
|
||||
metadata:
|
||||
isFinal: true
|
||||
isFinalPositive: true
|
||||
label: Finalisé
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Finalisé
|
||||
transitions:
|
||||
# transition qui avancent
|
||||
@@ -127,8 +114,7 @@ framework:
|
||||
- initial
|
||||
to: attenteModification
|
||||
metadata:
|
||||
label: Demande de modification du document
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Demande de modification du document
|
||||
isForward: true
|
||||
demandeMiseEnForme:
|
||||
@@ -137,8 +123,7 @@ framework:
|
||||
- attenteModification
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label: Demande de mise en forme
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Demande de mise en forme
|
||||
isForward: true
|
||||
demandeValidationMiseEnForme:
|
||||
@@ -146,8 +131,7 @@ framework:
|
||||
- attenteMiseEnForme
|
||||
to: attenteValidationMiseEnForme
|
||||
metadata:
|
||||
label: Demande de validation de la mise en forme
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Demande de validation de la mise en forme
|
||||
isForward: true
|
||||
demandeVisa:
|
||||
@@ -160,8 +144,7 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label: Demande de visa
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Demande de visa
|
||||
isForward: true
|
||||
demandeSignature:
|
||||
@@ -174,18 +157,14 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteSignature
|
||||
metadata:
|
||||
label: Demande de signature
|
||||
translated_labels:
|
||||
fr: Demande de signature
|
||||
label: {fr: Demande de signature}
|
||||
isForward: true
|
||||
signatureApplied:
|
||||
from:
|
||||
- attenteSignature
|
||||
to: postSignature
|
||||
metadata:
|
||||
label: Signatures appliquées
|
||||
translated_labels:
|
||||
fr: Signatures appliquées
|
||||
label: {fr: Signatures appliquées}
|
||||
isForward: true
|
||||
transitionGuard: 'system' # can be 'system+only-dest' or 'only-dest' (only-dest is default)
|
||||
demandeTraitement:
|
||||
@@ -198,9 +177,7 @@ framework:
|
||||
- postSignature
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: Demande de traitement
|
||||
translated_labels:
|
||||
fr: Demande de traitement
|
||||
label: {fr: Demande de traitement}
|
||||
isForward: true
|
||||
demandeEnvoi:
|
||||
from:
|
||||
@@ -213,9 +190,7 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteEnvoi
|
||||
metadata:
|
||||
label: Demande d'envoi
|
||||
translated_labels:
|
||||
fr: Demande d'envoi
|
||||
label: {fr: Demande d'envoi}
|
||||
isForward: true
|
||||
demandeEnvoiExterne:
|
||||
from:
|
||||
@@ -228,9 +203,7 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteReceptionExternal
|
||||
metadata:
|
||||
label: Envoi sécurisé par courrier électronique
|
||||
translated_labels:
|
||||
fr: Envoi sécurisé par courrier électronique
|
||||
label: {fr: Envoi sécurisé par courrier électronique}
|
||||
isForward: true
|
||||
clotureApresLectureEnvoiExterne:
|
||||
from:
|
||||
@@ -240,9 +213,7 @@ framework:
|
||||
metadata:
|
||||
transitionGuard: system
|
||||
isForward: true
|
||||
label: Consultation de l'envoi sécurisé
|
||||
translated_labels:
|
||||
fr: Consultation de l'envoi sécurisé
|
||||
label: {fr: Consultation de l'envoi sécurisé}
|
||||
annulation:
|
||||
from:
|
||||
- initial
|
||||
@@ -256,9 +227,7 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: annule
|
||||
metadata:
|
||||
label: Annulation
|
||||
translated_labels:
|
||||
fr: Annulation
|
||||
label: {fr: Annulation}
|
||||
isForward: false
|
||||
transitionGuard: 'system+only-dest' # can be 'system+only-dest' or 'only-dest' (only-dest is default)
|
||||
# transitions qui répètent l'étape
|
||||
@@ -268,35 +237,27 @@ framework:
|
||||
- attenteValidationMiseEnForme
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label: Demande de mise en forme supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de mise en forme supplémentaire
|
||||
label: {fr: Demande de mise en forme supplémentaire}
|
||||
demandeVisaSupplementaire:
|
||||
from:
|
||||
- attenteVisa
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label: Demande de visa supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de visa supplémentaire
|
||||
label: {fr: Demande de visa supplémentaire}
|
||||
isForward: true
|
||||
demandeSignatureSupplementaire:
|
||||
from:
|
||||
- postSignature
|
||||
to: attenteSignature
|
||||
metadata:
|
||||
label: Demande de signature supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de signature supplémentaire
|
||||
label: {fr: Demande de signature supplémentaire}
|
||||
isForward: true
|
||||
demandeTraitementSupplementaire:
|
||||
from:
|
||||
- attenteTraitement
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: Demande de traitement supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de traitement supplémentaire
|
||||
label: {fr: Demande de traitement supplémentaire}
|
||||
# transitions qui renvoient vers une étape précédente
|
||||
refusEtModificationDocument:
|
||||
from:
|
||||
@@ -306,8 +267,7 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: attenteModification
|
||||
metadata:
|
||||
label: Refus et demande de modification du document
|
||||
translated_labels:
|
||||
label:
|
||||
fr: Refus et demande de modification du document
|
||||
isForward: false
|
||||
refusEtDemandeMiseEnForme:
|
||||
@@ -317,9 +277,7 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label: Refus et demande de mise en forme
|
||||
translated_labels:
|
||||
fr: Refus et demande de mise en forme
|
||||
label: {fr: Refus et demande de mise en forme}
|
||||
isForward: false
|
||||
refusEtDemandeVisa:
|
||||
from:
|
||||
@@ -327,27 +285,21 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label: Refus et demande de visa
|
||||
translated_labels:
|
||||
fr: Refus et demande de visa
|
||||
label: {fr: Refus et demande de visa}
|
||||
isForward: false
|
||||
refusEtDemandeSignature:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: attenteSignature
|
||||
metadata:
|
||||
label: Refus et demande de signature
|
||||
translated_labels:
|
||||
fr: Refus et demande de signature
|
||||
label: {fr: Refus et demande de signature}
|
||||
isForward: false
|
||||
refusEtDemandeTraitement:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: Refus et demande de traitement
|
||||
translated_labels:
|
||||
fr: Refus et demande de traitement
|
||||
label: {fr: Refus et demande de traitement}
|
||||
isForward: false
|
||||
# transition vers final
|
||||
initialToFinal:
|
||||
@@ -355,9 +307,7 @@ framework:
|
||||
- initial
|
||||
to: final
|
||||
metadata:
|
||||
label: Clotûre immédiate et cloture positive
|
||||
translated_labels:
|
||||
fr: Clotûre immédiate et cloture positive
|
||||
label: {fr: Clotûre immédiate et cloture positive}
|
||||
isForward: true
|
||||
attenteMiseEnFormeToFinal:
|
||||
from:
|
||||
@@ -365,43 +315,33 @@ framework:
|
||||
- attenteValidationMiseEnForme
|
||||
to: final
|
||||
metadata:
|
||||
label: Mise en forme terminée et cloture positive
|
||||
translated_labels:
|
||||
fr: Mise en forme terminée et cloture positive
|
||||
label: {fr: Mise en forme terminée et cloture positive}
|
||||
isForward: true
|
||||
attenteVisaToFinal:
|
||||
from:
|
||||
- attenteVisa
|
||||
to: final
|
||||
metadata:
|
||||
label: Accorde le visa et cloture positive
|
||||
translated_labels:
|
||||
fr: Accorde le visa et cloture positive
|
||||
label: {fr: Accorde le visa et cloture positive}
|
||||
isForward: true
|
||||
postSignatureToFinal:
|
||||
from:
|
||||
- postSignature
|
||||
to: final
|
||||
metadata:
|
||||
label: Cloture positive
|
||||
translated_labels:
|
||||
fr: Cloture positive
|
||||
label: {fr: Cloture positive}
|
||||
isForward: true
|
||||
attenteTraitementToFinal:
|
||||
from:
|
||||
- attenteTraitement
|
||||
to: final
|
||||
metadata:
|
||||
label: Traitement terminé et cloture positive
|
||||
translated_labels:
|
||||
fr: Traitement terminé et cloture positive
|
||||
label: {fr: Traitement terminé et cloture positive}
|
||||
isForward: true
|
||||
attenteEnvoiToFinal:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: final
|
||||
metadata:
|
||||
label: Envoyé et cloture positive
|
||||
translated_labels:
|
||||
fr: Envoyé et cloture positive
|
||||
label: {fr: Envoyé et cloture positive}
|
||||
isForward: true
|
||||
|
3
config/routes/annotations.yaml
Normal file
3
config/routes/annotations.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
kernel:
|
||||
resource: ../../src/app/Kernel.php
|
||||
type: annotation
|
2
config/routes/chill_ticket.yaml
Normal file
2
config/routes/chill_ticket.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
chill_ticket_bundle:
|
||||
resource: '@ChillTicketBundle/config/routes.yaml'
|
@@ -1,3 +0,0 @@
|
||||
_security_logout:
|
||||
resource: security.route_loader.logout
|
||||
type: service
|
@@ -6,15 +6,8 @@
|
||||
parameters:
|
||||
|
||||
services:
|
||||
#alias to inject container into AbstractController::setContainer
|
||||
Psr\Container\ContainerInterface: '@service_container'
|
||||
|
||||
# default configuration for services in *this* file
|
||||
_defaults:
|
||||
autowire: true # Automatically injects dependencies in your services.
|
||||
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
|
||||
|
||||
# Custom entity value resolver to replace SensioFrameworkExtraBundle functionality
|
||||
Chill\MainBundle\ArgumentResolver\EntityValueResolver:
|
||||
tags:
|
||||
- { name: controller.argument_value_resolver, priority: 50 }
|
||||
|
@@ -14,6 +14,7 @@ namespace Chill\PersonBundle\Export\Filter;
|
||||
use Chill\MainBundle\Export\ExportElementValidatedInterface;
|
||||
use Chill\MainBundle\Export\ExportGenerationContext;
|
||||
use Chill\MainBundle\Export\FilterInterface;
|
||||
use DateTime;
|
||||
use Doctrine\ORM\Query\Expr;
|
||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||
@@ -21,7 +22,6 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||
class BirthdateFilter implements ExportElementValidatedInterface, FilterInterface
|
||||
{
|
||||
use \Chill\MainBundle\Export\ExportDataNormalizerTrait;
|
||||
|
||||
// add specific role for this filter
|
||||
public function addRole(): ?string
|
||||
{
|
||||
@@ -30,7 +30,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
}
|
||||
|
||||
// here, we alter the query created by Export
|
||||
public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void
|
||||
public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
|
||||
{
|
||||
$where = $qb->getDQLPart('where');
|
||||
// we create the clause here
|
||||
@@ -76,25 +76,21 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
'format' => 'dd-MM-yyyy',
|
||||
]);
|
||||
}
|
||||
|
||||
public function getNormalizationVersion(): int
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
public function normalizeFormData(array $formData): array
|
||||
{
|
||||
return ['date_from' => $this->normalizeDate($formData['date_from']), 'date_to' => $this->normalizeDate($formData['date_to'])];
|
||||
}
|
||||
|
||||
public function denormalizeFormData(array $formData, int $fromVersion): array
|
||||
{
|
||||
return ['date_from' => $this->denormalizeDate($formData['date_from']), 'date_to' => $this->denormalizeDate($formData['date_to'])];
|
||||
}
|
||||
|
||||
public function getFormDefaultData(): array
|
||||
{
|
||||
return ['date_from' => new \DateTime(), 'date_to' => new \DateTime()];
|
||||
return ['date_from' => new DateTime(), 'date_to' => new DateTime()];
|
||||
}
|
||||
|
||||
// here, we create a simple string which will describe the action of
|
||||
@@ -102,7 +98,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
public function describeAction($data, ExportGenerationContext $context): string|\Symfony\Contracts\Translation\TranslatableInterface|array
|
||||
{
|
||||
return ['Filtered by person\'s birtdate: '
|
||||
.'between %date_from% and %date_to%', [
|
||||
. 'between %date_from% and %date_to%', [
|
||||
'%date_from%' => $data['date_from']->format('d-m-Y'),
|
||||
'%date_to%' => $data['date_to']->format('d-m-Y'),
|
||||
], ];
|
||||
@@ -124,13 +120,13 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
|
||||
if (null === $date_from) {
|
||||
$context->buildViolation('The "date from" should not be empty')
|
||||
// ->atPath('date_from')
|
||||
//->atPath('date_from')
|
||||
->addViolation();
|
||||
}
|
||||
|
||||
if (null === $date_to) {
|
||||
$context->buildViolation('The "date to" should not be empty')
|
||||
// ->atPath('date_to')
|
||||
//->atPath('date_to')
|
||||
->addViolation();
|
||||
}
|
||||
|
||||
@@ -139,7 +135,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
&& $date_from >= $date_to
|
||||
) {
|
||||
$context->buildViolation('The date "date to" should be after the '
|
||||
.'date given in "date from" field')
|
||||
. 'date given in "date from" field')
|
||||
->addViolation();
|
||||
}
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ class CountPerson implements ExportInterface
|
||||
$this->entityManager = $em;
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder): void
|
||||
public function buildForm(FormBuilderInterface $builder)
|
||||
{
|
||||
// this export does not add any form
|
||||
}
|
||||
|
@@ -11,24 +11,94 @@
|
||||
Create a new bundle
|
||||
*******************
|
||||
|
||||
Create your own bundle is not a trivial task.
|
||||
|
||||
The easiest way to achieve this is seems to be :
|
||||
|
||||
1. Prepare a fresh installation of the chill project, in a new directory
|
||||
2. Create a new bundle in this project, in the src directory
|
||||
3. Initialize a git repository **at the root bundle**, and create your initial commit.
|
||||
4. Register the bundle with composer/packagist. If you do not plan to distribute your bundle with packagist, you may use a custom repository for achieve this [#f1]_
|
||||
5. Move to a development installation, made as described in the :ref:`installation-for-development` section, and add your new repository to the composer.json file
|
||||
6. Work as :ref:`usual <editing-code-and-commiting>`
|
||||
|
||||
.. warning::
|
||||
|
||||
This part of the doc is not yet tested
|
||||
|
||||
TODO
|
||||
Create a new directory with Bundle class
|
||||
----------------------------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
mkdir -p src/Bundle/ChillSomeBundle/src/config
|
||||
mkdir -p src/Bundle/ChillSomeBundle/src/Controller
|
||||
|
||||
Add a bundle file
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* Chill is a software for social workers
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Chill\SomeBundle;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class ChillSomeBundle extends Bundle {}
|
||||
|
||||
And a route file:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
chill_ticket_controller:
|
||||
resource: '@ChillTicketBundle/Controller/'
|
||||
type: annotation
|
||||
|
||||
Register the new psr-4 namespace
|
||||
--------------------------------
|
||||
|
||||
In composer.json, add the new psr4 namespace
|
||||
|
||||
.. code-block:: diff
|
||||
|
||||
{
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
+ "Chill\\SomeBundle\\": "src/Bundle/ChillSomeBundle/src",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.. rubric:: Footnotes
|
||||
Register the bundle
|
||||
-------------------
|
||||
|
||||
Register in the file :code:`config/bundles.php`:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
Vendor\Bundle\YourBundle\YourBundle::class => ['all' => true],
|
||||
|
||||
And import routes in :code:`config/routes/chill_some_bundle.yaml`:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
chill_ticket_bundle:
|
||||
resource: '@ChillSomeBundle/config/routes.yaml'
|
||||
|
||||
Add the doctrine_migration namespace
|
||||
------------------------------------
|
||||
|
||||
Add the namespace to :code:`config/packages/doctrine_migrations_chill.yaml`
|
||||
|
||||
.. code-block:: diff
|
||||
|
||||
doctrine_migrations:
|
||||
migrations_paths:
|
||||
+ 'Chill\Some\Ticket': '@ChillSomeBundle/migrations'
|
||||
|
||||
Dump autoloading
|
||||
----------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
symfony composer dump-autoload
|
||||
|
||||
.. [#f1] Be aware that we use the Affero GPL Licence, which ensure that all users must have access to derivative works done with this software.
|
||||
|
@@ -18,7 +18,7 @@ class example extends \Symfony\Bundle\FrameworkBundle\Controller\AbstractControl
|
||||
public function __construct(private readonly \Doctrine\Persistence\ManagerRegistry $managerRegistry)
|
||||
{
|
||||
}
|
||||
public function yourAction(): \Symfony\Component\HttpFoundation\Response
|
||||
public function yourAction()
|
||||
{
|
||||
$em = $this->managerRegistry->getManager();
|
||||
// first, get the number of total item are available
|
||||
|
@@ -28,7 +28,7 @@ class ConsultationController extends \Symfony\Bundle\FrameworkBundle\Controller\
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function listAction($id): \Symfony\Component\HttpFoundation\Response
|
||||
public function listAction($id)
|
||||
{
|
||||
/** @var \Chill\PersonBundle\Entity\Person $person */
|
||||
$person = $this->get('chill.person.repository.person')
|
||||
|
@@ -31,7 +31,7 @@ class ChillMainConfiguration implements ConfigurationInterface
|
||||
$this->setWidgetFactories($widgetFactories);
|
||||
}
|
||||
|
||||
public function getConfigTreeBuilder(): \Symfony\Component\Config\Definition\Builder\TreeBuilder
|
||||
public function getConfigTreeBuilder()
|
||||
{
|
||||
$treeBuilder = new TreeBuilder('chill_main');
|
||||
$rootNode = $treeBuilder->getRootNode();
|
||||
|
@@ -27,12 +27,12 @@ class ChillMainExtension extends Extension implements Widget\HasWidgetFactoriesE
|
||||
*/
|
||||
protected $widgetFactories = [];
|
||||
|
||||
public function addWidgetFactory(WidgetFactoryInterface $factory): void
|
||||
public function addWidgetFactory(WidgetFactoryInterface $factory)
|
||||
{
|
||||
$this->widgetFactories[] = $factory;
|
||||
}
|
||||
|
||||
public function getConfiguration(array $config, ContainerBuilder $container): ?\Symfony\Component\Config\Definition\ConfigurationInterface
|
||||
public function getConfiguration(array $config, ContainerBuilder $container)
|
||||
{
|
||||
return new Configuration($this->widgetFactories, $container);
|
||||
}
|
||||
@@ -45,7 +45,7 @@ class ChillMainExtension extends Extension implements Widget\HasWidgetFactoriesE
|
||||
return $this->widgetFactories;
|
||||
}
|
||||
|
||||
public function load(array $configs, ContainerBuilder $container): void
|
||||
public function load(array $configs, ContainerBuilder $container)
|
||||
{
|
||||
// configuration for main bundle
|
||||
$configuration = $this->getConfiguration($configs, $container);
|
||||
|
@@ -25,7 +25,7 @@ class ChillPersonAddAPersonListWidgetFactory extends AbstractWidgetFactory
|
||||
* see http://symfony.com/doc/current/components/config/definition.html
|
||||
*
|
||||
*/
|
||||
public function configureOptions($place, NodeBuilder $node): void
|
||||
public function configureOptions($place, NodeBuilder $node)
|
||||
{
|
||||
$node->booleanNode('only_active')
|
||||
->defaultTrue()
|
||||
|
@@ -124,7 +124,7 @@ class ChillPersonAddAPersonWidget implements WidgetInterface
|
||||
/**
|
||||
* @return UserInterface
|
||||
*/
|
||||
private function getUser(): void
|
||||
private function getUser()
|
||||
{
|
||||
// return a user
|
||||
}
|
||||
|
@@ -22,7 +22,7 @@ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
*/
|
||||
class ChillPersonExtension extends Extension implements PrependExtensionInterface
|
||||
{
|
||||
public function load(array $configs, ContainerBuilder $container): void
|
||||
public function load(array $configs, ContainerBuilder $container)
|
||||
{
|
||||
// ...
|
||||
}
|
||||
@@ -32,7 +32,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
|
||||
*
|
||||
* @param \Chill\PersonBundle\DependencyInjection\containerBuilder $container
|
||||
*/
|
||||
public function prepend(ContainerBuilder $container): void
|
||||
public function prepend(ContainerBuilder $container)
|
||||
{
|
||||
$container->prependExtensionConfig('chill_main', [
|
||||
'widgets' => [
|
||||
|
@@ -11,7 +11,6 @@
|
||||
"@hotwired/stimulus": "^3.0.0",
|
||||
"@luminateone/eslint-baseline": "^1.0.9",
|
||||
"@symfony/stimulus-bridge": "^3.2.0",
|
||||
"@symfony/ux-translator": "file:vendor/symfony/ux-translator/assets",
|
||||
"@symfony/webpack-encore": "^4.1.0",
|
||||
"@tsconfig/node20": "^20.1.4",
|
||||
"@types/dompurify": "^3.0.5",
|
||||
@@ -80,12 +79,12 @@
|
||||
"dev": "encore dev",
|
||||
"watch": "encore dev --watch",
|
||||
"build": "encore production --progress",
|
||||
"specs-build": "yaml-merge src/Bundle/ChillMainBundle/chill.api.specs.yaml src/Bundle/ChillPersonBundle/chill.api.specs.yaml src/Bundle/ChillCalendarBundle/chill.api.specs.yaml src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml",
|
||||
"specs-build": "yaml-merge src/Bundle/ChillMainBundle/chill.api.specs.yaml src/Bundle/ChillPersonBundle/chill.api.specs.yaml src/Bundle/ChillCalendarBundle/chill.api.specs.yaml src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml src/Bundle/ChillTicketBundle/chill.api.specs.yaml> templates/api/specs.yaml",
|
||||
"specs-validate": "swagger-cli validate templates/api/specs.yaml",
|
||||
"specs-create-dir": "mkdir -p templates/api",
|
||||
"specs": "yarn run specs-create-dir && yarn run specs-build && yarn run specs-validate",
|
||||
"version": "node --version",
|
||||
"eslint": "npx eslint-baseline --fix \"src/**/*.{js,ts,vue}\""
|
||||
"eslint": "eslint-baseline --fix \"src/**/*.{js,ts,vue}\""
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
|
@@ -1,34 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
<phpunit
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
||||
backupGlobals="false"
|
||||
colors="true"
|
||||
failOnNotice="true"
|
||||
failOnWarning="true"
|
||||
bootstrap="tests/bootstrap.php"
|
||||
cacheDirectory=".phpunit.cache"
|
||||
>
|
||||
<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" />
|
||||
<ini name="error_reporting" value="-1"/>
|
||||
<server name="APP_ENV" value="test" force="true"/>
|
||||
<env name="SYMFONY_DEPRECATIONS_HELPER" value="max[direct]=93&max[indirect]=999999"/>
|
||||
<server name="SHELL_VERBOSITY" value="-1"/>
|
||||
<server name="SYMFONY_PHPUNIT_REMOVE" value="" />
|
||||
<server name="SYMFONY_PHPUNIT_VERSION" value="9.5" />
|
||||
<ini name="date.timezone" value="Europe/Brussels" />
|
||||
</php>
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="Project Test Suite">
|
||||
<directory>tests</directory>
|
||||
<!--
|
||||
<testsuite name="ActivityBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillActivityBundle/Tests/</directory>
|
||||
</testsuite>
|
||||
-->
|
||||
<testsuite name="AsideActivityBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillAsideActivityBundle/src/Tests/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="BudgetBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillBudgetBundle/Tests/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="CalendarBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillCalendarBundle/Tests/</directory>
|
||||
</testsuite>
|
||||
<!-- Missing CustomFieldBundle -->
|
||||
<testsuite name="DocGeneratorBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillDocGeneratorBundle/tests/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="DocStoreBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillDocStoreBundle/Tests/</directory>
|
||||
</testsuite>
|
||||
<!--
|
||||
<testsuite name="EventBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillEventBundle/tests/</directory>
|
||||
</testsuite>
|
||||
-->
|
||||
<testsuite name="MainBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillMainBundle/Tests/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="PersonBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillPersonBundle/Tests/</directory>
|
||||
<!-- we are rewriting accompanying periods... Work in progress -->
|
||||
<exclude>src/Bundle/ChillPersonBundle/Tests/Controller/AccompanyingPeriodControllerTest.php</exclude>
|
||||
<!-- we are rewriting address, Work in progress -->
|
||||
<exclude>src/Bundle/ChillPersonBundle/Tests/Controller/PersonAddressControllerTest.php</exclude>
|
||||
<!-- find a solution to create multiple configs -->
|
||||
<exclude>src/Bundle/ChillPersonBundle/Tests/Controller/PersonControllerUpdateWithHiddenFieldsTest.php</exclude>
|
||||
<!-- temporarily removed, the time to find a fix -->
|
||||
<exclude>src/Bundle/ChillPersonBundle/Tests/Controller/PersonDuplicateControllerViewTest.php</exclude>
|
||||
</testsuite>
|
||||
|
||||
<testsuite name="TicketBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillTicketBundle/tests/</directory>
|
||||
</testsuite>
|
||||
<!--
|
||||
<testsuite name="ReportBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillReportBundle/Tests/</directory>
|
||||
</testsuite>
|
||||
-->
|
||||
<!--
|
||||
<testsuite name="TaskBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillTaskBundle/Tests</directory>
|
||||
</testsuite>
|
||||
-->
|
||||
<testsuite name="ThirdPartyBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillThirdPartyBundle/Tests</directory>
|
||||
</testsuite>
|
||||
<testsuite name="WopiBundle">
|
||||
<directory suffix="Test.php">src/Bundle/ChillWopiBundle/tests/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<source ignoreSuppressionOfDeprecations="true" restrictNotices="true" restrictWarnings="true">
|
||||
<include>
|
||||
<directory>src</directory>
|
||||
</include>
|
||||
</source>
|
||||
|
||||
<!-- Run `composer require symfony/panther` before enabling this extension -->
|
||||
<!--
|
||||
<extensions>
|
||||
<extension class="Symfony\Component\Panther\ServerExtension" />
|
||||
</extensions>
|
||||
-->
|
||||
</phpunit>
|
||||
|
93
rector.php
93
rector.php
@@ -13,24 +13,23 @@ use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
|
||||
use Rector\Config\RectorConfig;
|
||||
use Rector\Php80\Rector\Class_\AnnotationToAttributeRector;
|
||||
use Rector\Set\ValueObject\LevelSetList;
|
||||
use Rector\Symfony\Set\SymfonySetList;
|
||||
|
||||
return static function (RectorConfig $rectorConfig): void {
|
||||
$rectorConfig->paths([
|
||||
__DIR__.'/docs',
|
||||
__DIR__.'/src',
|
||||
__DIR__.'/rector.php',
|
||||
__DIR__ . '/docs',
|
||||
__DIR__ . '/src',
|
||||
__DIR__ . '/rector.php',
|
||||
]);
|
||||
|
||||
$rectorConfig->skip([
|
||||
Rector\Php55\Rector\String_\StringClassNameToClassConstantRector::class => __DIR__.'src/Bundle/ChillMainBundle/Service/Notifier/LegacyOvhCloudFactory.php',
|
||||
\Rector\Php55\Rector\String_\StringClassNameToClassConstantRector::class => __DIR__ . 'src/Bundle/ChillMainBundle/Service/Notifier/LegacyOvhCloudFactory.php'
|
||||
]);
|
||||
|
||||
// $rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/dev/test/App_KernelTestDebugContainer.xml ');
|
||||
// $rectorConfig->symfonyContainerPhp(__DIR__ . '/tests/symfony-container.php');
|
||||
//$rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/dev/test/App_KernelTestDebugContainer.xml ');
|
||||
//$rectorConfig->symfonyContainerPhp(__DIR__ . '/tests/symfony-container.php');
|
||||
|
||||
// $rectorConfig->cacheClass(\Rector\Caching\ValueObject\Storage\FileCacheStorage::class);
|
||||
// $rectorConfig->cacheDirectory(__DIR__ . '/.cache/rector');
|
||||
//$rectorConfig->cacheClass(\Rector\Caching\ValueObject\Storage\FileCacheStorage::class);
|
||||
//$rectorConfig->cacheDirectory(__DIR__ . '/.cache/rector');
|
||||
|
||||
// register a single rule
|
||||
$rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);
|
||||
@@ -38,72 +37,54 @@ return static function (RectorConfig $rectorConfig): void {
|
||||
$rectorConfig->rule(Rector\TypeDeclaration\Rector\Class_\MergeDateTimePropertyTypeDeclarationRector::class);
|
||||
$rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationBasedOnParentClassMethodRector::class);
|
||||
|
||||
// Add return types to controller methods
|
||||
$rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\AddVoidReturnTypeWhereNoReturnRector::class);
|
||||
$rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromReturnNewRector::class);
|
||||
$rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedCallRector::class);
|
||||
$rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedPropertyRector::class);
|
||||
|
||||
// part of the symfony 54 rules
|
||||
$rectorConfig->rule(Rector\Symfony\Symfony53\Rector\StaticPropertyFetch\KernelTestCaseContainerPropertyDeprecationRector::class);
|
||||
$rectorConfig->rule(Rector\Symfony\Symfony60\Rector\MethodCall\GetHelperControllerToServiceRector::class);
|
||||
// $rectorConfig->disableParallel();
|
||||
$rectorConfig->rule(\Rector\Symfony\Symfony53\Rector\StaticPropertyFetch\KernelTestCaseContainerPropertyDeprecationRector::class);
|
||||
$rectorConfig->rule(\Rector\Symfony\Symfony60\Rector\MethodCall\GetHelperControllerToServiceRector::class);
|
||||
//$rectorConfig->disableParallel();
|
||||
|
||||
// define sets of rules
|
||||
//define sets of rules
|
||||
$rectorConfig->sets([
|
||||
// LevelSetList::UP_TO_PHP_82,
|
||||
// SymfonySetList::SYMFONY_60,
|
||||
// SymfonySetList::SYMFONY_61,
|
||||
// SymfonySetList::SYMFONY_62,
|
||||
// SymfonySetList::SYMFONY_63,
|
||||
// SymfonySetList::SYMFONY_64,
|
||||
// SymfonySetList::SYMFONY_70,
|
||||
// SymfonySetList::SYMFONY_71,
|
||||
Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_ORM_29,
|
||||
Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_DBAL_30,
|
||||
Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_CODE_QUALITY,
|
||||
Rector\Doctrine\Set\DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,
|
||||
LevelSetList::UP_TO_PHP_82,
|
||||
\Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_CODE_QUALITY,
|
||||
\Rector\PHPUnit\Set\PHPUnitSetList::PHPUNIT_90,
|
||||
]);
|
||||
|
||||
$rectorConfig->ruleWithConfiguration(AnnotationToAttributeRector::class, [
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Symfony\Component\Serializer\Annotation\Context'),
|
||||
$rectorConfig->ruleWithConfiguration(\Rector\Php80\Rector\Class_\AnnotationToAttributeRector::class, [
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Symfony\Component\Serializer\Annotation\Context'),
|
||||
]);
|
||||
|
||||
// migrate for phpunit
|
||||
$rectorConfig->rules([
|
||||
Rector\PHPUnit\PHPUnit100\Rector\Class_\StaticDataProviderClassMethodRector::class,
|
||||
Rector\PHPUnit\PHPUnit100\Rector\Class_\PublicDataProviderClassMethodRector::class,
|
||||
\Rector\PHPUnit\PHPUnit100\Rector\Class_\StaticDataProviderClassMethodRector::class,
|
||||
\Rector\PHPUnit\PHPUnit100\Rector\Class_\PublicDataProviderClassMethodRector::class
|
||||
]);
|
||||
|
||||
// some routes are added twice if it remains activated
|
||||
// $rectorConfig->rule(\Rector\Symfony\Configs\Rector\ClassMethod\AddRouteAnnotationRector::class);
|
||||
|
||||
// chill rules
|
||||
$rectorConfig->rules([
|
||||
Chill\Utils\Rector\Rector\ChillBundleMakeDataProviderStaticForAbstractExportTestRector::class,
|
||||
]);
|
||||
|
||||
// skip some path...
|
||||
$rectorConfig->skip([
|
||||
// waiting for fixing this bug: https://github.com/rectorphp/rector-doctrine/issues/342
|
||||
Rector\Doctrine\CodeQuality\Rector\Property\ImproveDoctrineCollectionDocTypeInEntityRector::class,
|
||||
\Rector\Doctrine\CodeQuality\Rector\Property\ImproveDoctrineCollectionDocTypeInEntityRector::class,
|
||||
]);
|
||||
|
||||
$rectorConfig->ruleWithConfiguration(AnnotationToAttributeRector::class, [
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\AccompanyingPeriodValidity'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Household\HouseholdMembershipSequential'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Household\MaxHolder'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ConfidentialCourseMustHaveReferrer'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\LocationValidity'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ParticipationOverlap'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ResourceDuplicateCheck'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Person\Birthdate'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Person\PersonHasCenter'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Relationship\RelationshipNoDuplicate'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\ActivityBundle\Validator\Constraints\ActivityValidity'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\DocStoreBundle\Validator\Constraints\AsyncFileExists'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Validation\Constraint\PhonenumberConstraint'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Validator\Constraints\Entity\UserCircleConsistency'),
|
||||
new Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Workflow\Validator\EntityWorkflowCreation'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\AccompanyingPeriodValidity'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Household\HouseholdMembershipSequential'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Household\MaxHolder'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ConfidentialCourseMustHaveReferrer'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\LocationValidity'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ParticipationOverlap'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ResourceDuplicateCheck'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Person\Birthdate'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Person\PersonHasCenter'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\PersonBundle\Validator\Constraints\Relationship\RelationshipNoDuplicate'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\ActivityBundle\Validator\Constraints\ActivityValidity'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\DocStoreBundle\Validator\Constraints\AsyncFileExists'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Validation\Constraint\PhonenumberConstraint'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Validator\Constraints\Entity\UserCircleConsistency'),
|
||||
new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Workflow\Validator\EntityWorkflowCreation'),
|
||||
]);
|
||||
|
||||
|
||||
};
|
||||
|
@@ -74,8 +74,8 @@ final class ActivityController extends AbstractController
|
||||
/**
|
||||
* Deletes a Activity entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/activity/{id}/delete', name: 'chill_activity_activity_delete', methods: ['GET', 'POST', 'DELETE'])]
|
||||
public function deleteAction(Request $request, mixed $id): \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/{id}/delete', name: 'chill_activity_activity_delete', methods: ['GET', 'POST', 'DELETE'])]
|
||||
public function deleteAction(Request $request, mixed $id)
|
||||
{
|
||||
$view = null;
|
||||
|
||||
@@ -104,7 +104,7 @@ final class ActivityController extends AbstractController
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->logger->notice('An activity has been removed', [
|
||||
'by_user' => $this->getUser()->getUserIdentifier(),
|
||||
'by_user' => $this->getUser()->getUsername(),
|
||||
'activity_id' => $activity->getId(),
|
||||
'person_id' => $activity->getPerson() ? $activity->getPerson()->getId() : null,
|
||||
'comment' => $activity->getComment()->getComment(),
|
||||
@@ -134,7 +134,7 @@ final class ActivityController extends AbstractController
|
||||
|
||||
return $this->render($view, [
|
||||
'activity' => $activity,
|
||||
'delete_form' => $form,
|
||||
'delete_form' => $form->createView(),
|
||||
'person' => $person,
|
||||
'accompanyingCourse' => $accompanyingPeriod,
|
||||
]);
|
||||
@@ -143,7 +143,7 @@ final class ActivityController extends AbstractController
|
||||
/**
|
||||
* Displays a form to edit an existing Activity entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/activity/{id}/edit', name: 'chill_activity_activity_edit', methods: ['GET', 'POST', 'PUT'])]
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/{id}/edit', name: 'chill_activity_activity_edit', methods: ['GET', 'POST', 'PUT'])]
|
||||
public function editAction(int $id, Request $request): Response
|
||||
{
|
||||
$view = null;
|
||||
@@ -226,8 +226,8 @@ final class ActivityController extends AbstractController
|
||||
|
||||
return $this->render($view, [
|
||||
'entity' => $entity,
|
||||
'edit_form' => $form,
|
||||
'delete_form' => $deleteForm,
|
||||
'edit_form' => $form->createView(),
|
||||
'delete_form' => $deleteForm->createView(),
|
||||
'person' => $person,
|
||||
'accompanyingCourse' => $accompanyingPeriod,
|
||||
'activity_json' => $activity_array,
|
||||
@@ -237,7 +237,7 @@ final class ActivityController extends AbstractController
|
||||
/**
|
||||
* Lists all Activity entities.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/activity/', name: 'chill_activity_activity_list')]
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/', name: 'chill_activity_activity_list')]
|
||||
public function listAction(Request $request): Response
|
||||
{
|
||||
$view = null;
|
||||
@@ -341,7 +341,7 @@ final class ActivityController extends AbstractController
|
||||
return $filterBuilder->build();
|
||||
}
|
||||
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/activity/new', name: 'chill_activity_activity_new', methods: ['POST', 'GET'])]
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/new', name: 'chill_activity_activity_new', methods: ['POST', 'GET'])]
|
||||
public function newAction(Request $request): Response
|
||||
{
|
||||
$view = null;
|
||||
@@ -364,7 +364,7 @@ final class ActivityController extends AbstractController
|
||||
$activityData = null;
|
||||
|
||||
if ($request->query->has('activityData')) {
|
||||
$activityData = $request->query->all('activityData');
|
||||
$activityData = $request->query->get('activityData');
|
||||
}
|
||||
|
||||
if (
|
||||
@@ -516,13 +516,13 @@ final class ActivityController extends AbstractController
|
||||
'person' => $person,
|
||||
'accompanyingCourse' => $accompanyingPeriod,
|
||||
'entity' => $entity,
|
||||
'form' => $form,
|
||||
'form' => $form->createView(),
|
||||
'activity_json' => $activity_array,
|
||||
'default_location' => $defaultLocation,
|
||||
]);
|
||||
}
|
||||
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/activity/select-type', name: 'chill_activity_activity_select_type')]
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/select-type', name: 'chill_activity_activity_select_type')]
|
||||
public function selectTypeAction(Request $request): Response
|
||||
{
|
||||
$view = null;
|
||||
@@ -567,7 +567,7 @@ final class ActivityController extends AbstractController
|
||||
]);
|
||||
}
|
||||
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/activity/{id}/show', name: 'chill_activity_activity_show')]
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/{id}/show', name: 'chill_activity_activity_show')]
|
||||
public function showAction(Request $request, int $id): Response
|
||||
{
|
||||
$entity = $this->activityRepository->find($id);
|
||||
@@ -611,7 +611,7 @@ final class ActivityController extends AbstractController
|
||||
'person' => $person,
|
||||
'accompanyingCourse' => $accompanyingPeriod,
|
||||
'entity' => $entity,
|
||||
'delete_form' => $deleteForm,
|
||||
'delete_form' => $deleteForm->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
@@ -27,8 +27,8 @@ class ActivityReasonCategoryController extends AbstractController
|
||||
/**
|
||||
* Creates a new ActivityReasonCategory entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreasoncategory/create', name: 'chill_activity_activityreasoncategory_create', methods: ['POST'])]
|
||||
public function createAction(Request $request): \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/create', name: 'chill_activity_activityreasoncategory_create', methods: ['POST'])]
|
||||
public function createAction(Request $request)
|
||||
{
|
||||
$entity = new ActivityReasonCategory();
|
||||
$form = $this->createCreateForm($entity);
|
||||
@@ -44,15 +44,15 @@ class ActivityReasonCategoryController extends AbstractController
|
||||
|
||||
return $this->render('@ChillActivity/ActivityReasonCategory/new.html.twig', [
|
||||
'entity' => $entity,
|
||||
'form' => $form,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lists all ActivityReasonCategory entities.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreasoncategory/', name: 'chill_activity_activityreasoncategory')]
|
||||
public function indexAction(): \Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/', name: 'chill_activity_activityreasoncategory')]
|
||||
public function indexAction()
|
||||
{
|
||||
$em = $this->managerRegistry->getManager();
|
||||
|
||||
@@ -66,23 +66,23 @@ class ActivityReasonCategoryController extends AbstractController
|
||||
/**
|
||||
* Displays a form to create a new ActivityReasonCategory entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreasoncategory/new', name: 'chill_activity_activityreasoncategory_new')]
|
||||
public function newAction(): \Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/new', name: 'chill_activity_activityreasoncategory_new')]
|
||||
public function newAction()
|
||||
{
|
||||
$entity = new ActivityReasonCategory();
|
||||
$form = $this->createCreateForm($entity);
|
||||
|
||||
return $this->render('@ChillActivity/ActivityReasonCategory/new.html.twig', [
|
||||
'entity' => $entity,
|
||||
'form' => $form,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Edits an existing ActivityReasonCategory entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreasoncategory/{id}/update', name: 'chill_activity_activityreasoncategory_update', methods: ['POST', 'PUT'])]
|
||||
public function updateAction(Request $request, mixed $id): \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/{id}/update', name: 'chill_activity_activityreasoncategory_update')]
|
||||
public function updateAction(Request $request, mixed $id)
|
||||
{
|
||||
$em = $this->managerRegistry->getManager();
|
||||
|
||||
@@ -103,7 +103,7 @@ class ActivityReasonCategoryController extends AbstractController
|
||||
|
||||
return $this->render('@ChillActivity/ActivityReasonCategory/edit.html.twig', [
|
||||
'entity' => $entity,
|
||||
'edit_form' => $editForm,
|
||||
'edit_form' => $editForm->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
@@ -28,8 +28,8 @@ class ActivityReasonController extends AbstractController
|
||||
/**
|
||||
* Creates a new ActivityReason entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreason/create', name: 'chill_activity_activityreason_create', methods: ['POST'])]
|
||||
public function createAction(Request $request): \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/create', name: 'chill_activity_activityreason_create', methods: ['POST'])]
|
||||
public function createAction(Request $request)
|
||||
{
|
||||
$entity = new ActivityReason();
|
||||
$form = $this->createCreateForm($entity);
|
||||
@@ -45,15 +45,15 @@ class ActivityReasonController extends AbstractController
|
||||
|
||||
return $this->render('@ChillActivity/ActivityReason/new.html.twig', [
|
||||
'entity' => $entity,
|
||||
'form' => $form,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lists all ActivityReason entities.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreason/', name: 'chill_activity_activityreason')]
|
||||
public function indexAction(): \Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/', name: 'chill_activity_activityreason')]
|
||||
public function indexAction()
|
||||
{
|
||||
$em = $this->managerRegistry->getManager();
|
||||
|
||||
@@ -67,23 +67,23 @@ class ActivityReasonController extends AbstractController
|
||||
/**
|
||||
* Displays a form to create a new ActivityReason entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreason/new', name: 'chill_activity_activityreason_new')]
|
||||
public function newAction(): \Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/new', name: 'chill_activity_activityreason_new')]
|
||||
public function newAction()
|
||||
{
|
||||
$entity = new ActivityReason();
|
||||
$form = $this->createCreateForm($entity);
|
||||
|
||||
return $this->render('@ChillActivity/ActivityReason/new.html.twig', [
|
||||
'entity' => $entity,
|
||||
'form' => $form,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Edits an existing ActivityReason entity.
|
||||
*/
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreason/{id}/update', name: 'chill_activity_activityreason_update', methods: ['POST', 'PUT'])]
|
||||
public function updateAction(Request $request, mixed $id): \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/{id}/update', name: 'chill_activity_activityreason_update')]
|
||||
public function updateAction(Request $request, mixed $id)
|
||||
{
|
||||
$em = $this->managerRegistry->getManager();
|
||||
|
||||
@@ -104,7 +104,7 @@ class ActivityReasonController extends AbstractController
|
||||
|
||||
return $this->render('@ChillActivity/ActivityReason/edit.html.twig', [
|
||||
'entity' => $entity,
|
||||
'edit_form' => $editForm,
|
||||
'edit_form' => $editForm->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
@@ -18,15 +18,15 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
*/
|
||||
class AdminController extends AbstractController
|
||||
{
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activity', name: 'chill_activity_admin_index')]
|
||||
public function indexActivityAction(): \Symfony\Component\HttpFoundation\Response
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activity', name: 'chill_activity_admin_index')]
|
||||
public function indexActivityAction()
|
||||
{
|
||||
return $this->render('@ChillActivity/Admin/layout_activity.html.twig');
|
||||
}
|
||||
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activity_redirect_to_main', name: 'chill_admin_aside_activity_redirect_to_admin_index', options: [null])]
|
||||
#[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activity_redirect_to_main', name: 'chill_admin_activity_redirect_to_admin_index')]
|
||||
public function redirectToAdminIndexAction(): \Symfony\Component\HttpFoundation\RedirectResponse
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activity_redirect_to_main', name: 'chill_admin_aside_activity_redirect_to_admin_index', options: [null])]
|
||||
#[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activity_redirect_to_main', name: 'chill_admin_activity_redirect_to_admin_index')]
|
||||
public function redirectToAdminIndexAction()
|
||||
{
|
||||
return $this->redirectToRoute('chill_main_admin_central');
|
||||
}
|
||||
|
@@ -27,6 +27,8 @@ use Faker\Factory as FakerFactory;
|
||||
|
||||
class LoadActivity extends AbstractFixture implements OrderedFixtureInterface
|
||||
{
|
||||
use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
|
||||
|
||||
private readonly \Faker\Generator $faker;
|
||||
|
||||
public function __construct(private readonly EntityManagerInterface $em)
|
||||
|
@@ -25,7 +25,7 @@ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
*/
|
||||
class ChillActivityExtension extends Extension implements PrependExtensionInterface
|
||||
{
|
||||
public function load(array $configs, ContainerBuilder $container): void
|
||||
public function load(array $configs, ContainerBuilder $container)
|
||||
{
|
||||
$configuration = new Configuration();
|
||||
$config = $this->processConfiguration($configuration, $configs);
|
||||
@@ -44,14 +44,14 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf
|
||||
$loader->load('services/doctrine.entitylistener.yaml');
|
||||
}
|
||||
|
||||
public function prepend(ContainerBuilder $container): void
|
||||
public function prepend(ContainerBuilder $container)
|
||||
{
|
||||
$this->prependRoutes($container);
|
||||
$this->prependAuthorization($container);
|
||||
$this->prependCruds($container);
|
||||
}
|
||||
|
||||
public function prependAuthorization(ContainerBuilder $container): void
|
||||
public function prependAuthorization(ContainerBuilder $container)
|
||||
{
|
||||
$container->prependExtensionConfig('security', [
|
||||
'role_hierarchy' => [
|
||||
@@ -71,7 +71,7 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf
|
||||
/** (non-PHPdoc).
|
||||
* @see \Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface::prepend()
|
||||
*/
|
||||
public function prependRoutes(ContainerBuilder $container): void
|
||||
public function prependRoutes(ContainerBuilder $container)
|
||||
{
|
||||
// add routes for custom bundle
|
||||
$container->prependExtensionConfig('chill_main', [
|
||||
|
@@ -22,7 +22,7 @@ use function is_int;
|
||||
*/
|
||||
class Configuration implements ConfigurationInterface
|
||||
{
|
||||
public function getConfigTreeBuilder(): \Symfony\Component\Config\Definition\Builder\TreeBuilder
|
||||
public function getConfigTreeBuilder()
|
||||
{
|
||||
$treeBuilder = new TreeBuilder('chill_activity');
|
||||
$rootNode = $treeBuilder->getRootNode();
|
||||
|
@@ -40,7 +40,7 @@ class ActivityReason
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getActive(): bool
|
||||
public function getActive()
|
||||
{
|
||||
return $this->active;
|
||||
}
|
||||
@@ -58,7 +58,7 @@ class ActivityReason
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getId(): ?int
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
@@ -61,7 +61,7 @@ class ActivityReasonCategory implements \Stringable
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getActive(): bool
|
||||
public function getActive()
|
||||
{
|
||||
return $this->active;
|
||||
}
|
||||
@@ -71,7 +71,7 @@ class ActivityReasonCategory implements \Stringable
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getId(): ?int
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
@@ -188,7 +188,7 @@ class ActivityType
|
||||
private int $userVisible = self::FIELD_REQUIRED;
|
||||
|
||||
#[Assert\Callback]
|
||||
public function checkSocialActionsVisibility(ExecutionContextInterface $context, mixed $payload): void
|
||||
public function checkSocialActionsVisibility(ExecutionContextInterface $context, mixed $payload)
|
||||
{
|
||||
if ($this->socialIssuesVisible !== $this->socialActionsVisible) {
|
||||
// if social issues are invisible then social actions cannot be optional or required + if social issues are optional then social actions shouldn't be required
|
||||
@@ -461,17 +461,11 @@ class ActivityType
|
||||
{
|
||||
$property = $field.'Visible';
|
||||
|
||||
// Get the real class name (not the proxy)
|
||||
$class = get_class($this);
|
||||
if (str_contains($class, '__CG__')) {
|
||||
$class = get_parent_class($this);
|
||||
}
|
||||
$realClass = $class;
|
||||
|
||||
if (!property_exists($realClass, $property)) {
|
||||
if (!property_exists($this, $property)) {
|
||||
throw new \InvalidArgumentException('Field "'.$field.'" not found');
|
||||
}
|
||||
|
||||
/* @phpstan-ignore-next-line */
|
||||
return self::FIELD_INVISIBLE !== $this->{$property};
|
||||
}
|
||||
|
||||
|
@@ -21,7 +21,7 @@ class ActivityEntityListener
|
||||
{
|
||||
public function __construct(private readonly EntityManagerInterface $em, private readonly AccompanyingPeriodWorkRepository $workRepository) {}
|
||||
|
||||
public function persistActionToCourse(Activity $activity): void
|
||||
public function persistActionToCourse(Activity $activity)
|
||||
{
|
||||
if ($activity->getAccompanyingPeriod() instanceof AccompanyingPeriod) {
|
||||
$period = $activity->getAccompanyingPeriod();
|
||||
|
@@ -53,7 +53,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
|
||||
|
||||
public function normalizeFormData(array $formData): array
|
||||
{
|
||||
return ['after_date' => $formData['after_date']?->normalize(), 'before_date' => $formData['before_date']?->normalize()];
|
||||
return ['after_date' => $formData['after_date']->normalize(), 'before_date' => $formData['before_date']->normalize()];
|
||||
}
|
||||
|
||||
public function denormalizeFormData(array $formData, int $fromVersion): array
|
||||
|
@@ -42,7 +42,7 @@ class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterfac
|
||||
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder): void
|
||||
public function buildForm(FormBuilderInterface $builder)
|
||||
{
|
||||
// TODO: Implement buildForm() method.
|
||||
}
|
||||
|
@@ -42,7 +42,7 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
|
||||
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder): void {}
|
||||
public function buildForm(FormBuilderInterface $builder) {}
|
||||
|
||||
public function getNormalizationVersion(): int
|
||||
{
|
||||
|
@@ -34,7 +34,7 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
|
||||
private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper,
|
||||
) {}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder): void
|
||||
public function buildForm(FormBuilderInterface $builder)
|
||||
{
|
||||
$this->helper->buildForm($builder);
|
||||
}
|
||||
@@ -154,7 +154,7 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
|
||||
return ActivityStatsVoter::LISTS;
|
||||
}
|
||||
|
||||
public function supportsModifiers(): array
|
||||
public function supportsModifiers()
|
||||
{
|
||||
return array_merge(
|
||||
$this->helper->supportsModifiers(),
|
||||
|
@@ -34,7 +34,7 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
|
||||
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder): void {}
|
||||
public function buildForm(FormBuilderInterface $builder) {}
|
||||
|
||||
public function getNormalizationVersion(): int
|
||||
{
|
||||
|
@@ -11,7 +11,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace Chill\ActivityBundle\Export\Export\LinkedToPerson;
|
||||
|
||||
use Chill\ActivityBundle\Entity\Activity;
|
||||
use Chill\ActivityBundle\Entity\ActivityReason;
|
||||
use Chill\ActivityBundle\Export\Declarations;
|
||||
use Chill\ActivityBundle\Repository\ActivityRepository;
|
||||
@@ -60,7 +59,7 @@ class ListActivity implements ListInterface, GroupedExportInterface
|
||||
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder): void
|
||||
public function buildForm(FormBuilderInterface $builder)
|
||||
{
|
||||
$builder->add('fields', ChoiceType::class, [
|
||||
'multiple' => true,
|
||||
@@ -215,7 +214,7 @@ class ListActivity implements ListInterface, GroupedExportInterface
|
||||
$qb = $this->entityManager->createQueryBuilder();
|
||||
|
||||
$qb
|
||||
->from(Activity::class, 'activity')
|
||||
->from('ChillActivityBundle:Activity', 'activity')
|
||||
->join('activity.person', 'person')
|
||||
->join(
|
||||
HouseholdMember::class,
|
||||
|
@@ -19,7 +19,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class ActivityReasonCategoryType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
->add('name', TranslatableStringFormType::class)
|
||||
@@ -29,7 +29,7 @@ class ActivityReasonCategoryType extends AbstractType
|
||||
/**
|
||||
* @param OptionsResolverInterface $resolver
|
||||
*/
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => \Chill\ActivityBundle\Entity\ActivityReasonCategory::class,
|
||||
@@ -39,7 +39,7 @@ class ActivityReasonCategoryType extends AbstractType
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getBlockPrefix(): string
|
||||
public function getBlockPrefix()
|
||||
{
|
||||
return 'chill_activitybundle_activityreasoncategory';
|
||||
}
|
||||
|
@@ -21,7 +21,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class ActivityReasonType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
->add('name', TranslatableStringFormType::class)
|
||||
@@ -29,7 +29,7 @@ class ActivityReasonType extends AbstractType
|
||||
->add('category', TranslatableActivityReasonCategoryType::class);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => ActivityReason::class,
|
||||
@@ -39,7 +39,7 @@ class ActivityReasonType extends AbstractType
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getBlockPrefix(): string
|
||||
public function getBlockPrefix()
|
||||
{
|
||||
return 'chill_activitybundle_activityreason';
|
||||
}
|
||||
|
@@ -27,7 +27,7 @@ class ActivityTypeType extends AbstractType
|
||||
{
|
||||
public function __construct(private readonly TranslatableStringHelper $translatableStringHelper) {}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
->add('name', TranslatableStringFormType::class)
|
||||
@@ -67,7 +67,7 @@ class ActivityTypeType extends AbstractType
|
||||
->add('commentVisible', ActivityFieldPresence::class);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => \Chill\ActivityBundle\Entity\ActivityType::class,
|
||||
|
@@ -18,7 +18,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class ActivityFieldPresence extends AbstractType
|
||||
{
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(
|
||||
[
|
||||
@@ -31,7 +31,7 @@ class ActivityFieldPresence extends AbstractType
|
||||
);
|
||||
}
|
||||
|
||||
public function getParent(): ?string
|
||||
public function getParent()
|
||||
{
|
||||
return ChoiceType::class;
|
||||
}
|
||||
|
@@ -30,7 +30,7 @@ class PickActivityReasonType extends AbstractType
|
||||
private readonly TranslatableStringHelperInterface $translatableStringHelper,
|
||||
) {}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(
|
||||
[
|
||||
@@ -49,12 +49,12 @@ class PickActivityReasonType extends AbstractType
|
||||
);
|
||||
}
|
||||
|
||||
public function getBlockPrefix(): string
|
||||
public function getBlockPrefix()
|
||||
{
|
||||
return 'translatable_activity_reason';
|
||||
}
|
||||
|
||||
public function getParent(): ?string
|
||||
public function getParent()
|
||||
{
|
||||
return EntityType::class;
|
||||
}
|
||||
|
@@ -25,7 +25,7 @@ class TranslatableActivityReasonCategoryType extends AbstractType
|
||||
{
|
||||
public function __construct(private readonly TranslatableStringHelperInterface $translatableStringHelper, private readonly TranslatorInterface $translator) {}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(
|
||||
[
|
||||
@@ -36,7 +36,7 @@ class TranslatableActivityReasonCategoryType extends AbstractType
|
||||
);
|
||||
}
|
||||
|
||||
public function getParent(): ?string
|
||||
public function getParent()
|
||||
{
|
||||
return EntityType::class;
|
||||
}
|
||||
|
@@ -22,7 +22,7 @@ class TranslatableActivityType extends AbstractType
|
||||
{
|
||||
public function __construct(protected TranslatableStringHelperInterface $translatableStringHelper, protected ActivityTypeRepositoryInterface $activityTypeRepository) {}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(
|
||||
[
|
||||
@@ -34,12 +34,12 @@ class TranslatableActivityType extends AbstractType
|
||||
);
|
||||
}
|
||||
|
||||
public function getBlockPrefix(): string
|
||||
public function getBlockPrefix()
|
||||
{
|
||||
return 'translatable_activity_type';
|
||||
}
|
||||
|
||||
public function getParent(): ?string
|
||||
public function getParent()
|
||||
{
|
||||
return EntityType::class;
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@ use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
||||
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||
use Knp\Menu\MenuItem;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,7 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface
|
||||
private readonly \Doctrine\Persistence\ManagerRegistry $managerRegistry,
|
||||
) {}
|
||||
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters): void
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters)
|
||||
{
|
||||
$period = $parameters['accompanyingCourse'];
|
||||
|
||||
|
@@ -14,7 +14,7 @@ namespace Chill\ActivityBundle\Menu;
|
||||
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
||||
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
||||
use Knp\Menu\MenuItem;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
final readonly class AccompanyingCourseQuickMenuBuilder implements LocalMenuBuilderInterface
|
||||
{
|
||||
@@ -25,7 +25,7 @@ final readonly class AccompanyingCourseQuickMenuBuilder implements LocalMenuBuil
|
||||
return ['accompanying_course_quick_menu'];
|
||||
}
|
||||
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters): void
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters)
|
||||
{
|
||||
/** @var \Chill\PersonBundle\Entity\AccompanyingPeriod $accompanyingCourse */
|
||||
$accompanyingCourse = $parameters['accompanying-course'];
|
||||
|
@@ -13,7 +13,7 @@ namespace Chill\ActivityBundle\Menu;
|
||||
|
||||
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
||||
use Knp\Menu\MenuItem;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
/**
|
||||
* @implements LocalMenuBuilderInterface<array>
|
||||
@@ -22,7 +22,7 @@ final readonly class AdminMenuBuilder implements LocalMenuBuilderInterface
|
||||
{
|
||||
public function __construct(private Security $security) {}
|
||||
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters): void
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters)
|
||||
{
|
||||
if (!$this->security->isGranted('ROLE_ADMIN')) {
|
||||
return;
|
||||
|
@@ -30,7 +30,7 @@ final readonly class PersonMenuBuilder implements LocalMenuBuilderInterface
|
||||
private TranslatorInterface $translator,
|
||||
) {}
|
||||
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters): void
|
||||
public function buildMenu($menuId, MenuItem $menu, array $parameters)
|
||||
{
|
||||
/** @var Person $person */
|
||||
$person = $parameters['person'];
|
||||
|
@@ -33,7 +33,7 @@ use Doctrine\ORM\Query\Expr\Join;
|
||||
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
final readonly class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInterface
|
||||
{
|
||||
|
@@ -24,7 +24,7 @@ use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
|
||||
use Chill\PersonBundle\Entity\Person;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
final readonly class ActivityDocumentACLAwareRepository implements ActivityDocumentACLAwareRepositoryInterface
|
||||
{
|
||||
|
@@ -10,10 +10,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
getContext === 'accompanyingCourse' &&
|
||||
suggestedEntities.length > 0
|
||||
"
|
||||
v-if="getContext === 'accompanyingCourse' && suggestedEntities.length > 0"
|
||||
>
|
||||
<ul class="list-suggest add-items inline">
|
||||
<li
|
||||
|
@@ -39,17 +39,11 @@
|
||||
<option selected disabled value="">
|
||||
{{ trans(ACTIVITY_CHOOSE_LOCATION_TYPE) }}
|
||||
</option>
|
||||
<option
|
||||
v-for="t in locationTypes"
|
||||
:value="t"
|
||||
:key="t.id"
|
||||
>
|
||||
<option v-for="t in locationTypes" :value="t" :key="t.id">
|
||||
{{ localizeString(t.title) }}
|
||||
</option>
|
||||
</select>
|
||||
<label>{{
|
||||
trans(ACTIVITY_LOCATION_FIELDS_TYPE)
|
||||
}}</label>
|
||||
<label>{{ trans(ACTIVITY_LOCATION_FIELDS_TYPE) }}</label>
|
||||
</div>
|
||||
|
||||
<div class="form-floating mb-3">
|
||||
@@ -108,10 +102,7 @@
|
||||
</form>
|
||||
</template>
|
||||
<template #footer>
|
||||
<button
|
||||
class="btn btn-save"
|
||||
@click.prevent="saveNewLocation"
|
||||
>
|
||||
<button class="btn btn-save" @click.prevent="saveNewLocation">
|
||||
{{ trans(SAVE) }}
|
||||
</button>
|
||||
</template>
|
||||
@@ -244,8 +235,7 @@ export default {
|
||||
},
|
||||
hasPhonenumber1() {
|
||||
return (
|
||||
this.selected.phonenumber1 !== null &&
|
||||
this.selected.phonenumber1 !== ""
|
||||
this.selected.phonenumber1 !== null && this.selected.phonenumber1 !== ""
|
||||
);
|
||||
},
|
||||
showAddAddress() {
|
||||
|
@@ -49,9 +49,7 @@
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div v-if="actionIsLoading === true">
|
||||
<i
|
||||
class="chill-green fa fa-circle-o-notch fa-spin fa-lg"
|
||||
></i>
|
||||
<i class="chill-green fa fa-circle-o-notch fa-spin fa-lg"></i>
|
||||
</div>
|
||||
|
||||
<span
|
||||
@@ -64,8 +62,7 @@
|
||||
<template
|
||||
v-else-if="
|
||||
socialActionsList.length > 0 &&
|
||||
(socialIssuesSelected.length ||
|
||||
socialActionsSelected.length)
|
||||
(socialIssuesSelected.length || socialActionsSelected.length)
|
||||
"
|
||||
>
|
||||
<div
|
||||
@@ -88,9 +85,7 @@
|
||||
</template>
|
||||
|
||||
<span
|
||||
v-else-if="
|
||||
actionAreLoaded && socialActionsList.length === 0
|
||||
"
|
||||
v-else-if="actionAreLoaded && socialActionsList.length === 0"
|
||||
class="inline-choice chill-no-data-statement mt-3"
|
||||
>
|
||||
{{ trans(ACTIVITY_SOCIAL_ACTION_LIST_EMPTY) }}
|
||||
@@ -169,8 +164,7 @@ export default {
|
||||
/* Add in list the issues already associated (if not yet listed) */
|
||||
this.socialIssuesSelected.forEach((issue) => {
|
||||
if (
|
||||
this.socialIssuesList.filter((i) => i.id === issue.id)
|
||||
.length !== 1
|
||||
this.socialIssuesList.filter((i) => i.id === issue.id).length !== 1
|
||||
) {
|
||||
this.$store.commit("addIssueInList", issue);
|
||||
}
|
||||
|
@@ -10,9 +10,7 @@
|
||||
:value="issue"
|
||||
/>
|
||||
<label class="form-check-label" :for="issue.id">
|
||||
<span class="badge bg-chill-l-gray text-dark">{{
|
||||
issue.text
|
||||
}}</span>
|
||||
<span class="badge bg-chill-l-gray text-dark">{{ issue.text }}</span>
|
||||
</label>
|
||||
</div>
|
||||
</span>
|
||||
|
@@ -49,17 +49,17 @@ class ActivityStatsVoter extends AbstractChillVoter implements ProvideRoleHierar
|
||||
return $this->getAttributes();
|
||||
}
|
||||
|
||||
protected function supports(string $attribute, mixed $subject): bool
|
||||
protected function supports($attribute, $subject)
|
||||
{
|
||||
return $this->helper->supports($attribute, $subject);
|
||||
}
|
||||
|
||||
protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool
|
||||
protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
|
||||
{
|
||||
return $this->helper->voteOnAttribute($attribute, $subject, $token);
|
||||
}
|
||||
|
||||
private function getAttributes(): array
|
||||
private function getAttributes()
|
||||
{
|
||||
return [self::STATS, self::LISTS];
|
||||
}
|
||||
|
@@ -17,7 +17,7 @@ use Chill\DocStoreBundle\Repository\AssociatedEntityToStoredObjectInterface;
|
||||
use Chill\DocStoreBundle\Security\Authorization\StoredObjectRoleEnum;
|
||||
use Chill\DocStoreBundle\Security\Authorization\StoredObjectVoter\AbstractStoredObjectVoter;
|
||||
use Chill\MainBundle\Workflow\Helper\WorkflowRelatedEntityPermissionHelper;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
class ActivityStoredObjectVoter extends AbstractStoredObjectVoter
|
||||
{
|
||||
|
@@ -22,7 +22,7 @@ use Chill\PersonBundle\Entity\Person;
|
||||
use Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter;
|
||||
use Chill\PersonBundle\Security\Authorization\PersonVoter;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
class ActivityVoter extends AbstractChillVoter implements ProvideRoleHierarchyInterface
|
||||
{
|
||||
|
@@ -26,7 +26,7 @@ use Chill\PersonBundle\Entity\Person;
|
||||
use Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
final readonly class AccompanyingPeriodActivityGenericDocProvider implements GenericDocForAccompanyingPeriodProviderInterface, GenericDocForPersonProviderInterface
|
||||
{
|
||||
|
@@ -16,7 +16,7 @@ use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
||||
use Chill\DocStoreBundle\GenericDoc\FetchQueryInterface;
|
||||
use Chill\DocStoreBundle\GenericDoc\GenericDocForPersonProviderInterface;
|
||||
use Chill\PersonBundle\Entity\Person;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
|
||||
final readonly class PersonActivityGenericDocProvider implements GenericDocForPersonProviderInterface
|
||||
{
|
||||
|
@@ -25,7 +25,7 @@ trait PrepareActivityTrait
|
||||
*
|
||||
* @return Activity
|
||||
*/
|
||||
public function prepareActivity(Scope $scope, Person $person): \Chill\ActivityBundle\Entity\Activity
|
||||
public function prepareActivity(Scope $scope, Person $person)
|
||||
{
|
||||
return (new Activity())
|
||||
->setScope($scope)
|
||||
|
@@ -25,7 +25,7 @@ final class ActivityControllerTest extends WebTestCase
|
||||
/**
|
||||
* @dataProvider getSecuredPagesUnauthenticated
|
||||
*/
|
||||
public function testAccessIsDeniedForUnauthenticated(mixed $url): void
|
||||
public function testAccessIsDeniedForUnauthenticated(mixed $url)
|
||||
{
|
||||
$client = $this->createClient();
|
||||
|
||||
@@ -61,7 +61,7 @@ final class ActivityControllerTest extends WebTestCase
|
||||
* @param type $client
|
||||
* @param type $url
|
||||
*/
|
||||
public function testAccessIsDeniedForUnauthorized($client, $url): void
|
||||
public function testAccessIsDeniedForUnauthorized($client, $url)
|
||||
{
|
||||
$client->request('GET', $url);
|
||||
|
||||
@@ -101,7 +101,7 @@ final class ActivityControllerTest extends WebTestCase
|
||||
];
|
||||
}
|
||||
|
||||
public function testCompleteScenario(): void
|
||||
public function testCompleteScenario()
|
||||
{
|
||||
// Create a new client to browse the application
|
||||
$client = $this->getAuthenticatedClient();
|
||||
@@ -199,7 +199,7 @@ final class ActivityControllerTest extends WebTestCase
|
||||
*
|
||||
* @return \Chill\MainBundle\Entity\User a fake user within a group without activity
|
||||
*/
|
||||
private function createFakeUser(): \Chill\MainBundle\Entity\User
|
||||
private function createFakeUser()
|
||||
{
|
||||
$container = self::$kernel->getContainer();
|
||||
$em = $container->get('doctrine.orm.entity_manager');
|
||||
@@ -259,7 +259,7 @@ final class ActivityControllerTest extends WebTestCase
|
||||
/**
|
||||
* @return \Symfony\Component\BrowserKit\AbstractBrowser
|
||||
*/
|
||||
private function getAuthenticatedClient(mixed $username = 'center a_social'): \Symfony\Bundle\FrameworkBundle\KernelBrowser
|
||||
private function getAuthenticatedClient(mixed $username = 'center a_social')
|
||||
{
|
||||
return self::createClient([], [
|
||||
'PHP_AUTH_USER' => $username,
|
||||
|
@@ -16,6 +16,7 @@ use Chill\PersonBundle\AccompanyingPeriod\SocialIssueConsistency\AccompanyingPer
|
||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
|
||||
use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
|
||||
use Doctrine\ORM\Event\LifecycleEventArgs;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Prophecy\PhpUnit\ProphecyTrait;
|
||||
|
||||
@@ -69,32 +70,33 @@ final class ActivityTest extends TestCase
|
||||
public function testHierarchySocialIssues(): void
|
||||
{
|
||||
$listener = new AccompanyingPeriodSocialIssueConsistencyEntityListener();
|
||||
$event = $this->prophesize(LifecycleEventArgs::class)->reveal();
|
||||
|
||||
$parent = new SocialIssue();
|
||||
$child = new SocialIssue();
|
||||
|
||||
$child->setParent($parent);
|
||||
$parent->addChild($child);
|
||||
$grandChild = new SocialIssue();
|
||||
$grandChild->setParent($child);
|
||||
$child->addChild($grandChild);
|
||||
|
||||
$activity = new Activity();
|
||||
$activity->setAccompanyingPeriod(new AccompanyingPeriod());
|
||||
|
||||
$activity->addSocialIssue($parent);
|
||||
$listener->preUpdate($activity);
|
||||
$listener->preUpdate($activity, $event);
|
||||
|
||||
$this->assertCount(1, $activity->getSocialIssues());
|
||||
$this->assertContains($parent, $activity->getSocialIssues());
|
||||
|
||||
$activity->addSocialIssue($grandChild);
|
||||
$listener->preUpdate($activity);
|
||||
$listener->preUpdate($activity, $event);
|
||||
|
||||
$this->assertCount(1, $activity->getSocialIssues());
|
||||
$this->assertContains($grandChild, $activity->getSocialIssues());
|
||||
$this->assertNotContains($parent, $activity->getSocialIssues());
|
||||
|
||||
$activity->addSocialIssue($child);
|
||||
$listener->preUpdate($activity);
|
||||
$listener->preUpdate($activity, $event);
|
||||
|
||||
$this->assertCount(1, $activity->getSocialIssues());
|
||||
$this->assertContains($grandChild, $activity->getSocialIssues());
|
||||
@@ -102,7 +104,7 @@ final class ActivityTest extends TestCase
|
||||
$this->assertNotContains($child, $activity->getSocialIssues());
|
||||
|
||||
$activity->addSocialIssue($another = new SocialIssue());
|
||||
$listener->preUpdate($activity);
|
||||
$listener->preUpdate($activity, $event);
|
||||
|
||||
$this->assertCount(2, $activity->getSocialIssues());
|
||||
$this->assertContains($grandChild, $activity->getSocialIssues());
|
||||
|
@@ -41,7 +41,7 @@ class ByActivityTypeAggregatorTest extends AbstractAggregatorTest
|
||||
$this->translatableStringHelper = self::getContainer()->get(TranslatableStringHelperInterface::class);
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ACPAggregators\ByActivityTypeAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return new ByActivityTypeAggregator(
|
||||
$this->rollingDateConverter,
|
||||
|
@@ -32,7 +32,7 @@ final class BySocialActionAggregatorTest extends AbstractAggregatorTest
|
||||
$this->aggregator = self::getContainer()->get('chill.activity.export.bysocialaction_aggregator');
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ACPAggregators\BySocialActionAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ final class BySocialIssueAggregatorTest extends AbstractAggregatorTest
|
||||
$this->aggregator = self::getContainer()->get('chill.activity.export.bysocialissue_aggregator');
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ACPAggregators\BySocialIssueAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ class ActivityPresenceAggregatorTest extends AbstractAggregatorTest
|
||||
$this->activityPresenceRepository = self::getContainer()->get(ActivityPresenceRepositoryInterface::class);
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ActivityPresenceAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return new ActivityPresenceAggregator($this->activityPresenceRepository, $this->translatableStringHelper);
|
||||
}
|
||||
|
@@ -44,7 +44,7 @@ final class ActivityReasonAggregatorTest extends AbstractAggregatorTest
|
||||
->push($request->reveal());*/
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ActivityReasonAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -45,7 +45,7 @@ final class ActivityTypeAggregatorTest extends AbstractAggregatorTest
|
||||
->push($request->reveal());
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ActivityTypeAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -45,7 +45,7 @@ final class ActivityUserAggregatorTest extends AbstractAggregatorTest
|
||||
->push($request->reveal());
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ActivityUserAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ final class ByThirdpartyAggregatorTest extends AbstractAggregatorTest
|
||||
$this->aggregator = self::getContainer()->get(ByThirdpartyAggregator::class);
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ByThirdpartyAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ final class ByUserAggregatorTest extends AbstractAggregatorTest
|
||||
$this->aggregator = self::getContainer()->get(ByCreatorAggregator::class);
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\ByCreatorAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ final class CreatorJobAggregatorTest extends AbstractAggregatorTest
|
||||
$this->aggregator = self::getContainer()->get(CreatorJobAggregator::class);
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\CreatorJobAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ final class CreatorScopeAggregatorTest extends AbstractAggregatorTest
|
||||
$this->aggregator = self::getContainer()->get(CreatorScopeAggregator::class);
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\CreatorScopeAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ final class DateAggregatorTest extends AbstractAggregatorTest
|
||||
$this->aggregator = self::getContainer()->get(DateAggregator::class);
|
||||
}
|
||||
|
||||
public function getAggregator(): \Chill\ActivityBundle\Export\Aggregator\DateAggregator
|
||||
public function getAggregator()
|
||||
{
|
||||
return $this->aggregator;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user