mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +00:00 
			
		
		
		
	Compare commits
	
		
			324 Commits
		
	
	
		
			v3.7.0
			...
			453-bug-cs
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 36dfce6613 | |||
| 9c2abb2dfa | |||
| 94744b9542 | |||
| f42bb498e4 | |||
| 01889ac671 | |||
| 62e5842311 | |||
| 8ad6f397a8 | |||
| d713704633 | |||
| b1fa9242a0 | |||
| 6ac554f93a | |||
| 372d8e5825 | |||
| 10f05e5559 | |||
| ddb2a65419 | |||
| 8d40a8089f | |||
| e1bf4a24d2 | |||
| 208a378185 | |||
| 9089c8959b | |||
| 1b9b581c31 | |||
| aa1abe4c88 | |||
| d82c9cc9a7 | |||
| a7e3b1c5d2 | |||
| 84cf11933d | |||
| bc2fbee5c6 | |||
| ebd10ca522 | |||
| d3a31be412 | |||
| d159a82f88 | |||
| c2d9c73fd4 | |||
| 0d6d15fcf7 | |||
| f9ad96c78b | |||
| fcc9529a20 | |||
| 955cb817c4 | |||
| 823f9546b9 | |||
| be39fa16e7 | |||
| c8bb7575e7 | |||
|  | 80a3734171 | ||
| ab98f3a102 | |||
| 7516e68d77 | |||
| 7b60b7a8af | |||
| d984dec7db | |||
| 46a4dedab8 | |||
| db98519e65 | |||
| c39637180a | |||
| 15f9409bc8 | |||
| 5b90d23367 | |||
| c48625d1cd | |||
| 1195b54a68 | |||
| 2a280b814f | |||
| 230c758255 | |||
| eafda987ae | |||
| 7db8a371fc | |||
| 0d0649dd31 | |||
| ac12b8cdcf | |||
| 9c1611d052 | |||
| 90e3043c3d | |||
| af13bf9088 | |||
| 4aa65d69c7 | |||
| 9e33aec594 | |||
| f88bc7e9f0 | |||
| 8e78c41549 | |||
| 6e36771349 | |||
| 7a82cae155 | |||
| dfab223391 | |||
| 539752485c | |||
| d204df0316 | |||
|  | 82c02f442b | ||
| f32a9dc7bc | |||
| ea06a96f91 | |||
| 76433e2512 | |||
| 1fa464b87a | |||
| 3b75f43e80 | |||
| a40eb95c43 | |||
| 8429c6e693 | |||
| 6db7f6827c | |||
| 3c60c57985 | |||
| 10aa36aae0 | |||
| eed9913a49 | |||
| 1a847d36a0 | |||
| d916962d9b | |||
| 1092fc64ae | |||
| 4e99b6ecbd | |||
| 60d107b541 | |||
| 4c3befe489 | |||
| e176319775 | |||
| 5d810b4230 | |||
| 52b8eea069 | |||
| 4bebeaeaaa | |||
| 3969e12633 | |||
| d60312d4a2 | |||
| d2454ae134 | |||
| 17c2cb1fdc | |||
| 94d7a2a0bb | |||
| aef1efc6cd | |||
| dd0c662c9e | |||
| 6b1696b62e | |||
| c4b760c452 | |||
| 69fe2a8256 | |||
| 8c98242896 | |||
| 7eecfd3882 | |||
| 6713658569 | |||
| 342b786106 | |||
| 80a7437769 | |||
| 8a38ce1a5c | |||
| 5d94bf0556 | |||
| bb71e084b8 | |||
| 27f0bf28e9 | |||
| 383f588795 | |||
| e7a1ff1ac8 | |||
| adc9c47d0a | |||
| e594b65d1e | |||
| c0826bc65c | |||
| 904f4e5ed9 | |||
| 481f82b4c7 | |||
| f5668592ca | |||
| aa085a1562 | |||
| 2754251fdc | |||
| 2f6cef4238 | |||
| 2309636eae | |||
| 56ec8fb516 | |||
| fe6e6e54c1 | |||
| 2a09594b4a | |||
| 7c798e1f63 | |||
| ab8da4ab7a | |||
| 5bdb2df929 | |||
| e3a6b60fa2 | |||
| 5f01673404 | |||
| 63d0a52ea1 | |||
| 837089ff5d | |||
| f383fab578 | |||
| f3cc4a89af | |||
| 703f5dc32d | |||
| b870e71f77 | |||
| a7e278204f | |||
| 4cfdcb2f02 | |||
| 3b82ab0e7f | |||
| ccfae1dc75 | |||
| 8bc16dadb0 | |||
| c4cc0baa8e | |||
| aed114c75c | |||
| e592b89c94 | |||
| 70e75adb7d | |||
| 6f7015b152 | |||
| 65dde1e6a0 | |||
| d193c50922 | |||
| 840ef6eed8 | |||
| b4bbb1a456 | |||
| 606435a6b3 | |||
| 404143f8a6 | |||
| ec957a2fe3 | |||
| 8ed5e35f1a | |||
| ec37676dab | |||
| 2d8cda30b9 | |||
| 27d344c97d | |||
| 088e5692e2 | |||
| 298044bc82 | |||
| ee4e223043 | |||
| c53377ce8d | |||
| 0b580658de | |||
| 786c60a50d | |||
| 456f00566d | |||
| a38116cca4 | |||
|  | 9158e33854 | ||
|  | af74f7860b | ||
| c2842148c6 | |||
| 10e4c7da23 | |||
| bdf1cf71ba | |||
| f680a35f49 | |||
| 7d0fe06651 | |||
| 5ee8a6bc82 | |||
| 47cf83ef93 | |||
| fca10ada71 | |||
| a35d456308 | |||
| 67c1dfa42b | |||
| 49cbb6a002 | |||
| 4c0c66bdb4 | |||
| 880a164793 | |||
| 29c1ba3c2b | |||
| 397267f4b9 | |||
| df88c31c40 | |||
| 6f1fe1c118 | |||
| 649ad26721 | |||
| a8c41141e8 | |||
| d82727f831 | |||
| 66bd63403b | |||
| 992e6d29d0 | |||
| bb41af4ed2 | |||
| 19dd4667f2 | |||
| 976f293f28 | |||
| 5c9396077d | |||
| 713c50309b | |||
| 44a8ddeba4 | |||
| 8b2af35e97 | |||
| dc44c46667 | |||
| ba571c1a69 | |||
| 6a364705f2 | |||
| b6d454691a | |||
| 6d7a6932a9 | |||
|  | 2faf194b15 | ||
| f207599d86 | |||
| b0959f8cc5 | |||
| 4c5dee5f0a | |||
| f6c98aa0d5 | |||
| 6d13d184d5 | |||
| af36eccfaf | |||
| 483a20a43f | |||
| 6d8e2ad825 | |||
| 86388a63a8 | |||
|  | 5ea55ebfe5 | ||
| f97dc8f931 | |||
|  | a9c3aab528 | ||
| 1181377bd6 | |||
|  | 2275b7c560 | ||
| 4a8d298ae5 | |||
| 3e7f03d331 | |||
| b830952b9e | |||
| ad17313c61 | |||
| 620515ad15 | |||
| 50c377ee22 | |||
| cc7e7a90ee | |||
| 1d4ef19051 | |||
| 8337a724d1 | |||
| 8ca377d5d4 | |||
| 224e0bae43 | |||
| 3aa4fac80d | |||
|  | a7517eb647 | ||
| e278e636e0 | |||
|  | 40e373a9c7 | ||
| 1c1f418b18 | |||
| bf0e14b43a | |||
| 203a098054 | |||
| d58acff541 | |||
| 5858e05a42 | |||
| b9b4fafe14 | |||
| fe6949ea26 | |||
| 8a444a12f4 | |||
| 8b7b5ceed7 | |||
| b0e826d05a | |||
| 6fb9c3af3f | |||
| 7f101ba616 | |||
| cea82fac10 | |||
| 1344fc33e1 | |||
| c8e09a28e6 | |||
| c52d4b2a0e | |||
| 7f326d5441 | |||
| 2840c06476 | |||
| 7ddf84ea5a | |||
| f202625ea8 | |||
| 7a9168fcdb | |||
| 40eb71f95a | |||
| 84b7cc8145 | |||
| 08af530726 | |||
| 03b2496817 | |||
| f638ce71fd | |||
| b39997f00a | |||
| 38b21a2159 | |||
| 17db571244 | |||
| 8c8c16c1a1 | |||
| 046d3ec9f1 | |||
| 596833f1a5 | |||
| 66e4bab558 | |||
| d1c9926bb1 | |||
| a71d066765 | |||
| 217ac7b9e7 | |||
| be901822bc | |||
| 7ed10efcd1 | |||
| 350661a4fa | |||
| 08207b656a | |||
| 8de63de6d6 | |||
| 51804b10c0 | |||
| 02f555efae | |||
| d2fcb6945b | |||
| c89e3785ef | |||
| 9f17ec4841 | |||
| b277a7749a | |||
| c8b6b6e33a | |||
| 10eaebf610 | |||
| 0a34f9086f | |||
| 739e0b1692 | |||
| 8db8f5fdf5 | |||
| fc32f9eca9 | |||
| ab35e8c034 | |||
| 2aded2974f | |||
| f84c1632b2 | |||
|  | 03717a1a87 | ||
|  | 02c524dd79 | ||
| 99e4824137 | |||
| dacaaea235 | |||
| 096466e79e | |||
| 7285e5c2b0 | |||
| 37227a3aeb | |||
| 7569667189 | |||
| b0993f4062 | |||
| 7c79b65f48 | |||
| b8f25bcd45 | |||
| f4efb0e975 | |||
| c641baec78 | |||
| cc150e32f0 | |||
|  | bc7f0907ab | ||
| 26cf6459b4 | |||
| d0fa6dd512 | |||
|  | fbdc0d32f0 | ||
|  | 5f31473c90 | ||
|  | 98cf167040 | ||
|  | 6c37d798bf | ||
| 03748a7e84 | |||
| 9e3431f397 | |||
| 912861dbff | |||
| 35f25daf7c | |||
| 21274155b5 | |||
| 3f7c136d6b | |||
| 5d9c573853 | |||
| 9a5fd67842 | |||
| 2755bc12c4 | |||
| 9e191f1b5b | |||
| ab684a20ad | |||
| bc92b52498 | |||
| be5655e537 | |||
| ceb0bd982e | |||
| 47c0af3623 | |||
| 59fd9fc63f | |||
| eea1e40663 | |||
| 1b0771eb07 | |||
| 3a74c48104 | |||
| b37d7fb907 | |||
| 57b8dacba0 | 
							
								
								
									
										7
									
								
								.changes/unreleased/DX-20251027-150053.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.changes/unreleased/DX-20251027-150053.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | kind: DX | ||||||
|  | body: | | ||||||
|  |     Send notifications log to dedicated channel, if it exists | ||||||
|  | time: 2025-10-27T15:00:53.309372316+01:00 | ||||||
|  | custom: | ||||||
|  |     Issue: "" | ||||||
|  |     SchemaChange: No schema change | ||||||
							
								
								
									
										6
									
								
								.changes/unreleased/Fixed-20251029-143836.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Fixed-20251029-143836.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | kind: Fixed | ||||||
|  | body: 'Fix: export actions and their results in csv even when action does not have any goals attached to it.' | ||||||
|  | time: 2025-10-29T14:38:36.195220844+01:00 | ||||||
|  | custom: | ||||||
|  |     Issue: "453" | ||||||
|  |     SchemaChange: No schema change | ||||||
							
								
								
									
										6
									
								
								.changes/v3.10.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/v3.10.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | ## v3.10.0 - 2025-03-17 | ||||||
|  | ### Feature | ||||||
|  | * ([#363](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/363)) Display social actions grouped per social issue within activity form    | ||||||
|  | ### Fixed | ||||||
|  | * ([#362](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/362)) Fix Dependency Injection, which prevented to save the CalendarRange    | ||||||
|  | * ([#368](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/368)) fix search query for user groups    | ||||||
							
								
								
									
										3
									
								
								.changes/v3.10.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.10.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.10.1 - 2025-03-17 | ||||||
|  | ### DX | ||||||
|  | * Remove yarn dependency to symfony/ux-translator, to ease the build process | ||||||
							
								
								
									
										3
									
								
								.changes/v3.10.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.10.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.10.2 - 2025-03-17 | ||||||
|  | ### Fixed | ||||||
|  | * Replace a ts-expect-error with a ts-ignore    | ||||||
							
								
								
									
										3
									
								
								.changes/v3.10.3.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.10.3.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.10.3 - 2025-03-18 | ||||||
|  | ### DX | ||||||
|  | * Eslint fixes    | ||||||
							
								
								
									
										19
									
								
								.changes/v3.11.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.changes/v3.11.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | ## v3.11.0 - 2025-04-17 | ||||||
|  | ### Feature | ||||||
|  | * ([#365](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/365)) Add counters of actions and activities, with 2 boxes to (1) show the number of active actions on total actions and (2) show the number of activities in a accompanying period, and pills in menus for showing the number of active actions and the number of activities. | ||||||
|  | * ([#364](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/364)) Added a second phone number "telephone2" to the thirdParty entity. Adapted twig templates and vuejs apps to handle this phone number | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | * Signature: add a button to go directly to the signature zone, even if there is only one | ||||||
|  | ### Fixed | ||||||
|  | * Fixed wrong translations in the on-the-fly for creation of thirdParty | ||||||
|  | * Fixed update of phone number in on-the-fly edition of thirdParty | ||||||
|  | * Fixed closing of modal when editing thirdParty in accompanying course works | ||||||
|  | * Shorten the delay between two execution of AccompanyingPeriodStepChangeCronjob, to ensure at least one execution in a day | ||||||
|  | * ([#102](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/102)) Fix display of title in document list | ||||||
|  | * When cleaning the old stored object versions, do not throw an error if the stored object is not found on disk | ||||||
|  | * Add consistent log prefix and key to logs when stale workflows are automatically canceled | ||||||
|  | * ([#380](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/380)) Remove the "not null" validation constraint on recently added properties on HouseholdComposition | ||||||
|  |  | ||||||
|  | ### DX | ||||||
|  | * Add new chill-col style for displaying title and aside in a flex table | ||||||
							
								
								
									
										22
									
								
								.changes/v3.12.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.changes/v3.12.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | ## v3.12.0 - 2025-06-30 | ||||||
|  | ### Feature | ||||||
|  | * ([#377](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/377)) Add the document file name to the document title when a user upload a document, unless there is already a document title.    | ||||||
|  | * Add desactivation date for social action and issue csv export    | ||||||
|  | * Add Emoji and Fullscreen feature to ckeditor configuration    | ||||||
|  | * ([#321](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/321)) Create editor which allow us to toggle between rich and simple text editor    | ||||||
|  | * Do not remove workflow which are automatically canceled after staling for more than 30 days    | ||||||
|  | ### Fixed | ||||||
|  | * ([#376](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/376)) trying to prevent bug of typeerror in doc-history + improved display of document history    | ||||||
|  | * ([#381](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/381)) Display previous participation in acc course work even if the person has left the acc course    | ||||||
|  | * ([#372](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/372)) Fix display of text in calendar events    | ||||||
|  | * Add missing translation for user_group.no_user_groups    | ||||||
|  | * Fix admin entity edit actions for event admin entities and activity reason (category) entities    | ||||||
|  | * ([#392](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/392)) Allow null and cast as string to setContent method for NewsItem | ||||||
|  |     | ||||||
|  | * ([#393](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/393)) Doc Generation: the "dump only" method send the document as an email attachment.    | ||||||
|  | ### DX | ||||||
|  | * ([#352](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/352)) Remove dead code for wopi-link module    | ||||||
|  | * Replace library node-sass by sass, and upgrade bootstrap to version 5.3 (yarn upgrade / install is required)    | ||||||
|  | ### UX | ||||||
|  | * ([#374](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/374)) Remove default filter in_progress for the page 'my tasks'; Allows for new tasks to be displayed upon opening of the page    | ||||||
|  | * Improve labeling of fields in person resource creation form    | ||||||
							
								
								
									
										3
									
								
								.changes/v3.12.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.12.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.12.1 - 2025-06-30 | ||||||
|  | ### Fixed | ||||||
|  | * Fix loading of the list of documents    | ||||||
| @@ -1,5 +1,62 @@ | |||||||
| ## v3.7.0 - 2025-01-21 | ## v3.7.0 - 2025-01-21 | ||||||
| ### Feature | ### Feature | ||||||
| * Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider.     | * Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider. | ||||||
| ### Fixed | ### Fixed | ||||||
| * ([#348](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/348)) [export] Fix aggregation of referrer's scope and job: fix the date range comparison    | * ([#348](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/348)) [export] Fix aggregation of referrer's scope and job: fix the date range comparison | ||||||
|  |  | ||||||
|  | ### Warning on configuration of Notifier component | ||||||
|  |  | ||||||
|  | If installed in an symfony app where the recipes are activated, this configuration should be added automatically: | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | framework: | ||||||
|  |     notifier: | ||||||
|  |         chatter_transports: | ||||||
|  |         texter_transports: | ||||||
|  |             ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||||
|  |         channel_policy: | ||||||
|  |             # use chat/slack, chat/telegram, sms/twilio or sms/nexmo | ||||||
|  |             urgent: ['email'] | ||||||
|  |             high: ['email'] | ||||||
|  |             medium: ['email'] | ||||||
|  |             low: ['email'] | ||||||
|  |         admin_recipients: | ||||||
|  |             - { email: admin@example.com } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Actually, you should either: | ||||||
|  |  | ||||||
|  | - remove the configuration of ovhcloud added by the recipe | ||||||
|  | - or remove the previous configuration of chill, to avoid keeping legacy configuration | ||||||
|  |  | ||||||
|  | #### Remove the added configuration and keep the legacy configuration | ||||||
|  |  | ||||||
|  | To remove the configuration: | ||||||
|  |  | ||||||
|  | ```diff | ||||||
|  | framework: | ||||||
|  |     notifier: | ||||||
|  |         chatter_transports: | ||||||
|  |         texter_transports: | ||||||
|  | -            ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | In that case, the previous configuration, which was stored under the `chill_main.short_messages.dsn` will be reconfigured into the Notifier component's configuration. | ||||||
|  |  | ||||||
|  | #### Properly configure SMS | ||||||
|  |  | ||||||
|  | You can also properly configure it, as [described in the OVH cloud provider repository](https://github.com/symfony/ovh-cloud-notifier/tree/5.4?tab=readme-ov-file#dsn-example) (where the scheme is `ovhcloud`): | ||||||
|  |  | ||||||
|  | **NOTE**: You have access to all notifier available with the [Notifier component](https://symfony.com/doc/current/notifier.html#notifier-sms-channel). You are not restricted to use OVH as a provider. | ||||||
|  |  | ||||||
|  | ```diff | ||||||
|  | framework: | ||||||
|  |     notifier: | ||||||
|  |         chatter_transports: | ||||||
|  |         texter_transports: | ||||||
|  | +            ovhcloud: '%env(OVHCLOUD_DSN)%' # this value should be located in a variable, and have `ovhcloud://` as a scheme | ||||||
|  |  | ||||||
|  | chill_main: | ||||||
|  | -    short_messages: | ||||||
|  | -        dsn: '%env(string:SHORT_MESSAGE_DSN)%' | ||||||
|  | ``` | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								.changes/v3.7.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.7.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.7.1 - 2025-01-21 | ||||||
|  | ### Fixed | ||||||
|  | * Fix legacy configuration processor for notifier component    | ||||||
							
								
								
									
										11
									
								
								.changes/v3.8.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.changes/v3.8.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | ## v3.8.0 - 2025-02-03 | ||||||
|  | ### Feature | ||||||
|  | * Improve the UX of the news item admin form to prevent wrong usage | ||||||
|  | * ([#319](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/319)) Notification list: display the concerned person's badges in the list | ||||||
|  | * ([#320](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/320)) Show the first 3 persons directly in the accompanying period's banner | ||||||
|  | * ([#334](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/334)) Suggest current user when creating an activity | ||||||
|  | * ([#331](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/331)) Add attachments to workflows | ||||||
|  | ### Fixed | ||||||
|  | * ([#350](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/350)) Add validation error to manual selection of person in PersonDuplicateController | ||||||
|  | * ([#354](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/354)) Fix document category creation | ||||||
|  | * ([#351](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/351)) Add definitive whitespace between span elements in vue PersonText component | ||||||
							
								
								
									
										3
									
								
								.changes/v3.8.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.8.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.8.1 - 2025-02-05 | ||||||
|  | ### Fixed | ||||||
|  | * Fix household link in the parcours banner    | ||||||
							
								
								
									
										3
									
								
								.changes/v3.8.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.8.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.8.2 - 2025-02-10 | ||||||
|  | ### Fixed | ||||||
|  | * ([#358](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/358)) Remove "filter" button on list of documents in the workflow's "add attachement" modal    | ||||||
							
								
								
									
										10
									
								
								.changes/v3.9.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.changes/v3.9.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | ## v3.9.0 - 2025-02-27 | ||||||
|  | ### Feature | ||||||
|  | * ([#349](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/349)) Suggest all referrers within actions of the accompanying period when creating an activity    | ||||||
|  | * ([#343](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/343)) Add possibility to export a csv with all social issues and social actions    | ||||||
|  | * ([#360](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/360)) Restore document to previous kept version when a workflow is canceled    | ||||||
|  | * ([#341](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/341)) Add a list of third parties from within the admin (csv download)    | ||||||
|  | ### Fixed | ||||||
|  | * fix generation of document with accompanying period context, and list of activities and works    | ||||||
|  | ### DX | ||||||
|  | * ([#333](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/333)) Create an unique source of trust for translations    | ||||||
							
								
								
									
										3
									
								
								.changes/v3.9.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.9.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.9.1 - 2025-02-27 | ||||||
|  | ### Fixed | ||||||
|  | * Fix post/patch request with missing 'type' property for gender    | ||||||
							
								
								
									
										3
									
								
								.changes/v3.9.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.9.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v3.9.2 - 2025-02-27 | ||||||
|  | ### Fixed | ||||||
|  | * Use fetchResults method to fetch all social issues instead of only the first page    | ||||||
							
								
								
									
										74
									
								
								.changes/v4.0.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								.changes/v4.0.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | |||||||
|  | ## v4.0.0 - 2025-07-08 | ||||||
|  | ### Feature | ||||||
|  | * ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works | ||||||
|  | ### Fixed | ||||||
|  | * ([#390](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/390)) Display the list of participant in the results, even if there is only one participant and that the search result display the requestor | ||||||
|  | * Fix admin entity edit actions for event admin entities and activity reason (category) entities | ||||||
|  | * Fix translations for social action fields in admin form: results, goals, evaluations | ||||||
|  | ### DX | ||||||
|  | * Rewrite exports to run them asynchronously | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | * Allow TranslatableMessage in flash messages | ||||||
|  | ### UX | ||||||
|  | * Improve labeling of fields in person resource creation form | ||||||
|  |  | ||||||
|  |  | ||||||
|  | **Release notes** | ||||||
|  |  | ||||||
|  | - Add new methods to serialize data using the rector rule | ||||||
|  | - Remove all references to the Request in filters, aggregators, filters. Actually, the most frequent occurence is `$security->getUser()`. | ||||||
|  | - Refactor manually the initializeQuery method | ||||||
|  | - Remove the injection of ExportManager into the constructor of each export element: | ||||||
|  |  | ||||||
|  |   ```diff | ||||||
|  |  | ||||||
|  |   - class MyFormatter implements FormatterInterface | ||||||
|  |   + class MyFormatter implements FormatterInterface, \Chill\MainBundle\Export\ExportManagerAwareInterface | ||||||
|  |   { | ||||||
|  |   +    use \Chill\MainBundle\Export\Helper\ExportManagerAwareTrait; | ||||||
|  |  | ||||||
|  |   -    public function __construct(private ExportManager $exportmanager) {} | ||||||
|  |  | ||||||
|  |        public function MyMethod(): void | ||||||
|  |        { | ||||||
|  |   -          $this->exportManager->getFilter('alias'); | ||||||
|  |   +          $this->getExportManager()->getFilter('alias'); | ||||||
|  |        } | ||||||
|  |   } | ||||||
|  |   ``` | ||||||
|  | - configure messenger to handle export in a queue: | ||||||
|  |  | ||||||
|  | ```diff | ||||||
|  | # config/packages/messenger.yaml | ||||||
|  | framework: | ||||||
|  |     messenger: | ||||||
|  |         routing: | ||||||
|  | +            'Chill\MainBundle\Export\Messenger\ExportRequestGenerationMessage': priority | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | - add missing methods to exports, aggregators, filters, formatter: | ||||||
|  |  | ||||||
|  |   ```php | ||||||
|  |   public function normalizeFormData(array $formData): array; | ||||||
|  |  | ||||||
|  |   public function denormalizeFormData(array $formData, int $fromVersion): array; | ||||||
|  |   ``` | ||||||
|  |  | ||||||
|  |   There are rector rules to generate those methods: | ||||||
|  |  | ||||||
|  |   - `Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector` | ||||||
|  |  | ||||||
|  |   See: | ||||||
|  |  | ||||||
|  |   ```php | ||||||
|  |   // upgrade chill exports | ||||||
|  |   $rectorConfig->rules([\Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector::class]); | ||||||
|  |   ``` | ||||||
|  |  | ||||||
|  |   This rule will create most of the work necessary, but some manuals changes are still necessary: | ||||||
|  |  | ||||||
|  |   - we must set manually the correct repository for method `denormalizeDoctrineEntity`; | ||||||
|  |   - when the form data contains some entities, and the form type is not one of EntityType::class, PickUserDynamicType::class, PickUserLocationType::class, PickThirdpartyDynamicType::class, Select2CountryType::class, then we must handle the normalization manually (using the `\Chill\MainBundle\Export\ExportDataNormalizerTrait`) | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								.changes/v4.0.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.changes/v4.0.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | ## v4.0.1 - 2025-07-08 | ||||||
|  | ### Fixed | ||||||
|  | * Fix package.json for compilation | ||||||
|  |     | ||||||
							
								
								
									
										4
									
								
								.changes/v4.0.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.changes/v4.0.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | ## v4.0.2 - 2025-07-09 | ||||||
|  | ### Fixed | ||||||
|  | * Fix add missing translation    | ||||||
|  | * Fix the transfer of evaluations and documents during of accompanyingperiodwork    | ||||||
							
								
								
									
										12
									
								
								.changes/v4.1.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.changes/v4.1.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | ## v4.1.0 - 2025-08-26 | ||||||
|  | ### Feature | ||||||
|  | * ([#400](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/400)) Add filter to social actions list to filter out actions where current user intervenes    | ||||||
|  | * ([#399](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/399)) Show filters on list pages unfolded by default    | ||||||
|  | * Expansion of event module with new fields in the creation form: thematic, internal/external animator, responsable, and budget elements. Filtering options in the event list + adapted exports    | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | ### Fixed | ||||||
|  | * ([#382](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/382)) adjust display logic for accompanying period dates, include closing date if period is closed.    | ||||||
|  | * ([#384](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/384)) add min and step attributes to integer field in DateIntervalType    | ||||||
|  | ### UX | ||||||
|  | * Limit display of participations in event list    | ||||||
							
								
								
									
										10
									
								
								.changes/v4.2.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.changes/v4.2.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | ## v4.2.0 - 2025-09-02 | ||||||
|  | ### Feature | ||||||
|  | * ([#64](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/64)) Add external identifier for a Person | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | * ([#330](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/330) Allow users to choose for which notifications they want to receive an email | ||||||
|  | ### Fixed | ||||||
|  | * ([#422](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/422)) Fixed html layout of pages for recovering password | ||||||
|  | * Fix typo in 'uncheckAll' script for centers selection | ||||||
|  | * Fix incorrect parameter name in event details link | ||||||
							
								
								
									
										6
									
								
								.changes/v4.2.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/v4.2.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | ## v4.2.1 - 2025-09-03 | ||||||
|  | ### Fixed | ||||||
|  | * Fix exports to work with DirectExportInterface    | ||||||
|  | ### DX | ||||||
|  | * Improve error message when a stored object cannot be written on local disk | ||||||
|  |     | ||||||
							
								
								
									
										10
									
								
								.changes/v4.3.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.changes/v4.3.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | ## v4.3.0 - 2025-09-08 | ||||||
|  | ### Feature | ||||||
|  | * ([#409](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/409)) Add 45 and 60 min calendar ranges    | ||||||
|  | * Add a command to generate a list of permissions    | ||||||
|  | * ([#412](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/412)) Add an absence end date    | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | ### Fixed | ||||||
|  | * fix date formatting in calendar range display    | ||||||
|  | * Change route URL to avoid clash with person duplicate controller method    | ||||||
							
								
								
									
										8
									
								
								.changes/v4.4.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.changes/v4.4.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | ## v4.4.0 - 2025-09-11 | ||||||
|  | ### Feature | ||||||
|  | * ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works    | ||||||
|  | * ([#369](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/369)) Duplication of a document to another accompanying period work evaluation    | ||||||
|  | * ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Fusion of two accompanying period works    | ||||||
|  | ### Fixed | ||||||
|  | * Fix display of 'duplicate' and 'merge' buttons in CRUD templates    | ||||||
|  | * Fix saving notification preferences in user's profile    | ||||||
							
								
								
									
										3
									
								
								.changes/v4.4.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v4.4.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v4.4.1 - 2025-09-11 | ||||||
|  | ### Fixed | ||||||
|  | * fix translations in duplicate evaluation document modal and realign close modal button    | ||||||
							
								
								
									
										3
									
								
								.changes/v4.4.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v4.4.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v4.4.2 - 2025-09-12 | ||||||
|  | ### Fixed | ||||||
|  | * Fix document generation and workflow generation do not work on accompanying period work documents    | ||||||
							
								
								
									
										13
									
								
								.changes/v4.5.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.changes/v4.5.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | ## v4.5.0 - 2025-10-03 | ||||||
|  | ### Feature | ||||||
|  | * Only allow delete of attachment on workflows that are not final    | ||||||
|  | * Move up signature buttons on index workflow page for easier access    | ||||||
|  | * Filter out document from attachment list if it is the same as the workflow document    | ||||||
|  | * Block edition on attached document on workflow, if the workflow is finalized or sent external    | ||||||
|  | * Convert workflow's attached document to pdf while sending them external    | ||||||
|  | * After a signature is canceled or rejected, going to a waiting page until the post-process routines apply a workflow transition    | ||||||
|  | ### Fixed | ||||||
|  | * ([#426](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/426)) Increased the number of required characters when setting a new password in Chill from 9 to 14 - GDPR compliance    | ||||||
|  | * Fix permissions on storedObject which are subject by a workflow    | ||||||
|  | ### DX | ||||||
|  | * Introduce a WaitingScreen component to display a waiting screen    | ||||||
							
								
								
									
										4
									
								
								.changes/v4.5.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.changes/v4.5.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | ## v4.5.1 - 2025-10-03 | ||||||
|  | ### Fixed | ||||||
|  | * Add missing javascript dependency    | ||||||
|  | * Add exception handling for conversion of attachment on sending external, when documens are already in pdf    | ||||||
							
								
								
									
										14
									
								
								.changes/v4.6.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.changes/v4.6.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | ## v4.6.0 - 2025-10-15 | ||||||
|  | ### Feature | ||||||
|  | * ([#423](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/423)) Create environment banner that can be activated and configured depending on the image deployed    | ||||||
|  | * ([#394](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/394)) Only show active workflow on the page "my tracked workflow"    | ||||||
|  | ### Fixed | ||||||
|  | * Fix loading of classLists in SocialIssuesAcc.vue, ensure elements are present    | ||||||
|  | * Fix the rendering of list of StoredObjectVersions, where there are kept version (before converting to pdf) and intermediate versions deleted    | ||||||
|  | * ([#434](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/434)) Notification: fix editing of sent notification by removing form.addressesEmails, a field that no longer exists    | ||||||
|  | * Fix loading of social issues and social actions within vue component    | ||||||
|  | * ([#446](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/446)) Add unique condition on stored object filename, with cleaning step on existing duplicate filenames    | ||||||
|  |  | ||||||
|  |   **Schema Change**: Drop or rename table or columns, or enforce new constraint that must be manually fixed | ||||||
|  | * [workflow] take permissions into account to delete the workflow attachment    | ||||||
|  | * ([#448](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/448)) Fix the execution of daily cronjob notification, when the previous last execution storage was invalid    | ||||||
							
								
								
									
										3
									
								
								.changes/v4.6.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v4.6.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ## v4.6.1 - 2025-10-27 | ||||||
|  | ### Fixed | ||||||
|  | * Fix export case where no 'reason' is picked within the PersonHavingActivityBetweenDateFilter.php    | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -5,16 +5,22 @@ composer.lock | |||||||
| docs/build/ | docs/build/ | ||||||
| .php_cs.cache | .php_cs.cache | ||||||
| .cache/* | .cache/* | ||||||
|  | yarn.lock | ||||||
|  |  | ||||||
| docker/db/data | docker/db/data | ||||||
| docker/rabbitmq/data | docker/rabbitmq/data | ||||||
|  |  | ||||||
| # in this development bundle, we want to ignore directories related to a real app | # in this development bundle, we want to ignore directories related to a real app | ||||||
| assets/* | assets/* | ||||||
|  | !assets/translator.ts | ||||||
|  | !assets/ux-translator | ||||||
| migrations/* | migrations/* | ||||||
| templates/* | templates/* | ||||||
| translations/* | translations/* | ||||||
|  |  | ||||||
|  | # we allow developers to add customization on their installation, without commiting it | ||||||
|  | config/packages/dev/* | ||||||
|  |  | ||||||
| ###> symfony/framework-bundle ### | ###> symfony/framework-bundle ### | ||||||
| /.env.local | /.env.local | ||||||
| /.env.local.php | /.env.local.php | ||||||
|   | |||||||
| @@ -46,7 +46,7 @@ stages: | |||||||
|  |  | ||||||
| build: | build: | ||||||
|     stage: Composer install |     stage: Composer install | ||||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 |     image: chill/base-image:8.3-edge | ||||||
|     before_script: |     before_script: | ||||||
|         - composer config -g cache-dir "$(pwd)/.cache" |         - composer config -g cache-dir "$(pwd)/.cache" | ||||||
|     script: |     script: | ||||||
| @@ -61,7 +61,7 @@ build: | |||||||
|  |  | ||||||
| code_style: | code_style: | ||||||
|     stage: Tests |     stage: Tests | ||||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 |     image: chill/base-image:8.3-edge | ||||||
|     script: |     script: | ||||||
|         - php-cs-fixer fix --dry-run -v --show-progress=none |         - php-cs-fixer fix --dry-run -v --show-progress=none | ||||||
|     cache: |     cache: | ||||||
| @@ -74,7 +74,7 @@ code_style: | |||||||
|  |  | ||||||
| phpstan_tests: | phpstan_tests: | ||||||
|     stage: Tests |     stage: Tests | ||||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 |     image: chill/base-image:8.3-edge | ||||||
|     variables: |     variables: | ||||||
|         COMPOSER_MEMORY_LIMIT: 3G |         COMPOSER_MEMORY_LIMIT: 3G | ||||||
|     before_script: |     before_script: | ||||||
| @@ -91,7 +91,7 @@ phpstan_tests: | |||||||
|  |  | ||||||
| rector_tests: | rector_tests: | ||||||
|     stage: Tests |     stage: Tests | ||||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 |     image: chill/base-image:8.3-edge | ||||||
|     before_script: |     before_script: | ||||||
|         - bin/console cache:clear --env=dev |         - bin/console cache:clear --env=dev | ||||||
|     script: |     script: | ||||||
| @@ -113,7 +113,7 @@ lint: | |||||||
|         - export PATH="./node_modules/.bin:$PATH" |         - export PATH="./node_modules/.bin:$PATH" | ||||||
|     script: |     script: | ||||||
|         - yarn install --ignore-optional |         - yarn install --ignore-optional | ||||||
|         - npx eslint-baseline "**/*.{js,vue}" |         - npx eslint-baseline "src/**/*.{js,ts,vue}" | ||||||
|     cache: |     cache: | ||||||
|         paths: |         paths: | ||||||
|             - node_modules/ |             - node_modules/ | ||||||
| @@ -132,7 +132,7 @@ lint: | |||||||
|  |  | ||||||
| unit_tests: | unit_tests: | ||||||
|     stage: Tests |     stage: Tests | ||||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 |     image: chill/base-image:8.3-edge | ||||||
|     variables: |     variables: | ||||||
|         COMPOSER_MEMORY_LIMIT: 3G |         COMPOSER_MEMORY_LIMIT: 3G | ||||||
|     before_script: |     before_script: | ||||||
|   | |||||||
							
								
								
									
										391
									
								
								.junie/guidelines.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										391
									
								
								.junie/guidelines.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,391 @@ | |||||||
|  | # Project Guidelines for Junie | ||||||
|  |  | ||||||
|  | ## Project Overview | ||||||
|  |  | ||||||
|  | Chill is a comprehensive web application built as a set of Symfony bundles. It is a case management system, for social work. The project consists of multiple specialized bundles that provide different functionalities: | ||||||
|  |  | ||||||
|  | - **ChillMainBundle**: Core bundles that provide the foundation of the application | ||||||
|  | - **ChillPersonBundle**: Core bundles that provide the foundation of the bundles associated to person (which is the case for all other bundles) | ||||||
|  | - **ChillCalendarBundle**: Calendar and scheduling functionality | ||||||
|  | - **ChillDocStoreBundle** and **ChillDocGeneratorBundle**: Document management and generation | ||||||
|  | - **ChillActivityBundle**, **ChillEventBundle**, **ChillTaskBundle**: Activity and task tracking | ||||||
|  | - **ChillBudgetBundle**: Financial management | ||||||
|  | - **ChillThirdPartyBundle**: Integration with external systems | ||||||
|  | - **ChillCustomFieldsBundle**: Extensibility through custom fields | ||||||
|  | - **ChillReportBundle**: Save arbitrary reports about persons | ||||||
|  | - **ChillTicketBundle**: Record and track issues about persons | ||||||
|  |  | ||||||
|  | - And several other specialized bundles | ||||||
|  |  | ||||||
|  | ## Technology Stack | ||||||
|  |  | ||||||
|  | - **Backend**: PHP 8.3+, Symfony 5.4 | ||||||
|  | - **Frontend**: JavaScript/TypeScript, Vue.js 3, Bootstrap 5 | ||||||
|  | - **Build Tools**: Webpack Encore, Yarn | ||||||
|  | - **Database**: PostgreSQL with materialized views. We do not support other databases. | ||||||
|  | - **Other Services**: Redis, AMQP (RabbitMQ), SMTP | ||||||
|  |  | ||||||
|  | ## Project Structure | ||||||
|  |  | ||||||
|  | Note: This is a project that's existed for a long time, and throughout the years we've used multiple structures inside each bundle. When having the choice, the developers should choose the new structure. | ||||||
|  |  | ||||||
|  | The project follows a standard Symfony bundle structure: | ||||||
|  | - `/src/Bundle/`: Contains all the Chill bundles. The code is either at the root of the bundle directory, or within a `src/` directory (preferred). See psr4 mapping at the root's `composer.json`. | ||||||
|  | - each bundle comes with its own tests, either in the `Tests` directory (when the code is directly within the bundle directory (for instance `src/Bundle/ChillMainBundle/Tests`, `src/Bundle/ChillPersonBundle/Tests`)), or inside the `tests` directory, alongside the `src/` sub-directory (example: `src/Bundle/ChillWopiBundle/tests`) (this is the preferred way). | ||||||
|  | - `/docs/`: Contains project documentation | ||||||
|  |  | ||||||
|  | Each bundle typically has the following structure: | ||||||
|  |  | ||||||
|  | - `Controller/`: Contains controllers | ||||||
|  | - `Entity/`: Contains Doctrine entities | ||||||
|  | - `Repository/`: Contains Doctrine repositories | ||||||
|  | - `Resources/`: Contains views, translations, and public assets | ||||||
|  | - `DependencyInjection/`: Contains service configuration | ||||||
|  | - `Export/`: Contains services related to exports | ||||||
|  | - `Security/`: Contains services related to security. Most of the time, those are new voters, and so on. | ||||||
|  |  | ||||||
|  | ### A special word about TicketBundle | ||||||
|  |  | ||||||
|  | The ticket bundle is developed using a kind of "Command" pattern. The controller fills a "Command," and a "CommandHandler" handles this command. They are saved in the `src/Bundle/ChillTicketBundle/src/Action` directory. | ||||||
|  |  | ||||||
|  | ## Development Guidelines | ||||||
|  |  | ||||||
|  | ### Building and Configuration Instructions | ||||||
|  |  | ||||||
|  | All the commands should be run through the `symfony` command, which will configure the required variables. | ||||||
|  |  | ||||||
|  | For assets, we must ensure that we use node at version `^20.0.0`. This is done using `nvm use 20`. | ||||||
|  |  | ||||||
|  | #### Initial Setup | ||||||
|  |  | ||||||
|  | 1. **Clone the Repository**: | ||||||
|  |    ```bash | ||||||
|  |    git clone <repository-url> | ||||||
|  |    cd chill-bundles | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 2. **Install PHP Dependencies**: | ||||||
|  |    ```bash | ||||||
|  |    composer install | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 3. **Install JavaScript Dependencies**: | ||||||
|  |    ```bash | ||||||
|  |    nvm use 20 | ||||||
|  |    yarn install | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 4. **Configure Environment Variables**: | ||||||
|  |  | ||||||
|  |    - Create a `.env.local` file with minimal configuration | ||||||
|  |    ```bash | ||||||
|  |    echo "APP_ENV=dev" >> .env.local | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 5. Start the associated services (database, and so on): | ||||||
|  |    ```bash | ||||||
|  |    docker compose up -d | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 6. **Set Up the Database**: | ||||||
|  |    ```bash | ||||||
|  |    # Create the database | ||||||
|  |    symfony console doctrine:database:create | ||||||
|  |  | ||||||
|  |    # Run migrations | ||||||
|  |    symfony console doctrine:migrations:migrate | ||||||
|  |  | ||||||
|  |    # Load fixtures (optional) | ||||||
|  |    symfony console doctrine:fixtures:load | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 7. **Build Assets**: | ||||||
|  |    ```bash | ||||||
|  |    nvm use 20 | ||||||
|  |    yarn run encore dev | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 8. **Start the Development Server**: | ||||||
|  |    ```bash | ||||||
|  |    symfony server:start -d | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | #### Docker Setup | ||||||
|  |  | ||||||
|  | The project includes a Docker configuration for easier development: | ||||||
|  |  | ||||||
|  | 1. **Start Docker Services**: | ||||||
|  |    ```bash | ||||||
|  |    docker-compose up -d | ||||||
|  |    ``` | ||||||
|  |  | ||||||
|  | 2. **Access the Application**: | ||||||
|  |    - The application will be available at `http://localhost:8000` | ||||||
|  |    - PostgreSQL will be available at `localhost:5432` | ||||||
|  |    - Redis will be available at `localhost:6379` | ||||||
|  |  | ||||||
|  | #### Building Assets | ||||||
|  |  | ||||||
|  | Before submitting any changes, you should build the project to ensure that all assets are properly compiled: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | # For production | ||||||
|  | yarn run encore production | ||||||
|  |  | ||||||
|  | # For development with hot-reloading | ||||||
|  | yarn run encore dev --watch | ||||||
|  |  | ||||||
|  | # for development | ||||||
|  | yarn run encore dev | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Configuration Files | ||||||
|  |  | ||||||
|  | Key configuration files: | ||||||
|  |  | ||||||
|  | - `config/packages/*.yaml`: Symfony bundle configurations | ||||||
|  | - `webpack.config.js`: Webpack Encore configuration | ||||||
|  | - `composer.json`: PHP dependencies and scripts | ||||||
|  | - `package.json`: JavaScript dependencies and scripts | ||||||
|  | - `.env`: Default environment variables. Must usually not be updated: use `.env.local` instead. | ||||||
|  |  | ||||||
|  | ### Database migrations | ||||||
|  |  | ||||||
|  | Each time a doctrine entity is created, we generate migration to adapt the database. | ||||||
|  |  | ||||||
|  | The migration is created using the command `symfony console doctrine:migrations:diff --no-interaction --namespace <namespace>`, where the namespace is the relevant namespace for migration. As this is a bash script, remember to quote the `\` (`\` must become `\\` in your command). | ||||||
|  |  | ||||||
|  | Each bundle has his own namespace for migration (always ask me to confirm that command with a list of updated / created entities so that I can confirm to you that it is ok): | ||||||
|  |  | ||||||
|  | - `Chill\Bundle\ActivityBundle` writes migrations to `Chill\Migrations\Activity`; | ||||||
|  | - `Chill\Bundle\BudgetBundle` writes migrations to `Chill\Migrations\Budget`; | ||||||
|  | - `Chill\Bundle\CustomFieldsBundle` writes migrations to `Chill\Migrations\CustomFields`; | ||||||
|  | - `Chill\Bundle\DocGeneratorBundle` writes migrations to `Chill\Migrations\DocGenerator`; | ||||||
|  | - `Chill\Bundle\DocStoreBundle` writes migrations to `Chill\Migrations\DocStore`; | ||||||
|  | - `Chill\Bundle\EventBundle` writes migrations to `Chill\Migrations\Event`; | ||||||
|  | - `Chill\Bundle\CalendarBundle` writes migrations to `Chill\Migrations\Calendar`; | ||||||
|  | - `Chill\Bundle\FamilyMembersBundle` writes migrations to `Chill\Migrations\FamilyMembers`; | ||||||
|  | - `Chill\Bundle\FranceTravailApiBundle` writes migrations to `Chill\Migrations\FranceTravailApi`; | ||||||
|  | - `Chill\Bundle\JobBundle` writes migrations to `Chill\Migrations\Job`; | ||||||
|  | - `Chill\Bundle\MainBundle` writes migrations to `Chill\Migrations\Main`; | ||||||
|  | - `Chill\Bundle\PersonBundle` writes migrations to `Chill\Migrations\Person`; | ||||||
|  | - `Chill\Bundle\ReportBundle` writes migrations to `Chill\Migrations\Report`; | ||||||
|  | - `Chill\Bundle\TaskBundle` writes migrations to `Chill\Migrations\Task`; | ||||||
|  | - `Chill\Bundle\ThirdPartyBundle` writes migrations to `Chill\Migrations\ThirdParty`; | ||||||
|  | - `Chill\Bundle\TicketBundle` writes migrations to `Chill\Migrations\Ticket`; | ||||||
|  | - `Chill\Bundle\WopiBundle` writes migrations to `Chill\Migrations\Wopi`; | ||||||
|  |  | ||||||
|  | Once created the, comment's classes should be removed and a description of the changes made to the entities should be added to the migrations, using the `getDescription` method. The migration should not be cleaned by any artificial intelligence, as modifying this migration is error prone. | ||||||
|  |  | ||||||
|  | ### Guidelines related to code structure and requirements | ||||||
|  |  | ||||||
|  | #### Usage of clock | ||||||
|  |  | ||||||
|  | When we need to use a DateTime or DateTimeImmutable that need to express "now", we prefer the usage of | ||||||
|  | `Symfony\Component\Clock\ClockInterface`, where possible. This is usually not possible in doctrine entities, | ||||||
|  | where injection does not work when restoring an entity from a database, but usually possible in services. | ||||||
|  |  | ||||||
|  | In test, we use `\Symfony\Component\Clock\MockClock` which is an implementation of `Symfony\Component\Clock\ClockInterface` | ||||||
|  | where we have full and easy control of the date. | ||||||
|  |  | ||||||
|  | ### Testing Information | ||||||
|  |  | ||||||
|  | The project uses PHPUnit for testing. Each bundle has its own test suite, and there's also a global test suite at the root level. | ||||||
|  |  | ||||||
|  | #### Use of mock in tests | ||||||
|  |  | ||||||
|  | ##### General mocking | ||||||
|  |  | ||||||
|  | For creating mock, we prefer using prophecy (library phpspec/prophecy). | ||||||
|  |  | ||||||
|  | ##### Useful helpers and tips that avoid creating a mock | ||||||
|  |  | ||||||
|  | Some notable implementations that are test helpers and avoid creating a mock: | ||||||
|  |  | ||||||
|  | - `\Psr\Log\NullLogger`, an implementation of `\Psr\Log\LoggerInterface`; | ||||||
|  | - `\Symfony\Component\Clock\MockClock`, an implementation of `Symfony\Component\Clock\ClockInterface` (already mentioned above); | ||||||
|  | - `\Symfony\Component\HttpClient\MockHttpClient`, an implementation of `\Symfony\Contracts\HttpClient\HttpClientInterface`; | ||||||
|  | - When using `\Symfony\Component\Mailer\MailerInterface`, we can create the mock with "InMemoryTransport": | ||||||
|  |  | ||||||
|  |     ```php | ||||||
|  |     use Symfony\Component\Mailer\Transport\InMemoryTransport; | ||||||
|  |     use \Symfony\Component\Mailer\Mailer; | ||||||
|  |  | ||||||
|  |     $transport = new InMemoryTransport(); | ||||||
|  |     $mailer = new Mailer($transport); | ||||||
|  |  | ||||||
|  |     // After sending: | ||||||
|  |     $messages = $transport->getSent(); // array of SentMessage | ||||||
|  |     ``` | ||||||
|  | - When using `\Symfony\Contracts\EventDispatcher\EventDispatcherInterface`, we can use directly an instance of `\Symfony\Component\EventDispatcher\EventDispatcher`; | ||||||
|  |  | ||||||
|  | ##### When we prefer not creating a mock | ||||||
|  |  | ||||||
|  | - When we use Doctrine Entities related to the project, we prefer not to use a mock: we instantiate them directly (unless it requires too much code to write); | ||||||
|  |  | ||||||
|  | ##### Mocking final and readonly classes | ||||||
|  |  | ||||||
|  | Classes marked as final can't be mocked. To avoid that, either: | ||||||
|  |  | ||||||
|  | - we remove the `final` keyword from the class; | ||||||
|  | - we extract an interface from the final class. | ||||||
|  |  | ||||||
|  | This must be a decision made by a human, not by an AI. Every AI task must abort with an explicit message in that case. | ||||||
|  |  | ||||||
|  | #### Running Tests | ||||||
|  |  | ||||||
|  | The tests are run from the project's root (not from the bundle's root). | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | # Run all tests | ||||||
|  | vendor/bin/phpunit | ||||||
|  |  | ||||||
|  | # Run a specific test file | ||||||
|  | vendor/bin/phpunit path/to/TestFile.php | ||||||
|  |  | ||||||
|  | # Run a specific test method | ||||||
|  | vendor/bin/phpunit --filter methodName path/to/TestFile.php | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | When writing tests, only test specific files. Do not run all tests or the full | ||||||
|  | test suite. | ||||||
|  |  | ||||||
|  | #### Test Structure | ||||||
|  |  | ||||||
|  | Tests are organized by bundle and follow the same structure as the bundle itself: | ||||||
|  |  | ||||||
|  | - Unit tests: Test individual components in isolation | ||||||
|  | - Integration tests: Test components working together | ||||||
|  | - Functional tests: Test the application from the user's perspective | ||||||
|  |  | ||||||
|  | #### Writing Tests | ||||||
|  |  | ||||||
|  | Tests should be placed in the appropriate bundle's test directory. For example, tests for the TicketBundle should be placed in `src/Bundle/ChillTicketBundle/tests/`. | ||||||
|  |  | ||||||
|  | Here's an example of a simple entity test: | ||||||
|  |  | ||||||
|  | ```php | ||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace Chill\TicketBundle\Tests\Entity; | ||||||
|  |  | ||||||
|  | use Chill\TicketBundle\Entity\Ticket; | ||||||
|  | use PHPUnit\Framework\TestCase; | ||||||
|  |  | ||||||
|  | class TicketTest extends TestCase | ||||||
|  | { | ||||||
|  |     public function testGetAndSetExternalRef(): void | ||||||
|  |     { | ||||||
|  |         $ticket = new Ticket(); | ||||||
|  |         $externalRef = 'REF-123'; | ||||||
|  |  | ||||||
|  |         // Set the external reference | ||||||
|  |         $ticket->setExternalRef($externalRef); | ||||||
|  |  | ||||||
|  |         // Verify that getExternalRef returns the correct value | ||||||
|  |         self::assertSame($externalRef, $ticket->getExternalRef()); | ||||||
|  |  | ||||||
|  |         // Change the external reference | ||||||
|  |         $newExternalRef = 'REF-456'; | ||||||
|  |         $ticket->setExternalRef($newExternalRef); | ||||||
|  |  | ||||||
|  |         // Verify that getExternalRef returns the updated value | ||||||
|  |         self::assertSame($newExternalRef, $ticket->getExternalRef()); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Test Database | ||||||
|  |  | ||||||
|  | For tests that require a database, the project uses a postgresql database filled with fixtures (usage of doctrine-fixtures). You can configure a different database for testing in the `.env.test` file. | ||||||
|  |  | ||||||
|  | ### Code Quality Tools | ||||||
|  |  | ||||||
|  | The project uses several tools to maintain code quality: | ||||||
|  |  | ||||||
|  | #### PHP Code Style | ||||||
|  |  | ||||||
|  | The project uses PHP-CS-Fixer for code style. You can run it with: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | # Using the composer script | ||||||
|  | composer php-cs-fixer | ||||||
|  |  | ||||||
|  | # Or directly | ||||||
|  | php-cs-fixer fix --config=./.php-cs-fixer.dist.php | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Static Analysis | ||||||
|  |  | ||||||
|  | The project uses PHPStan for static analysis. You can run it with: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | # Using the composer script | ||||||
|  | composer phpstan | ||||||
|  |  | ||||||
|  | # Or directly | ||||||
|  | vendor/bin/phpstan analyse | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Automated Refactoring | ||||||
|  |  | ||||||
|  | The project uses Rector for automated refactoring. You can run it with: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | # Using the composer script | ||||||
|  | composer rector | ||||||
|  |  | ||||||
|  | # Or directly | ||||||
|  | vendor/bin/rector | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### JavaScript/TypeScript Linting | ||||||
|  |  | ||||||
|  | The project uses ESLint for JavaScript/TypeScript code quality. You can run it with: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | yarn run eslint | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Deployment | ||||||
|  |  | ||||||
|  | The project can be deployed in a production environment following Symfony's deployment guidelines. The documentation provides detailed instructions for setting up a production environment. | ||||||
|  |  | ||||||
|  | ### Production Deployment Checklist | ||||||
|  |  | ||||||
|  | 1. Set environment variables for production | ||||||
|  | 2. Optimize Composer autoloader: `composer install --no-dev --optimize-autoloader` | ||||||
|  | 3. Compile assets for production: `yarn run encore production` | ||||||
|  | 4. Clear and warm up the cache: `php bin/console cache:clear --env=prod` | ||||||
|  | 5. Run database migrations: `php bin/console doctrine:migrations:migrate --env=prod` | ||||||
|  |  | ||||||
|  | ## Documentation | ||||||
|  |  | ||||||
|  | Comprehensive documentation is available in the `/docs/` directory, including installation instructions, configuration guides, and operational procedures. | ||||||
|  |  | ||||||
|  | ## Development Workflow | ||||||
|  |  | ||||||
|  | 1. **Create a Feature Branch**: Always create a new branch for your feature or bugfix | ||||||
|  | 2. **Write Tests**: Write tests for your changes before implementing them | ||||||
|  | 3. **Implement Changes**: Implement your changes following the project's coding standards | ||||||
|  | 4. **Run Tests**: Make sure all tests pass | ||||||
|  | 5. **Run Code Quality Tools**: Make sure your code passes all code quality checks | ||||||
|  | 6. **Submit a Pull Request**: Submit a pull request for review | ||||||
|  |  | ||||||
|  | ## Debugging | ||||||
|  |  | ||||||
|  | The project includes several tools for debugging: | ||||||
|  |  | ||||||
|  | - **Symfony Profiler**: Available in development mode at `/_profiler` | ||||||
|  | - **Xdebug**: Configure your IDE to use Xdebug for step-by-step debugging | ||||||
|  | - **Symfony Debug Toolbar**: Available at the bottom of the page in development mode | ||||||
|  |  | ||||||
|  | ## Conclusion | ||||||
|  |  | ||||||
|  | When working with this project, Junie should: | ||||||
|  |  | ||||||
|  | 1. Understand the modular bundle structure and how the different components interact | ||||||
|  | 2. Build the project before submitting changes to ensure assets are properly compiled | ||||||
|  | 3. Run relevant tests to ensure changes don't break existing functionality | ||||||
|  | 4. Follow the established code style and patterns | ||||||
|  | 5. Use the provided tools for debugging and code quality | ||||||
							
								
								
									
										352
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										352
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -6,11 +6,359 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), | |||||||
| and is generated by [Changie](https://github.com/miniscruff/changie). | and is generated by [Changie](https://github.com/miniscruff/changie). | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## v4.6.1 - 2025-10-27 | ||||||
|  | ### Fixed | ||||||
|  | * Fix export case where no 'reason' is picked within the PersonHavingActivityBetweenDateFilter.php    | ||||||
|  |  | ||||||
|  | ## v4.6.0 - 2025-10-15 | ||||||
|  | ### Feature | ||||||
|  | * ([#423](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/423)) Create environment banner that can be activated and configured depending on the image deployed    | ||||||
|  | * ([#394](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/394)) Only show active workflow on the page "my tracked workflow"    | ||||||
|  | ### Fixed | ||||||
|  | * Fix loading of classLists in SocialIssuesAcc.vue, ensure elements are present    | ||||||
|  | * Fix the rendering of list of StoredObjectVersions, where there are kept version (before converting to pdf) and intermediate versions deleted    | ||||||
|  | * ([#434](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/434)) Notification: fix editing of sent notification by removing form.addressesEmails, a field that no longer exists    | ||||||
|  | * Fix loading of social issues and social actions within vue component    | ||||||
|  | * ([#446](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/446)) Add unique condition on stored object filename, with cleaning step on existing duplicate filenames    | ||||||
|  |  | ||||||
|  |   **Schema Change**: Drop or rename table or columns, or enforce new constraint that must be manually fixed | ||||||
|  | * [workflow] take permissions into account to delete the workflow attachment    | ||||||
|  | * ([#448](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/448)) Fix the execution of daily cronjob notification, when the previous last execution storage was invalid    | ||||||
|  |  | ||||||
|  | ## v4.5.1 - 2025-10-03 | ||||||
|  | ### Fixed | ||||||
|  | * Add missing javascript dependency    | ||||||
|  | * Add exception handling for conversion of attachment on sending external, when documens are already in pdf    | ||||||
|  |  | ||||||
|  | ## v4.5.0 - 2025-10-03 | ||||||
|  | ### Feature | ||||||
|  | * Only allow delete of attachment on workflows that are not final    | ||||||
|  | * Move up signature buttons on index workflow page for easier access    | ||||||
|  | * Filter out document from attachment list if it is the same as the workflow document    | ||||||
|  | * Block edition on attached document on workflow, if the workflow is finalized or sent external    | ||||||
|  | * Convert workflow's attached document to pdf while sending them external    | ||||||
|  | * After a signature is canceled or rejected, going to a waiting page until the post-process routines apply a workflow transition    | ||||||
|  | ### Fixed | ||||||
|  | * ([#426](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/426)) Increased the number of required characters when setting a new password in Chill from 9 to 14 - GDPR compliance    | ||||||
|  | * Fix permissions on storedObject which are subject by a workflow    | ||||||
|  | ### DX | ||||||
|  | * Introduce a WaitingScreen component to display a waiting screen    | ||||||
|  |  | ||||||
|  | ## v4.4.2 - 2025-09-12 | ||||||
|  | ### Fixed | ||||||
|  | * Fix document generation and workflow generation do not work on accompanying period work documents    | ||||||
|  |  | ||||||
|  | ## v4.4.1 - 2025-09-11 | ||||||
|  | ### Fixed | ||||||
|  | * fix translations in duplicate evaluation document modal and realign close modal button    | ||||||
|  |  | ||||||
|  | ## v4.4.0 - 2025-09-11 | ||||||
|  | ### Feature | ||||||
|  | * ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works    | ||||||
|  | * ([#369](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/369)) Duplication of a document to another accompanying period work evaluation    | ||||||
|  | * ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Fusion of two accompanying period works    | ||||||
|  | ### Fixed | ||||||
|  | * Fix display of 'duplicate' and 'merge' buttons in CRUD templates    | ||||||
|  | * Fix saving notification preferences in user's profile    | ||||||
|  |  | ||||||
|  | ## v4.3.0 - 2025-09-08 | ||||||
|  | ### Feature | ||||||
|  | * ([#409](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/409)) Add 45 and 60 min calendar ranges    | ||||||
|  | * Add a command to generate a list of permissions    | ||||||
|  | * ([#412](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/412)) Add an absence end date    | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | ### Fixed | ||||||
|  | * fix date formatting in calendar range display    | ||||||
|  | * Change route URL to avoid clash with person duplicate controller method    | ||||||
|  |  | ||||||
|  | ## v4.2.1 - 2025-09-03 | ||||||
|  | ### Fixed | ||||||
|  | * Fix exports to work with DirectExportInterface    | ||||||
|  | ### DX | ||||||
|  | * Improve error message when a stored object cannot be written on local disk | ||||||
|  |     | ||||||
|  |  | ||||||
|  | ## v4.2.0 - 2025-09-02 | ||||||
|  | ### Feature | ||||||
|  | * ([#64](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/64)) Add external identifier for a Person | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | * ([#330](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/330) Allow users to choose for which notifications they want to receive an email | ||||||
|  | ### Fixed | ||||||
|  | * ([#422](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/422)) Fixed html layout of pages for recovering password | ||||||
|  | * Fix typo in 'uncheckAll' script for centers selection | ||||||
|  | * Fix incorrect parameter name in event details link | ||||||
|  |  | ||||||
|  | ## v4.1.0 - 2025-08-26 | ||||||
|  | ### Feature | ||||||
|  | * ([#400](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/400)) Add filter to social actions list to filter out actions where current user intervenes    | ||||||
|  | * ([#399](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/399)) Show filters on list pages unfolded by default    | ||||||
|  | * Expansion of event module with new fields in the creation form: thematic, internal/external animator, responsable, and budget elements. Filtering options in the event list + adapted exports    | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | ### Fixed | ||||||
|  | * ([#382](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/382)) adjust display logic for accompanying period dates, include closing date if period is closed.    | ||||||
|  | * ([#384](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/384)) add min and step attributes to integer field in DateIntervalType    | ||||||
|  | ### UX | ||||||
|  | * Limit display of participations in event list    | ||||||
|  |  | ||||||
|  | ## v4.0.2 - 2025-07-09 | ||||||
|  | ### Fixed | ||||||
|  | * Fix add missing translation    | ||||||
|  | * Fix the transfer of evaluations and documents during of accompanyingperiodwork    | ||||||
|  |  | ||||||
|  | ## v4.0.1 - 2025-07-08 | ||||||
|  | ### Fixed | ||||||
|  | * Fix package.json for compilation | ||||||
|  |     | ||||||
|  |  | ||||||
|  | ## v4.0.0 - 2025-07-08 | ||||||
|  | ### Feature | ||||||
|  | * ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works | ||||||
|  | ### Fixed | ||||||
|  | * ([#390](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/390)) Display the list of participant in the results, even if there is only one participant and that the search result display the requestor | ||||||
|  | * Fix admin entity edit actions for event admin entities and activity reason (category) entities | ||||||
|  | * Fix translations for social action fields in admin form: results, goals, evaluations | ||||||
|  | ### DX | ||||||
|  | * Rewrite exports to run them asynchronously | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | * Allow TranslatableMessage in flash messages | ||||||
|  | ### UX | ||||||
|  | * Improve labeling of fields in person resource creation form | ||||||
|  |  | ||||||
|  |  | ||||||
|  | **Release notes** | ||||||
|  |  | ||||||
|  | - Add new methods to serialize data using the rector rule | ||||||
|  | - Remove all references to the Request in filters, aggregators, filters. Actually, the most frequent occurence is `$security->getUser()`. | ||||||
|  | - Refactor manually the initializeQuery method | ||||||
|  | - Remove the injection of ExportManager into the constructor of each export element: | ||||||
|  |  | ||||||
|  |   ```diff | ||||||
|  |  | ||||||
|  |   - class MyFormatter implements FormatterInterface | ||||||
|  |   + class MyFormatter implements FormatterInterface, \Chill\MainBundle\Export\ExportManagerAwareInterface | ||||||
|  |   { | ||||||
|  |   +    use \Chill\MainBundle\Export\Helper\ExportManagerAwareTrait; | ||||||
|  |  | ||||||
|  |   -    public function __construct(private ExportManager $exportmanager) {} | ||||||
|  |  | ||||||
|  |        public function MyMethod(): void | ||||||
|  |        { | ||||||
|  |   -          $this->exportManager->getFilter('alias'); | ||||||
|  |   +          $this->getExportManager()->getFilter('alias'); | ||||||
|  |        } | ||||||
|  |   } | ||||||
|  |   ``` | ||||||
|  | - configure messenger to handle export in a queue: | ||||||
|  |  | ||||||
|  | ```diff | ||||||
|  | # config/packages/messenger.yaml | ||||||
|  | framework: | ||||||
|  |     messenger: | ||||||
|  |         routing: | ||||||
|  | +            'Chill\MainBundle\Export\Messenger\ExportRequestGenerationMessage': priority | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | - add missing methods to exports, aggregators, filters, formatter: | ||||||
|  |  | ||||||
|  |   ```php | ||||||
|  |   public function normalizeFormData(array $formData): array; | ||||||
|  |  | ||||||
|  |   public function denormalizeFormData(array $formData, int $fromVersion): array; | ||||||
|  |   ``` | ||||||
|  |  | ||||||
|  |   There are rector rules to generate those methods: | ||||||
|  |  | ||||||
|  |   - `Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector` | ||||||
|  |  | ||||||
|  |   See: | ||||||
|  |  | ||||||
|  |   ```php | ||||||
|  |   // upgrade chill exports | ||||||
|  |   $rectorConfig->rules([\Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector::class]); | ||||||
|  |   ``` | ||||||
|  |  | ||||||
|  |   This rule will create most of the work necessary, but some manuals changes are still necessary: | ||||||
|  |  | ||||||
|  |   - we must set manually the correct repository for method `denormalizeDoctrineEntity`; | ||||||
|  |   - when the form data contains some entities, and the form type is not one of EntityType::class, PickUserDynamicType::class, PickUserLocationType::class, PickThirdpartyDynamicType::class, Select2CountryType::class, then we must handle the normalization manually (using the `\Chill\MainBundle\Export\ExportDataNormalizerTrait`) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## v3.12.1 - 2025-06-30 | ||||||
|  | ### Fixed | ||||||
|  | * Fix loading of the list of documents    | ||||||
|  |  | ||||||
|  | ## v3.12.0 - 2025-06-30 | ||||||
|  | ### Feature | ||||||
|  | * ([#377](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/377)) Add the document file name to the document title when a user upload a document, unless there is already a document title.    | ||||||
|  | * Add desactivation date for social action and issue csv export    | ||||||
|  | * Add Emoji and Fullscreen feature to ckeditor configuration    | ||||||
|  | * ([#321](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/321)) Create editor which allow us to toggle between rich and simple text editor    | ||||||
|  | * Do not remove workflow which are automatically canceled after staling for more than 30 days    | ||||||
|  | ### Fixed | ||||||
|  | * ([#376](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/376)) trying to prevent bug of typeerror in doc-history + improved display of document history    | ||||||
|  | * ([#381](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/381)) Display previous participation in acc course work even if the person has left the acc course    | ||||||
|  | * ([#372](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/372)) Fix display of text in calendar events    | ||||||
|  | * Add missing translation for user_group.no_user_groups    | ||||||
|  | * Fix admin entity edit actions for event admin entities and activity reason (category) entities    | ||||||
|  | * ([#392](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/392)) Allow null and cast as string to setContent method for NewsItem | ||||||
|  |     | ||||||
|  | * ([#393](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/393)) Doc Generation: the "dump only" method send the document as an email attachment.    | ||||||
|  | ### DX | ||||||
|  | * ([#352](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/352)) Remove dead code for wopi-link module    | ||||||
|  | * Replace library node-sass by sass, and upgrade bootstrap to version 5.3 (yarn upgrade / install is required)    | ||||||
|  | ### UX | ||||||
|  | * ([#374](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/374)) Remove default filter in_progress for the page 'my tasks'; Allows for new tasks to be displayed upon opening of the page    | ||||||
|  | * Improve labeling of fields in person resource creation form    | ||||||
|  |  | ||||||
|  | ## v3.11.0 - 2025-04-17 | ||||||
|  | ### Feature | ||||||
|  | * ([#365](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/365)) Add counters of actions and activities, with 2 boxes to (1) show the number of active actions on total actions and (2) show the number of activities in a accompanying period, and pills in menus for showing the number of active actions and the number of activities. | ||||||
|  | * ([#364](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/364)) Added a second phone number "telephone2" to the thirdParty entity. Adapted twig templates and vuejs apps to handle this phone number | ||||||
|  |  | ||||||
|  |   **Schema Change**: Add columns or tables | ||||||
|  | * Signature: add a button to go directly to the signature zone, even if there is only one | ||||||
|  | ### Fixed | ||||||
|  | * Fixed wrong translations in the on-the-fly for creation of thirdParty | ||||||
|  | * Fixed update of phone number in on-the-fly edition of thirdParty | ||||||
|  | * Fixed closing of modal when editing thirdParty in accompanying course works | ||||||
|  | * Shorten the delay between two execution of AccompanyingPeriodStepChangeCronjob, to ensure at least one execution in a day | ||||||
|  | * ([#102](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/102)) Fix display of title in document list | ||||||
|  | * When cleaning the old stored object versions, do not throw an error if the stored object is not found on disk | ||||||
|  | * Add consistent log prefix and key to logs when stale workflows are automatically canceled | ||||||
|  | * ([#380](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/380)) Remove the "not null" validation constraint on recently added properties on HouseholdComposition | ||||||
|  |  | ||||||
|  | ### DX | ||||||
|  | * Add new chill-col style for displaying title and aside in a flex table | ||||||
|  |  | ||||||
|  | ## v3.10.3 - 2025-03-18 | ||||||
|  | ### DX | ||||||
|  | * Eslint fixes    | ||||||
|  |  | ||||||
|  | ## v3.10.2 - 2025-03-17 | ||||||
|  | ### Fixed | ||||||
|  | * Replace a ts-expect-error with a ts-ignore    | ||||||
|  |  | ||||||
|  | ## v3.10.1 - 2025-03-17 | ||||||
|  | ### DX | ||||||
|  | * Remove yarn dependency to symfony/ux-translator, to ease the build process | ||||||
|  |  | ||||||
|  | ## v3.10.0 - 2025-03-17 | ||||||
|  | ### Feature | ||||||
|  | * ([#363](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/363)) Display social actions grouped per social issue within activity form    | ||||||
|  | ### Fixed | ||||||
|  | * ([#362](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/362)) Fix Dependency Injection, which prevented to save the CalendarRange    | ||||||
|  | * ([#368](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/368)) fix search query for user groups    | ||||||
|  |  | ||||||
|  | ## v3.9.2 - 2025-02-27 | ||||||
|  | ### Fixed | ||||||
|  | * Use fetchResults method to fetch all social issues instead of only the first page    | ||||||
|  |  | ||||||
|  | ## v3.9.1 - 2025-02-27 | ||||||
|  | ### Fixed | ||||||
|  | * Fix post/patch request with missing 'type' property for gender    | ||||||
|  |  | ||||||
|  | ## v3.9.0 - 2025-02-27 | ||||||
|  | ### Feature | ||||||
|  | * ([#349](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/349)) Suggest all referrers within actions of the accompanying period when creating an activity    | ||||||
|  | * ([#343](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/343)) Add possibility to export a csv with all social issues and social actions    | ||||||
|  | * ([#360](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/360)) Restore document to previous kept version when a workflow is canceled    | ||||||
|  | * ([#341](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/341)) Add a list of third parties from within the admin (csv download)    | ||||||
|  | ### Fixed | ||||||
|  | * fix generation of document with accompanying period context, and list of activities and works    | ||||||
|  | ### DX | ||||||
|  | * ([#333](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/333)) Create an unique source of trust for translations    | ||||||
|  |  | ||||||
|  | ## v3.8.2 - 2025-02-10 | ||||||
|  | ### Fixed | ||||||
|  | * ([#358](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/358)) Remove "filter" button on list of documents in the workflow's "add attachement" modal    | ||||||
|  |  | ||||||
|  | ## v3.8.1 - 2025-02-05 | ||||||
|  | ### Fixed | ||||||
|  | * Fix household link in the parcours banner    | ||||||
|  |  | ||||||
|  | ## v3.8.0 - 2025-02-03 | ||||||
|  | ### Feature | ||||||
|  | * Improve the UX of the news item admin form to prevent wrong usage | ||||||
|  | * ([#319](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/319)) Notification list: display the concerned person's badges in the list | ||||||
|  | * ([#320](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/320)) Show the first 3 persons directly in the accompanying period's banner | ||||||
|  | * ([#334](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/334)) Suggest current user when creating an activity | ||||||
|  | * ([#331](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/331)) Add attachments to workflows | ||||||
|  | ### Fixed | ||||||
|  | * ([#350](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/350)) Add validation error to manual selection of person in PersonDuplicateController | ||||||
|  | * ([#354](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/354)) Fix document category creation | ||||||
|  | * ([#351](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/351)) Add definitive whitespace between span elements in vue PersonText component | ||||||
|  |  | ||||||
|  | ## v3.7.1 - 2025-01-21 | ||||||
|  | ### Fixed | ||||||
|  | * Fix legacy configuration processor for notifier component    | ||||||
|  |  | ||||||
| ## v3.7.0 - 2025-01-21 | ## v3.7.0 - 2025-01-21 | ||||||
| ### Feature | ### Feature | ||||||
| * Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider.     | * Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider. | ||||||
| ### Fixed | ### Fixed | ||||||
| * ([#348](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/348)) [export] Fix aggregation of referrer's scope and job: fix the date range comparison    | * ([#348](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/348)) [export] Fix aggregation of referrer's scope and job: fix the date range comparison | ||||||
|  |  | ||||||
|  | ### Warning on configuration of Notifier component | ||||||
|  |  | ||||||
|  | If installed in an symfony app where the recipes are activated, this configuration should be added automatically: | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | framework: | ||||||
|  |     notifier: | ||||||
|  |         chatter_transports: | ||||||
|  |         texter_transports: | ||||||
|  |             ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||||
|  |         channel_policy: | ||||||
|  |             # use chat/slack, chat/telegram, sms/twilio or sms/nexmo | ||||||
|  |             urgent: ['email'] | ||||||
|  |             high: ['email'] | ||||||
|  |             medium: ['email'] | ||||||
|  |             low: ['email'] | ||||||
|  |         admin_recipients: | ||||||
|  |             - { email: admin@example.com } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Actually, you should either: | ||||||
|  |  | ||||||
|  | - remove the configuration of ovhcloud added by the recipe | ||||||
|  | - or remove the previous configuration of chill, to avoid keeping legacy configuration | ||||||
|  |  | ||||||
|  | #### Remove the added configuration and keep the legacy configuration | ||||||
|  |  | ||||||
|  | To remove the configuration: | ||||||
|  |  | ||||||
|  | ```diff | ||||||
|  | framework: | ||||||
|  |     notifier: | ||||||
|  |         chatter_transports: | ||||||
|  |         texter_transports: | ||||||
|  | -            ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | In that case, the previous configuration, which was stored under the `chill_main.short_messages.dsn` will be reconfigured into the Notifier component's configuration. | ||||||
|  |  | ||||||
|  | #### Properly configure SMS | ||||||
|  |  | ||||||
|  | You can also properly configure it, as [described in the OVH cloud provider repository](https://github.com/symfony/ovh-cloud-notifier/tree/5.4?tab=readme-ov-file#dsn-example) (where the scheme is `ovhcloud`): | ||||||
|  |  | ||||||
|  | **NOTE**: You have access to all notifier available with the [Notifier component](https://symfony.com/doc/current/notifier.html#notifier-sms-channel). You are not restricted to use OVH as a provider. | ||||||
|  |  | ||||||
|  | ```diff | ||||||
|  | framework: | ||||||
|  |     notifier: | ||||||
|  |         chatter_transports: | ||||||
|  |         texter_transports: | ||||||
|  | +            ovhcloud: '%env(OVHCLOUD_DSN)%' # this value should be located in a variable, and have `ovhcloud://` as a scheme | ||||||
|  |  | ||||||
|  | chill_main: | ||||||
|  | -    short_messages: | ||||||
|  | -        dsn: '%env(string:SHORT_MESSAGE_DSN)%' | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ## v3.6.0 - 2025-01-16 | ## v3.6.0 - 2025-01-16 | ||||||
| ### Feature | ### Feature | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								assets/translator.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								assets/translator.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | import { trans, setLocale, setLocaleFallbacks } from "./ux-translator"; | ||||||
|  |  | ||||||
|  | setLocaleFallbacks({"en": "fr", "nl": "fr", "fr": "en"}); | ||||||
|  | setLocale('fr'); | ||||||
|  |  | ||||||
|  | export { trans }; | ||||||
|  | export * from '../var/translations'; | ||||||
							
								
								
									
										3
									
								
								assets/ux-translator/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								assets/ux-translator/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | This directory import the symfony ux-translator files directly into chill-bundles. | ||||||
|  |  | ||||||
|  | This remove the yarn dependencies from the real package, which breaks our installation. | ||||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/formatters/formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/formatters/formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export declare function format(id: string, parameters: Record<string, string | number>, locale: string): string; | ||||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/formatters/intl-formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/formatters/intl-formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export declare function formatIntl(id: string, parameters: Record<string, string | number>, locale: string): string; | ||||||
							
								
								
									
										27
									
								
								assets/ux-translator/dist/translator.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								assets/ux-translator/dist/translator.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | export type DomainType = string; | ||||||
|  | export type LocaleType = string; | ||||||
|  | export type TranslationsType = Record<DomainType, { | ||||||
|  |     parameters: ParametersType; | ||||||
|  | }>; | ||||||
|  | export type NoParametersType = Record<string, never>; | ||||||
|  | export type ParametersType = Record<string, string | number | Date> | NoParametersType; | ||||||
|  | export type RemoveIntlIcuSuffix<T> = T extends `${infer U}+intl-icu` ? U : T; | ||||||
|  | export type DomainsOf<M> = M extends Message<infer Translations, LocaleType> ? keyof Translations : never; | ||||||
|  | export type LocaleOf<M> = M extends Message<TranslationsType, infer Locale> ? Locale : never; | ||||||
|  | export type ParametersOf<M, D extends DomainType> = M extends Message<infer Translations, LocaleType> ? Translations[D] extends { | ||||||
|  |     parameters: infer Parameters; | ||||||
|  | } ? Parameters : never : never; | ||||||
|  | export interface Message<Translations extends TranslationsType, Locale extends LocaleType> { | ||||||
|  |     id: string; | ||||||
|  |     translations: { | ||||||
|  |         [domain in DomainType]: { | ||||||
|  |             [locale in Locale]: string; | ||||||
|  |         }; | ||||||
|  |     }; | ||||||
|  | } | ||||||
|  | export declare function setLocale(locale: LocaleType | null): void; | ||||||
|  | export declare function getLocale(): LocaleType; | ||||||
|  | export declare function throwWhenNotFound(enabled: boolean): void; | ||||||
|  | export declare function setLocaleFallbacks(localeFallbacks: Record<LocaleType, LocaleType>): void; | ||||||
|  | export declare function getLocaleFallbacks(): Record<LocaleType, LocaleType>; | ||||||
|  | export declare function trans<M extends Message<TranslationsType, LocaleType>, D extends DomainsOf<M>, P extends ParametersOf<M, D>>(...args: P extends NoParametersType ? [message: M, parameters?: P, domain?: RemoveIntlIcuSuffix<D>, locale?: LocaleOf<M>] : [message: M, parameters: P, domain?: RemoveIntlIcuSuffix<D>, locale?: LocaleOf<M>]): string; | ||||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/translator_controller.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/translator_controller.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export * from './translator'; | ||||||
							
								
								
									
										283
									
								
								assets/ux-translator/dist/translator_controller.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										283
									
								
								assets/ux-translator/dist/translator_controller.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,283 @@ | |||||||
|  | import { IntlMessageFormat } from 'intl-messageformat'; | ||||||
|  |  | ||||||
|  | function strtr(string, replacePairs) { | ||||||
|  |     const regex = Object.entries(replacePairs).map(([from]) => { | ||||||
|  |         return from.replace(/([-[\]{}()*+?.\\^$|#,])/g, '\\$1'); | ||||||
|  |     }); | ||||||
|  |     if (regex.length === 0) { | ||||||
|  |         return string; | ||||||
|  |     } | ||||||
|  |     return string.replace(new RegExp(regex.join('|'), 'g'), (matched) => replacePairs[matched].toString()); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function format(id, parameters, locale) { | ||||||
|  |     if (null === id || '' === id) { | ||||||
|  |         return ''; | ||||||
|  |     } | ||||||
|  |     if (typeof parameters['%count%'] === 'undefined' || Number.isNaN(parameters['%count%'])) { | ||||||
|  |         return strtr(id, parameters); | ||||||
|  |     } | ||||||
|  |     const number = Number(parameters['%count%']); | ||||||
|  |     let parts = []; | ||||||
|  |     if (/^\|+$/.test(id)) { | ||||||
|  |         parts = id.split('|'); | ||||||
|  |     } | ||||||
|  |     else { | ||||||
|  |         parts = id.match(/(?:\|\||[^|])+/g) || []; | ||||||
|  |     } | ||||||
|  |     const intervalRegex = /^(?<interval>({\s*(-?\d+(\.\d+)?[\s*,\s*\-?\d+(.\d+)?]*)\s*})|(?<left_delimiter>[[\]])\s*(?<left>-Inf|-?\d+(\.\d+)?)\s*,\s*(?<right>\+?Inf|-?\d+(\.\d+)?)\s*(?<right_delimiter>[[\]]))\s*(?<message>.*?)$/s; | ||||||
|  |     const standardRules = []; | ||||||
|  |     for (let part of parts) { | ||||||
|  |         part = part.trim().replace(/\|\|/g, '|'); | ||||||
|  |         const matches = part.match(intervalRegex); | ||||||
|  |         if (matches) { | ||||||
|  |             const matchGroups = matches.groups || {}; | ||||||
|  |             if (matches[2]) { | ||||||
|  |                 for (const n of matches[3].split(',')) { | ||||||
|  |                     if (number === Number(n)) { | ||||||
|  |                         return strtr(matchGroups.message, parameters); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 const leftNumber = '-Inf' === matchGroups.left ? Number.NEGATIVE_INFINITY : Number(matchGroups.left); | ||||||
|  |                 const rightNumber = ['Inf', '+Inf'].includes(matchGroups.right) | ||||||
|  |                     ? Number.POSITIVE_INFINITY | ||||||
|  |                     : Number(matchGroups.right); | ||||||
|  |                 if (('[' === matchGroups.left_delimiter ? number >= leftNumber : number > leftNumber) && | ||||||
|  |                     (']' === matchGroups.right_delimiter ? number <= rightNumber : number < rightNumber)) { | ||||||
|  |                     return strtr(matchGroups.message, parameters); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             const ruleMatch = part.match(/^\w+:\s*(.*?)$/); | ||||||
|  |             standardRules.push(ruleMatch ? ruleMatch[1] : part); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     const position = getPluralizationRule(number, locale); | ||||||
|  |     if (typeof standardRules[position] === 'undefined') { | ||||||
|  |         if (1 === parts.length && typeof standardRules[0] !== 'undefined') { | ||||||
|  |             return strtr(standardRules[0], parameters); | ||||||
|  |         } | ||||||
|  |         throw new Error(`Unable to choose a translation for "${id}" with locale "${locale}" for value "${number}". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %count% apples").`); | ||||||
|  |     } | ||||||
|  |     return strtr(standardRules[position], parameters); | ||||||
|  | } | ||||||
|  | function getPluralizationRule(number, locale) { | ||||||
|  |     number = Math.abs(number); | ||||||
|  |     let _locale = locale; | ||||||
|  |     if (locale === 'pt_BR' || locale === 'en_US_POSIX') { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  |     _locale = _locale.length > 3 ? _locale.substring(0, _locale.indexOf('_')) : _locale; | ||||||
|  |     switch (_locale) { | ||||||
|  |         case 'af': | ||||||
|  |         case 'bn': | ||||||
|  |         case 'bg': | ||||||
|  |         case 'ca': | ||||||
|  |         case 'da': | ||||||
|  |         case 'de': | ||||||
|  |         case 'el': | ||||||
|  |         case 'en': | ||||||
|  |         case 'en_US_POSIX': | ||||||
|  |         case 'eo': | ||||||
|  |         case 'es': | ||||||
|  |         case 'et': | ||||||
|  |         case 'eu': | ||||||
|  |         case 'fa': | ||||||
|  |         case 'fi': | ||||||
|  |         case 'fo': | ||||||
|  |         case 'fur': | ||||||
|  |         case 'fy': | ||||||
|  |         case 'gl': | ||||||
|  |         case 'gu': | ||||||
|  |         case 'ha': | ||||||
|  |         case 'he': | ||||||
|  |         case 'hu': | ||||||
|  |         case 'is': | ||||||
|  |         case 'it': | ||||||
|  |         case 'ku': | ||||||
|  |         case 'lb': | ||||||
|  |         case 'ml': | ||||||
|  |         case 'mn': | ||||||
|  |         case 'mr': | ||||||
|  |         case 'nah': | ||||||
|  |         case 'nb': | ||||||
|  |         case 'ne': | ||||||
|  |         case 'nl': | ||||||
|  |         case 'nn': | ||||||
|  |         case 'no': | ||||||
|  |         case 'oc': | ||||||
|  |         case 'om': | ||||||
|  |         case 'or': | ||||||
|  |         case 'pa': | ||||||
|  |         case 'pap': | ||||||
|  |         case 'ps': | ||||||
|  |         case 'pt': | ||||||
|  |         case 'so': | ||||||
|  |         case 'sq': | ||||||
|  |         case 'sv': | ||||||
|  |         case 'sw': | ||||||
|  |         case 'ta': | ||||||
|  |         case 'te': | ||||||
|  |         case 'tk': | ||||||
|  |         case 'ur': | ||||||
|  |         case 'zu': | ||||||
|  |             return 1 === number ? 0 : 1; | ||||||
|  |         case 'am': | ||||||
|  |         case 'bh': | ||||||
|  |         case 'fil': | ||||||
|  |         case 'fr': | ||||||
|  |         case 'gun': | ||||||
|  |         case 'hi': | ||||||
|  |         case 'hy': | ||||||
|  |         case 'ln': | ||||||
|  |         case 'mg': | ||||||
|  |         case 'nso': | ||||||
|  |         case 'pt_BR': | ||||||
|  |         case 'ti': | ||||||
|  |         case 'wa': | ||||||
|  |             return number < 2 ? 0 : 1; | ||||||
|  |         case 'be': | ||||||
|  |         case 'bs': | ||||||
|  |         case 'hr': | ||||||
|  |         case 'ru': | ||||||
|  |         case 'sh': | ||||||
|  |         case 'sr': | ||||||
|  |         case 'uk': | ||||||
|  |             return 1 === number % 10 && 11 !== number % 100 | ||||||
|  |                 ? 0 | ||||||
|  |                 : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20) | ||||||
|  |                     ? 1 | ||||||
|  |                     : 2; | ||||||
|  |         case 'cs': | ||||||
|  |         case 'sk': | ||||||
|  |             return 1 === number ? 0 : number >= 2 && number <= 4 ? 1 : 2; | ||||||
|  |         case 'ga': | ||||||
|  |             return 1 === number ? 0 : 2 === number ? 1 : 2; | ||||||
|  |         case 'lt': | ||||||
|  |             return 1 === number % 10 && 11 !== number % 100 | ||||||
|  |                 ? 0 | ||||||
|  |                 : number % 10 >= 2 && (number % 100 < 10 || number % 100 >= 20) | ||||||
|  |                     ? 1 | ||||||
|  |                     : 2; | ||||||
|  |         case 'sl': | ||||||
|  |             return 1 === number % 100 ? 0 : 2 === number % 100 ? 1 : 3 === number % 100 || 4 === number % 100 ? 2 : 3; | ||||||
|  |         case 'mk': | ||||||
|  |             return 1 === number % 10 ? 0 : 1; | ||||||
|  |         case 'mt': | ||||||
|  |             return 1 === number | ||||||
|  |                 ? 0 | ||||||
|  |                 : 0 === number || (number % 100 > 1 && number % 100 < 11) | ||||||
|  |                     ? 1 | ||||||
|  |                     : number % 100 > 10 && number % 100 < 20 | ||||||
|  |                         ? 2 | ||||||
|  |                         : 3; | ||||||
|  |         case 'lv': | ||||||
|  |             return 0 === number ? 0 : 1 === number % 10 && 11 !== number % 100 ? 1 : 2; | ||||||
|  |         case 'pl': | ||||||
|  |             return 1 === number | ||||||
|  |                 ? 0 | ||||||
|  |                 : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 12 || number % 100 > 14) | ||||||
|  |                     ? 1 | ||||||
|  |                     : 2; | ||||||
|  |         case 'cy': | ||||||
|  |             return 1 === number ? 0 : 2 === number ? 1 : 8 === number || 11 === number ? 2 : 3; | ||||||
|  |         case 'ro': | ||||||
|  |             return 1 === number ? 0 : 0 === number || (number % 100 > 0 && number % 100 < 20) ? 1 : 2; | ||||||
|  |         case 'ar': | ||||||
|  |             return 0 === number | ||||||
|  |                 ? 0 | ||||||
|  |                 : 1 === number | ||||||
|  |                     ? 1 | ||||||
|  |                     : 2 === number | ||||||
|  |                         ? 2 | ||||||
|  |                         : number % 100 >= 3 && number % 100 <= 10 | ||||||
|  |                             ? 3 | ||||||
|  |                             : number % 100 >= 11 && number % 100 <= 99 | ||||||
|  |                                 ? 4 | ||||||
|  |                                 : 5; | ||||||
|  |         default: | ||||||
|  |             return 0; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function formatIntl(id, parameters, locale) { | ||||||
|  |     if (id === '') { | ||||||
|  |         return ''; | ||||||
|  |     } | ||||||
|  |     const intlMessage = new IntlMessageFormat(id, [locale.replace('_', '-')], undefined, { ignoreTag: true }); | ||||||
|  |     parameters = { ...parameters }; | ||||||
|  |     Object.entries(parameters).forEach(([key, value]) => { | ||||||
|  |         if (key.includes('%') || key.includes('{')) { | ||||||
|  |             delete parameters[key]; | ||||||
|  |             parameters[key.replace(/[%{} ]/g, '').trim()] = value; | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  |     return intlMessage.format(parameters); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | let _locale = null; | ||||||
|  | let _localeFallbacks = {}; | ||||||
|  | let _throwWhenNotFound = false; | ||||||
|  | function setLocale(locale) { | ||||||
|  |     _locale = locale; | ||||||
|  | } | ||||||
|  | function getLocale() { | ||||||
|  |     return (_locale || | ||||||
|  |         document.documentElement.getAttribute('data-symfony-ux-translator-locale') || | ||||||
|  |         (document.documentElement.lang ? document.documentElement.lang.replace('-', '_') : null) || | ||||||
|  |         'en'); | ||||||
|  | } | ||||||
|  | function throwWhenNotFound(enabled) { | ||||||
|  |     _throwWhenNotFound = enabled; | ||||||
|  | } | ||||||
|  | function setLocaleFallbacks(localeFallbacks) { | ||||||
|  |     _localeFallbacks = localeFallbacks; | ||||||
|  | } | ||||||
|  | function getLocaleFallbacks() { | ||||||
|  |     return _localeFallbacks; | ||||||
|  | } | ||||||
|  | function trans(message, parameters = {}, domain = 'messages', locale = null) { | ||||||
|  |     if (typeof domain === 'undefined') { | ||||||
|  |         domain = 'messages'; | ||||||
|  |     } | ||||||
|  |     if (typeof locale === 'undefined' || null === locale) { | ||||||
|  |         locale = getLocale(); | ||||||
|  |     } | ||||||
|  |     if (typeof message.translations === 'undefined') { | ||||||
|  |         return message.id; | ||||||
|  |     } | ||||||
|  |     const localesFallbacks = getLocaleFallbacks(); | ||||||
|  |     const translationsIntl = message.translations[`${domain}+intl-icu`]; | ||||||
|  |     if (typeof translationsIntl !== 'undefined') { | ||||||
|  |         while (typeof translationsIntl[locale] === 'undefined') { | ||||||
|  |             locale = localesFallbacks[locale]; | ||||||
|  |             if (!locale) { | ||||||
|  |                 break; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (locale) { | ||||||
|  |             return formatIntl(translationsIntl[locale], parameters, locale); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     const translations = message.translations[domain]; | ||||||
|  |     if (typeof translations !== 'undefined') { | ||||||
|  |         while (typeof translations[locale] === 'undefined') { | ||||||
|  |             locale = localesFallbacks[locale]; | ||||||
|  |             if (!locale) { | ||||||
|  |                 break; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (locale) { | ||||||
|  |             return format(translations[locale], parameters, locale); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     if (_throwWhenNotFound) { | ||||||
|  |         throw new Error(`No translation message found with id "${message.id}".`); | ||||||
|  |     } | ||||||
|  |     return message.id; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export { getLocale, getLocaleFallbacks, setLocale, setLocaleFallbacks, throwWhenNotFound, trans }; | ||||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/utils.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/utils.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export declare function strtr(string: string, replacePairs: Record<string, string | number>): string; | ||||||
							
								
								
									
										34
									
								
								assets/ux-translator/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/ux-translator/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | { | ||||||
|  |     "name": "@symfony/ux-translator", | ||||||
|  |     "description": "Symfony Translator for JavaScript", | ||||||
|  |     "license": "MIT", | ||||||
|  |     "version": "1.0.0", | ||||||
|  |     "main": "dist/translator_controller.js", | ||||||
|  |     "types": "dist/translator_controller.d.ts", | ||||||
|  |     "scripts": { | ||||||
|  |         "build": "node ../../../bin/build_package.js .", | ||||||
|  |         "watch": "node ../../../bin/build_package.js . --watch", | ||||||
|  |         "test": "../../../bin/test_package.sh .", | ||||||
|  |         "check": "biome check", | ||||||
|  |         "ci": "biome ci" | ||||||
|  |     }, | ||||||
|  |     "symfony": { | ||||||
|  |         "importmap": { | ||||||
|  |             "intl-messageformat": "^10.5.11", | ||||||
|  |             "@symfony/ux-translator": "path:%PACKAGE%/dist/translator_controller.js", | ||||||
|  |             "@app/translations": "path:var/translations/index.js", | ||||||
|  |             "@app/translations/configuration": "path:var/translations/configuration.js" | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  |     "peerDependencies": { | ||||||
|  |         "intl-messageformat": "^10.5.11" | ||||||
|  |     }, | ||||||
|  |     "peerDependenciesMeta": { | ||||||
|  |         "intl-messageformat": { | ||||||
|  |             "optional": false | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  |     "devDependencies": { | ||||||
|  |         "intl-messageformat": "^10.5.11" | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -75,6 +75,7 @@ | |||||||
|         "symfony/templating": "^5.4", |         "symfony/templating": "^5.4", | ||||||
|         "symfony/translation": "^5.4", |         "symfony/translation": "^5.4", | ||||||
|         "symfony/twig-bundle": "^5.4", |         "symfony/twig-bundle": "^5.4", | ||||||
|  |         "symfony/ux-translator": "^2.22", | ||||||
|         "symfony/validator": "^5.4", |         "symfony/validator": "^5.4", | ||||||
|         "symfony/webpack-encore-bundle": "^1.11", |         "symfony/webpack-encore-bundle": "^1.11", | ||||||
|         "symfony/workflow": "^5.4", |         "symfony/workflow": "^5.4", | ||||||
|   | |||||||
| @@ -36,4 +36,5 @@ return [ | |||||||
|     Chill\BudgetBundle\ChillBudgetBundle::class => ['all' => true], |     Chill\BudgetBundle\ChillBudgetBundle::class => ['all' => true], | ||||||
|     Chill\WopiBundle\ChillWopiBundle::class => ['all' => true], |     Chill\WopiBundle\ChillWopiBundle::class => ['all' => true], | ||||||
|     Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], |     Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], | ||||||
|  |     Symfony\UX\Translator\UxTranslatorBundle::class => ['all' => true], | ||||||
| ]; | ]; | ||||||
|   | |||||||
| @@ -1,6 +1,13 @@ | |||||||
| chill_main: | chill_main: | ||||||
|     available_languages: [ '%env(resolve:LOCALE)%', 'en' ] |     available_languages: [ '%env(resolve:LOCALE)%', 'en' ] | ||||||
|     available_countries: ['BE', 'FR'] |     available_countries: ['BE', 'FR'] | ||||||
|  |     top_banner: | ||||||
|  |         visible: false | ||||||
|  |         text: | ||||||
|  |             fr: 'Vous travaillez actuellement avec la version de PRÉ-PRODUCTION.' | ||||||
|  |             nl: 'Je werkt momenteel in de PRE-PRODUCTIE versie' | ||||||
|  |         color: '#353535' | ||||||
|  |         background_color: '#d8bb48' | ||||||
|     notifications: |     notifications: | ||||||
|         from_email: '%env(resolve:NOTIFICATION_FROM_EMAIL)%' |         from_email: '%env(resolve:NOTIFICATION_FROM_EMAIL)%' | ||||||
|         from_name: '%env(resolve:NOTIFICATION_FROM_NAME)%' |         from_name: '%env(resolve:NOTIFICATION_FROM_NAME)%' | ||||||
| @@ -17,6 +24,7 @@ chill_main: | |||||||
|     acl: |     acl: | ||||||
|         form_show_scopes: true |         form_show_scopes: true | ||||||
|         form_show_centers: true |         form_show_centers: true | ||||||
|  |         filter_stats_by_center: true | ||||||
|     access_global_history: false |     access_global_history: false | ||||||
|     access_user_change_password: true |     access_user_change_password: true | ||||||
|     access_permissions_group_list: true |     access_permissions_group_list: true | ||||||
|   | |||||||
| @@ -5,7 +5,6 @@ framework: | |||||||
|  |  | ||||||
|         # Uncomment this (and the failed transport below) to send failed messages to this transport for later handling. |         # Uncomment this (and the failed transport below) to send failed messages to this transport for later handling. | ||||||
|         failure_transport: failed |         failure_transport: failed | ||||||
|  |  | ||||||
|         transports: |         transports: | ||||||
|             # those transports are added by chill-bundles recipes |             # those transports are added by chill-bundles recipes | ||||||
|             sync: sync:// |             sync: sync:// | ||||||
| @@ -19,7 +18,9 @@ framework: | |||||||
|                         async: ~ |                         async: ~ | ||||||
|                     auto_setup: true |                     auto_setup: true | ||||||
|  |  | ||||||
|             priority: '%env(MESSENGER_TRANSPORT_DSN)%/priority' |             priority: | ||||||
|  |                 dsn: '%env(MESSENGER_TRANSPORT_DSN)%/priority' | ||||||
|  |  | ||||||
|             # end of transports added by chill-bundles recipes |             # end of transports added by chill-bundles recipes | ||||||
|             # https://symfony.com/doc/current/messenger.html#transport-configuration |             # https://symfony.com/doc/current/messenger.html#transport-configuration | ||||||
|             failed: 'doctrine://default?queue_name=failed' |             failed: 'doctrine://default?queue_name=failed' | ||||||
| @@ -61,6 +62,10 @@ framework: | |||||||
|             'Chill\MainBundle\Workflow\Messenger\PostSignatureStateChangeMessage': priority |             'Chill\MainBundle\Workflow\Messenger\PostSignatureStateChangeMessage': priority | ||||||
|             'Chill\MainBundle\Workflow\Messenger\PostPublicViewMessage': async |             'Chill\MainBundle\Workflow\Messenger\PostPublicViewMessage': async | ||||||
|             'Chill\MainBundle\Service\Workflow\CancelStaleWorkflowMessage': async |             'Chill\MainBundle\Service\Workflow\CancelStaleWorkflowMessage': async | ||||||
|  |             'Chill\MainBundle\Notification\Email\NotificationEmailMessages\SendImmediateNotificationEmailMessage': async | ||||||
|  |             'Chill\MainBundle\Export\Messenger\ExportRequestGenerationMessage': priority | ||||||
|  |             'Chill\MainBundle\Export\Messenger\RemoveExportGenerationMessage': async | ||||||
|  |             'Chill\MainBundle\Notification\Email\NotificationEmailMessages\ScheduleDailyNotificationDigestMessage': async | ||||||
|             # end of routes added by chill-bundles recipes |             # end of routes added by chill-bundles recipes | ||||||
|             # Route your messages to the transports |             # Route your messages to the transports | ||||||
|             # 'App\Message\YourMessage': async |             # 'App\Message\YourMessage': async | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								config/packages/ux_translator.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								config/packages/ux_translator.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ux_translator: | ||||||
|  |     # The directory where the JavaScript translations are dumped | ||||||
|  |     dump_directory: '%kernel.project_dir%/var/translations' | ||||||
| @@ -220,6 +220,7 @@ framework: | |||||||
|                         - attenteModification |                         - attenteModification | ||||||
|                         - attenteMiseEnForme |                         - attenteMiseEnForme | ||||||
|                         - attenteValidationMiseEnForme |                         - attenteValidationMiseEnForme | ||||||
|  |                         - attenteSignature | ||||||
|                         - attenteVisa |                         - attenteVisa | ||||||
|                         - postSignature |                         - postSignature | ||||||
|                         - attenteTraitement |                         - attenteTraitement | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								config/routes/chill_assets_dev.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								config/routes/chill_assets_dev.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | when@dev: | ||||||
|  |     sass_assets: | ||||||
|  |         path: /_dev/assets | ||||||
|  |         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||||
|  |         defaults: | ||||||
|  |             template: '@ChillMain/Dev/dev.assets.html.twig' | ||||||
|  |  | ||||||
|  |     sass_assets_test1: | ||||||
|  |         path: /_dev/assets_test1 | ||||||
|  |         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||||
|  |         defaults: | ||||||
|  |             template: '@ChillMain/Dev/dev.assets.test1.html.twig' | ||||||
|  |  | ||||||
|  |     sass_assets_test2: | ||||||
|  |         path: /_dev/assets_test2 | ||||||
|  |         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||||
|  |         defaults: | ||||||
|  |             template: '@ChillMain/Dev/dev.assets.test2.html.twig' | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								config/routes/chill_swagger.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								config/routes/chill_swagger.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | when@dev: | ||||||
|  |     swagger_ui: | ||||||
|  |         path: /_dev/swagger | ||||||
|  |         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||||
|  |         defaults: | ||||||
|  |             template: '@ChillMain/Dev/swagger-ui/index.html.twig' | ||||||
|  |  | ||||||
|  |     swagger_specs: | ||||||
|  |         path: /_dev/specs.yaml | ||||||
|  |         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||||
|  |         defaults: | ||||||
|  |             template: api/specs.yaml | ||||||
| @@ -12,6 +12,7 @@ declare(strict_types=1); | |||||||
| namespace Chill\PersonBundle\Export\Filter; | namespace Chill\PersonBundle\Export\Filter; | ||||||
|  |  | ||||||
| use Chill\MainBundle\Export\ExportElementValidatedInterface; | use Chill\MainBundle\Export\ExportElementValidatedInterface; | ||||||
|  | use Chill\MainBundle\Export\ExportGenerationContext; | ||||||
| use Chill\MainBundle\Export\FilterInterface; | use Chill\MainBundle\Export\FilterInterface; | ||||||
| use DateTime; | use DateTime; | ||||||
| use Doctrine\ORM\Query\Expr; | use Doctrine\ORM\Query\Expr; | ||||||
| @@ -20,6 +21,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface; | |||||||
|  |  | ||||||
| class BirthdateFilter implements ExportElementValidatedInterface, FilterInterface | class BirthdateFilter implements ExportElementValidatedInterface, FilterInterface | ||||||
| { | { | ||||||
|  |     use \Chill\MainBundle\Export\ExportDataNormalizerTrait; | ||||||
|     // add specific role for this filter |     // add specific role for this filter | ||||||
|     public function addRole(): ?string |     public function addRole(): ?string | ||||||
|     { |     { | ||||||
| @@ -28,7 +30,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // here, we alter the query created by Export |     // here, we alter the query created by Export | ||||||
|     public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data) |     public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $where = $qb->getDQLPart('where'); |         $where = $qb->getDQLPart('where'); | ||||||
|         // we create the clause here |         // we create the clause here | ||||||
| @@ -52,13 +54,13 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // we give information on which type of export this filter applies |     // we give information on which type of export this filter applies | ||||||
|     public function applyOn() |     public function applyOn(): string | ||||||
|     { |     { | ||||||
|         return 'person'; |         return 'person'; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // we build a form to collect some parameters from the users |     // we build a form to collect some parameters from the users | ||||||
|     public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder) |     public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         $builder->add('date_from', DateType::class, [ |         $builder->add('date_from', DateType::class, [ | ||||||
|             'label' => 'Born after this date', |             'label' => 'Born after this date', | ||||||
| @@ -74,6 +76,18 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac | |||||||
|             'format' => 'dd-MM-yyyy', |             '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 |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return ['date_from' => new DateTime(), 'date_to' => new DateTime()]; |         return ['date_from' => new DateTime(), 'date_to' => new DateTime()]; | ||||||
| @@ -81,7 +95,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac | |||||||
|  |  | ||||||
|     // here, we create a simple string which will describe the action of |     // here, we create a simple string which will describe the action of | ||||||
|     // the filter in the Response |     // the filter in the Response | ||||||
|     public function describeAction($data, $format = 'string') |     public function describeAction($data, ExportGenerationContext $context): string|\Symfony\Contracts\Translation\TranslatableInterface|array | ||||||
|     { |     { | ||||||
|         return ['Filtered by person\'s birtdate: ' |         return ['Filtered by person\'s birtdate: ' | ||||||
|             . 'between %date_from% and %date_to%', [ |             . 'between %date_from% and %date_to%', [ | ||||||
| @@ -90,7 +104,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac | |||||||
|             ], ]; |             ], ]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getTitle() |     public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface | ||||||
|     { |     { | ||||||
|         return 'Filter by person\'s birthdate'; |         return 'Filter by person\'s birthdate'; | ||||||
|     } |     } | ||||||
| @@ -99,7 +113,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac | |||||||
|     // is executed here. This function is added by the interface |     // is executed here. This function is added by the interface | ||||||
|     // `ExportElementValidatedInterface`, and can be ignore if there is |     // `ExportElementValidatedInterface`, and can be ignore if there is | ||||||
|     // no need for a validation |     // no need for a validation | ||||||
|     public function validateForm($data, ExecutionContextInterface $context) |     public function validateForm($data, ExecutionContextInterface $context): void | ||||||
|     { |     { | ||||||
|         $date_from = $data['date_from']; |         $date_from = $data['date_from']; | ||||||
|         $date_to = $data['date_to']; |         $date_to = $data['date_to']; | ||||||
|   | |||||||
| @@ -36,6 +36,18 @@ class CountPerson implements ExportInterface | |||||||
|     { |     { | ||||||
|         // this export does not add any form |         // this export does not add any form | ||||||
|     } |     } | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
| @@ -60,29 +72,29 @@ class CountPerson implements ExportInterface | |||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getQueryKeys($data) |     public function getQueryKeys($data): array | ||||||
|     { |     { | ||||||
|         // this array match the result keys in the query. We have only |         // this array match the result keys in the query. We have only | ||||||
|         // one column. |         // one column. | ||||||
|         return ['export_result']; |         return ['export_result']; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getResult($query, $data) |     public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array | ||||||
|     { |     { | ||||||
|         return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); |         return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getTitle() |     public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface | ||||||
|     { |     { | ||||||
|         return 'Count peoples'; |         return 'Count peoples'; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getType() |     public function getType(): string | ||||||
|     { |     { | ||||||
|         return Declarations::PERSON_TYPE; |         return Declarations::PERSON_TYPE; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) |     public function initiateQuery(array $requiredModifiers, array $acl, array $data, \Chill\MainBundle\Export\ExportGenerationContext $context): \Doctrine\ORM\QueryBuilder | ||||||
|     { |     { | ||||||
|         // we gather all center the user choose. |         // we gather all center the user choose. | ||||||
|         $centers = array_map(static fn ($el) => $el['center'], $acl); |         $centers = array_map(static fn ($el) => $el['center'], $acl); | ||||||
|   | |||||||
| @@ -12,6 +12,8 @@ This runs eslint **not** taking the baseline into account, thus showing all exis | |||||||
| A script was also added to package.json allowing you to execute ``yarn run eslint``. | A script was also added to package.json allowing you to execute ``yarn run eslint``. | ||||||
| This will run eslint, but **taking the baseline into account**, thus only alerting to newly created errors. | This will run eslint, but **taking the baseline into account**, thus only alerting to newly created errors. | ||||||
|  |  | ||||||
|  | The eslint command is configured to also run ``prettier`` which will simply format the code to look more uniform (takes care indentation for example). | ||||||
|  |  | ||||||
| Interesting options that can be used in combination with eslint are: | Interesting options that can be used in combination with eslint are: | ||||||
|  |  | ||||||
| - ``--quiet`` to only get errors and silence the warnings | - ``--quiet`` to only get errors and silence the warnings | ||||||
|   | |||||||
							
								
								
									
										84
									
								
								docs/source/development/export-sequence.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								docs/source/development/export-sequence.puml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | |||||||
|  | @startuml | ||||||
|  | 'https://plantuml.com/sequence-diagram | ||||||
|  |  | ||||||
|  | autonumber | ||||||
|  |  | ||||||
|  | User -> ExportController: configure export using form | ||||||
|  | activate ExportController | ||||||
|  | ExportController -> ExportForm: build form | ||||||
|  | activate ExportForm | ||||||
|  |  | ||||||
|  | loop for every ExportElement (Filter, Aggregator) | ||||||
|  |     ExportForm -> ExportElement: `buildForm` | ||||||
|  |     activate ExportElement | ||||||
|  |     ExportElement -> ExportForm: add form to builders | ||||||
|  |     deactivate ExportElement | ||||||
|  | end | ||||||
|  |  | ||||||
|  | ExportForm -> ExportController | ||||||
|  | deactivate ExportForm | ||||||
|  |  | ||||||
|  | ExportController -> User: show form | ||||||
|  | deactivate ExportController | ||||||
|  |  | ||||||
|  | note left of User: Configure the export:\ncheck filters, aggregators, … | ||||||
|  |  | ||||||
|  | User -> ExportController: post configuration of the export | ||||||
|  | activate ExportController | ||||||
|  |  | ||||||
|  | ExportController -> ExportForm: `getData` | ||||||
|  | activate ExportForm | ||||||
|  | ExportForm -> ExportController: return data: list of entities, etc. | ||||||
|  | deactivate ExportForm | ||||||
|  |  | ||||||
|  | loop for every ExportElement (Filter, Aggregator) | ||||||
|  |     ExportController -> ExportElement: serializeData (data) | ||||||
|  |     activate ExportElement | ||||||
|  |     ExportElement -> ExportController: return serializedData (simple array with string, int, …) | ||||||
|  |     deactivate ExportElement | ||||||
|  | end | ||||||
|  |  | ||||||
|  | ExportController -> Database: `INSERT INTO RequestGeneration_table` (insert new entity) | ||||||
|  | ExportController -> MessageQueue: warn about a new request | ||||||
|  | activate MessageQueue | ||||||
|  | ExportController -> User: "ok, generation is in process" | ||||||
|  | deactivate ExportController | ||||||
|  |  | ||||||
|  | note left of User: The user see a waiting screen | ||||||
|  |  | ||||||
|  | MessageQueue -> MessengerConsumer: forward the message to the MessengerConsumer | ||||||
|  | deactivate MessageQueue | ||||||
|  | activate MessengerConsumer | ||||||
|  | MessengerConsumer -> Database: `SELECT * FROM RequestGeneration_table WHERE id = %s` | ||||||
|  | activate Database | ||||||
|  | Database -> MessengerConsumer: return RequestGeneration with serializedData | ||||||
|  | deactivate Database | ||||||
|  |  | ||||||
|  | loop for every ExportElement (Filter, Aggregator) | ||||||
|  |     MessengerConsumer -> ExportElement: deserializeData | ||||||
|  |     activate ExportElement | ||||||
|  |     ExportElement -> MessengerConsumer: return data (list of entities, etc.) from the serialized array | ||||||
|  |     deactivate ExportElement | ||||||
|  |     MessengerConsumer -> ExportElement: alter the sql query (`ExportElement::alterQuery`) | ||||||
|  |     activate ExportElement | ||||||
|  |     ExportElement -> MessengerConsumer: return the query with WHERE and GROUP BY clauses | ||||||
|  |     deactivate ExportElement | ||||||
|  | end | ||||||
|  |  | ||||||
|  | MessengerConsumer -> MessengerConsumer: prepare the export | ||||||
|  | MessengerConsumer -> MessengerConsumer: save the export as a stored object | ||||||
|  | MessengerConsumer -> Database: `UPDATE RequestGeneration_table SET ready = true` | ||||||
|  | deactivate MessengerConsumer | ||||||
|  |  | ||||||
|  | User -> ExportController: pull every 5s to know if the export is generated | ||||||
|  | activate ExportController | ||||||
|  | ExportController -> User: warn the export is generated | ||||||
|  | deactivate ExportController | ||||||
|  |  | ||||||
|  | User -> ExportController: download the export from object storage | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @enduml | ||||||
| @@ -15,24 +15,31 @@ Messages to users, flashbags and buttons | |||||||
| Flashbags | Flashbags | ||||||
| ========== | ========== | ||||||
|  |  | ||||||
| The four following levels are defined :  | The four following levels are defined : | ||||||
|  |  | ||||||
| +-----------+----------------------------------------------------------------------------------------------+ | +-----------+----------------------------------------------------------------------------------------------+ | ||||||
| |Key        |Intent                                                                                        | | |Key        |Intent                                                                                        | | ||||||
| +===========+==============================================================================================+ | +===========+==============================================================================================+ | ||||||
| |alert      |A message not linked with the user action, but which should require an action or a            | |  | ||||||
| |           |correction.                                                                                   | |  | ||||||
| +-----------+----------------------------------------------------------------------------------------------+ |  | ||||||
| |success    |The user action succeeds.                                                                     | | |success    |The user action succeeds.                                                                     | | ||||||
| +-----------+----------------------------------------------------------------------------------------------+ | +-----------+----------------------------------------------------------------------------------------------+ | ||||||
| |notice     |A simple message to give information to the user. The message may be linked or not linked with| | |notice     |A simple message to give information to the user. The message may be linked or not linked with| | ||||||
| |           |the user action.                                                                              | | |           |the user action.                                                                              | | ||||||
| +-----------+----------------------------------------------------------------------------------------------+ | +-----------+----------------------------------------------------------------------------------------------+ | ||||||
| |warning    |A message linked with an action, the user should correct.                                     | |  | ||||||
| +-----------+----------------------------------------------------------------------------------------------+ |  | ||||||
| |error      |The user's action failed: he must correct something to process the action.                    | | |error      |The user's action failed: he must correct something to process the action.                    | | ||||||
| +-----------+----------------------------------------------------------------------------------------------+ | +-----------+----------------------------------------------------------------------------------------------+ | ||||||
|  |  | ||||||
|  | We can use :code:`TranslatableMessage` (and other :code:`TranslatableMessageInterface` instances) into the controller: | ||||||
|  |  | ||||||
|  | .. code-block:: php | ||||||
|  |  | ||||||
|  |    // in a controller action: | ||||||
|  |    if (($session = $request->getSession()) instanceof Session) { | ||||||
|  |        $session->getFlashBag()->add( | ||||||
|  |            'success', | ||||||
|  |            new TranslatableMessage('saved_export.Saved export is saved!') | ||||||
|  |        ); | ||||||
|  |    } | ||||||
|  |  | ||||||
| .. seealso:: | .. seealso:: | ||||||
|  |  | ||||||
|    `Flash Messages on Symfony documentation <http://symfony.com/doc/current/book/controller.html#flash-messages>`_ |    `Flash Messages on Symfony documentation <http://symfony.com/doc/current/book/controller.html#flash-messages>`_ | ||||||
| @@ -66,7 +73,7 @@ To add the action on button, use them as class along with ``sc-button`` : | |||||||
| |           |                | - Submitting this form will remove the entity                                | | |           |                | - Submitting this form will remove the entity                                | | ||||||
| +-----------+----------------+------------------------------------------------------------------------------+ | +-----------+----------------+------------------------------------------------------------------------------+ | ||||||
| | Edit      | ``bt-edit`` or | Link to a form to edit an entity                                             | | | Edit      | ``bt-edit`` or | Link to a form to edit an entity                                             | | ||||||
| |           | ``bt-update``  |                                                                              |  | |           | ``bt-update``  |                                                                              | | ||||||
| +-----------+----------------+------------------------------------------------------------------------------+ | +-----------+----------------+------------------------------------------------------------------------------+ | ||||||
| | Save      | ``bt-save``    | Submitting this form will save change on the entity                          | | | Save      | ``bt-save``    | Submitting this form will save change on the entity                          | | ||||||
| +-----------+----------------+------------------------------------------------------------------------------+ | +-----------+----------------+------------------------------------------------------------------------------+ | ||||||
|   | |||||||
| @@ -14,6 +14,16 @@ Symfony apps <https://symfony.com/doc/current/deployment.html>`_. | |||||||
| Install a new app | Install a new app | ||||||
| ================= | ================= | ||||||
|  |  | ||||||
|  | Install required dependencies: | ||||||
|  | ------------------------------ | ||||||
|  |  | ||||||
|  | - `jq`: https://jqlang.org/ (install it through your package manager); | ||||||
|  | - `php`, minimal version: 8.3; | ||||||
|  | - `composer`: https://getcomposer.org/download/ | ||||||
|  | - `symfony-cli`: https://symfony.com/download | ||||||
|  | - `docker` with the plugin `compose`: https://docs.docker.com/engine/install/ and https://docs.docker.com/compose/install/ | ||||||
|  |  | ||||||
|  |  | ||||||
| Initialize project and dependencies | Initialize project and dependencies | ||||||
| ----------------------------------- | ----------------------------------- | ||||||
|  |  | ||||||
| @@ -29,8 +39,7 @@ We strongly encourage you to initialize a git repository at this step, to track | |||||||
|    # add the flex endpoints required for custom recipes |    # add the flex endpoints required for custom recipes | ||||||
|    cat <<< "$(jq '.extra.symfony += {"endpoint": ["flex://defaults", "https://gitlab.com/api/v4/projects/57371968/repository/files/index.json/raw?ref=main"]}' composer.json)" > composer.json |    cat <<< "$(jq '.extra.symfony += {"endpoint": ["flex://defaults", "https://gitlab.com/api/v4/projects/57371968/repository/files/index.json/raw?ref=main"]}' composer.json)" > composer.json | ||||||
|    # install chill and some dependencies |    # install chill and some dependencies | ||||||
|    # TODO fix the suffix "alpha1" and replace by ^3.0.0 when version 3.0.0 will be released |    symfony composer require -W chill-project/chill-bundles ^3.7.1 champs-libres/wopi-lib dev-master@dev champs-libres/wopi-bundle dev-master@dev symfony/amqp-messenger | ||||||
|    symfony composer require chill-project/chill-bundles v3.0.0-RC3 champs-libres/wopi-lib dev-master@dev champs-libres/wopi-bundle dev-master@dev |  | ||||||
|  |  | ||||||
| We encourage you to accept the inclusion of the "Docker configuration from recipes": this is the documented way to run the database. | We encourage you to accept the inclusion of the "Docker configuration from recipes": this is the documented way to run the database. | ||||||
| You must also accept to configure recipes from the contrib repository, unless you want to configure the bundles manually). | You must also accept to configure recipes from the contrib repository, unless you want to configure the bundles manually). | ||||||
| @@ -39,6 +48,8 @@ You must also accept to configure recipes from the contrib repository, unless yo | |||||||
|  |  | ||||||
|    # fix some configuration |    # fix some configuration | ||||||
|    ./post-install-chill.sh |    ./post-install-chill.sh | ||||||
|  |    # populate the cache for the first time. This is necessary to dump some translation files, required for the assets compilation | ||||||
|  |    symfony console cache:clear | ||||||
|    # install node dependencies |    # install node dependencies | ||||||
|    yarn install |    yarn install | ||||||
|    # and compile assets |    # and compile assets | ||||||
| @@ -48,7 +59,7 @@ You must also accept to configure recipes from the contrib repository, unless yo | |||||||
|  |  | ||||||
|    If you encounter this error during assets compilation (:code:`yarn run encore production`) (repeated multiple times): |    If you encounter this error during assets compilation (:code:`yarn run encore production`) (repeated multiple times): | ||||||
|  |  | ||||||
|    .. code-block:: txt |    .. code-block:: | ||||||
|  |  | ||||||
|       [tsl] ERROR in /tmp/chill/v1/public/bundles/chillcalendar/types.ts(2,65) |       [tsl] ERROR in /tmp/chill/v1/public/bundles/chillcalendar/types.ts(2,65) | ||||||
|             TS2307: Cannot find module '../../../ChillMainBundle/Resources/public/types' or its corresponding type declarations. |             TS2307: Cannot find module '../../../ChillMainBundle/Resources/public/types' or its corresponding type declarations. | ||||||
| @@ -74,14 +85,22 @@ or in the :code:`.env.local` file, which should not be committed to the git repo | |||||||
| You do not need to set variables for the smtp server, redis server and relatorio server, as they are generated automatically | You do not need to set variables for the smtp server, redis server and relatorio server, as they are generated automatically | ||||||
| by the symfony server, from the docker compose services. | by the symfony server, from the docker compose services. | ||||||
|  |  | ||||||
| The only required variable is the :code:`ADMIN_PASSWORD`. You can generate a hashed and salted admin password using the command | The required variables are: | ||||||
| :code:`symfony console security:hash-password <your password> 'Symfony\Component\Security\Core\User\User'`. Then, |  | ||||||
|  | - the :code:`ADMIN_PASSWORD`; | ||||||
|  | - the :code:`OVHCLOUD_DSN` variable; | ||||||
|  |  | ||||||
|  | :code:`ADMIN_PASSWORD` | ||||||
|  | ^^^^^^^^^^^^^^^^^^^^^^ | ||||||
|  |  | ||||||
|  | You can generate a hashed and salted admin password using the command | ||||||
|  | :code:`symfony console security:hash-password <your password> 'Symfony\Component\Security\Core\User\User'`.Then, | ||||||
| you can either: | you can either: | ||||||
|  |  | ||||||
| - add this password to the :code:`.env.local` file, you must escape the character :code:`$`: if the generated password | - add this password to the :code:`.env.local` file, you must escape the character :code:`$`: if the generated password | ||||||
|   is :code:`$2y$13$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm`, your :code:`.env.local` file will be: |   is :code:`$2y$13$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm`, your :code:`.env.local` file will be: | ||||||
|  |  | ||||||
|   .. code-block:: env |   .. code-block:: bash | ||||||
|  |  | ||||||
|      ADMIN_PASSWORD=\$2y\$13\$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm |      ADMIN_PASSWORD=\$2y\$13\$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm | ||||||
|      # note: if you copy-paste the line above, the password will be "admin". |      # note: if you copy-paste the line above, the password will be "admin". | ||||||
| @@ -89,12 +108,24 @@ you can either: | |||||||
| - add the generated password to the secrets manager (**note**: you must add the generated hashed password to the secrets env, | - add the generated password to the secrets manager (**note**: you must add the generated hashed password to the secrets env, | ||||||
|   not the password in clear text). |   not the password in clear text). | ||||||
|  |  | ||||||
| - set up the jwt authentication bundle | :code:`OVHCLOUD_DSN` and sending SMS messages | ||||||
|  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||||
|  |  | ||||||
|  | This is a temporary dependency, for ensuring compatibility for previous behaviour. | ||||||
|  |  | ||||||
|  | You can set it to :code:`null://null` if you do not plan to use sending SMS. | ||||||
|  |  | ||||||
|  | .. code-block:: bash | ||||||
|  |  | ||||||
|  |    OVHCLOUD_DSN=null://null | ||||||
|  |  | ||||||
|  | If you plan to do it, you can configure the notifier component `as described in the symfony documentation <https://symfony.com/doc/current/notifier.html#notifier-sms-channel>`_. | ||||||
|  |  | ||||||
|  |  | ||||||
| Some environment variables are available for the JWT authentication bundle in the :code:`.env` file. | Some environment variables are available for the JWT authentication bundle in the :code:`.env` file. | ||||||
|  |  | ||||||
| Prepare migrations and other tools | Prepare database, messenger queue, and other configuration | ||||||
| ---------------------------------- | ---------------------------------------------------------- | ||||||
|  |  | ||||||
| To continue the installation process, you will have to run migrations: | To continue the installation process, you will have to run migrations: | ||||||
|  |  | ||||||
| @@ -109,17 +140,22 @@ To continue the installation process, you will have to run migrations: | |||||||
|    symfony console messenger:setup-transports |    symfony console messenger:setup-transports | ||||||
|    # prepare some views |    # prepare some views | ||||||
|    symfony console chill:db:sync-views |    symfony console chill:db:sync-views | ||||||
|  |    # load languages data | ||||||
|  |    symfony console chill:main:languages:populate | ||||||
|    # generate jwt token, required for some api features (webdav access, ...) |    # generate jwt token, required for some api features (webdav access, ...) | ||||||
|    symfony console lexik:jwt:generate-keypair |    symfony console lexik:jwt:generate-keypair | ||||||
|  |  | ||||||
| .. warning:: | .. note:: | ||||||
|  |  | ||||||
|    If you encounter an error while running :code:`symfony console messenger:setup-transports`, you can set up the messenger |    If you encounter this error: | ||||||
|    transport to redis, by adding this in the :code:`.env.local` or :code:`.env` file: |  | ||||||
|  |    .. code-block:: | ||||||
|  |  | ||||||
|  |      No transport supports the given Messenger DSN. | ||||||
|  |  | ||||||
|  |    Please check that you installed the package `symfony/amqp-messenger`. | ||||||
|  |  | ||||||
|    .. code-block:: env |  | ||||||
|  |  | ||||||
|       MESSENGER_TRANSPORT_DSN=redis://${REDIS_HOST}:${REDIS_PORT}/messages |  | ||||||
|  |  | ||||||
| Start your web server locally | Start your web server locally | ||||||
| ----------------------------- | ----------------------------- | ||||||
|   | |||||||
| @@ -41,16 +41,18 @@ Postal code are loaded from this database. There is no need to load postal codes | |||||||
| The data are prepared for Chill (`See this repository <https://gitea.champs-libres.be/Chill-project/belgian-bestaddresses-transform/releases>`_). | The data are prepared for Chill (`See this repository <https://gitea.champs-libres.be/Chill-project/belgian-bestaddresses-transform/releases>`_). | ||||||
| One can select postal code by his first number (:code:`1xxx` for postal codes from 1000 to 1999), or a limited list for development purpose. | One can select postal code by his first number (:code:`1xxx` for postal codes from 1000 to 1999), or a limited list for development purpose. | ||||||
|  |  | ||||||
|  | The command expects a language code as first argument. | ||||||
|  |  | ||||||
| .. code-block:: bash | .. code-block:: bash | ||||||
|  |  | ||||||
|    # load postal code from 1000 to 3999: |    # load postal code from 1000 to 3999: | ||||||
|    bin/console chill:main:address-ref-from-best-addresse 1xxx 2xxx 3xxx |    bin/console chill:main:address-ref-from-best-addresse fr 1xxx 2xxx 3xxx | ||||||
|  |  | ||||||
|    # load only an extract (for dev purposes) |    # load only an extract (for dev purposes) | ||||||
|    bin/console chill:main:address-ref-from-best-addresse extract |    bin/console chill:main:address-ref-from-best-addresse fr extract | ||||||
|  |  | ||||||
|    # load full addresses (discouraged) |    # load full addresses (discouraged) | ||||||
|    bin/console chill:main:address-ref-from-best-addresse full |    bin/console chill:main:address-ref-from-best-addresse fr full | ||||||
|  |  | ||||||
| .. note:: | .. note:: | ||||||
|  |  | ||||||
|   | |||||||
| @@ -34,6 +34,7 @@ export default ts.config( | |||||||
|             // override/add rules settings here, such as: |             // override/add rules settings here, such as: | ||||||
|             "vue/multi-word-component-names": "off", |             "vue/multi-word-component-names": "off", | ||||||
|             "@typescript-eslint/no-require-imports": "off", |             "@typescript-eslint/no-require-imports": "off", | ||||||
|  |             "@typescript-eslint/ban-ts-comment": "off" | ||||||
|         }, |         }, | ||||||
|     }, |     }, | ||||||
| ); | ); | ||||||
|   | |||||||
							
								
								
									
										31
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								package.json
									
									
									
									
									
								
							| @@ -6,36 +6,33 @@ | |||||||
|     "@apidevtools/swagger-cli": "^4.0.4", |     "@apidevtools/swagger-cli": "^4.0.4", | ||||||
|     "@babel/core": "^7.20.5", |     "@babel/core": "^7.20.5", | ||||||
|     "@babel/preset-env": "^7.20.2", |     "@babel/preset-env": "^7.20.2", | ||||||
|     "@ckeditor/ckeditor5-build-classic": "^41.4.2", |     "@ckeditor/ckeditor5-vue": "^7.3.0", | ||||||
|     "@ckeditor/ckeditor5-dev-translations": "^40.2.0", |  | ||||||
|     "@ckeditor/ckeditor5-dev-utils": "^40.2.0", |  | ||||||
|     "@ckeditor/ckeditor5-dev-webpack-plugin": "^31.1.13", |  | ||||||
|     "@ckeditor/ckeditor5-markdown-gfm": "^41.4.2", |  | ||||||
|     "@ckeditor/ckeditor5-theme-lark": "^41.4.2", |  | ||||||
|     "@ckeditor/ckeditor5-vue": "^5.1.0", |  | ||||||
|     "@eslint/js": "^9.14.0", |     "@eslint/js": "^9.14.0", | ||||||
|  |     "@hotwired/stimulus": "^3.0.0", | ||||||
|     "@luminateone/eslint-baseline": "^1.0.9", |     "@luminateone/eslint-baseline": "^1.0.9", | ||||||
|  |     "@symfony/stimulus-bridge": "^3.2.0", | ||||||
|     "@symfony/webpack-encore": "^4.1.0", |     "@symfony/webpack-encore": "^4.1.0", | ||||||
|     "@tsconfig/node14": "^1.0.1", |     "@tsconfig/node20": "^20.1.4", | ||||||
|     "@types/dompurify": "^3.0.5", |     "@types/dompurify": "^3.0.5", | ||||||
|     "@types/eslint__js": "^8.42.3", |     "@types/eslint__js": "^8.42.3", | ||||||
|     "@typescript-eslint/parser": "^8.12.2", |     "@typescript-eslint/parser": "^8.12.2", | ||||||
|     "bindings": "^1.5.0", |     "bindings": "^1.5.0", | ||||||
|     "bootstrap": "5.2.3", |     "bootstrap": "^5.3.6", | ||||||
|     "chokidar": "^3.5.1", |     "chokidar": "^3.5.1", | ||||||
|  |     "ckeditor5": "^45.1.0", | ||||||
|     "dompurify": "^3.1.0", |     "dompurify": "^3.1.0", | ||||||
|     "eslint": "^9.14.0", |     "eslint": "^9.14.0", | ||||||
|     "eslint-config-prettier": "^9.1.0", |     "eslint-config-prettier": "^9.1.0", | ||||||
|     "eslint-plugin-prettier": "^5.2.1", |     "eslint-plugin-prettier": "^5.2.1", | ||||||
|     "eslint-plugin-vue": "^9.30.0", |     "eslint-plugin-vue": "^9.30.0", | ||||||
|     "fork-awesome": "^1.1.7", |     "fork-awesome": "^1.1.7", | ||||||
|  |     "intl-messageformat": "^10.5.11", | ||||||
|     "jquery": "^3.6.0", |     "jquery": "^3.6.0", | ||||||
|     "marked": "^12.0.1", |  | ||||||
|     "node-sass": "^8.0.0", |  | ||||||
|     "popper.js": "^1.16.1", |     "popper.js": "^1.16.1", | ||||||
|     "postcss-loader": "^7.0.2", |     "postcss-loader": "^7.0.2", | ||||||
|     "prettier": "^3.3.3", |     "prettier": "^3.3.3", | ||||||
|     "raw-loader": "^4.0.2", |     "raw-loader": "^4.0.2", | ||||||
|  |     "sass": "^1.89.0", | ||||||
|     "sass-loader": "^14.0.0", |     "sass-loader": "^14.0.0", | ||||||
|     "select2": "^4.0.13", |     "select2": "^4.0.13", | ||||||
|     "select2-bootstrap-theme": "0.1.0-beta.10", |     "select2-bootstrap-theme": "0.1.0-beta.10", | ||||||
| @@ -55,11 +52,14 @@ | |||||||
|     "@fullcalendar/timegrid": "^6.1.4", |     "@fullcalendar/timegrid": "^6.1.4", | ||||||
|     "@fullcalendar/vue3": "^6.1.4", |     "@fullcalendar/vue3": "^6.1.4", | ||||||
|     "@popperjs/core": "^2.9.2", |     "@popperjs/core": "^2.9.2", | ||||||
|  |     "@tsconfig/node20": "^20.1.4", | ||||||
|     "@types/dompurify": "^3.0.5", |     "@types/dompurify": "^3.0.5", | ||||||
|     "@types/leaflet": "^1.9.3", |     "@types/leaflet": "^1.9.3", | ||||||
|  |     "@vueuse/core": "^13.9.0", | ||||||
|     "bootstrap-icons": "^1.11.3", |     "bootstrap-icons": "^1.11.3", | ||||||
|     "dropzone": "^5.7.6", |     "dropzone": "^5.7.6", | ||||||
|     "es6-promise": "^4.2.8", |     "es6-promise": "^4.2.8", | ||||||
|  |     "intl-messageformat": "^10.5.11", | ||||||
|     "leaflet": "^1.7.1", |     "leaflet": "^1.7.1", | ||||||
|     "marked": "^12.0.2", |     "marked": "^12.0.2", | ||||||
|     "masonry-layout": "^4.2.2", |     "masonry-layout": "^4.2.2", | ||||||
| @@ -73,14 +73,19 @@ | |||||||
|     "vuex": "^4.0.0" |     "vuex": "^4.0.0" | ||||||
|   }, |   }, | ||||||
|   "browserslist": [ |   "browserslist": [ | ||||||
|     "Firefox ESR" |     "defaults and fully supports es6-module and not dead" | ||||||
|   ], |   ], | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "dev-server": "encore dev-server", |     "dev-server": "encore dev-server", | ||||||
|     "dev": "encore dev", |     "dev": "encore dev", | ||||||
|     "watch": "encore dev --watch", |     "watch": "encore dev --watch", | ||||||
|     "build": "encore production --progress", |     "build": "encore production --progress", | ||||||
|     "eslint": "npx eslint-baseline --fix \"**/*.{js,ts,vue}\"" |     "specs-build": "yaml-merge src/Bundle/ChillMainBundle/chill.api.specs.yaml src/Bundle/ChillPersonBundle/chill.api.specs.yaml src/Bundle/ChillCalendarBundle/chill.api.specs.yaml src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml", | ||||||
|  |     "specs-validate": "swagger-cli validate templates/api/specs.yaml", | ||||||
|  |     "specs-create-dir": "mkdir -p templates/api", | ||||||
|  |     "specs": "yarn run specs-create-dir && yarn run specs-build && yarn run specs-validate", | ||||||
|  |     "version": "node --version", | ||||||
|  |     "eslint": "npx eslint-baseline --fix \"src/**/*.{js,ts,vue}\"" | ||||||
|   }, |   }, | ||||||
|   "private": true |   "private": true | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,14 +0,0 @@ | |||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$records of method League\\\\Csv\\\\Writer\\:\\:insertAll\\(\\) expects iterable\\<array\\<float\\|int\\|string\\|Stringable\\|null\\>\\>, iterable\\<array\\<string, bool\\|int\\|string\\>\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/UserExportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant ASC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Ascending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php |  | ||||||
| @@ -1,58 +0,0 @@ | |||||||
| # See https://github.com/doctrine/orm/issues/11313 for a follow-up |  | ||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant ASC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Ascending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldsGroup.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant ASC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Ascending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Entity/Notification.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant DESC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Descending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant DESC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Descending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant DESC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Descending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant DESC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Descending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Person.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Fetching deprecated class constant DESC of class Doctrine\\\\Common\\\\Collections\\\\Criteria\\: |  | ||||||
| 				use Order\\:\\:Descending instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php |  | ||||||
| @@ -1,301 +0,0 @@ | |||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ActivityBundle\\\\Entity\\\\Activity\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\PersonBundle\\\\Entity\\\\Person\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, DateTime\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReasonCategory\\|null given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonCategoryController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReason\\|null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method DateTime\\:\\:setTimezone\\(\\) with incorrect case\\: setTimeZone$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Form/ActivityType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in &&, Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\|null given on the right side\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Form/ActivityType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, Chill\\\\AsideActivityBundle\\\\Entity\\\\AsideActivityCategory\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivityCategory.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method DateTimeImmutable\\:\\:setTimezone\\(\\) with incorrect case\\: setTimeZone$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\MainBundle\\\\Entity\\\\Location\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Controller/CalendarController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, Symfony\\\\Component\\\\Validator\\\\ConstraintViolationListInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomField\\|null given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\|null given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getFirstName\\(\\) with incorrect case\\: getFirstname$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getLastName\\(\\) with incorrect case\\: getLastname$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getMobilenumber\\(\\) with incorrect case\\: getMobileNumber$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getPhonenumber\\(\\) with incorrect case\\: getPhoneNumber$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Event given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Event\\|null given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, int given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only numeric types are allowed in pre\\-increment, string given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\EventType\\|null given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventTypeController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Participation\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Role\\|null given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/RoleController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Status\\|null given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/StatusController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\Language\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, Chill\\\\MainBundle\\\\Entity\\\\Language\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, int given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadPostalCodesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\Center\\|null given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/CenterController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Redis\\:\\:setex\\(\\) with incorrect case\\: setEx$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/ExportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\PermissionsGroup\\|null given\\.$#" |  | ||||||
| 			count: 5 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\RoleScope\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/ScopeController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\GroupCenter\\|null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/UserController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\User\\|null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/UserController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, int given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadPostalCodes.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only numeric types are allowed in pre\\-increment, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadsheetListFormatter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, int given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataTransformer/IdToEntityDataTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, string\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/PickUserLocationType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, int\\<0, max\\> given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Search/SearchApiQuery.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\MainBundle\\\\Entity\\\\Address\\:\\:getPostcode\\(\\) with incorrect case\\: getPostCode$#" |  | ||||||
| 			count: 6 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassDiscriminatorMapping\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Person.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriodParticipation\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Person.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getFirstName\\(\\) with incorrect case\\: getFirstname$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/Type/PickPersonType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getLastName\\(\\) with incorrect case\\: getLastname$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/Type/PickPersonType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, int\\<0, max\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in &&, null given on the left side\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\Household\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, array\\<Chill\\\\PersonBundle\\\\Entity\\\\Person\\\\ResidentialAddress\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getDeathdate\\(\\) with incorrect case\\: getDeathDate$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Templating/Entity/PersonRender.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\PersonBundle\\\\Entity\\\\Person\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Controller/ReportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ReportBundle\\\\Entity\\\\Report given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Controller/ReportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Call to method Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:setFirstname\\(\\) with incorrect case\\: setFirstName$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/EventListener/ThirdPartyEventListener.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Dynamic call to static method Chill\\\\ThirdPartyBundle\\\\ThirdPartyType\\\\ThirdPartyTypeProviderInterface\\:\\:getKey\\(\\)\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/ThirdPartyType/ThirdPartyTypeManager.php |  | ||||||
| @@ -1,804 +0,0 @@ | |||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(array\\<Chill\\\\ActivityBundle\\\\Entity\\\\Activity\\>\\) of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:findByPerson\\(\\) should be covariant with return type \\(array\\<Chill\\\\ActivityBundle\\\\Repository\\\\Activity\\>\\) of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepositoryInterface\\:\\:findByPerson\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(array\\<Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReason\\>\\) of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityReasonRepository\\:\\:findAll\\(\\) should be covariant with return type \\(array\\<int, object\\>\\) of method Doctrine\\\\ORM\\\\EntityRepository\\<object\\>\\:\\:findAll\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Repository/ActivityReasonRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(array\\<array\\<string\\>\\>\\) of method Chill\\\\AsideActivityBundle\\\\Security\\\\AsideActivityVoter\\:\\:getRolesWithHierarchy\\(\\) should be covariant with return type \\(array\\<string, array\\<int, string\\>\\>\\) of method Chill\\\\MainBundle\\\\Security\\\\ProvideRoleHierarchyInterface\\:\\:getRolesWithHierarchy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillAsideActivityBundle/src/Security/AsideActivityVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$criteria \\(array\\<string, mixed\\>\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$criteria \\(array\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$criteria \\(array\\<string, mixed\\>\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findOneBy\\(\\) should be contravariant with parameter \\$criteria \\(array\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findOneBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$orderBy \\(array\\<string, 'ASC'\\|'asc'\\|'DESC'\\|'desc'\\>\\|null\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$orderBy \\(array\\|null\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(array\\<object\\>\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findAll\\(\\) should be covariant with return type \\(array\\<Chill\\\\CalendarBundle\\\\Entity\\\\CalendarDoc\\>\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findAll\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(array\\<object\\>\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findBy\\(\\) should be covariant with return type \\(array\\<Chill\\\\CalendarBundle\\\\Entity\\\\CalendarDoc\\>\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\CalendarBundle\\\\Entity\\\\CalendarDoc\\) of method Chill\\\\CalendarBundle\\\\Security\\\\Voter\\\\CalendarDocVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Security/Voter/CalendarDocVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\CalendarBundle\\\\Entity\\\\Invite\\) of method Chill\\\\CalendarBundle\\\\Security\\\\Voter\\\\InviteVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Security/Voter/InviteVoter.php |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(int\\|void\\|null\\) of method Chill\\\\CustomFieldsBundle\\\\Command\\\\CreateFieldsOnGroupCommand\\:\\:execute\\(\\) should be covariant with return type \\(int\\) of method Symfony\\\\Component\\\\Console\\\\Command\\\\Command\\:\\:execute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$customFieldsGroup \\(Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\|null\\) of method Chill\\\\CustomFieldsBundle\\\\Form\\\\DataTransformer\\\\CustomFieldsGroupToIdTransformer\\:\\:transform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:transform\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$id \\(string\\) of method Chill\\\\CustomFieldsBundle\\\\Form\\\\DataTransformer\\\\CustomFieldsGroupToIdTransformer\\:\\:reverseTransform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:reverseTransform\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\DocGeneratorBundle\\\\Controller\\\\AdminDocGeneratorTemplateController\\:\\:orderQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:orderQuery\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Controller/AdminDocGeneratorTemplateController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Doctrine\\\\Common\\\\Collections\\\\Collection\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|void\\|null\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:normalize\\(\\) should be covariant with return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null\\) of method Chill\\\\DocStoreBundle\\\\Entity\\\\PersonDocument\\:\\:getScope\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasScopeInterface\\:\\:getScope\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocStoreBundle/Entity/PersonDocument.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\DocStoreBundle\\\\Entity\\\\PersonDocument\\) of method Chill\\\\DocStoreBundle\\\\Security\\\\Authorization\\\\PersonDocumentVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocStoreBundle/Security/Authorization/PersonDocumentVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\DocStoreBundle\\\\Serializer\\\\Normalizer\\\\StoredObjectDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocStoreBundle/Serializer/Normalizer/StoredObjectDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\DocStoreBundle\\\\Serializer\\\\Normalizer\\\\StoredObjectDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocStoreBundle/Serializer/Normalizer/StoredObjectDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\DocStoreBundle\\\\Entity\\\\AccompanyingCourseDocument\\) of method Chill\\\\DocStoreBundle\\\\Workflow\\\\AccompanyingCourseDocumentWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocStoreBundle/Workflow/AccompanyingCourseDocumentWorkflowHandler.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(null\\) of method Chill\\\\EventBundle\\\\Form\\\\ChoiceLoader\\\\EventChoiceLoader\\:\\:loadChoiceList\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoiceList\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\EventBundle\\\\Form\\\\ChoiceLoader\\\\EventChoiceLoader\\:\\:loadChoicesForValues\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoicesForValues\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\EventBundle\\\\Form\\\\ChoiceLoader\\\\EventChoiceLoader\\:\\:loadValuesForChoices\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadValuesForChoices\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\EventBundle\\\\Entity\\\\Event\\) of method Chill\\\\EventBundle\\\\Security\\\\Authorization\\\\EventVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Security/Authorization/EventVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\EventBundle\\\\Entity\\\\Participation\\) of method Chill\\\\EventBundle\\\\Security\\\\Authorization\\\\ParticipationVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Security/Authorization/ParticipationVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$entity \\(Chill\\\\EventBundle\\\\Entity\\\\Event\\) of method Chill\\\\EventBundle\\\\Timeline\\\\TimelineEventProvider\\:\\:getEntityTemplate\\(\\) should be contravariant with parameter \\$entity \\(Chill\\\\MainBundle\\\\Timeline\\\\type\\) of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineProviderInterface\\:\\:getEntityTemplate\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Timeline/TimelineEventProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$type \\(null\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Routing\\\\CRUDRoutesLoader\\:\\:supports\\(\\) should be contravariant with parameter \\$type \\(string\\|null\\) of method Symfony\\\\Component\\\\Config\\\\Loader\\\\LoaderInterface\\:\\:supports\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Routing/CRUDRoutesLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\MainBundle\\\\Controller\\\\LocationApiController\\:\\:orderQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:orderQuery\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/LocationApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\MainBundle\\\\Controller\\\\UserApiController\\:\\:customizeQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:customizeQuery\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/UserApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(object\\|null\\) of method Chill\\\\MainBundle\\\\DependencyInjection\\\\ChillMainExtension\\:\\:getConfiguration\\(\\) should be covariant with return type \\(Symfony\\\\Component\\\\Config\\\\Definition\\\\ConfigurationInterface\\|null\\) of method Symfony\\\\Component\\\\DependencyInjection\\\\Extension\\\\ConfigurationExtensionInterface\\:\\:getConfiguration\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(object\\|null\\) of method Chill\\\\MainBundle\\\\DependencyInjection\\\\ChillMainExtension\\:\\:getConfiguration\\(\\) should be covariant with return type \\(Symfony\\\\Component\\\\Config\\\\Definition\\\\ConfigurationInterface\\|null\\) of method Symfony\\\\Component\\\\DependencyInjection\\\\Extension\\\\Extension\\:\\:getConfiguration\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(null\\) of method Chill\\\\MainBundle\\\\Form\\\\ChoiceLoader\\\\PostalCodeChoiceLoader\\:\\:loadChoiceList\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoiceList\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\MainBundle\\\\Form\\\\ChoiceLoader\\\\PostalCodeChoiceLoader\\:\\:loadChoicesForValues\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoicesForValues\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\MainBundle\\\\Form\\\\ChoiceLoader\\\\PostalCodeChoiceLoader\\:\\:loadValuesForChoices\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadValuesForChoices\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$address \\(Chill\\\\MainBundle\\\\Entity\\\\Address\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapDataToForms\\(\\) should be contravariant with parameter \\$viewData \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapDataToForms\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$forms \\(Iterator\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapFormsToData\\(\\) should be contravariant with parameter \\$forms \\(iterable\\<Symfony\\\\Component\\\\Form\\\\FormInterface\\>&Traversable\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapFormsToData\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$address \\(Chill\\\\MainBundle\\\\Entity\\\\Address\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapFormsToData\\(\\) should be contravariant with parameter \\$viewData \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapFormsToData\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$forms \\(Iterator\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapDataToForms\\(\\) should be contravariant with parameter \\$forms \\(iterable\\<Symfony\\\\Component\\\\Form\\\\FormInterface\\>&Traversable\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapDataToForms\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(string\\) of method Chill\\\\MainBundle\\\\Form\\\\DataTransformer\\\\IdToEntityDataTransformer\\:\\:reverseTransform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:reverseTransform\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataTransformer/IdToEntityDataTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(array\\<Chill\\\\MainBundle\\\\Entity\\\\User\\>\\|Chill\\\\MainBundle\\\\Entity\\\\User\\) of method Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\EntityToJsonTransformer\\:\\:transform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:transform\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/EntityToJsonTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$array \\(array\\) of method Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\MultipleObjectsToIdTransformer\\:\\:transform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:transform\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/MultipleObjectsToIdTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$id \\(string\\) of method Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\ObjectToIdTransformer\\:\\:reverseTransform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:reverseTransform\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/ObjectToIdTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\EntityWorkflowVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Authorization/EntityWorkflowVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$entity \\(Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\DefaultCenterResolver\\:\\:resolveCenter\\(\\) should be contravariant with parameter \\$entity \\(object\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverInterface\\:\\:resolveCenter\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultCenterResolver.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$entity \\(Chill\\\\MainBundle\\\\Entity\\\\HasScopeInterface\\|Chill\\\\MainBundle\\\\Entity\\\\HasScopesInterface\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\DefaultScopeResolver\\:\\:resolveScope\\(\\) should be contravariant with parameter \\$entity \\(mixed\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\ScopeResolverInterface\\:\\:resolveScope\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultScopeResolver.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$address \\(Chill\\\\MainBundle\\\\Entity\\\\Address\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$collection \\(Chill\\\\MainBundle\\\\Serializer\\\\Model\\\\Collection\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CollectionNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CollectionNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CollectionNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CollectionNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\CommentEmbeddable\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CommentEmbeddableDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CommentEmbeddableDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DiscriminatedObjectDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DiscriminatedObjectDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DiscriminatedObjectDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareDenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DiscriminatedObjectDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DiscriminatedObjectDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DiscriminatedObjectDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DoctrineExistingEntityNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DoctrineExistingEntityNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\EntityWorkflowNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/EntityWorkflowNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\EntityWorkflowStepNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/EntityWorkflowStepNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Notification\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\NotificationNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/NotificationNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|void\\|null\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\NotificationNormalizer\\:\\:normalize\\(\\) should be covariant with return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/NotificationNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$data \\(string\\|null\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PhonenumberNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$data \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PhonenumberNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PointNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PointNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PointNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PointNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PrivateCommentEmbeddableNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PrivateCommentEmbeddableNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\UserNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\UserNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\UserNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(string\\) of method Chill\\\\MainBundle\\\\Validation\\\\Validator\\\\ValidPhonenumber\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$constraint \\(Chill\\\\MainBundle\\\\Validation\\\\Constraint\\\\PhonenumberConstraint\\) of method Chill\\\\MainBundle\\\\Validation\\\\Validator\\\\ValidPhonenumber\\:\\:validate\\(\\) should be contravariant with parameter \\$constraint \\(Symfony\\\\Component\\\\Validator\\\\Constraint\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(object\\) of method Chill\\\\MainBundle\\\\Validator\\\\Constraints\\\\Entity\\\\UserCircleConsistencyValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Validator/Constraints/Entity/UserCircleConsistencyValidator.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$constraint \\(Chill\\\\MainBundle\\\\Validator\\\\Constraints\\\\Entity\\\\UserCircleConsistency\\) of method Chill\\\\MainBundle\\\\Validator\\\\Constraints\\\\Entity\\\\UserCircleConsistencyValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$constraint \\(Symfony\\\\Component\\\\Validator\\\\Constraint\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Validator/Constraints/Entity/UserCircleConsistencyValidator.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\MainBundle\\\\Workflow\\\\Validator\\\\EntityWorkflowCreationValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Workflow/Validator/EntityWorkflowCreationValidator.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep\\) of method Chill\\\\MainBundle\\\\Workflow\\\\Validator\\\\StepDestValidValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Workflow/Validator/StepDestValidValidator.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\PersonBundle\\\\Controller\\\\HouseholdCompositionTypeApiController\\:\\:customizeQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:customizeQuery\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/HouseholdCompositionTypeApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(Doctrine\\\\Common\\\\Collections\\\\Collection\\) of method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:getScopes\\(\\) should be covariant with return type \\(iterable\\<Chill\\\\MainBundle\\\\Entity\\\\Scope\\>\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasScopesInterface\\:\\:getScopes\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\|null\\) of method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getCenter\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface\\:\\:getCenter\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Person.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value \\(null\\) of method Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\PersonChoiceLoader\\:\\:loadChoiceList\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoiceList\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\PersonChoiceLoader\\:\\:loadChoicesForValues\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoicesForValues\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\PersonChoiceLoader\\:\\:loadValuesForChoices\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadValuesForChoices\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$viewData \\(Doctrine\\\\Common\\\\Collections\\\\Collection\\) of method Chill\\\\PersonBundle\\\\Form\\\\DataMapper\\\\PersonAltNameDataMapper\\:\\:mapFormsToData\\(\\) should be contravariant with parameter \\$viewData \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapFormsToData\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/DataMapper/PersonAltNameDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$limit \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkEvaluationRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$offset \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkEvaluationRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$limit \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$offset \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$limit \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepositoryInterface\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepositoryInterface.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$offset \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepositoryInterface\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepositoryInterface.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\EvaluationRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\<object\\>\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:getClassName\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/EvaluationRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\EvaluationRepositoryInterface\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\<object\\>\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:getClassName\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/EvaluationRepositoryInterface.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\GoalRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\<object\\>\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:getClassName\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/GoalRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\ResultRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\<object\\>\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:getClassName\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/ResultRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\SocialActionRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\<object\\>\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:getClassName\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/SocialActionRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\SocialIssueRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\<object\\>\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:getClassName\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/SocialIssueRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationDocument\\) of method Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodWorkEvaluationDocumentVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationDocumentVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\) of method Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodWorkEvaluationVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\) of method Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodWorkVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$period \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\|null\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$origin \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\Origin\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodOriginNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodOriginNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodOriginNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodOriginNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$participation \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriodParticipation\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodParticipationNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodParticipationNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodParticipationNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodParticipationNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodResourceNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodResourceNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodResourceNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodResourceNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareDenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareDenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationDenormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\MembersEditorNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\MembersEditorNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$person \\(Chill\\\\PersonBundle\\\\Entity\\\\Person\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$relation \\(Chill\\\\PersonBundle\\\\Entity\\\\Relationships\\\\Relationship\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\RelationshipDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/RelationshipDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\RelationshipDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/RelationshipDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\RelationshipDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/RelationshipDocGenNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialActionNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialActionNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialActionNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialActionNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialIssueNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialIssueNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialIssueNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\WorkflowNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/WorkflowNormalizer.php |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationDocument\\) of method Chill\\\\PersonBundle\\\\Workflow\\\\AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\) of method Chill\\\\PersonBundle\\\\Workflow\\\\AccompanyingPeriodWorkEvaluationWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationWorkflowHandler.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\) of method Chill\\\\PersonBundle\\\\Workflow\\\\AccompanyingPeriodWorkWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkWorkflowHandler.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\|null\\) of method Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:getCenter\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface\\:\\:getCenter\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null\\) of method Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:getScope\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasScopeInterface\\:\\:getScope\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$entity \\(Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\) of method Chill\\\\ThirdPartyBundle\\\\Controller\\\\ThirdPartyController\\:\\:onPostFetchEntity\\(\\) should be contravariant with parameter \\$entity \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:onPostFetchEntity\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/Controller/ThirdPartyController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$createdAt \\(DateTimeImmutable\\) of method Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:setCreatedAt\\(\\) should be contravariant with parameter \\$datetime \\(DateTimeInterface\\) of method Chill\\\\MainBundle\\\\Doctrine\\\\Model\\\\TrackCreationInterface\\:\\:setCreatedAt\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$updatedAt \\(DateTimeImmutable\\) of method Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:setUpdatedAt\\(\\) should be contravariant with parameter \\$datetime \\(DateTimeInterface\\) of method Chill\\\\MainBundle\\\\Doctrine\\\\Model\\\\TrackUpdateInterface\\:\\:setUpdatedAt\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$limit \\(null\\) of method Chill\\\\ThirdPartyBundle\\\\Repository\\\\ThirdPartyRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$offset \\(null\\) of method Chill\\\\ThirdPartyBundle\\\\Repository\\\\ThirdPartyRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\<object\\>\\:\\:findBy\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject \\(Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\|null\\) of method Chill\\\\ThirdPartyBundle\\\\Security\\\\Voter\\\\ThirdPartyVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/Security/Voter/ThirdPartyVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getBasename\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getBasename\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getCreationDate\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getCreationDate\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getDocumentId\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getDocumentId\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getLastModifiedDate\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getLastModifiedDate\\(\\)$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,676 +0,0 @@ | |||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$context of method Chill\\\\ActivityBundle\\\\Timeline\\\\TimelineActivityProvider\\:\\:checkContext\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(Chill\\\\BudgetBundle\\\\Repository\\\\ChargeType\\)\\: mixed\\)\\|null, Closure\\(Chill\\\\BudgetBundle\\\\Entity\\\\ChargeKind\\)\\: int\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(Chill\\\\BudgetBundle\\\\Repository\\\\ResourceType\\)\\: mixed\\)\\|null, Closure\\(Chill\\\\BudgetBundle\\\\Entity\\\\ResourceKind\\)\\: int\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\InviteUpdateMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Controller/InviteApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarRemovedMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarRangeRemovedMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarRangeMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$token of method Chill\\\\CalendarBundle\\\\RemoteCalendar\\\\Connector\\\\MSGraph\\\\OnBehalfOfUserTokenStorage\\:\\:setToken\\(\\) expects TheNetworg\\\\OAuth2\\\\Client\\\\Token\\\\AccessToken, League\\\\OAuth2\\\\Client\\\\Token\\\\AccessTokenInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/OnBehalfOfUserTokenStorage.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$code of class Exception constructor expects int, array\\<string, int\\|string\\|null\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$offset of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarRepository\\:\\:findBy\\(\\) expects int\\|null, array\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCalendarBundle/Repository/CalendarRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$prefix of function uniqid expects string, int\\<0, max\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoicesListType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$callback of function array_filter expects callable\\(Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadataInterface\\)\\: mixed, Closure\\(Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadata\\)\\: bool given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$metadata of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeNullData\\(\\) expects Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadata, Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadataInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$attributes of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeNullData\\(\\) expects array\\<Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadata\\>, array\\<Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadataInterface\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#5 \\$metadata of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeObject\\(\\) expects Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadata, Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadataInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#6 \\$attributes of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeObject\\(\\) expects array\\<Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadata\\>, array\\<Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadataInterface\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, Chill\\\\MainBundle\\\\Entity\\\\Center given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/EventController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$participations of method Chill\\\\EventBundle\\\\Controller\\\\ParticipationController\\:\\:createEditFormMultiple\\(\\) expects ArrayIterator, Traversable given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$previous of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects Throwable\\|null, int given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$code of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects int, Symfony\\\\Component\\\\Serializer\\\\Exception\\\\NotEncodableValueException given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$code of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects int, Symfony\\\\Component\\\\Serializer\\\\Exception\\\\UnexpectedValueException given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$formClass of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:createFormFor\\(\\) expects string\\|null, Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\type\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$scope of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null, Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\Scope\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$name of method Chill\\\\MainBundle\\\\Entity\\\\Country\\:\\:setName\\(\\) expects string, array\\<int\\|string, string\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, Chill\\\\MainBundle\\\\Entity\\\\the given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadPostalCodesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$alias of method Chill\\\\MainBundle\\\\Export\\\\ExportManager\\:\\:getExport\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/ExportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:exportFormStep\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/ExportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:formatterFormStep\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/ExportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:forwardToGenerate\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/ExportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:selectCentersStep\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/ExportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countUnreadByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:findUnreadByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$addressee of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countAllForAttendee\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$addressee of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:findAllForAttendee\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$sender of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countAllForSender\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$sender of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:findAllForSender\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countUnreadByUserWhereAddressee\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countUnreadByUserWhereSender\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/NotificationController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/PasswordController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$token of class Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent constructor expects Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\|null, string given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/PasswordController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$ip of class Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent constructor expects Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\|null, string\\|null given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/PasswordController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:countItems\\(\\) expects Chill\\\\MainBundle\\\\Timeline\\\\unknown, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/TimelineCenterController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:addSubscriberToFinal\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:addSubscriberToStep\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:isUserSubscribedToFinal\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:isUserSubscribedToStep\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:removeSubscriberToFinal\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:removeSubscriberToStep\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:filterWidgetByPlace\\(\\) expects string, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:getWidgetAliasesbyPlace\\(\\) expects Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$array of function implode expects array\\|null, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:createDefinition\\(\\) expects Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$order of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:createDefinition\\(\\) expects Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type, float given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:getServiceId\\(\\) expects string, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$order of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:getServiceId\\(\\) expects float, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$iterator of function iterator_to_array expects Traversable, array\\<Chill\\\\MainBundle\\\\Export\\\\AggregatorInterface\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Export/ExportManager.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$nbAggregators of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\CSVFormatter\\:\\:appendAggregatorForm\\(\\) expects string, int\\<0, max\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Export/Formatter/CSVFormatter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$array of function array_map expects array, Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$nbAggregators of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:appendAggregatorForm\\(\\) expects string, int\\<0, max\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\PrivateCommentEmbeddable\\:\\:getCommentForUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataMapper/PrivateCommentDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$em of class Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\ObjectToIdTransformer constructor expects Doctrine\\\\ORM\\\\EntityManagerInterface, Doctrine\\\\Persistence\\\\ObjectManager given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/Select2CountryType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$em of class Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\MultipleObjectsToIdTransformer constructor expects Doctrine\\\\ORM\\\\EntityManagerInterface, Doctrine\\\\Persistence\\\\ObjectManager given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/Select2LanguageType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$translatableStrings of method Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringHelper\\:\\:localize\\(\\) expects array, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/Select2LanguageType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$datetime of class DateTime constructor expects string, Chill\\\\MainBundle\\\\Search\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Search/AbstractSearch.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$paginator of method Chill\\\\MainBundle\\\\Search\\\\SearchApi\\:\\:fetchRawResult\\(\\) expects Chill\\\\MainBundle\\\\Pagination\\\\Paginator, Chill\\\\MainBundle\\\\Pagination\\\\PaginatorInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Search/SearchApi.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$callback of function uasort expects callable\\(Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm, Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\)\\: int, Closure\\(Chill\\\\MainBundle\\\\Search\\\\SearchInterface, Chill\\\\MainBundle\\\\Search\\\\SearchInterface\\)\\: \\-1\\|0\\|1 given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Search/SearchProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$subject of function preg_match_all expects string, Chill\\\\MainBundle\\\\Search\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Search/SearchProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object of function get_class expects object, array\\<Chill\\\\MainBundle\\\\Entity\\\\Center\\> given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Notification\\:\\:isReadBy\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/NotificationNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\PrivateCommentEmbeddable\\:\\:setCommentForUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PrivateCommentEmbeddableNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Templating/Widget/WidgetRenderingTwig.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:buildUnionQuery\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\unknown given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineProviderInterface\\:\\:getEntityTemplate\\(\\) expects Chill\\\\MainBundle\\\\Timeline\\\\type, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$phoneNumber of method Chill\\\\MainBundle\\\\Phonenumber\\\\PhoneNumberHelperInterface\\:\\:format\\(\\) expects libphonenumber\\\\PhoneNumber\\|null, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$transitionBy of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep\\:\\:setTransitionBy\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Workflow/EventSubscriber/EntityWorkflowTransitionEventSubscriber.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$callback of function usort expects callable\\(mixed, mixed\\)\\: int, Closure\\(mixed, mixed\\)\\: bool given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:countNearMaxDateByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodWorkEvaluationApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:findNearMaxDateByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodWorkEvaluationApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$object of static method DateTimeImmutable\\:\\:createFromMutable\\(\\) expects DateTime, DateTimeInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/HouseholdApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$callback of function usort expects callable\\(mixed, mixed\\)\\: int, Closure\\(mixed, mixed\\)\\: bool given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/HouseholdController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$previous of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects Throwable\\|null, int given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$code of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects int, Symfony\\\\Component\\\\Serializer\\\\Exception\\\\InvalidArgumentException\\|Symfony\\\\Component\\\\Serializer\\\\Exception\\\\UnexpectedValueException given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/PersonController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$form of method Chill\\\\PersonBundle\\\\Controller\\\\PersonController\\:\\:isLastPostDataChanges\\(\\) expects Symfony\\\\Component\\\\Form\\\\Form, Symfony\\\\Component\\\\Form\\\\FormInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/PersonController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$precision of method Chill\\\\PersonBundle\\\\Search\\\\SimilarPersonMatcher\\:\\:matchPerson\\(\\) expects float, Chill\\\\PersonBundle\\\\Repository\\\\PersonNotDuplicateRepository given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$orderBy of method Chill\\\\PersonBundle\\\\Search\\\\SimilarPersonMatcher\\:\\:matchPerson\\(\\) expects string, float given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#4 \\$addYearComparison of method Chill\\\\PersonBundle\\\\Search\\\\SimilarPersonMatcher\\:\\:matchPerson\\(\\) expects bool, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:countItems\\(\\) expects Chill\\\\MainBundle\\\\Timeline\\\\unknown, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/TimelinePersonController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/TimelinePersonController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$period of method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodLocationHistory\\:\\:setPeriod\\(\\) expects Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod, null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$now of method Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\Household\\:\\:getCurrentMembers\\(\\) expects DateTimeImmutable\\|null, DateTimeInterface\\|null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$now of method Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\Household\\:\\:getNonCurrentMembers\\(\\) expects DateTimeImmutable\\|null, DateTimeInterface\\|null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$key of method Doctrine\\\\Common\\\\Collections\\\\Collection\\<\\(int\\|string\\),mixed\\>\\:\\:remove\\(\\) expects \\(int\\|string\\), Chill\\\\PersonBundle\\\\Entity\\\\SocialWork\\\\SocialAction given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/SocialWork/Evaluation.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$translatableStrings of method Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringHelper\\:\\:localize\\(\\) expects array, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Export/Helper/ListPersonHelper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, null given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$entityName of method Doctrine\\\\ORM\\\\EntityManager\\:\\:getRepository\\(\\) expects class\\-string\\<ChillPersonBundle\\:AccompanyingPeriod\\>, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Timeline/AbstractTimelineAccompanyingPeriod.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:filterReachableCenters\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Timeline/AbstractTimelineAccompanyingPeriod.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$context of method Chill\\\\PersonBundle\\\\Timeline\\\\AbstractTimelineAccompanyingPeriod\\:\\:getBasicEntityTemplate\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodClosing.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#3 \\$context of method Chill\\\\PersonBundle\\\\Timeline\\\\AbstractTimelineAccompanyingPeriod\\:\\:getBasicEntityTemplate\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodOpening.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelperInterface\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Widget/PersonListWidget.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$className of method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:getRepository\\(\\) expects class\\-string\\<ChillReportBundle\\:Report\\>, string given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Controller/ReportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$entity of method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:createEditForm\\(\\) expects Chill\\\\ReportBundle\\\\Entity\\\\Report, ChillReportBundle\\:Report given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Controller/ReportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Controller/ReportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableScopes\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Controller/ReportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$em of class Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\ScopeTransformer constructor expects Doctrine\\\\ORM\\\\EntityManagerInterface, Doctrine\\\\Persistence\\\\ObjectManager given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Form/ReportType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableScopes\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Form/ReportType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Search/ReportSearch.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableScopes\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Search/ReportSearch.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$context of method Chill\\\\ReportBundle\\\\Timeline\\\\TimelineReportProvider\\:\\:checkContext\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$entity of method Chill\\\\ReportBundle\\\\Timeline\\\\TimelineReportProvider\\:\\:getFieldsToRender\\(\\) expects Chill\\\\ReportBundle\\\\Entity\\\\Report, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$entityName of method Doctrine\\\\ORM\\\\EntityManager\\:\\:getRepository\\(\\) expects class\\-string\\<ChillReportBundle\\:Report\\>, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 6 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Controller/SingleTaskController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Controller/TaskController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$keys of function array_fill_keys expects array, Chill\\\\TaskBundle\\\\Entity\\\\json given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$task of method Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\SingleTaskPlaceEvent\\:\\:setTask\\(\\) expects Chill\\\\TaskBundle\\\\Entity\\\\SingleTask, Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Event/Lifecycle/TaskLifecycleEvent.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$repository of class Chill\\\\PersonBundle\\\\Form\\\\DataTransformer\\\\PersonToIdTransformer constructor expects Chill\\\\PersonBundle\\\\Repository\\\\PersonRepository, Doctrine\\\\ORM\\\\EntityManagerInterface given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Form/SingleTaskListType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Form/SingleTaskListType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$extras of method Knp\\\\Menu\\\\MenuItem\\:\\:setExtras\\(\\) expects array\\<string, mixed\\>, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Menu/MenuBuilder.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Repository/SingleTaskRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Security/Authorization/TaskVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$storedObject of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getContent\\(\\) expects Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject, ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$storedObject of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:setContent\\(\\) expects Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject, ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\#1 \\$type of method Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\:\\:setType\\(\\) expects string\\|null, false given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,6 +0,0 @@ | |||||||
| parameters: |  | ||||||
|     ignoreErrors: |  | ||||||
|         - |  | ||||||
|             message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Controller\\\\UserController\\:\\:createEditForm\\(\\)\\.$#" |  | ||||||
|             count: 1 |  | ||||||
|             path: src/Bundle/ChillMainBundle/Controller/UserController.php |  | ||||||
| @@ -1,153 +0,0 @@ | |||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/ChillImportUsersCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/ChillUserSendRenewPasswordCodeCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Instantiation of deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Encoder\\\\EncoderFactory\\: |  | ||||||
| 				since Symfony 5\\.3, use \\{@link PasswordHasherFactory\\} instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/SetPasswordCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/MenuController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/SearchController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/UserController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Instantiation of deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Encoder\\\\EncoderFactory\\: |  | ||||||
| 				since Symfony 5\\.3, use \\{@link PasswordHasherFactory\\} instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Validation/Validator/UserUniqueEmailAndUsername.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Validator/Constraints/Entity/UserCircleConsistencyValidator.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 13 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/PersonController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method get\\(\\) of class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\: |  | ||||||
| 				since Symfony 5\\.4, use method or constructor injection in your controller instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 7 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Controller/ReportController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getUsername\\(\\) of class Chill\\\\MainBundle\\\\Entity\\\\User\\: |  | ||||||
| 				since Symfony 5\\.3, use getUserIdentifier\\(\\) instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Form/SingleTaskListType.php |  | ||||||
| @@ -1,91 +0,0 @@ | |||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\DefaultVoterHelper\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Authorization/DefaultVoterHelper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\DefaultVoterHelperFactory\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Authorization/DefaultVoterHelperFactory.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\DefaultVoterHelperGenerator\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Authorization/DefaultVoterHelperGenerator.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Class Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcher implements deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverDispatcher.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Call to deprecated method getCurrentAccompanyingPeriod\\(\\) of class Chill\\\\PersonBundle\\\\Entity\\\\Person\\: |  | ||||||
| 				since 1\\.1 use `getOpenedAccompanyingPeriod instead$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Access to deprecated property \\$proxyAccompanyingPeriodOpenState of class Chill\\\\PersonBundle\\\\Entity\\\\Person\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Entity/Person.php |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriodACLAwareRepository\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodACLAwareRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\TaskBundle\\\\Controller\\\\SingleTaskController\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Controller/SingleTaskController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: """ |  | ||||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\TaskBundle\\\\Form\\\\SingleTaskType\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: |  | ||||||
| 				Use CenterResolverManager and its interface CenterResolverManagerInterface$# |  | ||||||
| 			""" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Form/SingleTaskType.php |  | ||||||
| @@ -1,387 +0,0 @@ | |||||||
| parameters: |  | ||||||
| 	ignoreErrors: |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Entity/ActivityReason.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillActivityBundle/Form/ActivityType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillBudgetBundle/Form/ChargeType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillBudgetBundle/Form/ResourceType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/AbstractCustomField.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 4 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:buildForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:buildForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:buildForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:buildForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:buildForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:buildForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomField.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldsGroup.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillCustomFieldsBundle/Form/CustomFieldType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillDocStoreBundle/Entity/DocumentCategory.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\$resolver of method Chill\\\\EventBundle\\\\Form\\\\EventTypeType\\:\\:setDefaultOptions\\(\\) has invalid type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolverInterface\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/EventTypeType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\$resolver of method Chill\\\\EventBundle\\\\Form\\\\RoleType\\:\\:setDefaultOptions\\(\\) has invalid type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolverInterface\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/RoleType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\$resolver of method Chill\\\\EventBundle\\\\Form\\\\StatusType\\:\\:setDefaultOptions\\(\\) has invalid type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolverInterface\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Form/StatusType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Search/EventSearch.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\EventBundle\\\\Search\\\\EventSearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillEventBundle/Search/EventSearch.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Casting to string something that's already string\\.$#" |  | ||||||
| 			count: 5 |  | ||||||
| 			path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillFamilyMembersBundle/Form/FamilyMemberType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Parameter \\$scope of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:getReachableCenters\\(\\) has invalid type Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\Scope\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Resolver/Resolver.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Resolver\\\\Resolver\\:\\:getConfigValue\\(\\) should return string but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Resolver/Resolver.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\Command\\\\ChillImportUsersCommand\\:\\:execute\\(\\) should return int but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/ChillImportUsersCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/ChillImportUsersCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/ChillUserSendRenewPasswordCodeCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\Command\\\\ChillUserSendRenewPasswordCodeCommand\\:\\:execute\\(\\) should return int but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/ChillUserSendRenewPasswordCodeCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\Command\\\\LoadAndUpdateLanguagesCommand\\:\\:execute\\(\\) should return int but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, mixed given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\Command\\\\LoadCountriesCommand\\:\\:execute\\(\\) should return int but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\Command\\\\LoadPostalCodesCommand\\:\\:execute\\(\\) should return int but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/LoadPostalCodesCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\Command\\\\SetPasswordCommand\\:\\:execute\\(\\) should return int but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Command/SetPasswordCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/PasswordController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Controller/PostalCodeController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Entity/Address.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Entity/User.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, mixed given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/AddressType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/AddressType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a negated boolean, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/ChillTextareaType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/DateIntervalTransformer.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/PasswordRecover/PasswordRecoverEvent.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Security/PasswordRecover/TokenManager.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:getTemplateData\\(\\) should return array but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/CRUD/Controller/OneToOneEntityPersonCRUDController.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Command/ChillPersonMoveCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\PersonBundle\\\\Command\\\\ChillPersonMoveCommand\\:\\:execute\\(\\) should return int but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Command/ChillPersonMoveCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Command/ChillPersonMoveCommand.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/DataMapper/PersonAltNameDataMapper.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in a ternary operator condition, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/Type/PersonAltNameType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Form/Type/PersonPhoneType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\PersonBundle\\\\Search\\\\PersonSearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillPersonBundle/Search/PersonSearch.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\LoadReports\\:\\:getRandomChoice\\(\\) should return array\\<string\\>\\|string but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/DataFixtures/ORM/LoadReports.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\ReportBundle\\\\Security\\\\Authorization\\\\ReportVoter\\:\\:supports\\(\\) should return bool but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillReportBundle/Security/Authorization/ReportVoter.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Casting to string something that's already string\\.$#" |  | ||||||
| 			count: 3 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" |  | ||||||
| 			count: 2 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Form/SingleTaskListType.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Repository/SingleTaskAclAwareRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" |  | ||||||
| 			count: 5 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Repository/SingleTaskRepository.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\TaskBundle\\\\Timeline\\\\SingleTaskTaskLifeCycleEventTimelineProvider\\:\\:getTransitionByName\\(\\) should return Symfony\\\\Component\\\\Workflow\\\\Transition but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Timeline/SingleTaskTaskLifeCycleEventTimelineProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\TaskBundle\\\\Timeline\\\\TaskLifeCycleEventTimelineProvider\\:\\:getTransitionByName\\(\\) should return Symfony\\\\Component\\\\Workflow\\\\Transition but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php |  | ||||||
|  |  | ||||||
| 		- |  | ||||||
| 			message: "#^Method Chill\\\\ThirdPartyBundle\\\\Search\\\\ThirdPartySearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#" |  | ||||||
| 			count: 1 |  | ||||||
| 			path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php |  | ||||||
|  |  | ||||||
| @@ -3,7 +3,7 @@ parameters: | |||||||
|     paths: |     paths: | ||||||
|         - src/ |         - src/ | ||||||
|         - utils/ |         - utils/ | ||||||
|     tmpDir: .cache/ |     tmpDir: var/cache/phpstan | ||||||
|     reportUnmatchedIgnoredErrors: false |     reportUnmatchedIgnoredErrors: false | ||||||
|     excludePaths: |     excludePaths: | ||||||
|         - .php_cs* |         - .php_cs* | ||||||
| @@ -24,14 +24,4 @@ parameters: | |||||||
|  |  | ||||||
| includes: | includes: | ||||||
|     - phpstan-baseline.neon |     - phpstan-baseline.neon | ||||||
|     - phpstan-critical.neon |  | ||||||
|     - phpstan-deprecations.neon |  | ||||||
|     - phpstan-types.neon |  | ||||||
|     - phpstan-baseline-level-2.neon |  | ||||||
|     - phpstan-baseline-level-3.neon |  | ||||||
|     - phpstan-baseline-level-4.neon |  | ||||||
|     - phpstan-baseline-level-5.neon |  | ||||||
|     - phpstan-deprecations-sf54.neon |  | ||||||
|     - phpstan-baseline-deprecations-doctrine-orm.neon |  | ||||||
|     - phpstan-baseline-2024-05.neon |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,13 +1,24 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" bootstrap="vendor/autoload.php" executionOrder="depends,defects" beStrictAboutOutputDuringTests="true" failOnRisky="true" failOnWarning="true" colors="true" cacheDirectory="var/cache/phpunit.rector.cache" requireCoverageMetadata="true" beStrictAboutCoverageMetadata="true"> | <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||||
|   <testsuites> |          xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" | ||||||
|     <testsuite name="default"> |          bootstrap="vendor/autoload.php" | ||||||
|       <directory>utils/rector/tests</directory> |          executionOrder="depends,defects" | ||||||
|     </testsuite> |          beStrictAboutOutputDuringTests="true" | ||||||
|   </testsuites> |          failOnRisky="true" | ||||||
|   <source> |          failOnWarning="true" | ||||||
|     <include> |          colors="true" | ||||||
|       <directory suffix=".php">utils/rector/src</directory> |          cacheDirectory="var/cache/phpunit.rector.cache" | ||||||
|     </include> |          requireCoverageMetadata="true" | ||||||
|   </source> |          beStrictAboutCoverageMetadata="true" | ||||||
|  |          displayDetailsOnTestsThatTriggerWarnings="true"> | ||||||
|  |     <testsuites> | ||||||
|  |         <testsuite name="default"> | ||||||
|  |             <directory>utils/rector/tests</directory> | ||||||
|  |         </testsuite> | ||||||
|  |     </testsuites> | ||||||
|  |     <source> | ||||||
|  |         <include> | ||||||
|  |             <directory suffix=".php">utils/rector/src</directory> | ||||||
|  |         </include> | ||||||
|  |     </source> | ||||||
| </phpunit> | </phpunit> | ||||||
|   | |||||||
							
								
								
									
										1523
									
								
								psalm-baseline.xml
									
									
									
									
									
								
							
							
						
						
									
										1523
									
								
								psalm-baseline.xml
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										47
									
								
								psalm.xml
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								psalm.xml
									
									
									
									
									
								
							| @@ -1,47 +0,0 @@ | |||||||
| <?xml version="1.0"?> |  | ||||||
| <psalm |  | ||||||
|     errorLevel="7" |  | ||||||
|     resolveFromConfigFile="true" |  | ||||||
|     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |  | ||||||
|     xmlns="https://getpsalm.org/schema/config" |  | ||||||
|     xsi:schemaLocation="https://getpsalm.org/schema/config tests/app/vendor/vimeo/psalm/config.xsd" |  | ||||||
|     errorBaseline="psalm-baseline.xml" |  | ||||||
|     cacheDirectory="./.psalm" |  | ||||||
| > |  | ||||||
|     <projectFiles> |  | ||||||
|         <directory name="src"/> |  | ||||||
|         <ignoreFiles> |  | ||||||
|             <directory name="./tests/"/> |  | ||||||
|             <directory name="./node_modules/"/> |  | ||||||
|         </ignoreFiles> |  | ||||||
|     </projectFiles> |  | ||||||
|  |  | ||||||
|     <!-- suppress error around parameter bags - see https://github.com/symfony/symfony/issues/45609#issuecomment-1056816975 --> |  | ||||||
|     <!-- maybe to desactivate with php 8.1 ? --> |  | ||||||
|     <issueHandlers> |  | ||||||
|         <UndefinedDocblockClass> |  | ||||||
|             <errorLevel type="suppress"> |  | ||||||
|                 <referencedClass name="UnitEnum"/> |  | ||||||
|             </errorLevel> |  | ||||||
|         </UndefinedDocblockClass> |  | ||||||
|     </issueHandlers> |  | ||||||
|  |  | ||||||
|     <!-- |  | ||||||
|     <fileExtensions> |  | ||||||
|         <extension name=".php"/> |  | ||||||
|         <extension name=".twig" checker="tests/app/vendor/psalm/plugin-symfony/src/Twig/TemplateFileAnalyzer.php" /> |  | ||||||
|     </fileExtensions> |  | ||||||
|     --> |  | ||||||
|  |  | ||||||
|     <plugins> |  | ||||||
|         <pluginClass class="Psalm\PhpUnitPlugin\Plugin"/> |  | ||||||
|         <!-- |  | ||||||
|         <pluginClass class="Psalm\SymfonyPsalmPlugin\Plugin"> |  | ||||||
|             <containerXml>tests/app/var/cache/dev/srcApp_KernelDevDebugContainer.xml</containerXml> |  | ||||||
|             <stubs> |  | ||||||
|                 <file name="vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php" /> |  | ||||||
|             </stubs> |  | ||||||
|         </pluginClass> |  | ||||||
|         --> |  | ||||||
|     </plugins> |  | ||||||
| </psalm> |  | ||||||
							
								
								
									
										19
									
								
								rector.php
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								rector.php
									
									
									
									
									
								
							| @@ -18,14 +18,15 @@ return static function (RectorConfig $rectorConfig): void { | |||||||
|     $rectorConfig->paths([ |     $rectorConfig->paths([ | ||||||
|         __DIR__ . '/docs', |         __DIR__ . '/docs', | ||||||
|         __DIR__ . '/src', |         __DIR__ . '/src', | ||||||
|  |         __DIR__ . '/rector.php', | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|     $rectorConfig->skip([ |     $rectorConfig->skip([ | ||||||
|         \Rector\Php55\Rector\String_\StringClassNameToClassConstantRector::class => __DIR__ . 'src/Bundle/ChillMainBundle/Service/Notifier/LegacyOvhCloudFactory.php' |         \Rector\Php55\Rector\String_\StringClassNameToClassConstantRector::class => __DIR__ . 'src/Bundle/ChillMainBundle/Service/Notifier/LegacyOvhCloudFactory.php' | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|     $rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/dev/test/App_KernelTestDebugContainer.xml  '); |     //$rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/dev/test/App_KernelTestDebugContainer.xml  '); | ||||||
|     $rectorConfig->symfonyContainerPhp(__DIR__ . '/tests/symfony-container.php'); |     //$rectorConfig->symfonyContainerPhp(__DIR__ . '/tests/symfony-container.php'); | ||||||
|  |  | ||||||
|     //$rectorConfig->cacheClass(\Rector\Caching\ValueObject\Storage\FileCacheStorage::class); |     //$rectorConfig->cacheClass(\Rector\Caching\ValueObject\Storage\FileCacheStorage::class); | ||||||
|     //$rectorConfig->cacheDirectory(__DIR__ . '/.cache/rector'); |     //$rectorConfig->cacheDirectory(__DIR__ . '/.cache/rector'); | ||||||
| @@ -39,16 +40,11 @@ return static function (RectorConfig $rectorConfig): void { | |||||||
|     // part of the symfony 54 rules |     // part of the symfony 54 rules | ||||||
|     $rectorConfig->rule(\Rector\Symfony\Symfony53\Rector\StaticPropertyFetch\KernelTestCaseContainerPropertyDeprecationRector::class); |     $rectorConfig->rule(\Rector\Symfony\Symfony53\Rector\StaticPropertyFetch\KernelTestCaseContainerPropertyDeprecationRector::class); | ||||||
|     $rectorConfig->rule(\Rector\Symfony\Symfony60\Rector\MethodCall\GetHelperControllerToServiceRector::class); |     $rectorConfig->rule(\Rector\Symfony\Symfony60\Rector\MethodCall\GetHelperControllerToServiceRector::class); | ||||||
|     $rectorConfig->disableParallel(); |     //$rectorConfig->disableParallel(); | ||||||
|  |  | ||||||
|     //define sets of rules |     //define sets of rules | ||||||
|     $rectorConfig->sets([ |     $rectorConfig->sets([ | ||||||
|         LevelSetList::UP_TO_PHP_82, |         LevelSetList::UP_TO_PHP_82, | ||||||
|         \Rector\Symfony\Set\SymfonySetList::SYMFONY_40, |  | ||||||
|         \Rector\Symfony\Set\SymfonySetList::SYMFONY_41, |  | ||||||
|         \Rector\Symfony\Set\SymfonySetList::SYMFONY_42, |  | ||||||
|         \Rector\Symfony\Set\SymfonySetList::SYMFONY_43, |  | ||||||
|         \Rector\Symfony\Set\SymfonySetList::SYMFONY_44, |  | ||||||
|         \Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_CODE_QUALITY, |         \Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_CODE_QUALITY, | ||||||
|         \Rector\PHPUnit\Set\PHPUnitSetList::PHPUNIT_90, |         \Rector\PHPUnit\Set\PHPUnitSetList::PHPUNIT_90, | ||||||
|     ]); |     ]); | ||||||
| @@ -66,11 +62,6 @@ return static function (RectorConfig $rectorConfig): void { | |||||||
|     // some routes are added twice if it remains activated |     // some routes are added twice if it remains activated | ||||||
|     // $rectorConfig->rule(\Rector\Symfony\Configs\Rector\ClassMethod\AddRouteAnnotationRector::class); |     // $rectorConfig->rule(\Rector\Symfony\Configs\Rector\ClassMethod\AddRouteAnnotationRector::class); | ||||||
|  |  | ||||||
|     // chill rules |  | ||||||
|     $rectorConfig->rules([ |  | ||||||
|         \Chill\Utils\Rector\Rector\ChillBundleMakeDataProviderStaticForAbstractExportTestRector::class, |  | ||||||
|     ]); |  | ||||||
|  |  | ||||||
|     // skip some path... |     // skip some path... | ||||||
|     $rectorConfig->skip([ |     $rectorConfig->skip([ | ||||||
|         // waiting for fixing this bug: https://github.com/rectorphp/rector-doctrine/issues/342 |         // waiting for fixing this bug: https://github.com/rectorphp/rector-doctrine/issues/342 | ||||||
| @@ -94,4 +85,6 @@ return static function (RectorConfig $rectorConfig): void { | |||||||
|         new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Validator\Constraints\Entity\UserCircleConsistency'), |         new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Validator\Constraints\Entity\UserCircleConsistency'), | ||||||
|         new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Workflow\Validator\EntityWorkflowCreation'), |         new \Rector\Php80\ValueObject\AnnotationToAttribute('Chill\MainBundle\Workflow\Validator\EntityWorkflowCreation'), | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|  |  | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -1,64 +0,0 @@ | |||||||
| .test_definition: &test_definition |  | ||||||
|     services: |  | ||||||
|        - chill/database:latest |  | ||||||
|       |  | ||||||
|     before_script: |  | ||||||
|        - composer config github-oauth.github.com $GITHUB_TOKEN |  | ||||||
|        - php -d memory_limit=-1 /usr/local/bin/composer install --no-interaction |  | ||||||
|        - cp  Resources/test/Fixtures/App/app/config/parameters.gitlab-ci.yml Resources/test/Fixtures/App/app/config/parameters.yml |  | ||||||
|        - php Resources/test/Fixtures/App/app/console doctrine:migrations:migrate --env=test --no-interaction |  | ||||||
|        - php Resources/test/Fixtures/App/app/console doctrine:fixtures:load --env=test --no-interaction |  | ||||||
|  |  | ||||||
| stages: |  | ||||||
|     - deploy |  | ||||||
|     - test |  | ||||||
|     - build-doc |  | ||||||
|     - deploy-doc |  | ||||||
|  |  | ||||||
| test:php-7.2: |  | ||||||
|     stage: test |  | ||||||
|     image: chill/ci-image:php-7.2 |  | ||||||
|     <<: *test_definition |  | ||||||
|     script: php vendor/bin/phpunit |  | ||||||
|  |  | ||||||
| deploy-packagist:     |  | ||||||
|     stage: deploy     |  | ||||||
|     image: chill/ci-image:php-7.2 |  | ||||||
|     before_script:         |  | ||||||
|         # test that PACKAGIST USERNAME and PACKAGIST_TOKEN variable are set         |  | ||||||
|         - if [ -z ${PACKAGIST_USERNAME+x} ]; then echo "Please set PACKAGIST_USERNAME variable"; exit -1;  fi         |  | ||||||
|         - if [ -z ${PACKAGIST_TOKEN+x} ]; then echo "Please set PACKAGIST_TOKEN variable";  exit -1; fi     |  | ||||||
|     script:         |  | ||||||
|         - STATUSCODE=$(curl -XPOST -H'content-type:application/json' "https://packagist.org/api/update-package?username=$PACKAGIST_USERNAME&apiToken=$PACKAGIST_TOKEN" -d"{\"repository\":{\"url\":\"$CI_PROJECT_URL.git\"}}" --silent --output /dev/stderr --write-out "%{http_code}")         |  | ||||||
|         - if [ $STATUSCODE = "202" ]; then exit 0; else exit $STATUSCODE; fi |  | ||||||
|          |  | ||||||
| # deploy documentation |  | ||||||
| api-doc-build: |  | ||||||
|    stage: build-doc |  | ||||||
|    environment: api-doc |  | ||||||
|    image: chill/ci-image:php-7.2 |  | ||||||
|    before_script: |  | ||||||
|       - mkdir api-doc |  | ||||||
|    script: apigen generate --destination api-doc/$CI_BUILD_REF_NAME/$CI_PROJECT_NAME |  | ||||||
|    artifacts: |  | ||||||
|       paths: |  | ||||||
|          - "api-doc/" |  | ||||||
|       name: api |  | ||||||
|       expire_in: '2h' |  | ||||||
|    only: |  | ||||||
|       - master |  | ||||||
|       - tags |  | ||||||
|  |  | ||||||
| api-doc-deploy: |  | ||||||
|    stage: deploy-doc |  | ||||||
|    image: pallet/swiftclient:latest |  | ||||||
|    before_script: |  | ||||||
|         # test that CONTAINER_API variable is set         |  | ||||||
|         - if [ -z ${CONTAINER_API+x} ]; then echo "Please set CONTAINER_API variable"; exit -1;  fi |  | ||||||
|         # go to api-doc to have and url with PROJECT/BUILD |  | ||||||
|         - cd api-doc |  | ||||||
|         # upload, and keep files during 1 year |  | ||||||
|    script: "swift upload --header \"X-Delete-After: 31536000\"  $CONTAINER_API $CI_BUILD_REF_NAME/$CI_PROJECT_NAME" |  | ||||||
|    only: |  | ||||||
|       - master |  | ||||||
|       - tags |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
|  |  | ||||||
| Version 1.5.1 |  | ||||||
| ============= |  | ||||||
|  |  | ||||||
| - [report activity count] fix error: do not show centers which are not selected in results. |  | ||||||
|  |  | ||||||
| Version 1.5.2 |  | ||||||
| ============= |  | ||||||
|  |  | ||||||
| - [aggregate by activity type] fix translation in aggregate activity type |  | ||||||
| - fix some translation in export |  | ||||||
| - fix error when persons not loaded by other aggregators / filters |  | ||||||
| - add "filter by activity type" filter |  | ||||||
|  |  | ||||||
| Version 1.5.3 |  | ||||||
| ============= |  | ||||||
|  |  | ||||||
| - add privacy events to activity list / show / edit |  | ||||||
|  |  | ||||||
| Version 1.5.4 |  | ||||||
| ============= |  | ||||||
|  |  | ||||||
| - [report activity]: add aggregator for activity users |  | ||||||
| - fix bug: error when extracting activities without filter / aggregators selecting persons |  | ||||||
|  |  | ||||||
| Version 1.5.5 |  | ||||||
| ============= |  | ||||||
|  |  | ||||||
| - [activity] replace dropdown for selecting reasons and use chillEntity for reason rendering |  | ||||||
| - fix bug: error when trying to edit activity of which the type has been deactivated |  | ||||||
|  |  | ||||||
| @@ -48,28 +48,6 @@ class ActivityReasonCategoryController extends AbstractController | |||||||
|         ]); |         ]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * Displays a form to edit an existing ActivityReasonCategory entity. |  | ||||||
|      */ |  | ||||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/{id}/edit', name: 'chill_activity_activityreasoncategory_edit')] |  | ||||||
|     public function editAction(mixed $id) |  | ||||||
|     { |  | ||||||
|         $em = $this->managerRegistry->getManager(); |  | ||||||
|  |  | ||||||
|         $entity = $em->getRepository(ActivityReasonCategory::class)->find($id); |  | ||||||
|  |  | ||||||
|         if (!$entity) { |  | ||||||
|             throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.'); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         $editForm = $this->createEditForm($entity); |  | ||||||
|  |  | ||||||
|         return $this->render('@ChillActivity/ActivityReasonCategory/edit.html.twig', [ |  | ||||||
|             'entity' => $entity, |  | ||||||
|             'edit_form' => $editForm->createView(), |  | ||||||
|         ]); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Lists all ActivityReasonCategory entities. |      * Lists all ActivityReasonCategory entities. | ||||||
|      */ |      */ | ||||||
| @@ -100,29 +78,10 @@ class ActivityReasonCategoryController extends AbstractController | |||||||
|         ]); |         ]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * Finds and displays a ActivityReasonCategory entity. |  | ||||||
|      */ |  | ||||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/{id}/show', name: 'chill_activity_activityreasoncategory_show')] |  | ||||||
|     public function showAction(mixed $id) |  | ||||||
|     { |  | ||||||
|         $em = $this->managerRegistry->getManager(); |  | ||||||
|  |  | ||||||
|         $entity = $em->getRepository(ActivityReasonCategory::class)->find($id); |  | ||||||
|  |  | ||||||
|         if (!$entity) { |  | ||||||
|             throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.'); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return $this->render('@ChillActivity/ActivityReasonCategory/show.html.twig', [ |  | ||||||
|             'entity' => $entity, |  | ||||||
|         ]); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Edits an existing ActivityReasonCategory entity. |      * Edits an existing ActivityReasonCategory entity. | ||||||
|      */ |      */ | ||||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/{id}/update', name: 'chill_activity_activityreasoncategory_update', methods: ['POST', 'PUT'])] |     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreasoncategory/{id}/update', name: 'chill_activity_activityreasoncategory_update')] | ||||||
|     public function updateAction(Request $request, mixed $id) |     public function updateAction(Request $request, mixed $id) | ||||||
|     { |     { | ||||||
|         $em = $this->managerRegistry->getManager(); |         $em = $this->managerRegistry->getManager(); | ||||||
| @@ -139,7 +98,7 @@ class ActivityReasonCategoryController extends AbstractController | |||||||
|         if ($editForm->isSubmitted() && $editForm->isValid()) { |         if ($editForm->isSubmitted() && $editForm->isValid()) { | ||||||
|             $em->flush(); |             $em->flush(); | ||||||
|  |  | ||||||
|             return $this->redirectToRoute('chill_activity_activityreasoncategory_edit', ['id' => $id]); |             return $this->redirectToRoute('chill_activity_activityreasoncategory', ['id' => $id]); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return $this->render('@ChillActivity/ActivityReasonCategory/edit.html.twig', [ |         return $this->render('@ChillActivity/ActivityReasonCategory/edit.html.twig', [ | ||||||
| @@ -178,7 +137,7 @@ class ActivityReasonCategoryController extends AbstractController | |||||||
|     { |     { | ||||||
|         $form = $this->createForm(ActivityReasonCategoryType::class, $entity, [ |         $form = $this->createForm(ActivityReasonCategoryType::class, $entity, [ | ||||||
|             'action' => $this->generateUrl('chill_activity_activityreasoncategory_update', ['id' => $entity->getId()]), |             'action' => $this->generateUrl('chill_activity_activityreasoncategory_update', ['id' => $entity->getId()]), | ||||||
|             'method' => 'PUT', |             'method' => 'POST', | ||||||
|         ]); |         ]); | ||||||
|  |  | ||||||
|         $form->add('submit', SubmitType::class, ['label' => 'Update']); |         $form->add('submit', SubmitType::class, ['label' => 'Update']); | ||||||
|   | |||||||
| @@ -17,7 +17,6 @@ use Chill\ActivityBundle\Repository\ActivityReasonRepository; | |||||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||||
| use Symfony\Component\Form\Extension\Core\Type\SubmitType; | use Symfony\Component\Form\Extension\Core\Type\SubmitType; | ||||||
| use Symfony\Component\HttpFoundation\Request; | use Symfony\Component\HttpFoundation\Request; | ||||||
| use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ActivityReason controller. |  * ActivityReason controller. | ||||||
| @@ -50,28 +49,6 @@ class ActivityReasonController extends AbstractController | |||||||
|         ]); |         ]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * Displays a form to edit an existing ActivityReason entity. |  | ||||||
|      */ |  | ||||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/{id}/edit', name: 'chill_activity_activityreason_edit')] |  | ||||||
|     public function editAction(mixed $id) |  | ||||||
|     { |  | ||||||
|         $em = $this->managerRegistry->getManager(); |  | ||||||
|  |  | ||||||
|         $entity = $em->getRepository(ActivityReason::class)->find($id); |  | ||||||
|  |  | ||||||
|         if (null === $entity) { |  | ||||||
|             throw new NotFoundHttpException('Unable to find ActivityReason entity.'); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         $editForm = $this->createEditForm($entity); |  | ||||||
|  |  | ||||||
|         return $this->render('@ChillActivity/ActivityReason/edit.html.twig', [ |  | ||||||
|             'entity' => $entity, |  | ||||||
|             'edit_form' => $editForm->createView(), |  | ||||||
|         ]); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Lists all ActivityReason entities. |      * Lists all ActivityReason entities. | ||||||
|      */ |      */ | ||||||
| @@ -102,29 +79,10 @@ class ActivityReasonController extends AbstractController | |||||||
|         ]); |         ]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * Finds and displays a ActivityReason entity. |  | ||||||
|      */ |  | ||||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/{id}/show', name: 'chill_activity_activityreason_show')] |  | ||||||
|     public function showAction(mixed $id) |  | ||||||
|     { |  | ||||||
|         $em = $this->managerRegistry->getManager(); |  | ||||||
|  |  | ||||||
|         $entity = $em->getRepository(ActivityReason::class)->find($id); |  | ||||||
|  |  | ||||||
|         if (!$entity) { |  | ||||||
|             throw $this->createNotFoundException('Unable to find ActivityReason entity.'); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return $this->render('@ChillActivity/ActivityReason/show.html.twig', [ |  | ||||||
|             'entity' => $entity, |  | ||||||
|         ]); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Edits an existing ActivityReason entity. |      * Edits an existing ActivityReason entity. | ||||||
|      */ |      */ | ||||||
|     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/{id}/update', name: 'chill_activity_activityreason_update', methods: ['POST', 'PUT'])] |     #[\Symfony\Component\Routing\Annotation\Route(path: '/{_locale}/admin/activityreason/{id}/update', name: 'chill_activity_activityreason_update')] | ||||||
|     public function updateAction(Request $request, mixed $id) |     public function updateAction(Request $request, mixed $id) | ||||||
|     { |     { | ||||||
|         $em = $this->managerRegistry->getManager(); |         $em = $this->managerRegistry->getManager(); | ||||||
| @@ -180,7 +138,7 @@ class ActivityReasonController extends AbstractController | |||||||
|     { |     { | ||||||
|         $form = $this->createForm(ActivityReasonType::class, $entity, [ |         $form = $this->createForm(ActivityReasonType::class, $entity, [ | ||||||
|             'action' => $this->generateUrl('chill_activity_activityreason_update', ['id' => $entity->getId()]), |             'action' => $this->generateUrl('chill_activity_activityreason_update', ['id' => $entity->getId()]), | ||||||
|             'method' => 'PUT', |             'method' => 'POST', | ||||||
|         ]); |         ]); | ||||||
|  |  | ||||||
|         $form->add('submit', SubmitType::class, ['label' => 'Update']); |         $form->add('submit', SubmitType::class, ['label' => 'Update']); | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ class ByActivityNumberAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data): void |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $qb |         $qb | ||||||
|             ->addSelect('(SELECT COUNT(activity.id) FROM '.Activity::class.' activity WHERE activity.accompanyingPeriod = acp) AS activity_by_number_aggregator') |             ->addSelect('(SELECT COUNT(activity.id) FROM '.Activity::class.' activity WHERE activity.accompanyingPeriod = acp) AS activity_by_number_aggregator') | ||||||
| @@ -41,12 +41,27 @@ class ByActivityNumberAggregator implements AggregatorInterface | |||||||
|         // No form needed |         // No form needed | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return static function ($value) { |         return static function ($value) { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface | |||||||
|         private TranslatableStringHelperInterface $translatableStringHelper, |         private TranslatableStringHelperInterface $translatableStringHelper, | ||||||
|     ) {} |     ) {} | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         $builder |         $builder | ||||||
|             ->add('after_date', PickRollingDateType::class, [ |             ->add('after_date', PickRollingDateType::class, [ | ||||||
| @@ -46,6 +46,21 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface | |||||||
|             ]); |             ]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return ['after_date' => $formData['after_date']->normalize(), 'before_date' => $formData['before_date']->normalize()]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return ['after_date' => \Chill\MainBundle\Service\RollingDate\RollingDate::fromNormalized($formData['after_date']), 'before_date' => \Chill\MainBundle\Service\RollingDate\RollingDate::fromNormalized($formData['before_date'])]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return [ |         return [ | ||||||
| @@ -54,7 +69,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface | |||||||
|         ]; |         ]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, mixed $data) |     public function getLabels($key, array $values, mixed $data): callable | ||||||
|     { |     { | ||||||
|         return function (int|string|null $value): string { |         return function (int|string|null $value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
| @@ -69,12 +84,12 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface | |||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getQueryKeys($data) |     public function getQueryKeys($data): array | ||||||
|     { |     { | ||||||
|         return [self::PREFIX.'_actype_id']; |         return [self::PREFIX.'_actype_id']; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getTitle() |     public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface | ||||||
|     { |     { | ||||||
|         return 'export.aggregator.acp.by_activity_type.title'; |         return 'export.aggregator.acp.by_activity_type.title'; | ||||||
|     } |     } | ||||||
| @@ -84,7 +99,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $p = self::PREFIX; |         $p = self::PREFIX; | ||||||
|  |  | ||||||
| @@ -115,7 +130,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface | |||||||
|             ->addGroupBy("{$p}_actype_id"); |             ->addGroupBy("{$p}_actype_id"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function applyOn() |     public function applyOn(): string | ||||||
|     { |     { | ||||||
|         return Declarations::ACP_TYPE; |         return Declarations::ACP_TYPE; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ class BySocialActionAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         if (!\in_array('actsocialaction', $qb->getAllAliases(), true)) { |         if (!\in_array('actsocialaction', $qb->getAllAliases(), true)) { | ||||||
|             $qb->leftJoin('activity.socialActions', 'actsocialaction'); |             $qb->leftJoin('activity.socialActions', 'actsocialaction'); | ||||||
| @@ -42,17 +42,32 @@ class BySocialActionAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY_ACP; |         return Declarations::ACTIVITY_ACP; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // no form |         // no form | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value) { |         return function ($value) { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ class BySocialIssueAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         if (!\in_array('actsocialissue', $qb->getAllAliases(), true)) { |         if (!\in_array('actsocialissue', $qb->getAllAliases(), true)) { | ||||||
|             $qb->leftJoin('activity.socialIssues', 'actsocialissue'); |             $qb->leftJoin('activity.socialIssues', 'actsocialissue'); | ||||||
| @@ -42,17 +42,32 @@ class BySocialIssueAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY_ACP; |         return Declarations::ACTIVITY_ACP; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // no form |         // no form | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         if (!\in_array('actloc', $qb->getAllAliases(), true)) { |         if (!\in_array('actloc', $qb->getAllAliases(), true)) { | ||||||
|             $qb->leftJoin('activity.location', 'actloc'); |             $qb->leftJoin('activity.location', 'actloc'); | ||||||
| @@ -39,17 +39,32 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // no form required for this aggregator |         // no form required for this aggregator | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data): \Closure |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
| @@ -69,7 +84,7 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface | |||||||
|         return [self::KEY]; |         return [self::KEY]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getTitle() |     public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface | ||||||
|     { |     { | ||||||
|         return 'export.aggregator.activity.by_location.Title'; |         return 'export.aggregator.activity.by_location.Title'; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -22,14 +22,29 @@ final readonly class ActivityPresenceAggregator implements AggregatorInterface | |||||||
| { | { | ||||||
|     public function __construct(private ActivityPresenceRepositoryInterface $activityPresenceRepository, private TranslatableStringHelperInterface $translatableStringHelper) {} |     public function __construct(private ActivityPresenceRepositoryInterface $activityPresenceRepository, private TranslatableStringHelperInterface $translatableStringHelper) {} | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) {} |     public function buildForm(FormBuilderInterface $builder): void {} | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, mixed $data) |     public function getLabels($key, array $values, mixed $data): callable | ||||||
|     { |     { | ||||||
|         return function (int|string|null $value): string { |         return function (int|string|null $value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
| @@ -44,7 +59,7 @@ final readonly class ActivityPresenceAggregator implements AggregatorInterface | |||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getQueryKeys($data) |     public function getQueryKeys($data): array | ||||||
|     { |     { | ||||||
|         return ['activity_presence_aggregator_attendee']; |         return ['activity_presence_aggregator_attendee']; | ||||||
|     } |     } | ||||||
| @@ -59,13 +74,13 @@ final readonly class ActivityPresenceAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data): void |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $qb->addSelect('IDENTITY(activity.attendee) AS activity_presence_aggregator_attendee'); |         $qb->addSelect('IDENTITY(activity.attendee) AS activity_presence_aggregator_attendee'); | ||||||
|         $qb->addGroupBy('activity_presence_aggregator_attendee'); |         $qb->addGroupBy('activity_presence_aggregator_attendee'); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function applyOn() |     public function applyOn(): string | ||||||
|     { |     { | ||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -36,7 +36,7 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         // add select element |         // add select element | ||||||
|         if ('reasons' === $data['level']) { |         if ('reasons' === $data['level']) { | ||||||
| @@ -72,7 +72,7 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         $builder->add( |         $builder->add( | ||||||
|             'level', |             'level', | ||||||
| @@ -89,6 +89,21 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali | |||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return ['level' => $formData['level']]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return ['level' => $formData['level']]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return [ |         return [ | ||||||
| @@ -96,7 +111,7 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali | |||||||
|         ]; |         ]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value) use ($data) { |         return function ($value) use ($data) { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
| @@ -125,7 +140,7 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali | |||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getQueryKeys($data) |     public function getQueryKeys($data): array | ||||||
|     { |     { | ||||||
|         // add select element |         // add select element | ||||||
|         if ('reasons' === $data['level']) { |         if ('reasons' === $data['level']) { | ||||||
| @@ -139,12 +154,12 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali | |||||||
|         throw new \RuntimeException('The data provided are not recognised.'); |         throw new \RuntimeException('The data provided are not recognised.'); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getTitle() |     public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface | ||||||
|     { |     { | ||||||
|         return 'Aggregate by activity reason'; |         return 'Aggregate by activity reason'; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function validateForm($data, ExecutionContextInterface $context) |     public function validateForm($data, ExecutionContextInterface $context): void | ||||||
|     { |     { | ||||||
|         if (null === $data['level']) { |         if (null === $data['level']) { | ||||||
|             $context |             $context | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ class ActivityTypeAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         if (!\in_array('acttype', $qb->getAllAliases(), true)) { |         if (!\in_array('acttype', $qb->getAllAliases(), true)) { | ||||||
|             $qb->leftJoin('activity.activityType', 'acttype'); |             $qb->leftJoin('activity.activityType', 'acttype'); | ||||||
| @@ -44,17 +44,32 @@ class ActivityTypeAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // no form required for this aggregator |         // no form required for this aggregator | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data): \Closure |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function (int|string|null $value): string { |         return function (int|string|null $value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
| @@ -74,7 +89,7 @@ class ActivityTypeAggregator implements AggregatorInterface | |||||||
|         return [self::KEY]; |         return [self::KEY]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getTitle() |     public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface | ||||||
|     { |     { | ||||||
|         return 'Aggregate by activity type'; |         return 'Aggregate by activity type'; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ class ActivityUserAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         // add select element |         // add select element | ||||||
|         $qb->addSelect(sprintf('IDENTITY(activity.user) AS %s', self::KEY)); |         $qb->addSelect(sprintf('IDENTITY(activity.user) AS %s', self::KEY)); | ||||||
| @@ -43,17 +43,32 @@ class ActivityUserAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // nothing to add |         // nothing to add | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, $values, $data): \Closure |     public function getLabels($key, $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value) { |         return function ($value) { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
| @@ -70,7 +85,7 @@ class ActivityUserAggregator implements AggregatorInterface | |||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getQueryKeys($data) |     public function getQueryKeys($data): array | ||||||
|     { |     { | ||||||
|         return [self::KEY]; |         return [self::KEY]; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ class ActivityUsersAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         if (!\in_array('actusers', $qb->getAllAliases(), true)) { |         if (!\in_array('actusers', $qb->getAllAliases(), true)) { | ||||||
|             $qb->leftJoin('activity.users', 'actusers'); |             $qb->leftJoin('activity.users', 'actusers'); | ||||||
| @@ -43,17 +43,32 @@ class ActivityUsersAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // nothing to add on the form |         // nothing to add on the form | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value) { |         return function ($value) { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
| @@ -70,12 +85,12 @@ class ActivityUsersAggregator implements AggregatorInterface | |||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getQueryKeys($data) |     public function getQueryKeys($data): array | ||||||
|     { |     { | ||||||
|         return ['activity_users_aggregator']; |         return ['activity_users_aggregator']; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getTitle() |     public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface | ||||||
|     { |     { | ||||||
|         return 'Aggregate by activity users'; |         return 'Aggregate by activity users'; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ class ActivityUsersJobAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $p = self::PREFIX; |         $p = self::PREFIX; | ||||||
|  |  | ||||||
| @@ -65,14 +65,29 @@ class ActivityUsersJobAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) {} |     public function buildForm(FormBuilderInterface $builder): void {} | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ class ActivityUsersScopeAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $p = self::PREFIX; |         $p = self::PREFIX; | ||||||
|  |  | ||||||
| @@ -65,14 +65,29 @@ class ActivityUsersScopeAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) {} |     public function buildForm(FormBuilderInterface $builder): void {} | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ class ByCreatorAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $qb->addSelect('IDENTITY(activity.createdBy) AS creator_aggregator'); |         $qb->addSelect('IDENTITY(activity.createdBy) AS creator_aggregator'); | ||||||
|         $qb->addGroupBy('creator_aggregator'); |         $qb->addGroupBy('creator_aggregator'); | ||||||
| @@ -38,17 +38,32 @@ class ByCreatorAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // no form |         // no form | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ class ByThirdpartyAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         if (!\in_array('acttparty', $qb->getAllAliases(), true)) { |         if (!\in_array('acttparty', $qb->getAllAliases(), true)) { | ||||||
|             $qb->leftJoin('activity.thirdParties', 'acttparty'); |             $qb->leftJoin('activity.thirdParties', 'acttparty'); | ||||||
| @@ -42,17 +42,32 @@ class ByThirdpartyAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // no form |         // no form | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ class CreatorJobAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $p = self::PREFIX; |         $p = self::PREFIX; | ||||||
|  |  | ||||||
| @@ -65,14 +65,29 @@ class CreatorJobAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) {} |     public function buildForm(FormBuilderInterface $builder): void {} | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ class CreatorScopeAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $p = self::PREFIX; |         $p = self::PREFIX; | ||||||
|  |  | ||||||
| @@ -65,14 +65,29 @@ class CreatorScopeAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) {} |     public function buildForm(FormBuilderInterface $builder): void {} | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ class DateAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         $order = null; |         $order = null; | ||||||
|  |  | ||||||
| @@ -67,7 +67,7 @@ class DateAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         $builder->add('frequency', ChoiceType::class, [ |         $builder->add('frequency', ChoiceType::class, [ | ||||||
|             'choices' => self::CHOICES, |             'choices' => self::CHOICES, | ||||||
| @@ -76,12 +76,27 @@ class DateAggregator implements AggregatorInterface | |||||||
|         ]); |         ]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return ['frequency' => $formData['frequency']]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return ['frequency' => $formData['frequency']]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return ['frequency' => self::DEFAULT_CHOICE]; |         return ['frequency' => self::DEFAULT_CHOICE]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return static function ($value) use ($data): string { |         return static function ($value) use ($data): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ class LocationTypeAggregator implements AggregatorInterface | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function alterQuery(QueryBuilder $qb, $data) |     public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void | ||||||
|     { |     { | ||||||
|         if (!\in_array('actloc', $qb->getAllAliases(), true)) { |         if (!\in_array('actloc', $qb->getAllAliases(), true)) { | ||||||
|             $qb->leftJoin('activity.location', 'actloc'); |             $qb->leftJoin('activity.location', 'actloc'); | ||||||
| @@ -42,17 +42,32 @@ class LocationTypeAggregator implements AggregatorInterface | |||||||
|         return Declarations::ACTIVITY; |         return Declarations::ACTIVITY; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function buildForm(FormBuilderInterface $builder) |     public function buildForm(FormBuilderInterface $builder): void | ||||||
|     { |     { | ||||||
|         // no form |         // no form | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public function getNormalizationVersion(): int | ||||||
|  |     { | ||||||
|  |         return 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function normalizeFormData(array $formData): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function denormalizeFormData(array $formData, int $fromVersion): array | ||||||
|  |     { | ||||||
|  |         return []; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public function getFormDefaultData(): array |     public function getFormDefaultData(): array | ||||||
|     { |     { | ||||||
|         return []; |         return []; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function getLabels($key, array $values, $data) |     public function getLabels($key, array $values, $data): callable | ||||||
|     { |     { | ||||||
|         return function ($value): string { |         return function ($value): string { | ||||||
|             if ('_header' === $value) { |             if ('_header' === $value) { | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user