mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-11-04 11:18:25 +00:00 
			
		
		
		
	Compare commits
	
		
			218 Commits
		
	
	
		
			v3.10.0
			...
			move-docum
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						0541995a60
	
				 | 
					
					
						|||
| 
						
						
							
						
						29e054bd10
	
				 | 
					
					
						|||
| 
						
						
							
						
						da0099aafc
	
				 | 
					
					
						|||
| 
						
						
							
						
						3a18ea42fe
	
				 | 
					
					
						|||
| e60435b8cc | |||
| ab6ab19499 | |||
| 2a1762ea8d | |||
| 18ababbca9 | |||
| f6179cd3a3 | |||
| ddf8da4cee | |||
| bf2181c2f1 | |||
| d508fde8d2 | |||
| 14dba22181 | |||
| 7dc7e77c62 | |||
| 9d58904969 | |||
| 4d90c7028f | |||
| 3abb76d268 | |||
| d62dd4396e | |||
| 59e8d9d516 | |||
| 7dcb8abe38 | |||
| a0b2d92ba2 | |||
| 7843e5dfd1 | |||
| 32c847267b | |||
| c0826bc65c | |||
| 904f4e5ed9 | |||
| 481f82b4c7 | |||
| f5668592ca | |||
| 9b353f4d1b | |||
| 81a858f07a | |||
| 6a2ee232a9 | |||
| 56c43a0a76 | |||
| 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 | |||
| eb724a730c | |||
| 
						
						
							
						
						3e7f03d331
	
				 | 
					
					
						|||
| 
						
						
							
						
						b830952b9e
	
				 | 
					
					
						|||
| ad17313c61 | |||
| 
						
						
							
						
						620515ad15
	
				 | 
					
					
						|||
| 50c377ee22 | |||
| cc7e7a90ee | |||
| 
						
						
							
						
						1d4ef19051
	
				 | 
					
					
						|||
| 
						
						
							
						
						8337a724d1
	
				 | 
					
					
						|||
| 8ca377d5d4 | |||
| 224e0bae43 | |||
| 3aa4fac80d | |||
| 
						 | 
					a7517eb647 | ||
| e278e636e0 | |||
| 
						 | 
					40e373a9c7 | ||
| 1c1f418b18 | |||
| bf0e14b43a | |||
| 
						
						
							
						
						203a098054
	
				 | 
					
					
						|||
| 
						
						
							
						
						d58acff541
	
				 | 
					
					
						|||
| 
						
						
							
						
						5858e05a42
	
				 | 
					
					
						|||
| 
						
						
							
						
						b9b4fafe14
	
				 | 
					
					
						|||
| 18f98b6795 | |||
| d73994edd0 | |||
| 70603570c8 | |||
| df09dd2017 | |||
| 1c87280b1e | |||
| 445e093a28 | |||
| 3f91c65b30 | |||
| 9bc3c16b58 | |||
| 12dff82248 | |||
| ab23a4efb5 | |||
| 204fb20475 | |||
| f430d97152 | |||
| 4fa4d3b65c | |||
| bd4c34cc1d | |||
| 4cea678e93 | |||
| 5e6833975b | |||
| f523b9adb3 | |||
| a211549432 | |||
| 17b1363113 | |||
| 3356ed8e57 | |||
| 2a7fa517ee | |||
| 85781c8e14 | |||
| 00eb435896 | |||
| ed71cffd6a | |||
| ae679e6997 | |||
| e1d308fd97 | |||
| d9acda67e3 | |||
| e88da74882 | |||
| 591c44d1a0 | |||
| bf04b7981c | |||
| df33eec30f | |||
| c657c98918 | |||
| ef5eb5b907 | |||
| d683fe002d | |||
| 555bbca59b | |||
| e9e9d5c458 | |||
| b1842a33ae | |||
| 6afeaccf24 | |||
| fb76bac480 | |||
| 6ded185289 | |||
| 95adc29f9d | |||
| 4d0c3e683f | |||
| 018aafc773 | |||
| c4aea4efc2 | |||
| 225e3ca13f | |||
| 8c1fa7956a | |||
| e253d1b276 | |||
| a52aac2d98 | |||
| 9e8cf60dd8 | |||
| 7682d81d50 | |||
| 5d31ce96c1 | |||
| 81ef64a246 | |||
| 49d1f78001 | |||
| 0d0f3528e2 | |||
| d97d5e689a | |||
| 95d80ce13e | |||
| 668720984d | |||
| 245c3fa121 | |||
| fe6949ea26 | |||
| 8a444a12f4 | |||
| 
						
						
							
						
						8b7b5ceed7
	
				 | 
					
					
						|||
| 
						
						
							
						
						b0e826d05a
	
				 | 
					
					
						|||
| 
						
						
							
						
						6fb9c3af3f
	
				 | 
					
					
						|||
| 
						
						
							
						
						7f101ba616
	
				 | 
					
					
						|||
| cea82fac10 | |||
| 1344fc33e1 | |||
| c8e09a28e6 | 
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250211-142243.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250211-142243.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: Feature
 | 
			
		||||
body: Allow the merge of two accompanying period works
 | 
			
		||||
time: 2025-02-11T14:22:43.134106669+01:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: "359"
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250403-100311.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250403-100311.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: Feature
 | 
			
		||||
body: Duplication of a document to another accompanying period work evaluation
 | 
			
		||||
time: 2025-04-03T10:03:11.796736107+02:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: "369"
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250403-100857.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250403-100857.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: Feature
 | 
			
		||||
body: Fusion of two accompanying period works
 | 
			
		||||
time: 2025-04-03T10:08:57.25079018+02:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: "359"
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250717-110850.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250717-110850.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: Feature
 | 
			
		||||
body: Add filter to social actions list to filter out actions where current user intervenes
 | 
			
		||||
time: 2025-07-17T11:08:50.128269232+02:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: "400"
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250722-155039.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250722-155039.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: Feature
 | 
			
		||||
body: Show filters on list pages unfolded by default
 | 
			
		||||
time: 2025-07-22T15:50:39.338057044+02:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: "399"
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										6
									
								
								.changes/unreleased/Fixed-20250806-134609.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Fixed-20250806-134609.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: Fixed
 | 
			
		||||
body: adjust display logic for accompanying period dates, include closing date if period is closed.
 | 
			
		||||
time: 2025-08-06T13:46:09.241584292+02:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: "382"
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										6
									
								
								.changes/unreleased/Fixed-20250806-173527.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Fixed-20250806-173527.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: Fixed
 | 
			
		||||
body: add min and step attributes to integer field in DateIntervalType
 | 
			
		||||
time: 2025-08-06T17:35:27.413787704+02:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: "384"
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										6
									
								
								.changes/unreleased/UX-20250722-132637.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/UX-20250722-132637.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
kind: UX
 | 
			
		||||
body: Limit display of participations in event list
 | 
			
		||||
time: 2025-07-22T13:26:37.500656935+02:00
 | 
			
		||||
custom:
 | 
			
		||||
    Issue: ""
 | 
			
		||||
    SchemaChange: No schema change
 | 
			
		||||
							
								
								
									
										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   
 | 
			
		||||
							
								
								
									
										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   
 | 
			
		||||
@@ -1,52 +1,4 @@
 | 
			
		||||
[
 | 
			
		||||
    {
 | 
			
		||||
        "path": "assets/translator.js",
 | 
			
		||||
        "line": 4,
 | 
			
		||||
        "column": 3,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'getLocale' is defined but never used.",
 | 
			
		||||
        "hash": "4de7bfba61e745c3cf5323aad048092c7c17ccf8"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "assets/translator.js",
 | 
			
		||||
        "line": 5,
 | 
			
		||||
        "column": 3,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'setLocale' is defined but never used.",
 | 
			
		||||
        "hash": "a7eabf4524aa4b2a7fd30de6d1ce61a3623c00db"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "docs/source/development/user-interface/js-functions/show_hide.js",
 | 
			
		||||
        "line": 12,
 | 
			
		||||
        "column": 26,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'event' is defined but never used.",
 | 
			
		||||
        "hash": "6d66a79b37a676e44177f5e22c83250315d23c96"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "docs/source/development/user-interface/js-functions/show_hide.js",
 | 
			
		||||
        "line": 29,
 | 
			
		||||
        "column": 26,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'event' is defined but never used.",
 | 
			
		||||
        "hash": "ecfe1d9da55e96316b21de60db959be5f9e20f59"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/SocialIssuesAcc.vue",
 | 
			
		||||
        "line": 136,
 | 
			
		||||
        "column": 39,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'reject' is defined but never used.",
 | 
			
		||||
        "hash": "4faa92668b8548e3b747568ef9a3671708c0fbf9"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/SocialIssuesAcc.vue",
 | 
			
		||||
        "line": 211,
 | 
			
		||||
        "column": 47,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'reject' is defined but never used.",
 | 
			
		||||
        "hash": "d1fd4d809f01ecad48418336edca270335fccff9"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/index.js",
 | 
			
		||||
        "line": 18,
 | 
			
		||||
@@ -63,14 +15,6 @@
 | 
			
		||||
        "message": "'event' is defined but never used.",
 | 
			
		||||
        "hash": "cf0cf378f71403f62a6425f384ccbbdec433d1f2"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js",
 | 
			
		||||
        "line": 90,
 | 
			
		||||
        "column": 13,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'resources' is assigned a value but never used.",
 | 
			
		||||
        "hash": "342d8aad3e080ba262239e5f5c6fc419f388ca33"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillCalendarBundle/Resources/public/module/Invite/answer.js",
 | 
			
		||||
        "line": 7,
 | 
			
		||||
@@ -223,14 +167,6 @@
 | 
			
		||||
        "message": "'changedEvent' is assigned a value but never used.",
 | 
			
		||||
        "hash": "a7a81a6bf09d00c0364e3aa8207ffad853f0547b"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue",
 | 
			
		||||
        "line": 444,
 | 
			
		||||
        "column": 5,
 | 
			
		||||
        "ruleId": "@typescript-eslint/ban-ts-comment",
 | 
			
		||||
        "message": "Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.",
 | 
			
		||||
        "hash": "1b8a1b6b081d3f14ed319619e6031039668cd736"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/Components/EditLocation.vue",
 | 
			
		||||
        "line": 77,
 | 
			
		||||
@@ -279,30 +215,6 @@
 | 
			
		||||
        "message": "'_' is defined but never used.",
 | 
			
		||||
        "hash": "5bf7ba0b0200fb6788d50df669e6b7701f8a87bb"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store/modules/calendarRanges.ts",
 | 
			
		||||
        "line": 259,
 | 
			
		||||
        "column": 62,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'_' is defined but never used.",
 | 
			
		||||
        "hash": "a06407a3b44a8e5865525e37e7620d20100c1e32"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store/modules/calendarRanges.ts",
 | 
			
		||||
        "line": 350,
 | 
			
		||||
        "column": 48,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'_' is defined but never used.",
 | 
			
		||||
        "hash": "fabe51c847e3842b4a4fda0b581f10b466cbd098"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store/modules/calendarRanges.ts",
 | 
			
		||||
        "line": 374,
 | 
			
		||||
        "column": 48,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'_' is defined but never used.",
 | 
			
		||||
        "hash": "7547f6801ac63196c32ffc61d2be7ad5bf113cc8"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/store/modules/fullcalendar.ts",
 | 
			
		||||
        "line": 57,
 | 
			
		||||
@@ -639,54 +551,6 @@
 | 
			
		||||
        "message": "'StoredObjectVersion' is defined but never used.",
 | 
			
		||||
        "hash": "2fadbe9e331a66f44b54782acc1420c4b487e1f6"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue",
 | 
			
		||||
        "line": 336,
 | 
			
		||||
        "column": 20,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'reactive' is defined but never used.",
 | 
			
		||||
        "hash": "433bed446eb37784c380d5c82bb364221af80969"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue",
 | 
			
		||||
        "line": 354,
 | 
			
		||||
        "column": 1,
 | 
			
		||||
        "ruleId": "@typescript-eslint/ban-ts-comment",
 | 
			
		||||
        "message": "Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.",
 | 
			
		||||
        "hash": "b104a4e3ccf06c4a16fd83076e2b3f2dc27b2d91"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue",
 | 
			
		||||
        "line": 363,
 | 
			
		||||
        "column": 5,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'download_and_decrypt_doc' is defined but never used.",
 | 
			
		||||
        "hash": "77340aab22ce01c7ed6518a96586f4219299dd36"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue",
 | 
			
		||||
        "line": 757,
 | 
			
		||||
        "column": 16,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'r' is defined but never used.",
 | 
			
		||||
        "hash": "c4cc95fa4538bfd3a61bdc2d5ffcae8c96178af6"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue",
 | 
			
		||||
        "line": 779,
 | 
			
		||||
        "column": 5,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-expressions",
 | 
			
		||||
        "message": "Expected an assignment or function call and instead saw an expression.",
 | 
			
		||||
        "hash": "c5f5d0e73bd179d79b60b53a3dc1c6d676bee287"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/index.ts",
 | 
			
		||||
        "line": 2,
 | 
			
		||||
        "column": 1,
 | 
			
		||||
        "ruleId": "@typescript-eslint/ban-ts-comment",
 | 
			
		||||
        "message": "Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.",
 | 
			
		||||
        "hash": "b60ce5d41e38f02a016f25170e065e86fd7863ec"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/index.ts",
 | 
			
		||||
        "line": 34,
 | 
			
		||||
@@ -919,46 +783,6 @@
 | 
			
		||||
        "message": "'offset' is never reassigned. Use 'const' instead.",
 | 
			
		||||
        "hash": "244b65de0ab0791ec89219058c5cb4f2e11622c7"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts",
 | 
			
		||||
        "line": 176,
 | 
			
		||||
        "column": 25,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-explicit-any",
 | 
			
		||||
        "message": "Unexpected any. Specify a different type.",
 | 
			
		||||
        "hash": "78974307acb7b584f0c2196fbb47fc914b5c7a32"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts",
 | 
			
		||||
        "line": 186,
 | 
			
		||||
        "column": 9,
 | 
			
		||||
        "ruleId": "prefer-const",
 | 
			
		||||
        "message": "'promises' is never reassigned. Use 'const' instead.",
 | 
			
		||||
        "hash": "2e178f566f5da9822a5dd46b29738829fbd1adf7"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts",
 | 
			
		||||
        "line": 232,
 | 
			
		||||
        "column": 26,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'response' is defined but never used.",
 | 
			
		||||
        "hash": "0a036a266bd7bba398df10163e9704e6ea6167f3"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts",
 | 
			
		||||
        "line": 240,
 | 
			
		||||
        "column": 28,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'response' is defined but never used.",
 | 
			
		||||
        "hash": "86c054fe1edcb6b24e6d0aefd64cd445e7614a52"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts",
 | 
			
		||||
        "line": 260,
 | 
			
		||||
        "column": 5,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'response' is defined but never used.",
 | 
			
		||||
        "hash": "a45a603d1877899ba33744991bc21cfa4bedb17d"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/lib/download-report/download-report.js",
 | 
			
		||||
        "line": 18,
 | 
			
		||||
@@ -1071,14 +895,6 @@
 | 
			
		||||
        "message": "'popoverList' is assigned a value but never used.",
 | 
			
		||||
        "hash": "2fd1da06ffc0a1025552cd02b7838cb5ee70006c"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/module/ckeditor5/index.ts",
 | 
			
		||||
        "line": 7,
 | 
			
		||||
        "column": 16,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'editor' is defined but never used.",
 | 
			
		||||
        "hash": "a1ee37171b35396754af104e4815484e1bd2a5ec"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/module/collection/index.ts",
 | 
			
		||||
        "line": 53,
 | 
			
		||||
@@ -1135,38 +951,6 @@
 | 
			
		||||
        "message": "Expected a `for-of` loop instead of a `for` loop with this simple iteration.",
 | 
			
		||||
        "hash": "aac391029a9094c0024acd4748728d0345d43d62"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/module/notification/toggle_read.js",
 | 
			
		||||
        "line": 4,
 | 
			
		||||
        "column": 8,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'NotificationReadAllToggle' is defined but never used.",
 | 
			
		||||
        "hash": "85b91b57af8f355c4da6175f0cd10543e8c21298"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/module/notification/toggle_read.js",
 | 
			
		||||
        "line": 8,
 | 
			
		||||
        "column": 55,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'e' is defined but never used.",
 | 
			
		||||
        "hash": "07f4feb1fc536257245672cadc5e4a6eff3dfd11"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/module/pick-entity/index.js",
 | 
			
		||||
        "line": 26,
 | 
			
		||||
        "column": 5,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-expressions",
 | 
			
		||||
        "message": "Expected an assignment or function call and instead saw an expression.",
 | 
			
		||||
        "hash": "ade0f5ef31462024600ac17130a26e0429e27039"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/module/pick-entity/index.js",
 | 
			
		||||
        "line": 176,
 | 
			
		||||
        "column": 57,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'e' is defined but never used.",
 | 
			
		||||
        "hash": "733b101d5fc60b4b4d0539d772cec69590baae19"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/module/pick-postal-code/index.js",
 | 
			
		||||
        "line": 10,
 | 
			
		||||
@@ -1753,19 +1537,19 @@
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue",
 | 
			
		||||
        "line": 75,
 | 
			
		||||
        "line": 76,
 | 
			
		||||
        "column": 13,
 | 
			
		||||
        "ruleId": "vue/no-mutating-props",
 | 
			
		||||
        "message": "Unexpected mutation of \"entity\" prop.",
 | 
			
		||||
        "hash": "f2e288dcddf773ed3a79b238327af8a48961e861"
 | 
			
		||||
        "hash": "373a2e31f110d138c66d77f1faf5dc61545c55af"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue",
 | 
			
		||||
        "line": 80,
 | 
			
		||||
        "line": 81,
 | 
			
		||||
        "column": 13,
 | 
			
		||||
        "ruleId": "vue/no-mutating-props",
 | 
			
		||||
        "message": "Unexpected mutation of \"entity\" prop.",
 | 
			
		||||
        "hash": "836965dc8fa085f98d31f3ce261dcdf27d1ef6a4"
 | 
			
		||||
        "hash": "421eb6a63224b4b1d81b216677a710c5c99ddee3"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/DatePane.vue",
 | 
			
		||||
@@ -1871,30 +1655,6 @@
 | 
			
		||||
        "message": "'props' is assigned a value but never used.",
 | 
			
		||||
        "hash": "29fe0a5d52e46c479aa2e7bb23fb55c53df7b22e"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/ListWorkflow.vue",
 | 
			
		||||
        "line": 142,
 | 
			
		||||
        "column": 32,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'w' is defined but never used.",
 | 
			
		||||
        "hash": "ad12fc3b08dbfc9c24ae65d2a59c7bd5cecb39f2"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/ListWorkflow.vue",
 | 
			
		||||
        "line": 146,
 | 
			
		||||
        "column": 33,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'w' is defined but never used.",
 | 
			
		||||
        "hash": "d28435fe2f60f5d3c22ab2b4cb59a6bd2cd0f947"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/ListWorkflow.vue",
 | 
			
		||||
        "line": 155,
 | 
			
		||||
        "column": 15,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'popoverList' is assigned a value but never used.",
 | 
			
		||||
        "hash": "933d1a8c7c3d9321347218a08588cdf4c352f422"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/PickWorkflow.vue",
 | 
			
		||||
        "line": 114,
 | 
			
		||||
@@ -1943,14 +1703,6 @@
 | 
			
		||||
        "message": "The element inside `<transition>` is expected to have a `v-if` or `v-show` directive.",
 | 
			
		||||
        "hash": "0594fb9d0984f4dd1612671aca21b571087ab8ee"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Modal.vue",
 | 
			
		||||
        "line": 59,
 | 
			
		||||
        "column": 22,
 | 
			
		||||
        "ruleId": "vue/require-valid-default-prop",
 | 
			
		||||
        "message": "Type of the default value for 'modalDialogClass' prop must be a function.",
 | 
			
		||||
        "hash": "51033a0b54bc839ce532e609bc58a2686818c895"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_js/i18n.ts",
 | 
			
		||||
        "line": 60,
 | 
			
		||||
@@ -1959,14 +1711,6 @@
 | 
			
		||||
        "message": "Unexpected any. Specify a different type.",
 | 
			
		||||
        "hash": "61fa9887fddae8f7c4fd60cd21827fb034d5bb7f"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_js/i18n.ts",
 | 
			
		||||
        "line": 66,
 | 
			
		||||
        "column": 9,
 | 
			
		||||
        "ruleId": "@typescript-eslint/ban-ts-comment",
 | 
			
		||||
        "message": "Use \"@ts-expect-error\" instead of \"@ts-ignore\", as \"@ts-ignore\" will do nothing if the following line is error-free.",
 | 
			
		||||
        "hash": "370ce59576610d7a292501effe428366011585f4"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/page/accompanying_course_index/masonry.js",
 | 
			
		||||
        "line": 4,
 | 
			
		||||
@@ -2023,94 +1767,6 @@
 | 
			
		||||
        "message": "'app' is assigned a value but never used.",
 | 
			
		||||
        "hash": "aaaaa63e7a60443b8cbf8191feb9142852ebdf1c"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 436,
 | 
			
		||||
        "column": 3,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'dateToISO' is defined but never used.",
 | 
			
		||||
        "hash": "2ec2e571f3e30aa4c2be2d27bb2e8e0911f2b73f"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 437,
 | 
			
		||||
        "column": 3,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'ISOToDate' is defined but never used.",
 | 
			
		||||
        "hash": "e798ef13db37e7acb223e3df29da4ce8dbbd3ae6"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 438,
 | 
			
		||||
        "column": 3,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'ISOToDatetime' is defined but never used.",
 | 
			
		||||
        "hash": "76ca9c82007f9040643d2a8cf2689ebe1110823e"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 451,
 | 
			
		||||
        "column": 10,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'buildLinkCreate' is defined but never used.",
 | 
			
		||||
        "hash": "0dbad8bda4c2da8b4489288fdaf8e4e42583c399"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 512,
 | 
			
		||||
        "column": 5,
 | 
			
		||||
        "ruleId": "vue/no-unused-components",
 | 
			
		||||
        "message": "The \"AddressRenderBox\" component has been registered but not used.",
 | 
			
		||||
        "hash": "1fa5e8a5a2e917188fd4b5f5d215601e1be5ea9a"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 514,
 | 
			
		||||
        "column": 5,
 | 
			
		||||
        "ruleId": "vue/no-unused-components",
 | 
			
		||||
        "message": "The \"PickTemplate\" component has been registered but not used.",
 | 
			
		||||
        "hash": "b68269999f017d4125854ca86a09f355f046c5fb"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 699,
 | 
			
		||||
        "column": 25,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'data' is defined but never used.",
 | 
			
		||||
        "hash": "66ec68e084b27a818062ebf5d612bdd4598f1cc6"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue",
 | 
			
		||||
        "line": 710,
 | 
			
		||||
        "column": 25,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'data' is defined but never used.",
 | 
			
		||||
        "hash": "fed92eac022439396e7c1a7dd5f00cf9b958c1e2"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/AddEvaluation.vue",
 | 
			
		||||
        "line": 136,
 | 
			
		||||
        "column": 26,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'e' is defined but never used.",
 | 
			
		||||
        "hash": "d762b8ac0404258c3f69a602e838c141e7260af0"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/AddEvaluation.vue",
 | 
			
		||||
        "line": 142,
 | 
			
		||||
        "column": 28,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'event' is defined but never used.",
 | 
			
		||||
        "hash": "49bc6a911e9dd1170d487d095920c519784a84bc"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/AddEvaluation.vue",
 | 
			
		||||
        "line": 142,
 | 
			
		||||
        "column": 35,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'link' is defined but never used.",
 | 
			
		||||
        "hash": "537ba2743fe9b6894692e6a481d82557f533b75f"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue",
 | 
			
		||||
        "line": 79,
 | 
			
		||||
@@ -2119,46 +1775,6 @@
 | 
			
		||||
        "message": "Elements in iteration expect to have 'v-bind:key' directives.",
 | 
			
		||||
        "hash": "422f53925922e59655d0f71624c19af75d41628c"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue",
 | 
			
		||||
        "line": 275,
 | 
			
		||||
        "column": 3,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'dateToISO' is defined but never used.",
 | 
			
		||||
        "hash": "1fb4dee6397e578ac9e4587fcf81b35ce1bfe3d9"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue",
 | 
			
		||||
        "line": 276,
 | 
			
		||||
        "column": 3,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'ISOToDate' is defined but never used.",
 | 
			
		||||
        "hash": "ea360950c17604fe63003333c7a5a9c303887ca6"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue",
 | 
			
		||||
        "line": 281,
 | 
			
		||||
        "column": 10,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'mapGetters' is defined but never used.",
 | 
			
		||||
        "hash": "ec02e9573e9ee7cc13e25fda951b748ba8ae8f93"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue",
 | 
			
		||||
        "line": 600,
 | 
			
		||||
        "column": 7,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'event' is defined but never used.",
 | 
			
		||||
        "hash": "b7f25f6178570c873ffb8eefd349b967bb9afb17"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue",
 | 
			
		||||
        "line": 601,
 | 
			
		||||
        "column": 7,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'link' is defined but never used.",
 | 
			
		||||
        "hash": "b60571c99af4afc2933bedef97fa6f745ce45a0f"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/index.js",
 | 
			
		||||
        "line": 12,
 | 
			
		||||
@@ -2223,14 +1839,6 @@
 | 
			
		||||
        "message": "'app' is assigned a value but never used.",
 | 
			
		||||
        "hash": "b025959acb471750c92952656e7a60ba28f5da0a"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/components/Positioning.vue",
 | 
			
		||||
        "line": 82,
 | 
			
		||||
        "column": 31,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'app' is defined but never used.",
 | 
			
		||||
        "hash": "aad0b0d7e4bc2ea9f0a0dd7b6c696a82da14f25a"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/index.js",
 | 
			
		||||
        "line": 13,
 | 
			
		||||
@@ -2311,30 +1919,6 @@
 | 
			
		||||
        "message": "'UserRenderBoxBadge' is defined but never used.",
 | 
			
		||||
        "hash": "99eba0d8633b2c9497417f4f61ec4194dbb2a96b"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/Person.vue",
 | 
			
		||||
        "line": 430,
 | 
			
		||||
        "column": 17,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'e' is defined but never used.",
 | 
			
		||||
        "hash": "e48c11f9011de90dab15b426baf77030ffae7e22"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/Person.vue",
 | 
			
		||||
        "line": 448,
 | 
			
		||||
        "column": 33,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-vars",
 | 
			
		||||
        "message": "'reject' is defined but never used.",
 | 
			
		||||
        "hash": "dfd37ec320e99059374135a72bfd53978e7e66ae"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue",
 | 
			
		||||
        "line": 371,
 | 
			
		||||
        "column": 21,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-unused-expressions",
 | 
			
		||||
        "message": "Expected an assignment or function call and instead saw an expression.",
 | 
			
		||||
        "hash": "ed6f5ae90514bf9fc967f2eb7a3ce06344a5f8af"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "src/Bundle/ChillWopiBundle/src/Resources/public/module/pending/index.ts",
 | 
			
		||||
        "line": 4,
 | 
			
		||||
@@ -2374,13 +1958,5 @@
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-explicit-any",
 | 
			
		||||
        "message": "Unexpected any. Specify a different type.",
 | 
			
		||||
        "hash": "7513ea552a0a649ce4ab93b6cf9d40bfef4f68d9"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "path": "webpack.config.js",
 | 
			
		||||
        "line": 77,
 | 
			
		||||
        "column": 28,
 | 
			
		||||
        "ruleId": "@typescript-eslint/no-empty-function",
 | 
			
		||||
        "message": "Unexpected empty arrow function.",
 | 
			
		||||
        "hash": "a8e433351f1c8bc89a95c8570dd0781d59e26103"
 | 
			
		||||
    }
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -13,6 +13,7 @@ docker/rabbitmq/data
 | 
			
		||||
# in this development bundle, we want to ignore directories related to a real app
 | 
			
		||||
assets/*
 | 
			
		||||
!assets/translator.ts
 | 
			
		||||
!assets/ux-translator
 | 
			
		||||
migrations/*
 | 
			
		||||
templates/*
 | 
			
		||||
translations/*
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ stages:
 | 
			
		||||
 | 
			
		||||
build:
 | 
			
		||||
    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:
 | 
			
		||||
        - composer config -g cache-dir "$(pwd)/.cache"
 | 
			
		||||
    script:
 | 
			
		||||
@@ -61,7 +61,7 @@ build:
 | 
			
		||||
 | 
			
		||||
code_style:
 | 
			
		||||
    stage: Tests
 | 
			
		||||
    image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82
 | 
			
		||||
    image: chill/base-image:8.3-edge
 | 
			
		||||
    script:
 | 
			
		||||
        - php-cs-fixer fix --dry-run -v --show-progress=none
 | 
			
		||||
    cache:
 | 
			
		||||
@@ -74,7 +74,7 @@ code_style:
 | 
			
		||||
 | 
			
		||||
phpstan_tests:
 | 
			
		||||
    stage: Tests
 | 
			
		||||
    image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82
 | 
			
		||||
    image: chill/base-image:8.3-edge
 | 
			
		||||
    variables:
 | 
			
		||||
        COMPOSER_MEMORY_LIMIT: 3G
 | 
			
		||||
    before_script:
 | 
			
		||||
@@ -91,7 +91,7 @@ phpstan_tests:
 | 
			
		||||
 | 
			
		||||
rector_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:
 | 
			
		||||
        - bin/console cache:clear --env=dev
 | 
			
		||||
    script:
 | 
			
		||||
@@ -132,7 +132,7 @@ lint:
 | 
			
		||||
 | 
			
		||||
unit_tests:
 | 
			
		||||
    stage: Tests
 | 
			
		||||
    image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82
 | 
			
		||||
    image: chill/base-image:8.3-edge
 | 
			
		||||
    variables:
 | 
			
		||||
        COMPOSER_MEMORY_LIMIT: 3G
 | 
			
		||||
    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 which exists from a long time ago, and we found multiple structure 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 come with his 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 to 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 fill a "Command", and a "CommandHandler" handle this command. They are savec in the `src/Bundle/ChillTicketBundle/src/Action` directory.
 | 
			
		||||
 | 
			
		||||
## Development Guidelines
 | 
			
		||||
 | 
			
		||||
### Building and Configuration Instructions
 | 
			
		||||
 | 
			
		||||
All the command 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
 | 
			
		||||
   ```
 | 
			
		||||
 | 
			
		||||
5. **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
 | 
			
		||||
   ```
 | 
			
		||||
 | 
			
		||||
6. **Build Assets**:
 | 
			
		||||
   ```bash
 | 
			
		||||
   nvm use 20
 | 
			
		||||
   yarn run encore dev
 | 
			
		||||
   ```
 | 
			
		||||
 | 
			
		||||
7. **Start the Development Server**:
 | 
			
		||||
   ```bash
 | 
			
		||||
   symfony server:start -d
 | 
			
		||||
   ```
 | 
			
		||||
 | 
			
		||||
#### Docker Setup
 | 
			
		||||
 | 
			
		||||
The project includes 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 are 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, do not forget 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 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 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 create a mock
 | 
			
		||||
 | 
			
		||||
Some notable implementations that are tests helper, and avoid to create 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 tests for a specific bundle
 | 
			
		||||
vendor/bin/phpunit --testsuite NameBundle
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### 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 postgresql database filled by 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
 | 
			
		||||
							
								
								
									
										144
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										144
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -6,6 +6,150 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
 | 
			
		||||
and is generated by [Changie](https://github.com/miniscruff/changie).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 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   
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,7 @@
 | 
			
		||||
// @ts-ignore Cannot find module (when used within an app)
 | 
			
		||||
import { trans, setLocale, setLocaleFallbacks } from "@symfony/ux-translator";
 | 
			
		||||
import { trans, setLocale, setLocaleFallbacks } from "./ux-translator";
 | 
			
		||||
 | 
			
		||||
setLocaleFallbacks({"en": "fr", "nl": "fr", "fr": "en"});
 | 
			
		||||
setLocale('fr');
 | 
			
		||||
 | 
			
		||||
export { trans };
 | 
			
		||||
// @ts-ignore Cannot find module (when used within an app)
 | 
			
		||||
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"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -17,6 +17,7 @@ chill_main:
 | 
			
		||||
    acl:
 | 
			
		||||
        form_show_scopes: true
 | 
			
		||||
        form_show_centers: true
 | 
			
		||||
        filter_stats_by_center: true
 | 
			
		||||
    access_global_history: false
 | 
			
		||||
    access_user_change_password: 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.
 | 
			
		||||
        failure_transport: failed
 | 
			
		||||
 | 
			
		||||
        transports:
 | 
			
		||||
            # those transports are added by chill-bundles recipes
 | 
			
		||||
            sync: sync://
 | 
			
		||||
@@ -19,7 +18,9 @@ framework:
 | 
			
		||||
                        async: ~
 | 
			
		||||
                    auto_setup: true
 | 
			
		||||
 | 
			
		||||
            priority: '%env(MESSENGER_TRANSPORT_DSN)%/priority'
 | 
			
		||||
            priority:
 | 
			
		||||
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%/priority'
 | 
			
		||||
 | 
			
		||||
            # end of transports added by chill-bundles recipes
 | 
			
		||||
            # https://symfony.com/doc/current/messenger.html#transport-configuration
 | 
			
		||||
            failed: 'doctrine://default?queue_name=failed'
 | 
			
		||||
@@ -61,6 +62,10 @@ framework:
 | 
			
		||||
            'Chill\MainBundle\Workflow\Messenger\PostSignatureStateChangeMessage': priority
 | 
			
		||||
            'Chill\MainBundle\Workflow\Messenger\PostPublicViewMessage': 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
 | 
			
		||||
            # Route your messages to the transports
 | 
			
		||||
            # 'App\Message\YourMessage': async
 | 
			
		||||
 
 | 
			
		||||
@@ -220,6 +220,7 @@ framework:
 | 
			
		||||
                        - attenteModification
 | 
			
		||||
                        - attenteMiseEnForme
 | 
			
		||||
                        - attenteValidationMiseEnForme
 | 
			
		||||
                        - attenteSignature
 | 
			
		||||
                        - attenteVisa
 | 
			
		||||
                        - postSignature
 | 
			
		||||
                        - attenteTraitement
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ declare(strict_types=1);
 | 
			
		||||
namespace Chill\PersonBundle\Export\Filter;
 | 
			
		||||
 | 
			
		||||
use Chill\MainBundle\Export\ExportElementValidatedInterface;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\FilterInterface;
 | 
			
		||||
use DateTime;
 | 
			
		||||
use Doctrine\ORM\Query\Expr;
 | 
			
		||||
@@ -20,6 +21,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
 | 
			
		||||
 | 
			
		||||
class BirthdateFilter implements ExportElementValidatedInterface, FilterInterface
 | 
			
		||||
{
 | 
			
		||||
    use \Chill\MainBundle\Export\ExportDataNormalizerTrait;
 | 
			
		||||
    // add specific role for this filter
 | 
			
		||||
    public function addRole(): ?string
 | 
			
		||||
    {
 | 
			
		||||
@@ -28,7 +30,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 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');
 | 
			
		||||
        // 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
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return 'person';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 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, [
 | 
			
		||||
            'label' => 'Born after this date',
 | 
			
		||||
@@ -74,6 +76,18 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
 | 
			
		||||
            'format' => 'dd-MM-yyyy',
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['date_from' => $this->normalizeDate($formData['date_from']), 'date_to' => $this->normalizeDate($formData['date_to'])];
 | 
			
		||||
    }
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['date_from' => $this->denormalizeDate($formData['date_from']), 'date_to' => $this->denormalizeDate($formData['date_to'])];
 | 
			
		||||
    }
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['date_from' => new DateTime(), 'date_to' => new DateTime()];
 | 
			
		||||
@@ -81,7 +95,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
 | 
			
		||||
 | 
			
		||||
    // here, we create a simple string which will describe the action of
 | 
			
		||||
    // 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: '
 | 
			
		||||
            . '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';
 | 
			
		||||
    }
 | 
			
		||||
@@ -99,7 +113,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
 | 
			
		||||
    // is executed here. This function is added by the interface
 | 
			
		||||
    // `ExportElementValidatedInterface`, and can be ignore if there is
 | 
			
		||||
    // no need for a validation
 | 
			
		||||
    public function validateForm($data, ExecutionContextInterface $context)
 | 
			
		||||
    public function validateForm($data, ExecutionContextInterface $context): void
 | 
			
		||||
    {
 | 
			
		||||
        $date_from = $data['date_from'];
 | 
			
		||||
        $date_to = $data['date_to'];
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,18 @@ class CountPerson implements ExportInterface
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        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
 | 
			
		||||
        // one column.
 | 
			
		||||
        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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'Count peoples';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getType()
 | 
			
		||||
    public function getType(): string
 | 
			
		||||
    {
 | 
			
		||||
        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.
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
The four following levels are defined : 
 | 
			
		||||
The four following levels are defined :
 | 
			
		||||
 | 
			
		||||
+-----------+----------------------------------------------------------------------------------------------+
 | 
			
		||||
|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.                                                                     |
 | 
			
		||||
+-----------+----------------------------------------------------------------------------------------------+
 | 
			
		||||
|notice     |A simple message to give information to the user. The message may be linked or not linked with|
 | 
			
		||||
|           |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.                    |
 | 
			
		||||
+-----------+----------------------------------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
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::
 | 
			
		||||
 | 
			
		||||
   `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                                |
 | 
			
		||||
+-----------+----------------+------------------------------------------------------------------------------+
 | 
			
		||||
| 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                          |
 | 
			
		||||
+-----------+----------------+------------------------------------------------------------------------------+
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,16 @@ Symfony apps <https://symfony.com/doc/current/deployment.html>`_.
 | 
			
		||||
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
 | 
			
		||||
-----------------------------------
 | 
			
		||||
 | 
			
		||||
@@ -29,7 +39,7 @@ We strongly encourage you to initialize a git repository at this step, to track
 | 
			
		||||
   # 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
 | 
			
		||||
   # install chill and some dependencies
 | 
			
		||||
   symfony composer require 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 -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
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
@@ -38,6 +48,8 @@ You must also accept to configure recipes from the contrib repository, unless yo
 | 
			
		||||
 | 
			
		||||
   # fix some configuration
 | 
			
		||||
   ./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
 | 
			
		||||
   yarn install
 | 
			
		||||
   # and compile assets
 | 
			
		||||
 
 | 
			
		||||
@@ -34,6 +34,7 @@ export default ts.config(
 | 
			
		||||
            // override/add rules settings here, such as:
 | 
			
		||||
            "vue/multi-word-component-names": "off",
 | 
			
		||||
            "@typescript-eslint/no-require-imports": "off",
 | 
			
		||||
            "@typescript-eslint/ban-ts-comment": "off"
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
);
 | 
			
		||||
 
 | 
			
		||||
@@ -11,16 +11,15 @@
 | 
			
		||||
    "@hotwired/stimulus": "^3.0.0",
 | 
			
		||||
    "@luminateone/eslint-baseline": "^1.0.9",
 | 
			
		||||
    "@symfony/stimulus-bridge": "^3.2.0",
 | 
			
		||||
    "@symfony/ux-translator": "file:vendor/symfony/ux-translator/assets",
 | 
			
		||||
    "@symfony/webpack-encore": "^4.1.0",
 | 
			
		||||
    "@tsconfig/node20": "^20.1.4",
 | 
			
		||||
    "@types/dompurify": "^3.0.5",
 | 
			
		||||
    "@types/eslint__js": "^8.42.3",
 | 
			
		||||
    "@typescript-eslint/parser": "^8.12.2",
 | 
			
		||||
    "bindings": "^1.5.0",
 | 
			
		||||
    "bootstrap": "5.2.3",
 | 
			
		||||
    "bootstrap": "^5.3.6",
 | 
			
		||||
    "chokidar": "^3.5.1",
 | 
			
		||||
    "ckeditor5": "^44.1.0",
 | 
			
		||||
    "ckeditor5": "^45.1.0",
 | 
			
		||||
    "dompurify": "^3.1.0",
 | 
			
		||||
    "eslint": "^9.14.0",
 | 
			
		||||
    "eslint-config-prettier": "^9.1.0",
 | 
			
		||||
@@ -29,11 +28,11 @@
 | 
			
		||||
    "fork-awesome": "^1.1.7",
 | 
			
		||||
    "intl-messageformat": "^10.5.11",
 | 
			
		||||
    "jquery": "^3.6.0",
 | 
			
		||||
    "node-sass": "^8.0.0",
 | 
			
		||||
    "popper.js": "^1.16.1",
 | 
			
		||||
    "postcss-loader": "^7.0.2",
 | 
			
		||||
    "prettier": "^3.3.3",
 | 
			
		||||
    "raw-loader": "^4.0.2",
 | 
			
		||||
    "sass": "^1.89.0",
 | 
			
		||||
    "sass-loader": "^14.0.0",
 | 
			
		||||
    "select2": "^4.0.13",
 | 
			
		||||
    "select2-bootstrap-theme": "0.1.0-beta.10",
 | 
			
		||||
@@ -59,6 +58,7 @@
 | 
			
		||||
    "bootstrap-icons": "^1.11.3",
 | 
			
		||||
    "dropzone": "^5.7.6",
 | 
			
		||||
    "es6-promise": "^4.2.8",
 | 
			
		||||
    "intl-messageformat": "^10.5.11",
 | 
			
		||||
    "leaflet": "^1.7.1",
 | 
			
		||||
    "marked": "^12.0.2",
 | 
			
		||||
    "masonry-layout": "^4.2.2",
 | 
			
		||||
 
 | 
			
		||||
@@ -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:
 | 
			
		||||
        - src/
 | 
			
		||||
        - utils/
 | 
			
		||||
    tmpDir: .cache/
 | 
			
		||||
    tmpDir: var/cache/phpstan
 | 
			
		||||
    reportUnmatchedIgnoredErrors: false
 | 
			
		||||
    excludePaths:
 | 
			
		||||
        - .php_cs*
 | 
			
		||||
@@ -24,14 +24,4 @@ parameters:
 | 
			
		||||
 | 
			
		||||
includes:
 | 
			
		||||
    - 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"?>
 | 
			
		||||
<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">
 | 
			
		||||
  <testsuites>
 | 
			
		||||
    <testsuite name="default">
 | 
			
		||||
      <directory>utils/rector/tests</directory>
 | 
			
		||||
    </testsuite>
 | 
			
		||||
  </testsuites>
 | 
			
		||||
  <source>
 | 
			
		||||
    <include>
 | 
			
		||||
      <directory suffix=".php">utils/rector/src</directory>
 | 
			
		||||
    </include>
 | 
			
		||||
  </source>
 | 
			
		||||
<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"
 | 
			
		||||
         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>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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([
 | 
			
		||||
        __DIR__ . '/docs',
 | 
			
		||||
        __DIR__ . '/src',
 | 
			
		||||
        __DIR__ . '/rector.php',
 | 
			
		||||
    ]);
 | 
			
		||||
 | 
			
		||||
    $rectorConfig->skip([
 | 
			
		||||
        \Rector\Php55\Rector\String_\StringClassNameToClassConstantRector::class => __DIR__ . 'src/Bundle/ChillMainBundle/Service/Notifier/LegacyOvhCloudFactory.php'
 | 
			
		||||
    ]);
 | 
			
		||||
 | 
			
		||||
    $rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/dev/test/App_KernelTestDebugContainer.xml  ');
 | 
			
		||||
    $rectorConfig->symfonyContainerPhp(__DIR__ . '/tests/symfony-container.php');
 | 
			
		||||
    //$rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/dev/test/App_KernelTestDebugContainer.xml  ');
 | 
			
		||||
    //$rectorConfig->symfonyContainerPhp(__DIR__ . '/tests/symfony-container.php');
 | 
			
		||||
 | 
			
		||||
    //$rectorConfig->cacheClass(\Rector\Caching\ValueObject\Storage\FileCacheStorage::class);
 | 
			
		||||
    //$rectorConfig->cacheDirectory(__DIR__ . '/.cache/rector');
 | 
			
		||||
@@ -39,16 +40,11 @@ return static function (RectorConfig $rectorConfig): void {
 | 
			
		||||
    // part of the symfony 54 rules
 | 
			
		||||
    $rectorConfig->rule(\Rector\Symfony\Symfony53\Rector\StaticPropertyFetch\KernelTestCaseContainerPropertyDeprecationRector::class);
 | 
			
		||||
    $rectorConfig->rule(\Rector\Symfony\Symfony60\Rector\MethodCall\GetHelperControllerToServiceRector::class);
 | 
			
		||||
    $rectorConfig->disableParallel();
 | 
			
		||||
    //$rectorConfig->disableParallel();
 | 
			
		||||
 | 
			
		||||
    //define sets of rules
 | 
			
		||||
    $rectorConfig->sets([
 | 
			
		||||
        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\PHPUnit\Set\PHPUnitSetList::PHPUNIT_90,
 | 
			
		||||
    ]);
 | 
			
		||||
@@ -66,11 +62,6 @@ return static function (RectorConfig $rectorConfig): void {
 | 
			
		||||
    // some routes are added twice if it remains activated
 | 
			
		||||
    // $rectorConfig->rule(\Rector\Symfony\Configs\Rector\ClassMethod\AddRouteAnnotationRector::class);
 | 
			
		||||
 | 
			
		||||
    // chill rules
 | 
			
		||||
    $rectorConfig->rules([
 | 
			
		||||
        \Chill\Utils\Rector\Rector\ChillBundleMakeDataProviderStaticForAbstractExportTestRector::class,
 | 
			
		||||
    ]);
 | 
			
		||||
 | 
			
		||||
    // skip some path...
 | 
			
		||||
    $rectorConfig->skip([
 | 
			
		||||
        // waiting for fixing this bug: https://github.com/rectorphp/rector-doctrine/issues/342
 | 
			
		||||
@@ -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\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.
 | 
			
		||||
     */
 | 
			
		||||
@@ -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.
 | 
			
		||||
     */
 | 
			
		||||
    #[\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)
 | 
			
		||||
    {
 | 
			
		||||
        $em = $this->managerRegistry->getManager();
 | 
			
		||||
@@ -139,7 +98,7 @@ class ActivityReasonCategoryController extends AbstractController
 | 
			
		||||
        if ($editForm->isSubmitted() && $editForm->isValid()) {
 | 
			
		||||
            $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', [
 | 
			
		||||
@@ -178,7 +137,7 @@ class ActivityReasonCategoryController extends AbstractController
 | 
			
		||||
    {
 | 
			
		||||
        $form = $this->createForm(ActivityReasonCategoryType::class, $entity, [
 | 
			
		||||
            'action' => $this->generateUrl('chill_activity_activityreasoncategory_update', ['id' => $entity->getId()]),
 | 
			
		||||
            'method' => 'PUT',
 | 
			
		||||
            'method' => 'POST',
 | 
			
		||||
        ]);
 | 
			
		||||
 | 
			
		||||
        $form->add('submit', SubmitType::class, ['label' => 'Update']);
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,6 @@ use Chill\ActivityBundle\Repository\ActivityReasonRepository;
 | 
			
		||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 | 
			
		||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
 | 
			
		||||
use Symfony\Component\HttpFoundation\Request;
 | 
			
		||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 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.
 | 
			
		||||
     */
 | 
			
		||||
@@ -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.
 | 
			
		||||
     */
 | 
			
		||||
    #[\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)
 | 
			
		||||
    {
 | 
			
		||||
        $em = $this->managerRegistry->getManager();
 | 
			
		||||
@@ -180,7 +138,7 @@ class ActivityReasonController extends AbstractController
 | 
			
		||||
    {
 | 
			
		||||
        $form = $this->createForm(ActivityReasonType::class, $entity, [
 | 
			
		||||
            'action' => $this->generateUrl('chill_activity_activityreason_update', ['id' => $entity->getId()]),
 | 
			
		||||
            'method' => 'PUT',
 | 
			
		||||
            'method' => 'POST',
 | 
			
		||||
        ]);
 | 
			
		||||
 | 
			
		||||
        $form->add('submit', SubmitType::class, ['label' => 'Update']);
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ class ByActivityNumberAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data): void
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $qb
 | 
			
		||||
            ->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
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return static function ($value) {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
 | 
			
		||||
        private TranslatableStringHelperInterface $translatableStringHelper,
 | 
			
		||||
    ) {}
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        $builder
 | 
			
		||||
            ->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
 | 
			
		||||
    {
 | 
			
		||||
        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 {
 | 
			
		||||
            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'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'export.aggregator.acp.by_activity_type.title';
 | 
			
		||||
    }
 | 
			
		||||
@@ -84,7 +99,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $p = self::PREFIX;
 | 
			
		||||
 | 
			
		||||
@@ -115,7 +130,7 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
 | 
			
		||||
            ->addGroupBy("{$p}_actype_id");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return Declarations::ACP_TYPE;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ class BySocialActionAggregator implements AggregatorInterface
 | 
			
		||||
        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)) {
 | 
			
		||||
            $qb->leftJoin('activity.socialActions', 'actsocialaction');
 | 
			
		||||
@@ -42,17 +42,32 @@ class BySocialActionAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY_ACP;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value) {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ class BySocialIssueAggregator implements AggregatorInterface
 | 
			
		||||
        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)) {
 | 
			
		||||
            $qb->leftJoin('activity.socialIssues', 'actsocialissue');
 | 
			
		||||
@@ -42,17 +42,32 @@ class BySocialIssueAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY_ACP;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface
 | 
			
		||||
        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)) {
 | 
			
		||||
            $qb->leftJoin('activity.location', 'actloc');
 | 
			
		||||
@@ -39,17 +39,32 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data): \Closure
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
@@ -69,7 +84,7 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface
 | 
			
		||||
        return [self::KEY];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        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 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
 | 
			
		||||
    {
 | 
			
		||||
        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 {
 | 
			
		||||
            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'];
 | 
			
		||||
    }
 | 
			
		||||
@@ -59,13 +74,13 @@ final readonly class ActivityPresenceAggregator implements AggregatorInterface
 | 
			
		||||
        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->addGroupBy('activity_presence_aggregator_attendee');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        // add select element
 | 
			
		||||
        if ('reasons' === $data['level']) {
 | 
			
		||||
@@ -72,7 +72,7 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        $builder->add(
 | 
			
		||||
            '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
 | 
			
		||||
    {
 | 
			
		||||
        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) {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
@@ -125,7 +140,7 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        // add select element
 | 
			
		||||
        if ('reasons' === $data['level']) {
 | 
			
		||||
@@ -139,12 +154,12 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
 | 
			
		||||
        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';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function validateForm($data, ExecutionContextInterface $context)
 | 
			
		||||
    public function validateForm($data, ExecutionContextInterface $context): void
 | 
			
		||||
    {
 | 
			
		||||
        if (null === $data['level']) {
 | 
			
		||||
            $context
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ class ActivityTypeAggregator implements AggregatorInterface
 | 
			
		||||
        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)) {
 | 
			
		||||
            $qb->leftJoin('activity.activityType', 'acttype');
 | 
			
		||||
@@ -44,17 +44,32 @@ class ActivityTypeAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data): \Closure
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function (int|string|null $value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
@@ -74,7 +89,7 @@ class ActivityTypeAggregator implements AggregatorInterface
 | 
			
		||||
        return [self::KEY];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'Aggregate by activity type';
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ class ActivityUserAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        // add select element
 | 
			
		||||
        $qb->addSelect(sprintf('IDENTITY(activity.user) AS %s', self::KEY));
 | 
			
		||||
@@ -43,17 +43,32 @@ class ActivityUserAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, $values, $data): \Closure
 | 
			
		||||
    public function getLabels($key, $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value) {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
@@ -70,7 +85,7 @@ class ActivityUserAggregator implements AggregatorInterface
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return [self::KEY];
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ class ActivityUsersAggregator implements AggregatorInterface
 | 
			
		||||
        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)) {
 | 
			
		||||
            $qb->leftJoin('activity.users', 'actusers');
 | 
			
		||||
@@ -43,17 +43,32 @@ class ActivityUsersAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($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'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'Aggregate by activity users';
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ class ActivityUsersJobAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $p = self::PREFIX;
 | 
			
		||||
 | 
			
		||||
@@ -65,14 +65,29 @@ class ActivityUsersJobAggregator implements AggregatorInterface
 | 
			
		||||
        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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ class ActivityUsersScopeAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $p = self::PREFIX;
 | 
			
		||||
 | 
			
		||||
@@ -65,14 +65,29 @@ class ActivityUsersScopeAggregator implements AggregatorInterface
 | 
			
		||||
        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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ class ByCreatorAggregator implements AggregatorInterface
 | 
			
		||||
        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->addGroupBy('creator_aggregator');
 | 
			
		||||
@@ -38,17 +38,32 @@ class ByCreatorAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ class ByThirdpartyAggregator implements AggregatorInterface
 | 
			
		||||
        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)) {
 | 
			
		||||
            $qb->leftJoin('activity.thirdParties', 'acttparty');
 | 
			
		||||
@@ -42,17 +42,32 @@ class ByThirdpartyAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ class CreatorJobAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $p = self::PREFIX;
 | 
			
		||||
 | 
			
		||||
@@ -65,14 +65,29 @@ class CreatorJobAggregator implements AggregatorInterface
 | 
			
		||||
        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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ class CreatorScopeAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $p = self::PREFIX;
 | 
			
		||||
 | 
			
		||||
@@ -65,14 +65,29 @@ class CreatorScopeAggregator implements AggregatorInterface
 | 
			
		||||
        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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ class DateAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $order = null;
 | 
			
		||||
 | 
			
		||||
@@ -67,7 +67,7 @@ class DateAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        $builder->add('frequency', ChoiceType::class, [
 | 
			
		||||
            '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
 | 
			
		||||
    {
 | 
			
		||||
        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 {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ class LocationTypeAggregator implements AggregatorInterface
 | 
			
		||||
        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)) {
 | 
			
		||||
            $qb->leftJoin('activity.location', 'actloc');
 | 
			
		||||
@@ -42,17 +42,32 @@ class LocationTypeAggregator implements AggregatorInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, $data)
 | 
			
		||||
    public function getLabels($key, array $values, $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return function ($value): string {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -24,17 +24,32 @@ final readonly class HouseholdAggregator implements AggregatorInterface
 | 
			
		||||
{
 | 
			
		||||
    public function __construct(private HouseholdRepository $householdRepository) {}
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // nothing to add here
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        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|int {
 | 
			
		||||
            if ('_header' === $value) {
 | 
			
		||||
@@ -49,12 +64,12 @@ final readonly class HouseholdAggregator implements AggregatorInterface
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['activity_household_agg'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'export.aggregator.person.by_household.title';
 | 
			
		||||
    }
 | 
			
		||||
@@ -64,7 +79,7 @@ final readonly class HouseholdAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $qb->join(
 | 
			
		||||
            HouseholdMember::class,
 | 
			
		||||
@@ -92,7 +107,7 @@ final readonly class HouseholdAggregator implements AggregatorInterface
 | 
			
		||||
            ->addGroupBy('activity_household_agg');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return Declarations::ACTIVITY_PERSON;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -21,27 +21,42 @@ final readonly class PersonAggregator implements AggregatorInterface
 | 
			
		||||
{
 | 
			
		||||
    public function __construct(private LabelPersonHelper $labelPersonHelper) {}
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // nothing to add here
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, mixed $data)
 | 
			
		||||
    public function getLabels($key, array $values, mixed $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        return $this->labelPersonHelper->getLabel($key, $values, 'export.aggregator.person.by_person.person');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['activity_by_person_agg'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'export.aggregator.person.by_person.title';
 | 
			
		||||
    }
 | 
			
		||||
@@ -51,14 +66,14 @@ final readonly class PersonAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $qb
 | 
			
		||||
            ->addSelect('IDENTITY(activity.person) AS activity_by_person_agg')
 | 
			
		||||
            ->addGroupBy('activity_by_person_agg');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return Declarations::ACTIVITY_PERSON;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -27,17 +27,32 @@ final readonly class PersonsAggregator implements AggregatorInterface
 | 
			
		||||
 | 
			
		||||
    public function __construct(private LabelPersonHelper $labelPersonHelper) {}
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // nothing to add here
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLabels($key, array $values, mixed $data)
 | 
			
		||||
    public function getLabels($key, array $values, mixed $data): callable
 | 
			
		||||
    {
 | 
			
		||||
        if ($key !== self::PREFIX.'_pid') {
 | 
			
		||||
            throw new \UnexpectedValueException('this key should not be handled: '.$key);
 | 
			
		||||
@@ -46,12 +61,12 @@ final readonly class PersonsAggregator implements AggregatorInterface
 | 
			
		||||
        return $this->labelPersonHelper->getLabel($key, $values, 'export.aggregator.activity.by_persons.Persons');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return [self::PREFIX.'_pid'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'export.aggregator.activity.by_persons.Group activity by persons';
 | 
			
		||||
    }
 | 
			
		||||
@@ -61,7 +76,7 @@ final readonly class PersonsAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $p = self::PREFIX;
 | 
			
		||||
 | 
			
		||||
@@ -71,7 +86,7 @@ final readonly class PersonsAggregator implements AggregatorInterface
 | 
			
		||||
            ->addGroupBy("{$p}_pid");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ class SentReceivedAggregator implements AggregatorInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data): void
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, \Chill\MainBundle\Export\ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $qb->addSelect('activity.sentReceived AS activity_sentreceived_aggregator')
 | 
			
		||||
            ->addGroupBy('activity_sentreceived_aggregator');
 | 
			
		||||
@@ -42,6 +42,21 @@ class SentReceivedAggregator implements AggregatorInterface
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ use Chill\ActivityBundle\Export\Declarations;
 | 
			
		||||
use Chill\ActivityBundle\Repository\ActivityRepository;
 | 
			
		||||
use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter;
 | 
			
		||||
use Chill\MainBundle\Export\AccompanyingCourseExportHelper;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\ExportInterface;
 | 
			
		||||
use Chill\MainBundle\Export\FormatterInterface;
 | 
			
		||||
use Chill\MainBundle\Export\GroupedExportInterface;
 | 
			
		||||
@@ -38,6 +39,21 @@ class AvgActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -72,7 +88,7 @@ class AvgActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return ['export_avg_activity_duration'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
@@ -87,7 +103,7 @@ class AvgActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
 | 
			
		||||
    public function initiateQuery(array $requiredModifiers, array $acl, array $data, ExportGenerationContext $context): \Doctrine\ORM\QueryBuilder
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ use Chill\ActivityBundle\Entity\Activity;
 | 
			
		||||
use Chill\ActivityBundle\Export\Declarations;
 | 
			
		||||
use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter;
 | 
			
		||||
use Chill\MainBundle\Export\AccompanyingCourseExportHelper;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\ExportInterface;
 | 
			
		||||
use Chill\MainBundle\Export\FormatterInterface;
 | 
			
		||||
use Chill\MainBundle\Export\GroupedExportInterface;
 | 
			
		||||
@@ -46,6 +47,21 @@ class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterfac
 | 
			
		||||
        // TODO: Implement buildForm() method.
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -80,7 +96,7 @@ class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterfac
 | 
			
		||||
        return ['export_avg_activity_visit_duration'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
@@ -95,7 +111,7 @@ class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterfac
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
 | 
			
		||||
    public function initiateQuery(array $requiredModifiers, array $acl, array $data, ExportGenerationContext $context): \Doctrine\ORM\QueryBuilder
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,21 @@ class CountActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -77,7 +92,7 @@ class CountActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return ['export_count_activity'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
@@ -92,7 +107,7 @@ class CountActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -44,6 +44,21 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -78,7 +93,7 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
 | 
			
		||||
        return ['export_count_activity'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
@@ -93,7 +108,7 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,21 @@ class CountPersonsOnActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -77,7 +92,7 @@ class CountPersonsOnActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return ['export_count_activity'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
@@ -92,7 +107,7 @@ class CountPersonsOnActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ use Chill\ActivityBundle\Export\Export\ListActivityHelper;
 | 
			
		||||
use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter;
 | 
			
		||||
use Chill\MainBundle\Entity\Scope;
 | 
			
		||||
use Chill\MainBundle\Export\AccompanyingCourseExportHelper;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\GroupedExportInterface;
 | 
			
		||||
use Chill\MainBundle\Export\Helper\TranslatableStringExportLabelHelper;
 | 
			
		||||
use Chill\MainBundle\Export\ListInterface;
 | 
			
		||||
@@ -38,6 +39,21 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
 | 
			
		||||
        $this->helper->buildForm($builder);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -73,7 +89,7 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return
 | 
			
		||||
            array_merge(
 | 
			
		||||
@@ -85,25 +101,23 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
 | 
			
		||||
            );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $this->helper->getResult($query, $data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return ListActivityHelper::MSG_KEY.'List activity linked to a course';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getType()
 | 
			
		||||
    public function getType(): string
 | 
			
		||||
    {
 | 
			
		||||
        return $this->helper->getType();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
 | 
			
		||||
    public function initiateQuery(array $requiredModifiers, array $acl, array $data, ExportGenerationContext $context): \Doctrine\ORM\QueryBuilder
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
        $qb = $this->entityManager->createQueryBuilder();
 | 
			
		||||
 | 
			
		||||
        $qb
 | 
			
		||||
@@ -114,7 +128,7 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
 | 
			
		||||
            ->leftJoin('acppart.person', 'person')
 | 
			
		||||
            ->andWhere('acppart.startDate != acppart.endDate OR acppart.endDate IS NULL');
 | 
			
		||||
 | 
			
		||||
        $this->filterListAccompanyingPeriodHelper->addFilterAccompanyingPeriods($qb, $requiredModifiers, $acl, $data);
 | 
			
		||||
        $this->filterListAccompanyingPeriodHelper->addFilterAccompanyingPeriods($qb, $requiredModifiers, $acl, $context->byUser, $data);
 | 
			
		||||
 | 
			
		||||
        $qb
 | 
			
		||||
            // some grouping are necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -40,9 +40,21 @@ class SumActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        // TODO: Implement buildForm() method.
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
@@ -79,7 +91,7 @@ class SumActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return ['export_sum_activity_duration'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
@@ -94,7 +106,7 @@ class SumActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,9 +40,21 @@ class SumActivityVisitDuration implements ExportInterface, GroupedExportInterfac
 | 
			
		||||
        $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        // TODO: Implement buildForm() method.
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
@@ -79,7 +91,7 @@ class SumActivityVisitDuration implements ExportInterface, GroupedExportInterfac
 | 
			
		||||
        return ['export_sum_activity_visit_duration'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
@@ -94,7 +106,7 @@ class SumActivityVisitDuration implements ExportInterface, GroupedExportInterfac
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,21 @@ class CountActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -64,17 +79,17 @@ class CountActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return static fn ($value) => '_header' === $value ? 'Number of activities linked to a person' : $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['export_count_activity'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'Count activities linked to a person';
 | 
			
		||||
    }
 | 
			
		||||
@@ -84,7 +99,7 @@ class CountActivity implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,21 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -65,17 +80,17 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
 | 
			
		||||
        return static fn ($value) => '_header' === $value ? 'export.export.count_household_on_activity_person.header' : $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['export_count_activity'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'export.export.count_household_on_activity_person.title';
 | 
			
		||||
    }
 | 
			
		||||
@@ -85,7 +100,7 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -78,6 +78,21 @@ class ListActivity implements ListInterface, GroupedExportInterface
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['fields' => $formData['fields']];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['fields' => $formData['fields']];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -167,17 +182,17 @@ class ListActivity implements ListInterface, GroupedExportInterface
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return $data['fields'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'List activity linked to a person';
 | 
			
		||||
    }
 | 
			
		||||
@@ -187,7 +202,7 @@ class ListActivity implements ListInterface, GroupedExportInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(static fn ($el) => $el['center'], $acl);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -49,6 +49,21 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder) {}
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
@@ -84,17 +99,17 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return static fn (string $value) => '_header' === $value ? $header : $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getQueryKeys($data)
 | 
			
		||||
    public function getQueryKeys($data): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['export_stat_activity'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getResult($query, $data)
 | 
			
		||||
    public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        if (self::SUM === $this->action) {
 | 
			
		||||
            return 'Sum activity linked to a person duration';
 | 
			
		||||
@@ -108,7 +123,7 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
 | 
			
		||||
        return Declarations::ACTIVITY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    {
 | 
			
		||||
        $centers = array_map(
 | 
			
		||||
            static fn (array $el): Center => $el['center'],
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@ namespace Chill\ActivityBundle\Export\Filter\ACPFilters;
 | 
			
		||||
use Chill\ActivityBundle\Entity\Activity;
 | 
			
		||||
use Chill\ActivityBundle\Entity\ActivityType;
 | 
			
		||||
use Chill\ActivityBundle\Repository\ActivityTypeRepositoryInterface;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\FilterInterface;
 | 
			
		||||
use Chill\MainBundle\Form\Type\PickRollingDateType;
 | 
			
		||||
use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface;
 | 
			
		||||
@@ -25,6 +26,7 @@ use Symfony\Component\Form\FormBuilderInterface;
 | 
			
		||||
 | 
			
		||||
final readonly class ActivityTypeFilter implements FilterInterface
 | 
			
		||||
{
 | 
			
		||||
    use \Chill\MainBundle\Export\ExportDataNormalizerTrait;
 | 
			
		||||
    private const BASE_EXISTS = 'SELECT 1 FROM '.Activity::class.' act_type_filter_activity WHERE act_type_filter_activity.accompanyingPeriod = acp';
 | 
			
		||||
 | 
			
		||||
    public function __construct(
 | 
			
		||||
@@ -38,7 +40,7 @@ final readonly class ActivityTypeFilter implements FilterInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $exists = self::BASE_EXISTS;
 | 
			
		||||
 | 
			
		||||
@@ -62,12 +64,12 @@ final readonly class ActivityTypeFilter implements FilterInterface
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return Declarations::ACP_TYPE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        $builder->add('accepted_activitytypes', EntityType::class, [
 | 
			
		||||
            'class' => ActivityType::class,
 | 
			
		||||
@@ -92,6 +94,21 @@ final readonly class ActivityTypeFilter implements FilterInterface
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['accepted_activitytypes' => $this->normalizeDoctrineEntity($formData['accepted_activitytypes']), 'date_after' => $formData['date_after']?->normalize(), 'date_before' => $formData['date_before']?->normalize()];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['accepted_activitytypes' => $this->denormalizeDoctrineEntity($formData['accepted_activitytypes'], $this->activityTypeRepository), 'date_after' => \Chill\MainBundle\Service\RollingDate\RollingDate::fromNormalized($formData['date_after']), 'date_before' => \Chill\MainBundle\Service\RollingDate\RollingDate::fromNormalized($formData['date_before'])];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
@@ -101,7 +118,7 @@ final readonly class ActivityTypeFilter implements FilterInterface
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function describeAction($data, $format = 'string'): array
 | 
			
		||||
    public function describeAction($data, ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        $types = [];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,23 +12,28 @@ declare(strict_types=1);
 | 
			
		||||
namespace Chill\ActivityBundle\Export\Filter\ACPFilters;
 | 
			
		||||
 | 
			
		||||
use Chill\ActivityBundle\Export\Declarations;
 | 
			
		||||
use Chill\MainBundle\Export\ExportDataNormalizerTrait;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\FilterInterface;
 | 
			
		||||
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
 | 
			
		||||
use Chill\PersonBundle\Form\Type\PickSocialActionType;
 | 
			
		||||
use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository;
 | 
			
		||||
use Chill\PersonBundle\Templating\Entity\SocialActionRender;
 | 
			
		||||
use Doctrine\ORM\QueryBuilder;
 | 
			
		||||
use Symfony\Component\Form\FormBuilderInterface;
 | 
			
		||||
 | 
			
		||||
class BySocialActionFilter implements FilterInterface
 | 
			
		||||
{
 | 
			
		||||
    public function __construct(private readonly SocialActionRender $actionRender) {}
 | 
			
		||||
    use ExportDataNormalizerTrait;
 | 
			
		||||
 | 
			
		||||
    public function __construct(private readonly SocialActionRender $actionRender, private readonly SocialActionRepository $socialActionRepository) {}
 | 
			
		||||
 | 
			
		||||
    public function addRole(): ?string
 | 
			
		||||
    {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        if (!\in_array('actsocialaction', $qb->getAllAliases(), true)) {
 | 
			
		||||
            $qb->join('activity.socialActions', 'actsocialaction');
 | 
			
		||||
@@ -48,19 +53,36 @@ class BySocialActionFilter implements FilterInterface
 | 
			
		||||
        return Declarations::ACTIVITY_ACP;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        $builder->add('accepted_socialactions', PickSocialActionType::class, [
 | 
			
		||||
            'multiple' => true,
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function describeAction($data, $format = 'string'): array
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['accepted_socialactions' => $this->normalizeDoctrineEntity($formData['accepted_socialactions'])];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['accepted_socialactions' => $this->denormalizeDoctrineEntity($formData['accepted_socialactions'], $this->socialActionRepository)];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'accepted_socialactions' => [],
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function describeAction($data, ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        $actions = [];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,23 +12,28 @@ declare(strict_types=1);
 | 
			
		||||
namespace Chill\ActivityBundle\Export\Filter\ACPFilters;
 | 
			
		||||
 | 
			
		||||
use Chill\ActivityBundle\Export\Declarations;
 | 
			
		||||
use Chill\MainBundle\Export\ExportDataNormalizerTrait;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\FilterInterface;
 | 
			
		||||
use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
 | 
			
		||||
use Chill\PersonBundle\Form\Type\PickSocialIssueType;
 | 
			
		||||
use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository;
 | 
			
		||||
use Chill\PersonBundle\Templating\Entity\SocialIssueRender;
 | 
			
		||||
use Doctrine\ORM\QueryBuilder;
 | 
			
		||||
use Symfony\Component\Form\FormBuilderInterface;
 | 
			
		||||
 | 
			
		||||
class BySocialIssueFilter implements FilterInterface
 | 
			
		||||
{
 | 
			
		||||
    public function __construct(private readonly SocialIssueRender $issueRender) {}
 | 
			
		||||
    use ExportDataNormalizerTrait;
 | 
			
		||||
 | 
			
		||||
    public function __construct(private readonly SocialIssueRender $issueRender, private readonly SocialIssueRepository $issueRepository) {}
 | 
			
		||||
 | 
			
		||||
    public function addRole(): ?string
 | 
			
		||||
    {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        if (!\in_array('actsocialissue', $qb->getAllAliases(), true)) {
 | 
			
		||||
            $qb->join('activity.socialIssues', 'actsocialissue');
 | 
			
		||||
@@ -48,19 +53,34 @@ class BySocialIssueFilter implements FilterInterface
 | 
			
		||||
        return Declarations::ACTIVITY_ACP;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        $builder->add('accepted_socialissues', PickSocialIssueType::class, [
 | 
			
		||||
            'multiple' => true,
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['accepted_socialissues' => $this->normalizeDoctrineEntity($formData['accepted_socialissues'])];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['accepted_socialissues' => $this->denormalizeDoctrineEntity($formData['accepted_socialissues'], $this->issueRepository)];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function describeAction($data, $format = 'string'): array
 | 
			
		||||
    public function describeAction($data, ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        $issues = [];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ declare(strict_types=1);
 | 
			
		||||
namespace Chill\ActivityBundle\Export\Filter\ACPFilters;
 | 
			
		||||
 | 
			
		||||
use Chill\ActivityBundle\Entity\Activity;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\FilterInterface;
 | 
			
		||||
use Chill\PersonBundle\Export\Declarations;
 | 
			
		||||
use Doctrine\ORM\QueryBuilder;
 | 
			
		||||
@@ -27,7 +28,7 @@ class HasNoActivityFilter implements FilterInterface
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $qb
 | 
			
		||||
            ->andWhere('
 | 
			
		||||
@@ -43,17 +44,32 @@ class HasNoActivityFilter implements FilterInterface
 | 
			
		||||
        return Declarations::ACP_TYPE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        // 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
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function describeAction($data, $format = 'string'): array
 | 
			
		||||
    public function describeAction($data, ExportGenerationContext $context): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['Filtered acp which has no activities', []];
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ declare(strict_types=1);
 | 
			
		||||
namespace Chill\ActivityBundle\Export\Filter\ACPFilters;
 | 
			
		||||
 | 
			
		||||
use Chill\ActivityBundle\Entity\Activity;
 | 
			
		||||
use Chill\MainBundle\Export\ExportGenerationContext;
 | 
			
		||||
use Chill\MainBundle\Export\FilterInterface;
 | 
			
		||||
use Chill\MainBundle\Form\Type\PickRollingDateType;
 | 
			
		||||
use Chill\MainBundle\Service\RollingDate\RollingDate;
 | 
			
		||||
@@ -25,12 +26,12 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
 | 
			
		||||
        private RollingDateConverterInterface $rollingDateConverter,
 | 
			
		||||
    ) {}
 | 
			
		||||
 | 
			
		||||
    public function getTitle()
 | 
			
		||||
    public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
 | 
			
		||||
    {
 | 
			
		||||
        return 'export.filter.activity.course_having_activity_between_date.Title';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder)
 | 
			
		||||
    public function buildForm(FormBuilderInterface $builder): void
 | 
			
		||||
    {
 | 
			
		||||
        $builder
 | 
			
		||||
            ->add('start_date', PickRollingDateType::class, [
 | 
			
		||||
@@ -41,6 +42,21 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
 | 
			
		||||
            ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getNormalizationVersion(): int
 | 
			
		||||
    {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function normalizeFormData(array $formData): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['start_date' => $formData['start_date']->normalize(), 'end_date' => $formData['end_date']->normalize()];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function denormalizeFormData(array $formData, int $fromVersion): array
 | 
			
		||||
    {
 | 
			
		||||
        return ['start_date' => RollingDate::fromNormalized($formData['start_date']), 'end_date' => RollingDate::fromNormalized($formData['end_date'])];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getFormDefaultData(): array
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
@@ -49,7 +65,7 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function describeAction($data, $format = 'string')
 | 
			
		||||
    public function describeAction($data, ExportGenerationContext $context): string|\Symfony\Contracts\Translation\TranslatableInterface|array
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'export.filter.activity.course_having_activity_between_date.Only course having an activity between from and to',
 | 
			
		||||
@@ -65,7 +81,7 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data)
 | 
			
		||||
    public function alterQuery(QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void
 | 
			
		||||
    {
 | 
			
		||||
        $alias = 'act_period_having_act_betw_date_alias';
 | 
			
		||||
        $from = 'act_period_having_act_betw_date_start';
 | 
			
		||||
@@ -82,7 +98,7 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
 | 
			
		||||
            ->setParameter($to, $this->rollingDateConverter->convert($data['end_date']));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function applyOn()
 | 
			
		||||
    public function applyOn(): string
 | 
			
		||||
    {
 | 
			
		||||
        return \Chill\PersonBundle\Export\Declarations::ACP_TYPE;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user