mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 09:18:24 +00:00 
			
		
		
		
	Compare commits
	
		
			151 Commits
		
	
	
		
			453-bug-cs
			...
			migrate_to
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f8571f22a6 | |||
| fabbb0c091 | |||
| 14d65fa931 | |||
| 7a790d43ec | |||
| 0d536cc8ce | |||
| 5634d72d6f | |||
| d74179f1e1 | |||
| 426d0dc193 | |||
| b132956ddc | |||
| 03fa79c93b | |||
| 373caeb3e3 | |||
| 1152be4d45 | |||
| 34f15378c5 | |||
| 9a11e12669 | |||
| 7fceef03f7 | |||
| 3aa2666646 | |||
| 8fc19d5c28 | |||
| 4a08de09b8 | |||
| f2922018ce | |||
| 86422a5946 | |||
| aa0db40224 | |||
| 37b8297567 | |||
| 32d2bb002b | |||
| d8528dceab | |||
| 067a36d90e | |||
| c2294e08a5 | |||
| eac5a7f853 | |||
| f17ed7a4f8 | |||
| d4379cef6a | |||
| 119d870ac8 | |||
| 69b59d2ae2 | |||
| 90f86bf566 | |||
| b363bd3425 | |||
| 6ceb1b9544 | |||
| 94b5c06d10 | |||
| 895e1be9ef | |||
| 94a0eb1a0a | |||
| cc8151546a | |||
| 4bd9e2ba7d | |||
| 509b2c2590 | |||
| 3480495be1 | |||
| 4123aa6550 | |||
| 835d79a809 | |||
| ffeba3818b | |||
| f88718e263 | |||
| 2433737df0 | |||
| af7d635714 | |||
| 34213ac093 | |||
| 8d6f76a8b7 | |||
| 941acea4d9 | |||
| 77bccd5c4e | |||
| 5ffa945a84 | |||
| 3a85d940e9 | |||
| d2e7640652 | |||
| 979b2955f6 | |||
| da240f5ce5 | |||
| f91ab63b3a | |||
| 2ea8a03698 | |||
| 21e965449c | |||
| 88697ae83f | |||
| 10ba2aaea5 | |||
| 4b484bd16c | |||
| 4c28a4c358 | |||
| 490d546e7a | |||
| 7a4416109e | |||
| 0e1a47a49b | |||
| 26298c48fd | |||
| 4d4bcb44bc | |||
| 51777f7365 | |||
| b9a9983b88 | |||
| e51a3c7525 | |||
| 9875f49374 | |||
| 52c3c0a565 | |||
| 640a7bcd0a | |||
| 13a9e14450 | |||
| abb786495a | |||
| 8ec18a6fb8 | |||
| f282ffbfd4 | |||
| 27a2d8fdc8 | |||
| 1cb63bfe1d | |||
| 9daa7f7c09 | |||
| b6e780d573 | |||
| 7e3618a9be | |||
| 61b187e340 | |||
| abfdf2ec6d | |||
| cc20e8896f | |||
| 59fe9a469a | |||
| 228b4f0b3d | |||
| b5bbf929f6 | |||
| d9ce4e3ec6 | |||
| c08c909545 | |||
| 6cd17a8e36 | |||
| e3b2b7c6d1 | |||
| 0337bca273 | |||
| 8bb2e2dc37 | |||
| cdd0372d3e | |||
| 1ee16d3446 | |||
| bdbcb9ca4a | |||
| e639289130 | |||
| 3d3347e547 | |||
| 3f27d9e8fc | |||
| ce98b9ae48 | |||
| d2bd17632f | |||
| 7cef5e3a76 | |||
| 9726844a26 | |||
| f7ce3996ef | |||
| 6e21f2688f | |||
| 17db59d221 | |||
| 053b92b77c | |||
| eab5a8be7b | |||
| 36fd6f10b2 | |||
| 23227add12 | |||
| 8cbd800fb9 | |||
| 1f79985193 | |||
| f4ed7e4254 | |||
| 382f20c6ad | |||
| 220110a403 | |||
| 3fdf494f1c | |||
| 793dcbfa9a | |||
| f96ed1f5eb | |||
| 8b9b427a1e | |||
| 2f3caafd10 | |||
| fde10ebe71 | |||
| b7fc85a2c9 | |||
| 72b79f9af5 | |||
| ab15ec8a4c | |||
| c8f1e67fc7 | |||
| d5c09c853f | |||
| a79b0b85dd | |||
| 47c1282044 | |||
| ce63506a1a | |||
| 8ab03473b7 | |||
| ebaff8d170 | |||
| 46f9e4968b | |||
| 344c5a1c3c | |||
| 50b590ae34 | |||
| 74fbd6feac | |||
| aa69a7ad62 | |||
| bc0fae5c2e | |||
| 1321f5c734 | |||
| 262b7c5db3 | |||
| 5283eddb15 | |||
| f7b0c49124 | |||
| 5e32375dfe | |||
| 5cdfee40fb | |||
| 6e5dbe4e58 | |||
| d884d78617 | |||
| a5049ddefb | |||
| 9fcc1634f5 | |||
| d9a47fdee9 | |||
| 1e5d676aa5 | 
							
								
								
									
										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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.env.dev
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
|  | ||||
| ###> symfony/framework-bundle ### | ||||
| APP_SECRET=72759e571285ef25677c88f967a73386 | ||||
| ###< symfony/framework-bundle ### | ||||
							
								
								
									
										40
									
								
								.env.test
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								.env.test
									
									
									
									
									
								
							| @@ -1,39 +1,5 @@ | ||||
| # variables for .env environement | ||||
| # those variables suits for gitlab-ci | ||||
| # Run tests from root to adapt your own environment | ||||
| # define your env variables for the test env here | ||||
| KERNEL_CLASS='App\Kernel' | ||||
| APP_SECRET='$ecretf0rt3st' | ||||
|  | ||||
| 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 | ||||
| SYMFONY_DEPRECATIONS_HELPER=999999 | ||||
| DEFAULT_CARRIER_CODE=TEST | ||||
|   | ||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -33,7 +33,7 @@ config/packages/dev/* | ||||
|  | ||||
| ###> phpunit/phpunit ### | ||||
| /phpunit.xml | ||||
| .phpunit.result.cache | ||||
| /.phpunit.cache/ | ||||
| ###< phpunit/phpunit ### | ||||
|  | ||||
| /.php-cs-fixer.cache | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
| # Select what we should cache between builds | ||||
| cache: | ||||
|     paths: | ||||
|         - /vendor/ | ||||
|         - vendor/ | ||||
|         - .cache | ||||
|         - node_modules/ | ||||
|  | ||||
| @@ -75,34 +75,24 @@ code_style: | ||||
| phpstan_tests: | ||||
|     stage: Tests | ||||
|     image: chill/base-image:8.3-edge | ||||
|     dependencies: | ||||
|         - build | ||||
|     variables: | ||||
|         COMPOSER_MEMORY_LIMIT: 3G | ||||
|     before_script: | ||||
|         - bin/console cache:clear --env=dev | ||||
|     script: | ||||
|         - composer exec phpstan -- analyze --memory-limit=3G | ||||
|     cache: | ||||
|         paths: | ||||
|             - .cache/ | ||||
|     artifacts: | ||||
|         expire_in: 1 day | ||||
|         paths: | ||||
|             - vendor/ | ||||
|  | ||||
| rector_tests: | ||||
|     stage: Tests | ||||
|     image: chill/base-image:8.3-edge | ||||
|     dependencies: | ||||
|         - build | ||||
|     before_script: | ||||
|         - bin/console cache:clear --env=dev | ||||
|     script: | ||||
|         - composer exec rector -- process --dry-run | ||||
|     cache: | ||||
|         paths: | ||||
|             - .cache/ | ||||
|     artifacts: | ||||
|         expire_in: 1 day | ||||
|         paths: | ||||
|             - vendor/ | ||||
|  | ||||
| lint: | ||||
|     stage: Tests | ||||
| @@ -133,6 +123,8 @@ lint: | ||||
| unit_tests: | ||||
|     stage: Tests | ||||
|     image: chill/base-image:8.3-edge | ||||
|     dependencies: | ||||
|         - build | ||||
|     variables: | ||||
|         COMPOSER_MEMORY_LIMIT: 3G | ||||
|     before_script: | ||||
| @@ -143,10 +135,6 @@ unit_tests: | ||||
|         - php bin/console doctrine:fixtures:load -n --env=test | ||||
|     script: | ||||
|         - composer exec phpunit -- --colors=never --exclude-group dbIntensive,openstack-integration | ||||
|     artifacts: | ||||
|         expire_in: 1 day | ||||
|         paths: | ||||
|             - vendor/ | ||||
|  | ||||
| release: | ||||
|     stage: Deploy | ||||
|   | ||||
							
								
								
									
										121
									
								
								composer.json
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								composer.json
									
									
									
									
									
								
							| @@ -8,7 +8,7 @@ | ||||
|         "social worker" | ||||
|     ], | ||||
|     "require": { | ||||
|         "php": "^8.2", | ||||
|         "php": "^8.3", | ||||
|         "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": "^2.13.0", | ||||
|         "doctrine/orm": "^3.5.2", | ||||
|         "erusev/parsedown": "^1.7", | ||||
|         "knplabs/knp-menu-bundle": "^3.0", | ||||
|         "knplabs/knp-time-bundle": "^1.12", | ||||
|         "knplabs/knp-time-bundle": "^2.4", | ||||
|         "knpuniversity/oauth2-client-bundle": "^2.10", | ||||
|         "league/csv": "^9.7.1", | ||||
|         "lexik/jwt-authentication-bundle": "^2.16", | ||||
| @@ -32,54 +32,53 @@ | ||||
|         "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/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/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/monolog-bundle": "^3.5", | ||||
|         "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/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.3", | ||||
|         "symfony/twig-bundle": "^7.3", | ||||
|         "symfony/ux-translator": "^2.22", | ||||
|         "symfony/validator": "^5.4", | ||||
|         "symfony/webpack-encore-bundle": "^1.11", | ||||
|         "symfony/workflow": "^5.4", | ||||
|         "symfony/yaml": "^5.4", | ||||
|         "symfony/validator": "^7.2", | ||||
|         "symfony/webpack-encore-bundle": "^2.0", | ||||
|         "symfony/workflow": "^7.2", | ||||
|         "symfony/yaml": "^7.2", | ||||
|         "thenetworg/oauth2-azure": "^2.0", | ||||
|         "twig/extra-bundle": "^3.0", | ||||
|         "twig/intl-extra": "^3.0", | ||||
| @@ -90,27 +89,27 @@ | ||||
|     "require-dev": { | ||||
|         "doctrine/doctrine-fixtures-bundle": "^3.3", | ||||
|         "fakerphp/faker": "^1.13", | ||||
|         "friendsofphp/php-cs-fixer": "3.65.0", | ||||
|         "jangregor/phpstan-prophecy": "^1.0", | ||||
|         "friendsofphp/php-cs-fixer": "3.88.2", | ||||
|         "jangregor/phpstan-prophecy": "^2.2", | ||||
|         "nelmio/alice": "^3.8", | ||||
|         "nikic/php-parser": "^4.15", | ||||
|         "phpspec/prophecy-phpunit": "^2.0", | ||||
|         "phpstan/extension-installer": "^1.2", | ||||
|         "phpstan/phpstan": "^1.9", | ||||
|         "phpstan/phpstan-deprecation-rules": "^1.1", | ||||
|         "phpstan/phpstan-strict-rules": "^1.0", | ||||
|         "phpstan/phpstan": "^2.1.30", | ||||
|         "phpstan/phpstan-deprecation-rules": "^2.0", | ||||
|         "phpstan/phpstan-doctrine": "^2.0", | ||||
|         "phpstan/phpstan-strict-rules": "^2.0.7", | ||||
|         "phpstan/phpstan-symfony": "^2.0", | ||||
|         "phpunit/phpunit": "^10.5.24", | ||||
|         "rector/rector": "^1.1.0", | ||||
|         "symfony/amqp-messenger": "^5.4.45", | ||||
|         "symfony/debug-bundle": "^5.4", | ||||
|         "symfony/dotenv": "^5.4", | ||||
|         "rector/rector": "^2.2", | ||||
|         "symfony/debug-bundle": "^7.2", | ||||
|         "symfony/dotenv": "^7.2", | ||||
|         "symfony/flex": "^2.4", | ||||
|         "symfony/maker-bundle": "^1.20", | ||||
|         "symfony/phpunit-bridge": "^7.1", | ||||
|         "symfony/runtime": "^5.4", | ||||
|         "symfony/stopwatch": "^5.4", | ||||
|         "symfony/var-dumper": "^5.4", | ||||
|         "symfony/web-profiler-bundle": "^5.4" | ||||
|         "symfony/runtime": "^7.2", | ||||
|         "symfony/stopwatch": "^7.2", | ||||
|         "symfony/var-dumper": "^7.2", | ||||
|         "symfony/web-profiler-bundle": "^7.2" | ||||
|     }, | ||||
|     "conflict": { | ||||
|         "symfony/symfony": "*" | ||||
|   | ||||
| @@ -14,7 +14,6 @@ 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], | ||||
|   | ||||
							
								
								
									
										11
									
								
								config/packages/csrf.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								config/packages/csrf.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| # 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,6 +7,7 @@ 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 | ||||
|   | ||||
| @@ -4,6 +4,16 @@ 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,7 +1,5 @@ | ||||
| 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,8 +1,8 @@ | ||||
| framework: | ||||
|     notifier: | ||||
|         texter_transports: | ||||
|             #ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||
|             #ovhcloud: '%env(SHORT_MESSAGE_DSN)%' | ||||
|         #ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||
|         #ovhcloud: '%env(SHORT_MESSAGE_DSN)%' | ||||
|         channel_policy: | ||||
|             # use chat/slack, chat/telegram, sms/twilio or sms/nexmo | ||||
|             urgent: ['email'] | ||||
|   | ||||
							
								
								
									
										3
									
								
								config/packages/property_info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								config/packages/property_info.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| framework: | ||||
|     property_info: | ||||
|         enabled: true | ||||
| @@ -1,5 +1,4 @@ | ||||
| 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' | ||||
| @@ -28,16 +27,13 @@ security: | ||||
|             pattern: ^/wopi | ||||
|             provider: chill_chain_provider | ||||
|             stateless: true | ||||
|             guard: | ||||
|                 authenticators: | ||||
|                     - lexik_jwt_authentication.jwt_token_authenticator | ||||
|             jwt: ~ | ||||
|         dav: | ||||
|             pattern: ^/dav | ||||
|             provider: chill_chain_provider | ||||
|             stateless: true | ||||
|             guard: | ||||
|                 authenticators: | ||||
|                     - Chill\DocStoreBundle\Security\Guard\JWTOnDavUrlAuthenticator | ||||
|             custom_authenticator: | ||||
|                 - Chill\DocStoreBundle\Security\Authenticator\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: | ||||
| @@ -63,7 +59,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: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/(login|logout), roles: PUBLIC_ACCESS } | ||||
|         - { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/wopi, roles: IS_AUTHENTICATED_FULLY } | ||||
|         # access for homepage, the homepage redirect admin to admin section | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| sensio_framework_extra: | ||||
|     router: | ||||
|         annotations: false | ||||
							
								
								
									
										4
									
								
								config/packages/serializer.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								config/packages/serializer.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| framework: | ||||
|     serializer: | ||||
|         enabled: true | ||||
|         enable_attributes: true | ||||
| @@ -7,7 +7,8 @@ framework: | ||||
|                         - Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluationDocument | ||||
|                         - Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork | ||||
|                         - Chill\DocStoreBundle\Entity\AccompanyingCourseDocument | ||||
|                 label: | ||||
|                 label: Suivi | ||||
|                 translated_labels: | ||||
|                     fr: 'Suivi' | ||||
|             support_strategy: Chill\MainBundle\Workflow\RelatedEntityWorkflowSupportsStrategy | ||||
|             marking_store: | ||||
| @@ -16,11 +17,13 @@ framework: | ||||
|             places: | ||||
|                 initial: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: Étape initiale | ||||
|                         translated_labels: | ||||
|                             fr: Étape initiale | ||||
|                 attenteModification: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: En attente de modification du document | ||||
|                         translated_labels: | ||||
|                             fr: En attente de modification du document | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Modification effectuée} | ||||
| @@ -28,7 +31,8 @@ framework: | ||||
|                             neutral: {fr: Autre} | ||||
|                 attenteMiseEnForme: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: En attente de mise en forme | ||||
|                         translated_labels: | ||||
|                             fr: En attente de mise en forme | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Mise en forme terminée} | ||||
| @@ -36,7 +40,8 @@ framework: | ||||
|                             neutral: {fr: Autre} | ||||
|                 attenteVisa: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: En attente de visa | ||||
|                         translated_labels: | ||||
|                             fr: En attente de visa | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Visa accordé} | ||||
| @@ -47,7 +52,8 @@ framework: | ||||
|                         isSignature: ['user', 'person'] | ||||
|                         onSignatureCompleted: | ||||
|                             transitionName: signatureApplied | ||||
|                         label: | ||||
|                         label: En attente de signature | ||||
|                         translated_labels: | ||||
|                             fr: En attente de signature | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Signature accordée} | ||||
| @@ -55,7 +61,8 @@ framework: | ||||
|                             neutral: {fr: Autre} | ||||
|                 postSignature: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: Signatures traitées | ||||
|                         translated_labels: | ||||
|                             fr: Signatures traitées | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Poursuite du traitement} | ||||
| @@ -63,7 +70,8 @@ framework: | ||||
|                             neutral: {fr: Autre} | ||||
|                 attenteTraitement: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: En attente de traitement | ||||
|                         translated_labels: | ||||
|                             fr: En attente de traitement | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Traitement terminé favorablement} | ||||
| @@ -71,7 +79,8 @@ framework: | ||||
|                             neutral: {fr: Autre} | ||||
|                 attenteEnvoi: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: En attente d'envoi | ||||
|                         translated_labels: | ||||
|                             fr: En attente d'envoi | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Document envoyé} | ||||
| @@ -79,7 +88,8 @@ framework: | ||||
|                             neutral: {fr: Autre} | ||||
|                 attenteValidationMiseEnForme: | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: En attente de validation de la mise en forme | ||||
|                         translated_labels: | ||||
|                             fr: En attente de validation de la mise en forme | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Validation de la mise en forme} | ||||
| @@ -89,7 +99,8 @@ framework: | ||||
|                     metadata: | ||||
|                         isSentExternal: true | ||||
|                         onExternalView: clotureApresLectureEnvoiExterne | ||||
|                         label: | ||||
|                         label: En attente d'ouverture par un destinataire externe | ||||
|                         translated_labels: | ||||
|                             fr: En attente d'ouverture par un destinataire externe | ||||
|                         validationFilterInputLabels: | ||||
|                             forward: {fr: Document reçu par un destinataire externe} | ||||
| @@ -99,13 +110,15 @@ framework: | ||||
|                     metadata: | ||||
|                         isFinal: true | ||||
|                         isFinalPositive: false | ||||
|                         label: | ||||
|                         label: Annulé | ||||
|                         translated_labels: | ||||
|                             fr: Annulé | ||||
|                 final: | ||||
|                     metadata: | ||||
|                         isFinal: true | ||||
|                         isFinalPositive: true | ||||
|                         label: | ||||
|                         label: Finalisé | ||||
|                         translated_labels: | ||||
|                             fr: Finalisé | ||||
|             transitions: | ||||
|                 # transition qui avancent | ||||
| @@ -114,7 +127,8 @@ framework: | ||||
|                         - initial | ||||
|                     to: attenteModification | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: Demande de modification du document | ||||
|                         translated_labels: | ||||
|                             fr: Demande de modification du document | ||||
|                         isForward: true | ||||
|                 demandeMiseEnForme: | ||||
| @@ -123,7 +137,8 @@ framework: | ||||
|                         - attenteModification | ||||
|                     to: attenteMiseEnForme | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: Demande de mise en forme | ||||
|                         translated_labels: | ||||
|                             fr: Demande de mise en forme | ||||
|                         isForward: true | ||||
|                 demandeValidationMiseEnForme: | ||||
| @@ -131,7 +146,8 @@ framework: | ||||
|                         - attenteMiseEnForme | ||||
|                     to: attenteValidationMiseEnForme | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: Demande de validation de la mise en forme | ||||
|                         translated_labels: | ||||
|                             fr: Demande de validation de la mise en forme | ||||
|                         isForward: true | ||||
|                 demandeVisa: | ||||
| @@ -144,7 +160,8 @@ framework: | ||||
|                         - attenteTraitement | ||||
|                     to: attenteVisa | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: Demande de visa | ||||
|                         translated_labels: | ||||
|                             fr: Demande de visa | ||||
|                         isForward: true | ||||
|                 demandeSignature: | ||||
| @@ -157,14 +174,18 @@ framework: | ||||
|                         - attenteTraitement | ||||
|                     to: attenteSignature | ||||
|                     metadata: | ||||
|                         label: {fr: Demande de signature} | ||||
|                         label: Demande de signature | ||||
|                         translated_labels: | ||||
|                             fr: Demande de signature | ||||
|                         isForward: true | ||||
|                 signatureApplied: | ||||
|                     from: | ||||
|                         - attenteSignature | ||||
|                     to: postSignature | ||||
|                     metadata: | ||||
|                         label: {fr: Signatures appliquées} | ||||
|                         label: Signatures appliquées | ||||
|                         translated_labels: | ||||
|                             fr: Signatures appliquées | ||||
|                         isForward: true | ||||
|                         transitionGuard: 'system' # can be 'system+only-dest' or 'only-dest' (only-dest is default) | ||||
|                 demandeTraitement: | ||||
| @@ -177,7 +198,9 @@ framework: | ||||
|                         - postSignature | ||||
|                     to: attenteTraitement | ||||
|                     metadata: | ||||
|                         label: {fr: Demande de traitement} | ||||
|                         label: Demande de traitement | ||||
|                         translated_labels: | ||||
|                             fr: Demande de traitement | ||||
|                         isForward: true | ||||
|                 demandeEnvoi: | ||||
|                     from: | ||||
| @@ -190,7 +213,9 @@ framework: | ||||
|                         - attenteTraitement | ||||
|                     to: attenteEnvoi | ||||
|                     metadata: | ||||
|                         label: {fr: Demande d'envoi} | ||||
|                         label: Demande d'envoi | ||||
|                         translated_labels: | ||||
|                             fr: Demande d'envoi | ||||
|                         isForward: true | ||||
|                 demandeEnvoiExterne: | ||||
|                     from: | ||||
| @@ -203,7 +228,9 @@ framework: | ||||
|                         - attenteTraitement | ||||
|                     to: attenteReceptionExternal | ||||
|                     metadata: | ||||
|                         label: {fr: Envoi sécurisé par courrier électronique} | ||||
|                         label: Envoi sécurisé par courrier électronique | ||||
|                         translated_labels: | ||||
|                             fr: Envoi sécurisé par courrier électronique | ||||
|                         isForward: true | ||||
|                 clotureApresLectureEnvoiExterne: | ||||
|                     from: | ||||
| @@ -213,7 +240,9 @@ framework: | ||||
|                     metadata: | ||||
|                         transitionGuard: system | ||||
|                         isForward:  true | ||||
|                         label: {fr: Consultation de l'envoi sécurisé} | ||||
|                         label: Consultation de l'envoi sécurisé | ||||
|                         translated_labels: | ||||
|                             fr: Consultation de l'envoi sécurisé | ||||
|                 annulation: | ||||
|                     from: | ||||
|                         - initial | ||||
| @@ -227,7 +256,9 @@ framework: | ||||
|                         - attenteEnvoi | ||||
|                     to: annule | ||||
|                     metadata: | ||||
|                         label: {fr: Annulation} | ||||
|                         label: Annulation | ||||
|                         translated_labels: | ||||
|                             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 | ||||
| @@ -237,27 +268,35 @@ framework: | ||||
|                         - attenteValidationMiseEnForme | ||||
|                     to: attenteMiseEnForme | ||||
|                     metadata: | ||||
|                         label: {fr: Demande de mise en forme supplémentaire} | ||||
|                         label: Demande de mise en forme supplémentaire | ||||
|                         translated_labels: | ||||
|                             fr: Demande de mise en forme supplémentaire | ||||
|                 demandeVisaSupplementaire: | ||||
|                     from: | ||||
|                         - attenteVisa | ||||
|                     to: attenteVisa | ||||
|                     metadata: | ||||
|                         label: {fr: Demande de visa supplémentaire} | ||||
|                         label: Demande de visa supplémentaire | ||||
|                         translated_labels: | ||||
|                             fr: Demande de visa supplémentaire | ||||
|                         isForward: true | ||||
|                 demandeSignatureSupplementaire: | ||||
|                     from: | ||||
|                         - postSignature | ||||
|                     to: attenteSignature | ||||
|                     metadata: | ||||
|                         label: {fr: Demande de signature supplémentaire} | ||||
|                         label: Demande de signature supplémentaire | ||||
|                         translated_labels: | ||||
|                             fr: Demande de signature supplémentaire | ||||
|                         isForward: true | ||||
|                 demandeTraitementSupplementaire: | ||||
|                     from: | ||||
|                         - attenteTraitement | ||||
|                     to: attenteTraitement | ||||
|                     metadata: | ||||
|                         label: {fr: Demande de traitement supplémentaire} | ||||
|                         label: Demande de traitement supplémentaire | ||||
|                         translated_labels: | ||||
|                             fr: Demande de traitement supplémentaire | ||||
|                 # transitions qui renvoient vers une étape précédente | ||||
|                 refusEtModificationDocument: | ||||
|                     from: | ||||
| @@ -267,7 +306,8 @@ framework: | ||||
|                         - attenteEnvoi | ||||
|                     to: attenteModification | ||||
|                     metadata: | ||||
|                         label: | ||||
|                         label: Refus et demande de modification du document | ||||
|                         translated_labels: | ||||
|                             fr: Refus et demande de modification du document | ||||
|                         isForward: false | ||||
|                 refusEtDemandeMiseEnForme: | ||||
| @@ -277,7 +317,9 @@ framework: | ||||
|                         - attenteEnvoi | ||||
|                     to: attenteMiseEnForme | ||||
|                     metadata: | ||||
|                         label: {fr: Refus et demande de mise en forme} | ||||
|                         label: Refus et demande de mise en forme | ||||
|                         translated_labels: | ||||
|                             fr: Refus et demande de mise en forme | ||||
|                         isForward: false | ||||
|                 refusEtDemandeVisa: | ||||
|                     from: | ||||
| @@ -285,21 +327,27 @@ framework: | ||||
|                         - attenteEnvoi | ||||
|                     to: attenteVisa | ||||
|                     metadata: | ||||
|                         label: {fr: Refus et demande de visa} | ||||
|                         label: Refus et demande de visa | ||||
|                         translated_labels: | ||||
|                             fr: Refus et demande de visa | ||||
|                         isForward: false | ||||
|                 refusEtDemandeSignature: | ||||
|                     from: | ||||
|                         - attenteEnvoi | ||||
|                     to: attenteSignature | ||||
|                     metadata: | ||||
|                         label: {fr: Refus et demande de signature} | ||||
|                         label: Refus et demande de signature | ||||
|                         translated_labels: | ||||
|                             fr: Refus et demande de signature | ||||
|                         isForward: false | ||||
|                 refusEtDemandeTraitement: | ||||
|                     from: | ||||
|                         - attenteEnvoi | ||||
|                     to: attenteTraitement | ||||
|                     metadata: | ||||
|                         label: {fr: Refus et demande de traitement} | ||||
|                         label: Refus et demande de traitement | ||||
|                         translated_labels: | ||||
|                             fr: Refus et demande de traitement | ||||
|                         isForward: false | ||||
|                 # transition vers final | ||||
|                 initialToFinal: | ||||
| @@ -307,7 +355,9 @@ framework: | ||||
|                         - initial | ||||
|                     to: final | ||||
|                     metadata: | ||||
|                         label: {fr: Clotûre immédiate et cloture positive} | ||||
|                         label: Clotûre immédiate et cloture positive | ||||
|                         translated_labels: | ||||
|                             fr: Clotûre immédiate et cloture positive | ||||
|                         isForward: true | ||||
|                 attenteMiseEnFormeToFinal: | ||||
|                     from: | ||||
| @@ -315,33 +365,43 @@ framework: | ||||
|                         - attenteValidationMiseEnForme | ||||
|                     to: final | ||||
|                     metadata: | ||||
|                         label: {fr: Mise en forme terminée et cloture positive} | ||||
|                         label: Mise en forme terminée et cloture positive | ||||
|                         translated_labels: | ||||
|                             fr: Mise en forme terminée et cloture positive | ||||
|                         isForward: true | ||||
|                 attenteVisaToFinal: | ||||
|                     from: | ||||
|                         - attenteVisa | ||||
|                     to: final | ||||
|                     metadata: | ||||
|                         label: {fr: Accorde le visa et cloture positive} | ||||
|                         label: Accorde le visa et cloture positive | ||||
|                         translated_labels: | ||||
|                             fr: Accorde le visa et cloture positive | ||||
|                         isForward: true | ||||
|                 postSignatureToFinal: | ||||
|                     from: | ||||
|                         - postSignature | ||||
|                     to: final | ||||
|                     metadata: | ||||
|                         label: {fr: Cloture positive} | ||||
|                         label: Cloture positive | ||||
|                         translated_labels: | ||||
|                             fr: Cloture positive | ||||
|                         isForward: true | ||||
|                 attenteTraitementToFinal: | ||||
|                     from: | ||||
|                         - attenteTraitement | ||||
|                     to: final | ||||
|                     metadata: | ||||
|                         label: {fr: Traitement terminé et cloture positive} | ||||
|                         label: Traitement terminé et cloture positive | ||||
|                         translated_labels: | ||||
|                             fr: Traitement terminé et cloture positive | ||||
|                         isForward: true | ||||
|                 attenteEnvoiToFinal: | ||||
|                     from: | ||||
|                         - attenteEnvoi | ||||
|                     to: final | ||||
|                     metadata: | ||||
|                         label: {fr: Envoyé et cloture positive} | ||||
|                         label: Envoyé et cloture positive | ||||
|                         translated_labels: | ||||
|                             fr: Envoyé et cloture positive | ||||
|                         isForward: true | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| kernel: | ||||
|     resource: ../../src/app/Kernel.php | ||||
|     type: annotation | ||||
							
								
								
									
										3
									
								
								config/routes/security.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								config/routes/security.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| _security_logout: | ||||
|     resource: security.route_loader.logout | ||||
|     type: service | ||||
| @@ -6,8 +6,20 @@ | ||||
| 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 } | ||||
|  | ||||
|     Chill\MainBundle\Serializer\CircularReferenceHandler: | ||||
|         public: false | ||||
|         tags: | ||||
|             - { name: 'serializer.circular_reference_handler' } | ||||
|   | ||||
| @@ -14,7 +14,6 @@ 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; | ||||
| @@ -22,6 +21,7 @@ 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, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||
|     public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void | ||||
|     { | ||||
|         $where = $qb->getDQLPart('where'); | ||||
|         // we create the clause here | ||||
| @@ -76,21 +76,25 @@ 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 | ||||
| @@ -98,7 +102,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'), | ||||
|             ], ]; | ||||
| @@ -120,13 +124,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(); | ||||
|         } | ||||
|  | ||||
| @@ -135,7 +139,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) | ||||
|     public function buildForm(FormBuilderInterface $builder): void | ||||
|     { | ||||
|         // this export does not add any form | ||||
|     } | ||||
|   | ||||
| @@ -18,7 +18,7 @@ class example extends \Symfony\Bundle\FrameworkBundle\Controller\AbstractControl | ||||
|     public function __construct(private readonly \Doctrine\Persistence\ManagerRegistry $managerRegistry) | ||||
|     { | ||||
|     } | ||||
|     public function yourAction() | ||||
|     public function yourAction(): \Symfony\Component\HttpFoundation\Response | ||||
|     { | ||||
|         $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) | ||||
|     public function listAction($id): \Symfony\Component\HttpFoundation\Response | ||||
|     { | ||||
|         /** @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() | ||||
|     public function getConfigTreeBuilder(): \Symfony\Component\Config\Definition\Builder\TreeBuilder | ||||
|     { | ||||
|         $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) | ||||
|     public function addWidgetFactory(WidgetFactoryInterface $factory): void | ||||
|     { | ||||
|         $this->widgetFactories[] = $factory; | ||||
|     } | ||||
|  | ||||
|     public function getConfiguration(array $config, ContainerBuilder $container) | ||||
|     public function getConfiguration(array $config, ContainerBuilder $container): ?\Symfony\Component\Config\Definition\ConfigurationInterface | ||||
|     { | ||||
|         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) | ||||
|     public function load(array $configs, ContainerBuilder $container): void | ||||
|     { | ||||
|         // 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) | ||||
|     public function configureOptions($place, NodeBuilder $node): void | ||||
|     { | ||||
|         $node->booleanNode('only_active') | ||||
|             ->defaultTrue() | ||||
|   | ||||
| @@ -124,7 +124,7 @@ class ChillPersonAddAPersonWidget implements WidgetInterface | ||||
|     /** | ||||
|      * @return UserInterface | ||||
|      */ | ||||
|     private function getUser() | ||||
|     private function getUser(): void | ||||
|     { | ||||
|         // 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) | ||||
|     public function load(array $configs, ContainerBuilder $container): void | ||||
|     { | ||||
|         // ... | ||||
|     } | ||||
| @@ -32,7 +32,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac | ||||
|      * | ||||
|      * @param \Chill\PersonBundle\DependencyInjection\containerBuilder $container | ||||
|      */ | ||||
|     public function prepend(ContainerBuilder $container) | ||||
|     public function prepend(ContainerBuilder $container): void | ||||
|     { | ||||
|         $container->prependExtensionConfig('chill_main', [ | ||||
|             'widgets' => [ | ||||
|   | ||||
| @@ -11,6 +11,7 @@ | ||||
|     "@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", | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -22,6 +22,9 @@ parameters: | ||||
|         - src/Bundle/*/src/translations/* | ||||
|         - src/Bundle/*/src/Resources/* | ||||
|  | ||||
|     symfony: | ||||
|         containerXmlPath: var/cache/dev/App_KernelDevDebugContainer.xml | ||||
|  | ||||
| includes: | ||||
|     - phpstan-baseline.neon | ||||
|  | ||||
|   | ||||
							
								
								
									
										104
									
								
								phpunit.xml.dist
									
									
									
									
									
								
							
							
						
						
									
										104
									
								
								phpunit.xml.dist
									
									
									
									
									
								
							| @@ -1,84 +1,34 @@ | ||||
| <?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" | ||||
|     xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" | ||||
|     backupGlobals="false" | ||||
|     colors="true" | ||||
|     bootstrap="tests/bootstrap.php" | ||||
| <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"/> | ||||
|     <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="ActivityBundle"> | ||||
|             <directory suffix="Test.php">src/Bundle/ChillActivityBundle/Tests/</directory> | ||||
|     <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" /> | ||||
|     </php> | ||||
|  | ||||
|     <testsuites> | ||||
|         <testsuite name="Project Test Suite"> | ||||
|             <directory>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="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> | ||||
|   <!-- Run `composer require symfony/panther` before enabling this extension --> | ||||
|   <!-- | ||||
|     </testsuites> | ||||
|  | ||||
|     <source ignoreSuppressionOfDeprecations="true" restrictNotices="true" restrictWarnings="true"> | ||||
|         <include> | ||||
|             <directory>src</directory> | ||||
|         </include> | ||||
|     </source> | ||||
|  | ||||
|     <extensions> | ||||
|         <extension class="Symfony\Component\Panther\ServerExtension" /> | ||||
|     </extensions> | ||||
|     --> | ||||
| </phpunit> | ||||
|   | ||||
							
								
								
									
										78
									
								
								rector.php
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								rector.php
									
									
									
									
									
								
							| @@ -13,78 +13,8 @@ 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', | ||||
|     ]); | ||||
|  | ||||
|     $rectorConfig->skip([ | ||||
|         \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->cacheClass(\Rector\Caching\ValueObject\Storage\FileCacheStorage::class); | ||||
|     //$rectorConfig->cacheDirectory(__DIR__ . '/.cache/rector'); | ||||
|  | ||||
|     // register a single rule | ||||
|     $rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class); | ||||
|     $rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\AddParamTypeFromPropertyTypeRector::class); | ||||
|     $rectorConfig->rule(Rector\TypeDeclaration\Rector\Class_\MergeDateTimePropertyTypeDeclarationRector::class); | ||||
|     $rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationBasedOnParentClassMethodRector::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(); | ||||
|  | ||||
|     //define sets of rules | ||||
|     $rectorConfig->sets([ | ||||
|         LevelSetList::UP_TO_PHP_82, | ||||
|         \Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_CODE_QUALITY, | ||||
|         \Rector\PHPUnit\Set\PHPUnitSetList::PHPUNIT_90, | ||||
|     ]); | ||||
|  | ||||
|     $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 | ||||
|     ]); | ||||
|  | ||||
|     // some routes are added twice if it remains activated | ||||
|     // $rectorConfig->rule(\Rector\Symfony\Configs\Rector\ClassMethod\AddRouteAnnotationRector::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, | ||||
|     ]); | ||||
|  | ||||
|     $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'), | ||||
|     ]); | ||||
|  | ||||
|  | ||||
| }; | ||||
| return RectorConfig::configure() | ||||
|     ->withPaths(['./src', './docs', './rector.php']) | ||||
|     ->withComposerBased(twig: true, doctrine: true, symfony: true); | ||||
|   | ||||
| @@ -74,8 +74,8 @@ final class ActivityController extends AbstractController | ||||
|     /** | ||||
|      * Deletes a Activity entity. | ||||
|      */ | ||||
|     #[\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) | ||||
|     #[\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|Response | ||||
|     { | ||||
|         $view = null; | ||||
|  | ||||
| @@ -83,7 +83,7 @@ final class ActivityController extends AbstractController | ||||
|  | ||||
|         $activity = $this->activityRepository->find($id); | ||||
|  | ||||
|         if (!$activity) { | ||||
|         if (null === $activity) { | ||||
|             throw $this->createNotFoundException('Unable to find Activity entity.'); | ||||
|         } | ||||
|  | ||||
| @@ -104,11 +104,11 @@ final class ActivityController extends AbstractController | ||||
|  | ||||
|             if ($form->isSubmitted() && $form->isValid()) { | ||||
|                 $this->logger->notice('An activity has been removed', [ | ||||
|                     'by_user' => $this->getUser()->getUsername(), | ||||
|                     'by_user' => $this->getUser()->getUserIdentifier(), | ||||
|                     'activity_id' => $activity->getId(), | ||||
|                     'person_id' => $activity->getPerson() ? $activity->getPerson()->getId() : null, | ||||
|                     'comment' => $activity->getComment()->getComment(), | ||||
|                     'scope_id' => $activity->getScope() ? $activity->getScope()->getId() : null, | ||||
|                     'person_id' => null === $activity->getPerson() ? $activity->getPerson()->getId() : null, | ||||
|                     'comment' => null === $activity->getComment()->getComment(), | ||||
|                     'scope_id' => null === $activity->getScope() ? $activity->getScope()->getId() : null, | ||||
|                     'reasons_ids' => $activity->getReasons() | ||||
|                         ->map( | ||||
|                             static fn (ActivityReason $ar): int => $ar->getId() | ||||
| @@ -134,7 +134,7 @@ final class ActivityController extends AbstractController | ||||
|  | ||||
|         return $this->render($view, [ | ||||
|             'activity' => $activity, | ||||
|             'delete_form' => $form->createView(), | ||||
|             'delete_form' => $form, | ||||
|             '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\Annotation\Route(path: '/{_locale}/activity/{id}/edit', name: 'chill_activity_activity_edit', methods: ['GET', 'POST', 'PUT'])] | ||||
|     #[\Symfony\Component\Routing\Attribute\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->createView(), | ||||
|             'delete_form' => $deleteForm->createView(), | ||||
|             'edit_form' => $form, | ||||
|             'delete_form' => $deleteForm, | ||||
|             'person' => $person, | ||||
|             'accompanyingCourse' => $accompanyingPeriod, | ||||
|             'activity_json' => $activity_array, | ||||
| @@ -237,7 +237,7 @@ final class ActivityController extends AbstractController | ||||
|     /** | ||||
|      * Lists all Activity entities. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/', name: 'chill_activity_activity_list')] | ||||
|     #[\Symfony\Component\Routing\Attribute\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\Annotation\Route(path: '/{_locale}/activity/new', name: 'chill_activity_activity_new', methods: ['POST', 'GET'])] | ||||
|     #[\Symfony\Component\Routing\Attribute\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->get('activityData'); | ||||
|             $activityData = $request->query->all('activityData'); | ||||
|         } | ||||
|  | ||||
|         if ( | ||||
| @@ -516,13 +516,13 @@ final class ActivityController extends AbstractController | ||||
|             'person' => $person, | ||||
|             'accompanyingCourse' => $accompanyingPeriod, | ||||
|             'entity' => $entity, | ||||
|             'form' => $form->createView(), | ||||
|             'form' => $form, | ||||
|             'activity_json' => $activity_array, | ||||
|             'default_location' => $defaultLocation, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/activity/select-type', name: 'chill_activity_activity_select_type')] | ||||
|     #[\Symfony\Component\Routing\Attribute\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\Annotation\Route(path: '/{_locale}/activity/{id}/show', name: 'chill_activity_activity_show')] | ||||
|     #[\Symfony\Component\Routing\Attribute\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->createView(), | ||||
|             'delete_form' => $deleteForm, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -15,6 +15,7 @@ use Chill\ActivityBundle\Entity\ActivityReasonCategory; | ||||
| use Chill\ActivityBundle\Form\ActivityReasonCategoryType; | ||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
| use Symfony\Component\Form\Extension\Core\Type\SubmitType; | ||||
| use Symfony\Component\Form\FormInterface; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
|  | ||||
| /** | ||||
| @@ -27,8 +28,8 @@ class ActivityReasonCategoryController extends AbstractController | ||||
|     /** | ||||
|      * Creates a new ActivityReasonCategory entity. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/create', name: 'chill_activity_activityreasoncategory_create', methods: ['POST'])] | ||||
|     public function createAction(Request $request) | ||||
|     #[\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 | ||||
|     { | ||||
|         $entity = new ActivityReasonCategory(); | ||||
|         $form = $this->createCreateForm($entity); | ||||
| @@ -44,15 +45,15 @@ class ActivityReasonCategoryController extends AbstractController | ||||
|  | ||||
|         return $this->render('@ChillActivity/ActivityReasonCategory/new.html.twig', [ | ||||
|             'entity' => $entity, | ||||
|             'form' => $form->createView(), | ||||
|             'form' => $form, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Lists all ActivityReasonCategory entities. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/', name: 'chill_activity_activityreasoncategory')] | ||||
|     public function indexAction() | ||||
|     #[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreasoncategory/', name: 'chill_activity_activityreasoncategory')] | ||||
|     public function indexAction(): \Symfony\Component\HttpFoundation\Response | ||||
|     { | ||||
|         $em = $this->managerRegistry->getManager(); | ||||
|  | ||||
| @@ -66,29 +67,29 @@ class ActivityReasonCategoryController extends AbstractController | ||||
|     /** | ||||
|      * Displays a form to create a new ActivityReasonCategory entity. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/new', name: 'chill_activity_activityreasoncategory_new')] | ||||
|     public function newAction() | ||||
|     #[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreasoncategory/new', name: 'chill_activity_activityreasoncategory_new')] | ||||
|     public function newAction(): \Symfony\Component\HttpFoundation\Response | ||||
|     { | ||||
|         $entity = new ActivityReasonCategory(); | ||||
|         $form = $this->createCreateForm($entity); | ||||
|  | ||||
|         return $this->render('@ChillActivity/ActivityReasonCategory/new.html.twig', [ | ||||
|             'entity' => $entity, | ||||
|             'form' => $form->createView(), | ||||
|             'form' => $form, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Edits an existing ActivityReasonCategory entity. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/{id}/update', name: 'chill_activity_activityreasoncategory_update')] | ||||
|     public function updateAction(Request $request, mixed $id) | ||||
|     #[\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 | ||||
|     { | ||||
|         $em = $this->managerRegistry->getManager(); | ||||
|  | ||||
|         $entity = $em->getRepository(ActivityReasonCategory::class)->find($id); | ||||
|  | ||||
|         if (!$entity) { | ||||
|         if (null === $entity) { | ||||
|             throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.'); | ||||
|         } | ||||
|  | ||||
| @@ -103,7 +104,7 @@ class ActivityReasonCategoryController extends AbstractController | ||||
|  | ||||
|         return $this->render('@ChillActivity/ActivityReasonCategory/edit.html.twig', [ | ||||
|             'entity' => $entity, | ||||
|             'edit_form' => $editForm->createView(), | ||||
|             'edit_form' => $editForm, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
| @@ -111,10 +112,8 @@ class ActivityReasonCategoryController extends AbstractController | ||||
|      * Creates a form to create a ActivityReasonCategory entity. | ||||
|      * | ||||
|      * @param ActivityReasonCategory $entity The entity | ||||
|      * | ||||
|      * @return \Symfony\Component\Form\Form The form | ||||
|      */ | ||||
|     private function createCreateForm(ActivityReasonCategory $entity) | ||||
|     private function createCreateForm(ActivityReasonCategory $entity): FormInterface | ||||
|     { | ||||
|         $form = $this->createForm(ActivityReasonCategoryType::class, $entity, [ | ||||
|             'action' => $this->generateUrl('chill_activity_activityreasoncategory_create'), | ||||
| @@ -130,10 +129,8 @@ class ActivityReasonCategoryController extends AbstractController | ||||
|      * Creates a form to edit a ActivityReasonCategory entity. | ||||
|      * | ||||
|      * @param ActivityReasonCategory $entity The entity | ||||
|      * | ||||
|      * @return \Symfony\Component\Form\Form The form | ||||
|      */ | ||||
|     private function createEditForm(ActivityReasonCategory $entity) | ||||
|     private function createEditForm(ActivityReasonCategory $entity): FormInterface | ||||
|     { | ||||
|         $form = $this->createForm(ActivityReasonCategoryType::class, $entity, [ | ||||
|             'action' => $this->generateUrl('chill_activity_activityreasoncategory_update', ['id' => $entity->getId()]), | ||||
|   | ||||
| @@ -16,6 +16,8 @@ use Chill\ActivityBundle\Form\ActivityReasonType; | ||||
| use Chill\ActivityBundle\Repository\ActivityReasonRepository; | ||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
| use Symfony\Component\Form\Extension\Core\Type\SubmitType; | ||||
| use Symfony\Component\Form\Form; | ||||
| use Symfony\Component\Form\FormInterface; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
|  | ||||
| /** | ||||
| @@ -28,8 +30,8 @@ class ActivityReasonController extends AbstractController | ||||
|     /** | ||||
|      * Creates a new ActivityReason entity. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/create', name: 'chill_activity_activityreason_create', methods: ['POST'])] | ||||
|     public function createAction(Request $request) | ||||
|     #[\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 | ||||
|     { | ||||
|         $entity = new ActivityReason(); | ||||
|         $form = $this->createCreateForm($entity); | ||||
| @@ -45,15 +47,15 @@ class ActivityReasonController extends AbstractController | ||||
|  | ||||
|         return $this->render('@ChillActivity/ActivityReason/new.html.twig', [ | ||||
|             'entity' => $entity, | ||||
|             'form' => $form->createView(), | ||||
|             'form' => $form, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Lists all ActivityReason entities. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/', name: 'chill_activity_activityreason')] | ||||
|     public function indexAction() | ||||
|     #[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreason/', name: 'chill_activity_activityreason')] | ||||
|     public function indexAction(): \Symfony\Component\HttpFoundation\Response | ||||
|     { | ||||
|         $em = $this->managerRegistry->getManager(); | ||||
|  | ||||
| @@ -67,29 +69,29 @@ class ActivityReasonController extends AbstractController | ||||
|     /** | ||||
|      * Displays a form to create a new ActivityReason entity. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/new', name: 'chill_activity_activityreason_new')] | ||||
|     public function newAction() | ||||
|     #[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activityreason/new', name: 'chill_activity_activityreason_new')] | ||||
|     public function newAction(): \Symfony\Component\HttpFoundation\Response | ||||
|     { | ||||
|         $entity = new ActivityReason(); | ||||
|         $form = $this->createCreateForm($entity); | ||||
|  | ||||
|         return $this->render('@ChillActivity/ActivityReason/new.html.twig', [ | ||||
|             'entity' => $entity, | ||||
|             'form' => $form->createView(), | ||||
|             'form' => $form, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Edits an existing ActivityReason entity. | ||||
|      */ | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/{id}/update', name: 'chill_activity_activityreason_update')] | ||||
|     public function updateAction(Request $request, mixed $id) | ||||
|     #[\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 | ||||
|     { | ||||
|         $em = $this->managerRegistry->getManager(); | ||||
|  | ||||
|         $entity = $em->getRepository(ActivityReason::class)->find($id); | ||||
|  | ||||
|         if (!$entity) { | ||||
|         if (null === $entity) { | ||||
|             throw $this->createNotFoundException('Unable to find ActivityReason entity.'); | ||||
|         } | ||||
|  | ||||
| @@ -104,7 +106,7 @@ class ActivityReasonController extends AbstractController | ||||
|  | ||||
|         return $this->render('@ChillActivity/ActivityReason/edit.html.twig', [ | ||||
|             'entity' => $entity, | ||||
|             'edit_form' => $editForm->createView(), | ||||
|             'edit_form' => $editForm, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
| @@ -112,10 +114,8 @@ class ActivityReasonController extends AbstractController | ||||
|      * Creates a form to create a ActivityReason entity. | ||||
|      * | ||||
|      * @param ActivityReason $entity The entity | ||||
|      * | ||||
|      * @return \Symfony\Component\Form\Form The form | ||||
|      */ | ||||
|     private function createCreateForm(ActivityReason $entity) | ||||
|     private function createCreateForm(ActivityReason $entity): FormInterface | ||||
|     { | ||||
|         $form = $this->createForm(ActivityReasonType::class, $entity, [ | ||||
|             'action' => $this->generateUrl('chill_activity_activityreason_create'), | ||||
| @@ -131,10 +131,8 @@ class ActivityReasonController extends AbstractController | ||||
|      * Creates a form to edit a ActivityReason entity. | ||||
|      * | ||||
|      * @param ActivityReason $entity The entity | ||||
|      * | ||||
|      * @return \Symfony\Component\Form\Form The form | ||||
|      */ | ||||
|     private function createEditForm(ActivityReason $entity) | ||||
|     private function createEditForm(ActivityReason $entity): FormInterface | ||||
|     { | ||||
|         $form = $this->createForm(ActivityReasonType::class, $entity, [ | ||||
|             'action' => $this->generateUrl('chill_activity_activityreason_update', ['id' => $entity->getId()]), | ||||
|   | ||||
| @@ -18,15 +18,15 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
|  */ | ||||
| class AdminController extends AbstractController | ||||
| { | ||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activity', name: 'chill_activity_admin_index')] | ||||
|     public function indexActivityAction() | ||||
|     #[\Symfony\Component\Routing\Attribute\Route(path: '/{_locale}/admin/activity', name: 'chill_activity_admin_index')] | ||||
|     public function indexActivityAction(): \Symfony\Component\HttpFoundation\Response | ||||
|     { | ||||
|         return $this->render('@ChillActivity/Admin/layout_activity.html.twig'); | ||||
|     } | ||||
|  | ||||
|     #[\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() | ||||
|     #[\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 | ||||
|     { | ||||
|         return $this->redirectToRoute('chill_main_admin_central'); | ||||
|     } | ||||
|   | ||||
| @@ -27,8 +27,6 @@ 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) | ||||
|     public function load(array $configs, ContainerBuilder $container): void | ||||
|     { | ||||
|         $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) | ||||
|     public function prepend(ContainerBuilder $container): void | ||||
|     { | ||||
|         $this->prependRoutes($container); | ||||
|         $this->prependAuthorization($container); | ||||
|         $this->prependCruds($container); | ||||
|     } | ||||
|  | ||||
|     public function prependAuthorization(ContainerBuilder $container) | ||||
|     public function prependAuthorization(ContainerBuilder $container): void | ||||
|     { | ||||
|         $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) | ||||
|     public function prependRoutes(ContainerBuilder $container): void | ||||
|     { | ||||
|         // add routes for custom bundle | ||||
|         $container->prependExtensionConfig('chill_main', [ | ||||
|   | ||||
| @@ -22,7 +22,7 @@ use function is_int; | ||||
|  */ | ||||
| class Configuration implements ConfigurationInterface | ||||
| { | ||||
|     public function getConfigTreeBuilder() | ||||
|     public function getConfigTreeBuilder(): TreeBuilder | ||||
|     { | ||||
|         $treeBuilder = new TreeBuilder('chill_activity'); | ||||
|         $rootNode = $treeBuilder->getRootNode(); | ||||
|   | ||||
| @@ -34,9 +34,9 @@ use Chill\ThirdPartyBundle\Entity\ThirdParty; | ||||
| use Doctrine\Common\Collections\ArrayCollection; | ||||
| use Doctrine\Common\Collections\Collection; | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
| use Symfony\Component\Serializer\Annotation\DiscriminatorMap; | ||||
| use Symfony\Component\Serializer\Annotation\Groups; | ||||
| use Symfony\Component\Serializer\Annotation\SerializedName; | ||||
| use Symfony\Component\Serializer\Attribute\DiscriminatorMap; | ||||
| use Symfony\Component\Serializer\Attribute\Groups; | ||||
| use Symfony\Component\Serializer\Attribute\SerializedName; | ||||
| use Symfony\Component\Validator\Constraints as Assert; | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -12,7 +12,7 @@ declare(strict_types=1); | ||||
| namespace Chill\ActivityBundle\Entity; | ||||
|  | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
| use Symfony\Component\Serializer\Annotation as Serializer; | ||||
| use Symfony\Component\Serializer\Attribute as Serializer; | ||||
|  | ||||
| /** | ||||
|  * Class ActivityPresence. | ||||
|   | ||||
| @@ -37,10 +37,8 @@ class ActivityReason | ||||
|  | ||||
|     /** | ||||
|      * Get active. | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
|     public function getActive() | ||||
|     public function getActive(): bool | ||||
|     { | ||||
|         return $this->active; | ||||
|     } | ||||
| @@ -55,10 +53,8 @@ class ActivityReason | ||||
|  | ||||
|     /** | ||||
|      * Get id. | ||||
|      * | ||||
|      * @return int | ||||
|      */ | ||||
|     public function getId() | ||||
|     public function getId(): ?int | ||||
|     { | ||||
|         return $this->id; | ||||
|     } | ||||
|   | ||||
| @@ -58,20 +58,16 @@ class ActivityReasonCategory implements \Stringable | ||||
|  | ||||
|     /** | ||||
|      * Get active. | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
|     public function getActive() | ||||
|     public function getActive(): bool | ||||
|     { | ||||
|         return $this->active; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get id. | ||||
|      * | ||||
|      * @return int | ||||
|      */ | ||||
|     public function getId() | ||||
|     public function getId(): ?int | ||||
|     { | ||||
|         return $this->id; | ||||
|     } | ||||
|   | ||||
| @@ -12,8 +12,8 @@ declare(strict_types=1); | ||||
| namespace Chill\ActivityBundle\Entity; | ||||
|  | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
| use Symfony\Component\Serializer\Annotation as Serializer; | ||||
| use Symfony\Component\Serializer\Annotation\Groups; | ||||
| use Symfony\Component\Serializer\Attribute as Serializer; | ||||
| use Symfony\Component\Serializer\Attribute\Groups; | ||||
| use Symfony\Component\Validator\Constraints as Assert; | ||||
| use Symfony\Component\Validator\Context\ExecutionContextInterface; | ||||
|  | ||||
| @@ -188,7 +188,7 @@ class ActivityType | ||||
|     private int $userVisible = self::FIELD_REQUIRED; | ||||
|  | ||||
|     #[Assert\Callback] | ||||
|     public function checkSocialActionsVisibility(ExecutionContextInterface $context, mixed $payload) | ||||
|     public function checkSocialActionsVisibility(ExecutionContextInterface $context, mixed $payload): void | ||||
|     { | ||||
|         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,11 +461,17 @@ class ActivityType | ||||
|     { | ||||
|         $property = $field.'Visible'; | ||||
|  | ||||
|         if (!property_exists($this, $property)) { | ||||
|         // Get the real class name (not the proxy) | ||||
|         $class = static::class; | ||||
|         if (str_contains($class, '__CG__')) { | ||||
|             $class = get_parent_class($this); | ||||
|         } | ||||
|         $realClass = $class; | ||||
|  | ||||
|         if (!property_exists($realClass, $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) | ||||
|     public function persistActionToCourse(Activity $activity): void | ||||
|     { | ||||
|         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) | ||||
|     public function buildForm(FormBuilderInterface $builder): void | ||||
|     { | ||||
|         // 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) {} | ||||
|     public function buildForm(FormBuilderInterface $builder): void {} | ||||
|  | ||||
|     public function getNormalizationVersion(): int | ||||
|     { | ||||
|   | ||||
| @@ -34,7 +34,7 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa | ||||
|         private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper, | ||||
|     ) {} | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     public function buildForm(FormBuilderInterface $builder): void | ||||
|     { | ||||
|         $this->helper->buildForm($builder); | ||||
|     } | ||||
| @@ -154,7 +154,7 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa | ||||
|         return ActivityStatsVoter::LISTS; | ||||
|     } | ||||
|  | ||||
|     public function supportsModifiers() | ||||
|     public function supportsModifiers(): array | ||||
|     { | ||||
|         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) {} | ||||
|     public function buildForm(FormBuilderInterface $builder): void {} | ||||
|  | ||||
|     public function getNormalizationVersion(): int | ||||
|     { | ||||
|   | ||||
| @@ -11,6 +11,7 @@ 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; | ||||
| @@ -59,22 +60,20 @@ class ListActivity implements ListInterface, GroupedExportInterface | ||||
|         $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     public function buildForm(FormBuilderInterface $builder): void | ||||
|     { | ||||
|         $builder->add('fields', ChoiceType::class, [ | ||||
|             'multiple' => true, | ||||
|             'expanded' => true, | ||||
|             'choices' => array_combine($this->fields, $this->fields), | ||||
|             'label' => 'Fields to include in export', | ||||
|             'constraints' => [new Callback([ | ||||
|                 'callback' => static function ($selected, ExecutionContextInterface $context) { | ||||
|                     if (0 === \count($selected)) { | ||||
|                         $context->buildViolation('You must select at least one element') | ||||
|                             ->atPath('fields') | ||||
|                             ->addViolation(); | ||||
|                     } | ||||
|                 }, | ||||
|             ])], | ||||
|             'constraints' => [new Callback(callback: static function ($selected, ExecutionContextInterface $context) { | ||||
|                 if (0 === \count($selected)) { | ||||
|                     $context->buildViolation('You must select at least one element') | ||||
|                         ->atPath('fields') | ||||
|                         ->addViolation(); | ||||
|                 } | ||||
|             })], | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
| @@ -214,7 +213,7 @@ class ListActivity implements ListInterface, GroupedExportInterface | ||||
|         $qb = $this->entityManager->createQueryBuilder(); | ||||
|  | ||||
|         $qb | ||||
|             ->from('ChillActivityBundle:Activity', 'activity') | ||||
|             ->from(Activity::class, '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) | ||||
|     public function buildForm(FormBuilderInterface $builder, array $options): void | ||||
|     { | ||||
|         $builder | ||||
|             ->add('name', TranslatableStringFormType::class) | ||||
| @@ -29,17 +29,14 @@ class ActivityReasonCategoryType extends AbstractType | ||||
|     /** | ||||
|      * @param OptionsResolverInterface $resolver | ||||
|      */ | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     public function configureOptions(OptionsResolver $resolver): void | ||||
|     { | ||||
|         $resolver->setDefaults([ | ||||
|             'data_class' => \Chill\ActivityBundle\Entity\ActivityReasonCategory::class, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getBlockPrefix() | ||||
|     public function getBlockPrefix(): string | ||||
|     { | ||||
|         return 'chill_activitybundle_activityreasoncategory'; | ||||
|     } | ||||
|   | ||||
| @@ -21,7 +21,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver; | ||||
|  | ||||
| class ActivityReasonType extends AbstractType | ||||
| { | ||||
|     public function buildForm(FormBuilderInterface $builder, array $options) | ||||
|     public function buildForm(FormBuilderInterface $builder, array $options): void | ||||
|     { | ||||
|         $builder | ||||
|             ->add('name', TranslatableStringFormType::class) | ||||
| @@ -29,17 +29,14 @@ class ActivityReasonType extends AbstractType | ||||
|             ->add('category', TranslatableActivityReasonCategoryType::class); | ||||
|     } | ||||
|  | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     public function configureOptions(OptionsResolver $resolver): void | ||||
|     { | ||||
|         $resolver->setDefaults([ | ||||
|             'data_class' => ActivityReason::class, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getBlockPrefix() | ||||
|     public function getBlockPrefix(): string | ||||
|     { | ||||
|         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) | ||||
|     public function buildForm(FormBuilderInterface $builder, array $options): void | ||||
|     { | ||||
|         $builder | ||||
|             ->add('name', TranslatableStringFormType::class) | ||||
| @@ -67,7 +67,7 @@ class ActivityTypeType extends AbstractType | ||||
|             ->add('commentVisible', ActivityFieldPresence::class); | ||||
|     } | ||||
|  | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     public function configureOptions(OptionsResolver $resolver): void | ||||
|     { | ||||
|         $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) | ||||
|     public function configureOptions(OptionsResolver $resolver): void | ||||
|     { | ||||
|         $resolver->setDefaults( | ||||
|             [ | ||||
| @@ -31,7 +31,7 @@ class ActivityFieldPresence extends AbstractType | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function getParent() | ||||
|     public function getParent(): ?string | ||||
|     { | ||||
|         return ChoiceType::class; | ||||
|     } | ||||
|   | ||||
| @@ -30,7 +30,7 @@ class PickActivityReasonType extends AbstractType | ||||
|         private readonly TranslatableStringHelperInterface $translatableStringHelper, | ||||
|     ) {} | ||||
|  | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     public function configureOptions(OptionsResolver $resolver): void | ||||
|     { | ||||
|         $resolver->setDefaults( | ||||
|             [ | ||||
| @@ -49,12 +49,12 @@ class PickActivityReasonType extends AbstractType | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function getBlockPrefix() | ||||
|     public function getBlockPrefix(): string | ||||
|     { | ||||
|         return 'translatable_activity_reason'; | ||||
|     } | ||||
|  | ||||
|     public function getParent() | ||||
|     public function getParent(): ?string | ||||
|     { | ||||
|         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) | ||||
|     public function configureOptions(OptionsResolver $resolver): void | ||||
|     { | ||||
|         $resolver->setDefaults( | ||||
|             [ | ||||
| @@ -36,7 +36,7 @@ class TranslatableActivityReasonCategoryType extends AbstractType | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function getParent() | ||||
|     public function getParent(): ?string | ||||
|     { | ||||
|         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) | ||||
|     public function configureOptions(OptionsResolver $resolver): void | ||||
|     { | ||||
|         $resolver->setDefaults( | ||||
|             [ | ||||
| @@ -34,12 +34,12 @@ class TranslatableActivityType extends AbstractType | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function getBlockPrefix() | ||||
|     public function getBlockPrefix(): string | ||||
|     { | ||||
|         return 'translatable_activity_type'; | ||||
|     } | ||||
|  | ||||
|     public function getParent() | ||||
|     public function getParent(): ?string | ||||
|     { | ||||
|         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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\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) | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters): void | ||||
|     { | ||||
|         $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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\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) | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters): void | ||||
|     { | ||||
|         /** @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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\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) | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters): void | ||||
|     { | ||||
|         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) | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters): void | ||||
|     { | ||||
|         /** @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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\Security; | ||||
|  | ||||
| final readonly class ActivityDocumentACLAwareRepository implements ActivityDocumentACLAwareRepositoryInterface | ||||
| { | ||||
|   | ||||
| @@ -20,6 +20,8 @@ use Doctrine\Persistence\ManagerRegistry; | ||||
|  * @method ActivityReasonCategory|null findOneBy(array $criteria, array $orderBy = null) | ||||
|  * @method ActivityReasonCategory[]    findAll() | ||||
|  * @method ActivityReasonCategory[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) | ||||
|  * | ||||
|  * @extends \Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository<\Chill\ActivityBundle\Entity\ActivityReasonCategory> | ||||
|  */ | ||||
| class ActivityReasonCategoryRepository extends ServiceEntityRepository | ||||
| { | ||||
|   | ||||
| @@ -20,6 +20,8 @@ use Symfony\Component\HttpFoundation\RequestStack; | ||||
|  * @method ActivityReason|null find($id, $lockMode = null, $lockVersion = null) | ||||
|  * @method ActivityReason|null findOneBy(array $criteria, array $orderBy = null) | ||||
|  * @method ActivityReason[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) | ||||
|  * | ||||
|  * @extends \Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository<\Chill\ActivityBundle\Entity\ActivityReason> | ||||
|  */ | ||||
| class ActivityReasonRepository extends ServiceEntityRepository | ||||
| { | ||||
|   | ||||
| @@ -24,6 +24,8 @@ use Doctrine\Persistence\ManagerRegistry; | ||||
|  * @method Activity|null findOneBy(array $criteria, array $orderBy = null) | ||||
|  * @method Activity[]    findAll() | ||||
|  * @method Activity[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) | ||||
|  * | ||||
|  * @extends \Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository<\Chill\ActivityBundle\Entity\Activity> | ||||
|  */ | ||||
| class ActivityRepository extends ServiceEntityRepository implements AssociatedEntityToStoredObjectInterface | ||||
| { | ||||
|   | ||||
| @@ -20,6 +20,8 @@ use Doctrine\Persistence\ManagerRegistry; | ||||
|  * @method ActivityTypeCategory|null findOneBy(array $criteria, array $orderBy = null) | ||||
|  * @method ActivityTypeCategory[]    findAll() | ||||
|  * @method ActivityTypeCategory[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) | ||||
|  * | ||||
|  * @extends \Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository<\Chill\ActivityBundle\Entity\ActivityTypeCategory> | ||||
|  */ | ||||
| class ActivityTypeCategoryRepository extends ServiceEntityRepository | ||||
| { | ||||
|   | ||||
| @@ -49,17 +49,17 @@ class ActivityStatsVoter extends AbstractChillVoter implements ProvideRoleHierar | ||||
|         return $this->getAttributes(); | ||||
|     } | ||||
|  | ||||
|     protected function supports($attribute, $subject) | ||||
|     protected function supports(string $attribute, mixed $subject): bool | ||||
|     { | ||||
|         return $this->helper->supports($attribute, $subject); | ||||
|     } | ||||
|  | ||||
|     protected function voteOnAttribute($attribute, $subject, TokenInterface $token) | ||||
|     protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool | ||||
|     { | ||||
|         return $this->helper->voteOnAttribute($attribute, $subject, $token); | ||||
|     } | ||||
|  | ||||
|     private function getAttributes() | ||||
|     private function getAttributes(): array | ||||
|     { | ||||
|         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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\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\Component\Security\Core\Security; | ||||
| use Symfony\Bundle\SecurityBundle\Security; | ||||
|  | ||||
| final readonly class PersonActivityGenericDocProvider implements GenericDocForPersonProviderInterface | ||||
| { | ||||
|   | ||||
| @@ -22,10 +22,8 @@ trait PrepareActivityTrait | ||||
| { | ||||
|     /** | ||||
|      * Return an activity with a scope and a person inside. | ||||
|      * | ||||
|      * @return Activity | ||||
|      */ | ||||
|     public function prepareActivity(Scope $scope, Person $person) | ||||
|     public function prepareActivity(Scope $scope, Person $person): Activity | ||||
|     { | ||||
|         return (new Activity()) | ||||
|             ->setScope($scope) | ||||
|   | ||||
| @@ -25,7 +25,7 @@ final class ActivityControllerTest extends WebTestCase | ||||
|     /** | ||||
|      * @dataProvider getSecuredPagesUnauthenticated | ||||
|      */ | ||||
|     public function testAccessIsDeniedForUnauthenticated(mixed $url) | ||||
|     public function testAccessIsDeniedForUnauthenticated(mixed $url): void | ||||
|     { | ||||
|         $client = $this->createClient(); | ||||
|  | ||||
| @@ -61,7 +61,7 @@ final class ActivityControllerTest extends WebTestCase | ||||
|      * @param type $client | ||||
|      * @param type $url | ||||
|      */ | ||||
|     public function testAccessIsDeniedForUnauthorized($client, $url) | ||||
|     public function testAccessIsDeniedForUnauthorized($client, $url): void | ||||
|     { | ||||
|         $client->request('GET', $url); | ||||
|  | ||||
| @@ -101,7 +101,7 @@ final class ActivityControllerTest extends WebTestCase | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     public function testCompleteScenario() | ||||
|     public function testCompleteScenario(): void | ||||
|     { | ||||
|         // 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() | ||||
|     private function createFakeUser(): \Chill\MainBundle\Entity\User | ||||
|     { | ||||
|         $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') | ||||
|     private function getAuthenticatedClient(mixed $username = 'center a_social'): \Symfony\Bundle\FrameworkBundle\KernelBrowser | ||||
|     { | ||||
|         return self::createClient([], [ | ||||
|             'PHP_AUTH_USER' => $username, | ||||
|   | ||||
| @@ -16,7 +16,6 @@ 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; | ||||
|  | ||||
| @@ -70,33 +69,32 @@ final class ActivityTest extends TestCase | ||||
|     public function testHierarchySocialIssues(): void | ||||
|     { | ||||
|         $listener = new AccompanyingPeriodSocialIssueConsistencyEntityListener(); | ||||
|         $event = $this->prophesize(LifecycleEventArgs::class)->reveal(); | ||||
|  | ||||
|         $parent = new SocialIssue(); | ||||
|         $child = new SocialIssue(); | ||||
|  | ||||
|         $parent->addChild($child); | ||||
|         $child->setParent($parent); | ||||
|         $grandChild = new SocialIssue(); | ||||
|         $child->addChild($grandChild); | ||||
|         $grandChild->setParent($child); | ||||
|  | ||||
|         $activity = new Activity(); | ||||
|         $activity->setAccompanyingPeriod(new AccompanyingPeriod()); | ||||
|  | ||||
|         $activity->addSocialIssue($parent); | ||||
|         $listener->preUpdate($activity, $event); | ||||
|         $listener->preUpdate($activity); | ||||
|  | ||||
|         $this->assertCount(1, $activity->getSocialIssues()); | ||||
|         $this->assertContains($parent, $activity->getSocialIssues()); | ||||
|  | ||||
|         $activity->addSocialIssue($grandChild); | ||||
|         $listener->preUpdate($activity, $event); | ||||
|         $listener->preUpdate($activity); | ||||
|  | ||||
|         $this->assertCount(1, $activity->getSocialIssues()); | ||||
|         $this->assertContains($grandChild, $activity->getSocialIssues()); | ||||
|         $this->assertNotContains($parent, $activity->getSocialIssues()); | ||||
|  | ||||
|         $activity->addSocialIssue($child); | ||||
|         $listener->preUpdate($activity, $event); | ||||
|         $listener->preUpdate($activity); | ||||
|  | ||||
|         $this->assertCount(1, $activity->getSocialIssues()); | ||||
|         $this->assertContains($grandChild, $activity->getSocialIssues()); | ||||
| @@ -104,7 +102,7 @@ final class ActivityTest extends TestCase | ||||
|         $this->assertNotContains($child, $activity->getSocialIssues()); | ||||
|  | ||||
|         $activity->addSocialIssue($another = new SocialIssue()); | ||||
|         $listener->preUpdate($activity, $event); | ||||
|         $listener->preUpdate($activity); | ||||
|  | ||||
|         $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() | ||||
|     public function getAggregator(): ByActivityTypeAggregator | ||||
|     { | ||||
|         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() | ||||
|     public function getAggregator(): BySocialActionAggregator | ||||
|     { | ||||
|         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() | ||||
|     public function getAggregator(): BySocialIssueAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -35,7 +35,7 @@ class ActivityPresenceAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->activityPresenceRepository = self::getContainer()->get(ActivityPresenceRepositoryInterface::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): ActivityPresenceAggregator | ||||
|     { | ||||
|         return new ActivityPresenceAggregator($this->activityPresenceRepository, $this->translatableStringHelper); | ||||
|     } | ||||
|   | ||||
| @@ -44,7 +44,7 @@ final class ActivityReasonAggregatorTest extends AbstractAggregatorTest | ||||
|                     ->push($request->reveal());*/ | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): ActivityReasonAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -45,7 +45,7 @@ final class ActivityTypeAggregatorTest extends AbstractAggregatorTest | ||||
|             ->push($request->reveal()); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): ActivityTypeAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -45,7 +45,7 @@ final class ActivityUserAggregatorTest extends AbstractAggregatorTest | ||||
|             ->push($request->reveal()); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): ActivityUserAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -32,7 +32,7 @@ final class ByThirdpartyAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->aggregator = self::getContainer()->get(ByThirdpartyAggregator::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): ByThirdpartyAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -32,7 +32,7 @@ final class ByUserAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->aggregator = self::getContainer()->get(ByCreatorAggregator::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): ByCreatorAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -32,7 +32,7 @@ final class CreatorJobAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->aggregator = self::getContainer()->get(CreatorJobAggregator::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): CreatorJobAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -32,7 +32,7 @@ final class CreatorScopeAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->aggregator = self::getContainer()->get(CreatorScopeAggregator::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): CreatorScopeAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -32,7 +32,7 @@ final class DateAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->aggregator = self::getContainer()->get(DateAggregator::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): DateAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -32,7 +32,7 @@ final class LocationTypeAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->aggregator = self::getContainer()->get(LocationTypeAggregator::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): LocationTypeAggregator | ||||
|     { | ||||
|         return $this->aggregator; | ||||
|     } | ||||
|   | ||||
| @@ -32,7 +32,7 @@ class PersonAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->labelPersonHelper = self::getContainer()->get(LabelPersonHelper::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): PersonAggregator | ||||
|     { | ||||
|         return new PersonAggregator($this->labelPersonHelper); | ||||
|     } | ||||
|   | ||||
| @@ -33,7 +33,7 @@ class PersonsAggregatorTest extends AbstractAggregatorTest | ||||
|         $this->labelPersonHelper = self::getContainer()->get(LabelPersonHelper::class); | ||||
|     } | ||||
|  | ||||
|     public function getAggregator() | ||||
|     public function getAggregator(): PersonsAggregator | ||||
|     { | ||||
|         return new PersonsAggregator($this->labelPersonHelper); | ||||
|     } | ||||
|   | ||||
| @@ -36,7 +36,7 @@ final class ActivityTypeFilterTest extends AbstractFilterTest | ||||
|         $this->filter = self::getContainer()->get(\Chill\ActivityBundle\Export\Filter\ACPFilters\ActivityTypeFilter::class); | ||||
|     } | ||||
|  | ||||
|     public function getFilter() | ||||
|     public function getFilter(): \Chill\ActivityBundle\Export\Filter\ACPFilters\ActivityTypeFilter | ||||
|     { | ||||
|         return $this->filter; | ||||
|     } | ||||
|   | ||||
| @@ -33,7 +33,7 @@ final class ByCreatorFilterTest extends AbstractFilterTest | ||||
|         $this->filter = self::getContainer()->get(ByCreatorFilter::class); | ||||
|     } | ||||
|  | ||||
|     public function getFilter() | ||||
|     public function getFilter(): ByCreatorFilter | ||||
|     { | ||||
|         return $this->filter; | ||||
|     } | ||||
|   | ||||
| @@ -33,7 +33,7 @@ final class BySocialActionFilterTest extends AbstractFilterTest | ||||
|         $this->filter = self::getContainer()->get(\Chill\ActivityBundle\Export\Filter\ACPFilters\BySocialActionFilter::class); | ||||
|     } | ||||
|  | ||||
|     public function getFilter() | ||||
|     public function getFilter(): \Chill\ActivityBundle\Export\Filter\ACPFilters\BySocialActionFilter | ||||
|     { | ||||
|         return $this->filter; | ||||
|     } | ||||
|   | ||||
| @@ -34,7 +34,7 @@ final class BySocialIssueFilterTest extends AbstractFilterTest | ||||
|         $this->filter = self::getContainer()->get(BySocialIssueFilter::class); | ||||
|     } | ||||
|  | ||||
|     public function getFilter() | ||||
|     public function getFilter(): BySocialIssueFilter | ||||
|     { | ||||
|         return $this->filter; | ||||
|     } | ||||
|   | ||||
| @@ -33,7 +33,7 @@ final class ActivityDateFilterTest extends AbstractFilterTest | ||||
|         $this->filter = self::getContainer()->get(ActivityDateFilter::class); | ||||
|     } | ||||
|  | ||||
|     public function getFilter() | ||||
|     public function getFilter(): ActivityDateFilter | ||||
|     { | ||||
|         return $this->filter; | ||||
|     } | ||||
|   | ||||
| @@ -39,7 +39,7 @@ class ActivityPresenceFilterTest extends AbstractFilterTest | ||||
|         $this->translatableStringHelper = self::getContainer()->get(TranslatableStringHelperInterface::class); | ||||
|     } | ||||
|  | ||||
|     public function getFilter() | ||||
|     public function getFilter(): ActivityPresenceFilter | ||||
|     { | ||||
|         return new ActivityPresenceFilter($this->translatableStringHelper, $this->translator); | ||||
|     } | ||||
|   | ||||
| @@ -44,7 +44,7 @@ final class ActivityReasonFilterTest extends AbstractFilterTest | ||||
|             ->push($request->reveal()); | ||||
|     } | ||||
|  | ||||
|     public function getFilter() | ||||
|     public function getFilter(): ActivityReasonFilter | ||||
|     { | ||||
|         return $this->filter; | ||||
|     } | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user