mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-24 22:23:13 +00:00 
			
		
		
		
	Compare commits
	
		
			231 Commits
		
	
	
		
			v3.5.1
			...
			330-notifi
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f88f1f1859 | |||
| e6cbba8c63 | |||
| c2782be56a | |||
| cf391d60fe | |||
| acad9d1553 | |||
| 0a19255a22 | |||
| bef5dcce14 | |||
| 33540f58d7 | |||
| cf780b6e36 | |||
| c9c565809a | |||
| c917c42789 | |||
| 1c426f560e | |||
| 5ee8a6bc82 | |||
| 47cf83ef93 | |||
| 67c1dfa42b | |||
| 49cbb6a002 | |||
| 4c0c66bdb4 | |||
| 880a164793 | |||
| 29c1ba3c2b | |||
| 397267f4b9 | |||
| df88c31c40 | |||
| 6f1fe1c118 | |||
| 649ad26721 | |||
| a8c41141e8 | |||
| d82727f831 | |||
| 66bd63403b | |||
| 992e6d29d0 | |||
| bb41af4ed2 | |||
| 19dd4667f2 | |||
| 976f293f28 | |||
| 5c9396077d | |||
| 713c50309b | |||
| 44a8ddeba4 | |||
| 8b2af35e97 | |||
| dc44c46667 | |||
| ba571c1a69 | |||
| 6a364705f2 | |||
| b6d454691a | |||
| 6d7a6932a9 | |||
|  | 2faf194b15 | ||
| f207599d86 | |||
| b0959f8cc5 | |||
| 4c5dee5f0a | |||
| f6c98aa0d5 | |||
| 6d13d184d5 | |||
| af36eccfaf | |||
| 483a20a43f | |||
| 6d8e2ad825 | |||
| 86388a63a8 | |||
|  | 5ea55ebfe5 | ||
| f97dc8f931 | |||
|  | a9c3aab528 | ||
| 1181377bd6 | |||
|  | 2275b7c560 | ||
| 4a8d298ae5 | |||
| 3e7f03d331 | |||
| b830952b9e | |||
| ad17313c61 | |||
| 620515ad15 | |||
| 50c377ee22 | |||
| cc7e7a90ee | |||
| 1d4ef19051 | |||
| 8337a724d1 | |||
| 8ca377d5d4 | |||
| 224e0bae43 | |||
| 3aa4fac80d | |||
|  | a7517eb647 | ||
| e278e636e0 | |||
|  | 40e373a9c7 | ||
| 1c1f418b18 | |||
| bf0e14b43a | |||
| 203a098054 | |||
| d58acff541 | |||
| 5858e05a42 | |||
| b9b4fafe14 | |||
| fe6949ea26 | |||
| 8a444a12f4 | |||
| 8b7b5ceed7 | |||
| b0e826d05a | |||
| 6fb9c3af3f | |||
| 7f101ba616 | |||
| cea82fac10 | |||
| 1344fc33e1 | |||
| c8e09a28e6 | |||
| c52d4b2a0e | |||
| 7f326d5441 | |||
| 2840c06476 | |||
| 7ddf84ea5a | |||
| f202625ea8 | |||
| 7a9168fcdb | |||
| 40eb71f95a | |||
| 84b7cc8145 | |||
| 08af530726 | |||
| 03b2496817 | |||
| f638ce71fd | |||
| b39997f00a | |||
| 38b21a2159 | |||
| 17db571244 | |||
| 8c8c16c1a1 | |||
| 046d3ec9f1 | |||
| 596833f1a5 | |||
| 66e4bab558 | |||
| d1c9926bb1 | |||
| a71d066765 | |||
| 217ac7b9e7 | |||
| be901822bc | |||
| 7ed10efcd1 | |||
| 350661a4fa | |||
| 08207b656a | |||
| 8de63de6d6 | |||
| 51804b10c0 | |||
| 02f555efae | |||
| d2fcb6945b | |||
| c89e3785ef | |||
| 9f17ec4841 | |||
| b277a7749a | |||
| c8b6b6e33a | |||
| 10eaebf610 | |||
| 0a34f9086f | |||
| 739e0b1692 | |||
| 8db8f5fdf5 | |||
| fc32f9eca9 | |||
| ab35e8c034 | |||
| 2aded2974f | |||
| f84c1632b2 | |||
|  | 03717a1a87 | ||
|  | 02c524dd79 | ||
| 99e4824137 | |||
| dacaaea235 | |||
| 096466e79e | |||
| 7285e5c2b0 | |||
| 37227a3aeb | |||
| 7569667189 | |||
| b0993f4062 | |||
| 7c79b65f48 | |||
| b8f25bcd45 | |||
| f4efb0e975 | |||
| c641baec78 | |||
| cc150e32f0 | |||
|  | bc7f0907ab | ||
| 26cf6459b4 | |||
| d0fa6dd512 | |||
|  | fbdc0d32f0 | ||
|  | 5f31473c90 | ||
|  | 98cf167040 | ||
|  | 6c37d798bf | ||
| 03748a7e84 | |||
| 9e3431f397 | |||
| 912861dbff | |||
| 35f25daf7c | |||
| 21274155b5 | |||
| 3f7c136d6b | |||
| 5d9c573853 | |||
| 9a5fd67842 | |||
| 2755bc12c4 | |||
| 9e191f1b5b | |||
| ab684a20ad | |||
| bc92b52498 | |||
| be5655e537 | |||
| ceb0bd982e | |||
| 47c0af3623 | |||
| f6f2efee2c | |||
| 59fd9fc63f | |||
| ec2c08681e | |||
| fedcbb9a70 | |||
| 3f1a4fe353 | |||
| fc27c73dab | |||
| 20bfd5b717 | |||
| 5e3a1eb2ab | |||
| b02820407c | |||
| 594ed4a5b4 | |||
| 88fbf7bc1c | |||
| aa26e67f6f | |||
| 21ac3eaab4 | |||
| 2ff500b00e | |||
| 19fa308c06 | |||
| 1b831bc424 | |||
| 573118e514 | |||
| 0cabf5654a | |||
| cfb547d55f | |||
| a915c35026 | |||
| 018f8aef5c | |||
| de6385ba21 | |||
| edb51dd3cd | |||
| c379bccad4 | |||
| bd9ad8a569 | |||
| 0cdd9184a3 | |||
| cb5fd2b69d | |||
| feebcf6662 | |||
| 2a61197999 | |||
| 0a53a9a9d1 | |||
| eea1e40663 | |||
| 1b0771eb07 | |||
| 3a74c48104 | |||
| 6de4861b98 | |||
| b4a1e824ac | |||
| d87cf925e2 | |||
| ce3cce7b95 | |||
| 6c97654e5e | |||
| 0787e61c22 | |||
| 73bcfb82b7 | |||
| 812e4047d0 | |||
| 999ac3af2b | |||
| 0c628c39db | |||
| c65f1d495d | |||
| 83f7086bb0 | |||
| c1e449f48e | |||
| 1f6de3cb11 | |||
| 3a2548ed89 | |||
| d7652658f2 | |||
| 67b5bc6dba | |||
| e25c1e1816 | |||
| 282b7f7fbb | |||
| ab311eaecb | |||
| b37d7fb907 | |||
| 57b8dacba0 | |||
| edcc01149b | |||
| 27b2d77fdb | |||
| 96bb98f854 | |||
| 68ed2db51e | |||
| 184bb095d8 | |||
| 78c8e94765 | |||
| c8d1a91953 | |||
| 3e8e2b0fa8 | |||
|  | 2c9c700ca7 | ||
|  | 110db30748 | ||
|  | 1f96f76f87 | ||
|  | 65902ea231 | ||
|  | 88c0b1570d | ||
| 4933d2251c | |||
| 60386ae9ac | 
							
								
								
									
										6
									
								
								.changes/unreleased/DX-20250430-144550.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/DX-20250430-144550.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: DX | ||||
| body: Remove dead code for wopi-link module | ||||
| time: 2025-04-30T14:45:50.406111606+02:00 | ||||
| custom: | ||||
|     Issue: "352" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/unreleased/DX-20250528-165813.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/DX-20250528-165813.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: DX | ||||
| body: Replace library node-sass by sass, and upgrade bootstrap to version 5.3 (yarn upgrade / install is required) | ||||
| time: 2025-05-28T16:58:13.226870341+02:00 | ||||
| custom: | ||||
|     Issue: "" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										7
									
								
								.changes/unreleased/Feature-20250424-142211.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.changes/unreleased/Feature-20250424-142211.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| kind: Feature | ||||
| body: Add the document file name to the document title when a user upload a document, | ||||
|   unless there is already a document title. | ||||
| time: 2025-04-24T14:22:11.800975422+02:00 | ||||
| custom: | ||||
|   Issue: "377" | ||||
|   SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250520-095628.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250520-095628.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: Feature | ||||
| body: Add desactivation date for social action and issue csv export | ||||
| time: 2025-05-20T09:56:28.108941934+02:00 | ||||
| custom: | ||||
|     Issue: "" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250523-133341.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250523-133341.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: Feature | ||||
| body: Add Emoji and Fullscreen feature to ckeditor configuration | ||||
| time: 2025-05-23T13:33:41.645095128+02:00 | ||||
| custom: | ||||
|     Issue: "" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/unreleased/Feature-20250523-133434.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Feature-20250523-133434.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: Feature | ||||
| body: Create editor which allow us to toggle between rich and simple text editor | ||||
| time: 2025-05-23T13:34:34.56795603+02:00 | ||||
| custom: | ||||
|     Issue: "321" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										7
									
								
								.changes/unreleased/Fixed-20250424-133943.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.changes/unreleased/Fixed-20250424-133943.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| kind: Fixed | ||||
| body: trying to prevent bug of typeerror in doc-history + improved display of document | ||||
|   history | ||||
| time: 2025-04-24T13:39:43.878468232+02:00 | ||||
| custom: | ||||
|   Issue: "376" | ||||
|   SchemaChange: No schema change | ||||
							
								
								
									
										7
									
								
								.changes/unreleased/Fixed-20250424-163746.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.changes/unreleased/Fixed-20250424-163746.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| kind: Fixed | ||||
| body: Display previous participation in acc course work even if the person has left | ||||
|   the acc course | ||||
| time: 2025-04-24T16:37:46.970203594+02:00 | ||||
| custom: | ||||
|   Issue: "381" | ||||
|   SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/unreleased/Fixed-20250505-102715.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Fixed-20250505-102715.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: Fixed | ||||
| body: Fix display of text in calendar events | ||||
| time: 2025-05-05T10:27:15.461493066+02:00 | ||||
| custom: | ||||
|     Issue: "372" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/unreleased/Fixed-20250514-145339.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/Fixed-20250514-145339.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: Fixed | ||||
| body: Add missing translation for user_group.no_user_groups | ||||
| time: 2025-05-14T14:53:39.53927329+02:00 | ||||
| custom: | ||||
|     Issue: "" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/unreleased/UX-20250423-172624.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/unreleased/UX-20250423-172624.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| kind: UX | ||||
| body: Remove default filter in_progress for the page 'my tasks'; Allows for new tasks to be displayed upon opening of the page | ||||
| time: 2025-04-23T17:26:24.45777387+02:00 | ||||
| custom: | ||||
|     Issue: "374" | ||||
|     SchemaChange: No schema change | ||||
							
								
								
									
										6
									
								
								.changes/v3.10.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.changes/v3.10.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| ## v3.10.0 - 2025-03-17 | ||||
| ### Feature | ||||
| * ([#363](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/363)) Display social actions grouped per social issue within activity form    | ||||
| ### Fixed | ||||
| * ([#362](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/362)) Fix Dependency Injection, which prevented to save the CalendarRange    | ||||
| * ([#368](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/368)) fix search query for user groups    | ||||
							
								
								
									
										3
									
								
								.changes/v3.10.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.10.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.10.1 - 2025-03-17 | ||||
| ### DX | ||||
| * Remove yarn dependency to symfony/ux-translator, to ease the build process | ||||
							
								
								
									
										3
									
								
								.changes/v3.10.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.10.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.10.2 - 2025-03-17 | ||||
| ### Fixed | ||||
| * Replace a ts-expect-error with a ts-ignore    | ||||
							
								
								
									
										3
									
								
								.changes/v3.10.3.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.10.3.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.10.3 - 2025-03-18 | ||||
| ### DX | ||||
| * Eslint fixes    | ||||
							
								
								
									
										19
									
								
								.changes/v3.11.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.changes/v3.11.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| ## v3.11.0 - 2025-04-17 | ||||
| ### Feature | ||||
| * ([#365](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/365)) Add counters of actions and activities, with 2 boxes to (1) show the number of active actions on total actions and (2) show the number of activities in a accompanying period, and pills in menus for showing the number of active actions and the number of activities. | ||||
| * ([#364](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/364)) Added a second phone number "telephone2" to the thirdParty entity. Adapted twig templates and vuejs apps to handle this phone number | ||||
|  | ||||
|   **Schema Change**: Add columns or tables | ||||
| * Signature: add a button to go directly to the signature zone, even if there is only one | ||||
| ### Fixed | ||||
| * Fixed wrong translations in the on-the-fly for creation of thirdParty | ||||
| * Fixed update of phone number in on-the-fly edition of thirdParty | ||||
| * Fixed closing of modal when editing thirdParty in accompanying course works | ||||
| * Shorten the delay between two execution of AccompanyingPeriodStepChangeCronjob, to ensure at least one execution in a day | ||||
| * ([#102](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/102)) Fix display of title in document list | ||||
| * When cleaning the old stored object versions, do not throw an error if the stored object is not found on disk | ||||
| * Add consistent log prefix and key to logs when stale workflows are automatically canceled | ||||
| * ([#380](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/380)) Remove the "not null" validation constraint on recently added properties on HouseholdComposition | ||||
|  | ||||
| ### DX | ||||
| * Add new chill-col style for displaying title and aside in a flex table | ||||
							
								
								
									
										3
									
								
								.changes/v3.5.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.5.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.5.2 - 2024-12-19 | ||||
| ### Fixed | ||||
| * ([#345](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/345)) Export: activity filtering of users that were associated to an activity between certain dates. Results contained activities that were not within the specified date range"  | ||||
							
								
								
									
										3
									
								
								.changes/v3.5.3.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.5.3.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.5.3 - 2025-01-07 | ||||
| ### Fixed | ||||
| * Fix the EntityToJsonTransformer to return an empty array if the value is ""  | ||||
							
								
								
									
										9
									
								
								.changes/v3.6.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.changes/v3.6.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| ## v3.6.0 - 2025-01-16 | ||||
| ### Feature | ||||
| * Importer for addresses does not fails when the postal code is not found with some addresses, and compute a recap list of all addresses that could not be imported. This recap list can be send by email.  | ||||
| * ([#346](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/346)) Create a driver for storing documents on disk (instead of openstack object store) | ||||
|   | ||||
| * Add address importer from french Base d'Adresse Nationale (BAN)  | ||||
| * ([#343](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/343)) Add csv export for social issues and social actions  | ||||
| ### Fixed | ||||
| * Export: fix missing alias in activity between certain dates filter. Condition added for alias.  | ||||
							
								
								
									
										62
									
								
								.changes/v3.7.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								.changes/v3.7.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| ## v3.7.0 - 2025-01-21 | ||||
| ### Feature | ||||
| * Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider. | ||||
| ### Fixed | ||||
| * ([#348](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/348)) [export] Fix aggregation of referrer's scope and job: fix the date range comparison | ||||
|  | ||||
| ### Warning on configuration of Notifier component | ||||
|  | ||||
| If installed in an symfony app where the recipes are activated, this configuration should be added automatically: | ||||
|  | ||||
| ```yaml | ||||
| framework: | ||||
|     notifier: | ||||
|         chatter_transports: | ||||
|         texter_transports: | ||||
|             ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||
|         channel_policy: | ||||
|             # use chat/slack, chat/telegram, sms/twilio or sms/nexmo | ||||
|             urgent: ['email'] | ||||
|             high: ['email'] | ||||
|             medium: ['email'] | ||||
|             low: ['email'] | ||||
|         admin_recipients: | ||||
|             - { email: admin@example.com } | ||||
| ``` | ||||
|  | ||||
| Actually, you should either: | ||||
|  | ||||
| - remove the configuration of ovhcloud added by the recipe | ||||
| - or remove the previous configuration of chill, to avoid keeping legacy configuration | ||||
|  | ||||
| #### Remove the added configuration and keep the legacy configuration | ||||
|  | ||||
| To remove the configuration: | ||||
|  | ||||
| ```diff | ||||
| framework: | ||||
|     notifier: | ||||
|         chatter_transports: | ||||
|         texter_transports: | ||||
| -            ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||
| ``` | ||||
|  | ||||
| In that case, the previous configuration, which was stored under the `chill_main.short_messages.dsn` will be reconfigured into the Notifier component's configuration. | ||||
|  | ||||
| #### Properly configure SMS | ||||
|  | ||||
| You can also properly configure it, as [described in the OVH cloud provider repository](https://github.com/symfony/ovh-cloud-notifier/tree/5.4?tab=readme-ov-file#dsn-example) (where the scheme is `ovhcloud`): | ||||
|  | ||||
| **NOTE**: You have access to all notifier available with the [Notifier component](https://symfony.com/doc/current/notifier.html#notifier-sms-channel). You are not restricted to use OVH as a provider. | ||||
|  | ||||
| ```diff | ||||
| framework: | ||||
|     notifier: | ||||
|         chatter_transports: | ||||
|         texter_transports: | ||||
| +            ovhcloud: '%env(OVHCLOUD_DSN)%' # this value should be located in a variable, and have `ovhcloud://` as a scheme | ||||
|  | ||||
| chill_main: | ||||
| -    short_messages: | ||||
| -        dsn: '%env(string:SHORT_MESSAGE_DSN)%' | ||||
| ``` | ||||
							
								
								
									
										3
									
								
								.changes/v3.7.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.7.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.7.1 - 2025-01-21 | ||||
| ### Fixed | ||||
| * Fix legacy configuration processor for notifier component    | ||||
							
								
								
									
										11
									
								
								.changes/v3.8.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.changes/v3.8.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| ## v3.8.0 - 2025-02-03 | ||||
| ### Feature | ||||
| * Improve the UX of the news item admin form to prevent wrong usage | ||||
| * ([#319](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/319)) Notification list: display the concerned person's badges in the list | ||||
| * ([#320](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/320)) Show the first 3 persons directly in the accompanying period's banner | ||||
| * ([#334](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/334)) Suggest current user when creating an activity | ||||
| * ([#331](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/331)) Add attachments to workflows | ||||
| ### Fixed | ||||
| * ([#350](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/350)) Add validation error to manual selection of person in PersonDuplicateController | ||||
| * ([#354](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/354)) Fix document category creation | ||||
| * ([#351](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/351)) Add definitive whitespace between span elements in vue PersonText component | ||||
							
								
								
									
										3
									
								
								.changes/v3.8.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.8.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.8.1 - 2025-02-05 | ||||
| ### Fixed | ||||
| * Fix household link in the parcours banner    | ||||
							
								
								
									
										3
									
								
								.changes/v3.8.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.8.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.8.2 - 2025-02-10 | ||||
| ### Fixed | ||||
| * ([#358](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/358)) Remove "filter" button on list of documents in the workflow's "add attachement" modal    | ||||
							
								
								
									
										10
									
								
								.changes/v3.9.0.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.changes/v3.9.0.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| ## v3.9.0 - 2025-02-27 | ||||
| ### Feature | ||||
| * ([#349](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/349)) Suggest all referrers within actions of the accompanying period when creating an activity    | ||||
| * ([#343](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/343)) Add possibility to export a csv with all social issues and social actions    | ||||
| * ([#360](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/360)) Restore document to previous kept version when a workflow is canceled    | ||||
| * ([#341](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/341)) Add a list of third parties from within the admin (csv download)    | ||||
| ### Fixed | ||||
| * fix generation of document with accompanying period context, and list of activities and works    | ||||
| ### DX | ||||
| * ([#333](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/333)) Create an unique source of trust for translations    | ||||
							
								
								
									
										3
									
								
								.changes/v3.9.1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.9.1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.9.1 - 2025-02-27 | ||||
| ### Fixed | ||||
| * Fix post/patch request with missing 'type' property for gender    | ||||
							
								
								
									
										3
									
								
								.changes/v3.9.2.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.changes/v3.9.2.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ## v3.9.2 - 2025-02-27 | ||||
| ### Fixed | ||||
| * Use fetchResults method to fetch all social issues instead of only the first page    | ||||
| @@ -7,15 +7,29 @@ versionFormat: '## {{.Version}} - {{.Time.Format "2006-01-02"}}' | ||||
| kindFormat: '### {{.Kind}}' | ||||
| # Note: it is possible to add a `.custom.Long` text manually into the yaml file produced by `changie new`. This will add a long description. | ||||
| changeFormat: >- | ||||
|     * {{ if not (eq .Custom.Issue "") }}([#{{ .Custom.Issue }}](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/{{ .Custom.Issue }})) {{ end }}{{.Body}} {{ if and (.Custom.Long) (not (eq .Custom.Long "")) }} | ||||
|     * {{ if not (eq .Custom.Issue "") }}([#{{ .Custom.Issue }}](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/{{ .Custom.Issue }})) {{ end }}{{ .Body }}   {{ if and .Custom.SchemaChange (ne .Custom.SchemaChange "No schema change") }} | ||||
|  | ||||
|       **Schema Change**: {{ .Custom.SchemaChange }} | ||||
|       {{- end -}} | ||||
|  | ||||
|     {{ if and (.Custom.Long) (not (eq .Custom.Long "")) }}{{ .Custom.Long }}{{ end }} | ||||
|  | ||||
|       {{ .Custom.Long }}{{ end }} | ||||
| custom: | ||||
|     - key: SchemaChange | ||||
|       label: Is a schema change required? | ||||
|       optional: false | ||||
|       type: enum | ||||
|       enumOptions: | ||||
|           - "No schema change" | ||||
|           - "Add columns or tables" | ||||
|           - "Drop or rename table or columns, or enforce new constraint that must be manually fixed" | ||||
|  | ||||
|     -   key: Issue | ||||
|         label: Issue number (on chill-bundles repository) (optional) | ||||
|         optional: true | ||||
|         type: int | ||||
|         minInt: 1 | ||||
|  | ||||
| body: | ||||
|     # allow multiline messages | ||||
|     block: true | ||||
|   | ||||
							
								
								
									
										4
									
								
								.env
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								.env
									
									
									
									
									
								
							| @@ -88,3 +88,7 @@ REDIS_HOST=redis | ||||
| REDIS_PORT=6379 | ||||
| REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT} | ||||
| ###< chill-project/chill-bundles ### | ||||
|  | ||||
| ###> symfony/ovh-cloud-notifier ### | ||||
| # OVHCLOUD_DSN=ovhcloud://APPLICATION_KEY:APPLICATION_SECRET@default?consumer_key=CONSUMER_KEY&service_name=SERVICE_NAME | ||||
| ###< symfony/ovh-cloud-notifier ### | ||||
|   | ||||
| @@ -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" | ||||
|     } | ||||
| ] | ||||
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -5,12 +5,15 @@ composer.lock | ||||
| docs/build/ | ||||
| .php_cs.cache | ||||
| .cache/* | ||||
| yarn.lock | ||||
|  | ||||
| docker/db/data | ||||
| 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/* | ||||
| @@ -51,3 +54,8 @@ phpstan.neon | ||||
| npm-debug.log | ||||
| yarn-error.log | ||||
| ###< symfony/webpack-encore-bundle ### | ||||
|  | ||||
| ###> friendsofphp/php-cs-fixer ### | ||||
| /.php-cs-fixer.php | ||||
| /.php-cs-fixer.cache | ||||
| ###< friendsofphp/php-cs-fixer ### | ||||
|   | ||||
| @@ -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: | ||||
| @@ -113,7 +113,7 @@ lint: | ||||
|         - export PATH="./node_modules/.bin:$PATH" | ||||
|     script: | ||||
|         - yarn install --ignore-optional | ||||
|         - npx eslint-baseline "**/*.{js,vue}" | ||||
|         - npx eslint-baseline "src/**/*.{js,ts,vue}" | ||||
|     cache: | ||||
|         paths: | ||||
|             - node_modules/ | ||||
| @@ -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: | ||||
|   | ||||
							
								
								
									
										312
									
								
								.junie/guidelines.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										312
									
								
								.junie/guidelines.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,312 @@ | ||||
| # 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 | ||||
| - **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. | ||||
|  | ||||
| ### 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. | ||||
|  | ||||
| For creating mock, we prefer using prophecy (library phpspec/prophecy). | ||||
|  | ||||
| #### Running Tests | ||||
|  | ||||
| ```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 an in-memory SQLite database by default. 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 | ||||
| @@ -25,7 +25,7 @@ $config = new PhpCsFixer\Config(); | ||||
| $config | ||||
|     ->setFinder($finder) | ||||
|     ->setRiskyAllowed(true) | ||||
|     ->setCacheFile('.cache/php-cs-fixer.cache') | ||||
|     ->setCacheFile('var/php-cs-fixer.cache') | ||||
|     ->setUsingCache(true) | ||||
|     ->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect()) | ||||
| ; | ||||
|   | ||||
							
								
								
									
										143
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										143
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -6,6 +6,149 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), | ||||
| and is generated by [Changie](https://github.com/miniscruff/changie). | ||||
|  | ||||
|  | ||||
| ## v3.10.3 - 2025-03-18 | ||||
| ### DX | ||||
| * Eslint fixes    | ||||
|  | ||||
| ## v3.10.2 - 2025-03-17 | ||||
| ### Fixed | ||||
| * Replace a ts-expect-error with a ts-ignore    | ||||
|  | ||||
| ## v3.10.1 - 2025-03-17 | ||||
| ### DX | ||||
| * Remove yarn dependency to symfony/ux-translator, to ease the build process | ||||
|  | ||||
| ## v3.10.0 - 2025-03-17 | ||||
| ### Feature | ||||
| * ([#363](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/363)) Display social actions grouped per social issue within activity form    | ||||
| ### Fixed | ||||
| * ([#362](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/362)) Fix Dependency Injection, which prevented to save the CalendarRange    | ||||
| * ([#368](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/368)) fix search query for user groups    | ||||
|  | ||||
| ## v3.9.2 - 2025-02-27 | ||||
| ### Fixed | ||||
| * Use fetchResults method to fetch all social issues instead of only the first page    | ||||
|  | ||||
| ## v3.9.1 - 2025-02-27 | ||||
| ### Fixed | ||||
| * Fix post/patch request with missing 'type' property for gender    | ||||
|  | ||||
| ## v3.9.0 - 2025-02-27 | ||||
| ### Feature | ||||
| * ([#349](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/349)) Suggest all referrers within actions of the accompanying period when creating an activity    | ||||
| * ([#343](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/343)) Add possibility to export a csv with all social issues and social actions    | ||||
| * ([#360](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/360)) Restore document to previous kept version when a workflow is canceled    | ||||
| * ([#341](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/341)) Add a list of third parties from within the admin (csv download)    | ||||
| ### Fixed | ||||
| * fix generation of document with accompanying period context, and list of activities and works    | ||||
| ### DX | ||||
| * ([#333](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/333)) Create an unique source of trust for translations    | ||||
|  | ||||
| ## v3.8.2 - 2025-02-10 | ||||
| ### Fixed | ||||
| * ([#358](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/358)) Remove "filter" button on list of documents in the workflow's "add attachement" modal    | ||||
|  | ||||
| ## v3.8.1 - 2025-02-05 | ||||
| ### Fixed | ||||
| * Fix household link in the parcours banner    | ||||
|  | ||||
| ## v3.8.0 - 2025-02-03 | ||||
| ### Feature | ||||
| * Improve the UX of the news item admin form to prevent wrong usage | ||||
| * ([#319](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/319)) Notification list: display the concerned person's badges in the list | ||||
| * ([#320](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/320)) Show the first 3 persons directly in the accompanying period's banner | ||||
| * ([#334](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/334)) Suggest current user when creating an activity | ||||
| * ([#331](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/331)) Add attachments to workflows | ||||
| ### Fixed | ||||
| * ([#350](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/350)) Add validation error to manual selection of person in PersonDuplicateController | ||||
| * ([#354](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/354)) Fix document category creation | ||||
| * ([#351](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/351)) Add definitive whitespace between span elements in vue PersonText component | ||||
|  | ||||
| ## v3.7.1 - 2025-01-21 | ||||
| ### Fixed | ||||
| * Fix legacy configuration processor for notifier component    | ||||
|  | ||||
| ## v3.7.0 - 2025-01-21 | ||||
| ### Feature | ||||
| * Use the Notifier component from Symfony to sens short messages (SMS). This allow to use more provider. | ||||
| ### Fixed | ||||
| * ([#348](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/348)) [export] Fix aggregation of referrer's scope and job: fix the date range comparison | ||||
|  | ||||
| ### Warning on configuration of Notifier component | ||||
|  | ||||
| If installed in an symfony app where the recipes are activated, this configuration should be added automatically: | ||||
|  | ||||
| ```yaml | ||||
| framework: | ||||
|     notifier: | ||||
|         chatter_transports: | ||||
|         texter_transports: | ||||
|             ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||
|         channel_policy: | ||||
|             # use chat/slack, chat/telegram, sms/twilio or sms/nexmo | ||||
|             urgent: ['email'] | ||||
|             high: ['email'] | ||||
|             medium: ['email'] | ||||
|             low: ['email'] | ||||
|         admin_recipients: | ||||
|             - { email: admin@example.com } | ||||
| ``` | ||||
|  | ||||
| Actually, you should either: | ||||
|  | ||||
| - remove the configuration of ovhcloud added by the recipe | ||||
| - or remove the previous configuration of chill, to avoid keeping legacy configuration | ||||
|  | ||||
| #### Remove the added configuration and keep the legacy configuration | ||||
|  | ||||
| To remove the configuration: | ||||
|  | ||||
| ```diff | ||||
| framework: | ||||
|     notifier: | ||||
|         chatter_transports: | ||||
|         texter_transports: | ||||
| -            ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||
| ``` | ||||
|  | ||||
| In that case, the previous configuration, which was stored under the `chill_main.short_messages.dsn` will be reconfigured into the Notifier component's configuration. | ||||
|  | ||||
| #### Properly configure SMS | ||||
|  | ||||
| You can also properly configure it, as [described in the OVH cloud provider repository](https://github.com/symfony/ovh-cloud-notifier/tree/5.4?tab=readme-ov-file#dsn-example) (where the scheme is `ovhcloud`): | ||||
|  | ||||
| **NOTE**: You have access to all notifier available with the [Notifier component](https://symfony.com/doc/current/notifier.html#notifier-sms-channel). You are not restricted to use OVH as a provider. | ||||
|  | ||||
| ```diff | ||||
| framework: | ||||
|     notifier: | ||||
|         chatter_transports: | ||||
|         texter_transports: | ||||
| +            ovhcloud: '%env(OVHCLOUD_DSN)%' # this value should be located in a variable, and have `ovhcloud://` as a scheme | ||||
|  | ||||
| chill_main: | ||||
| -    short_messages: | ||||
| -        dsn: '%env(string:SHORT_MESSAGE_DSN)%' | ||||
| ``` | ||||
|  | ||||
| ## v3.6.0 - 2025-01-16 | ||||
| ### Feature | ||||
| * Importer for addresses does not fails when the postal code is not found with some addresses, and compute a recap list of all addresses that could not be imported. This recap list can be send by email.  | ||||
| * ([#346](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/346)) Create a driver for storing documents on disk (instead of openstack object store) | ||||
|   | ||||
| * Add address importer from french Base d'Adresse Nationale (BAN)  | ||||
| * ([#343](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/343)) Add csv export for social issues and social actions  | ||||
| ### Fixed | ||||
| * Export: fix missing alias in activity between certain dates filter. Condition added for alias.  | ||||
|  | ||||
| ## v3.5.3 - 2025-01-07 | ||||
| ### Fixed | ||||
| * Fix the EntityToJsonTransformer to return an empty array if the value is ""  | ||||
|  | ||||
| ## v3.5.2 - 2024-12-19 | ||||
| ### Fixed | ||||
| * ([#345](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/345)) Export: activity filtering of users that were associated to an activity between certain dates. Results contained activities that were not within the specified date range"  | ||||
|  | ||||
| ## v3.5.1 - 2024-12-16 | ||||
| ### Fixed | ||||
| * Filiation: fix the display of the gender label in the graph  | ||||
|   | ||||
							
								
								
									
										7
									
								
								assets/translator.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								assets/translator.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| import { trans, setLocale, setLocaleFallbacks } from "./ux-translator"; | ||||
|  | ||||
| setLocaleFallbacks({"en": "fr", "nl": "fr", "fr": "en"}); | ||||
| setLocale('fr'); | ||||
|  | ||||
| export { trans }; | ||||
| export * from '../var/translations'; | ||||
							
								
								
									
										3
									
								
								assets/ux-translator/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								assets/ux-translator/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| This directory import the symfony ux-translator files directly into chill-bundles. | ||||
|  | ||||
| This remove the yarn dependencies from the real package, which breaks our installation. | ||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/formatters/formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/formatters/formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export declare function format(id: string, parameters: Record<string, string | number>, locale: string): string; | ||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/formatters/intl-formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/formatters/intl-formatter.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export declare function formatIntl(id: string, parameters: Record<string, string | number>, locale: string): string; | ||||
							
								
								
									
										27
									
								
								assets/ux-translator/dist/translator.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								assets/ux-translator/dist/translator.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| export type DomainType = string; | ||||
| export type LocaleType = string; | ||||
| export type TranslationsType = Record<DomainType, { | ||||
|     parameters: ParametersType; | ||||
| }>; | ||||
| export type NoParametersType = Record<string, never>; | ||||
| export type ParametersType = Record<string, string | number | Date> | NoParametersType; | ||||
| export type RemoveIntlIcuSuffix<T> = T extends `${infer U}+intl-icu` ? U : T; | ||||
| export type DomainsOf<M> = M extends Message<infer Translations, LocaleType> ? keyof Translations : never; | ||||
| export type LocaleOf<M> = M extends Message<TranslationsType, infer Locale> ? Locale : never; | ||||
| export type ParametersOf<M, D extends DomainType> = M extends Message<infer Translations, LocaleType> ? Translations[D] extends { | ||||
|     parameters: infer Parameters; | ||||
| } ? Parameters : never : never; | ||||
| export interface Message<Translations extends TranslationsType, Locale extends LocaleType> { | ||||
|     id: string; | ||||
|     translations: { | ||||
|         [domain in DomainType]: { | ||||
|             [locale in Locale]: string; | ||||
|         }; | ||||
|     }; | ||||
| } | ||||
| export declare function setLocale(locale: LocaleType | null): void; | ||||
| export declare function getLocale(): LocaleType; | ||||
| export declare function throwWhenNotFound(enabled: boolean): void; | ||||
| export declare function setLocaleFallbacks(localeFallbacks: Record<LocaleType, LocaleType>): void; | ||||
| export declare function getLocaleFallbacks(): Record<LocaleType, LocaleType>; | ||||
| export declare function trans<M extends Message<TranslationsType, LocaleType>, D extends DomainsOf<M>, P extends ParametersOf<M, D>>(...args: P extends NoParametersType ? [message: M, parameters?: P, domain?: RemoveIntlIcuSuffix<D>, locale?: LocaleOf<M>] : [message: M, parameters: P, domain?: RemoveIntlIcuSuffix<D>, locale?: LocaleOf<M>]): string; | ||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/translator_controller.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/translator_controller.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export * from './translator'; | ||||
							
								
								
									
										283
									
								
								assets/ux-translator/dist/translator_controller.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										283
									
								
								assets/ux-translator/dist/translator_controller.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,283 @@ | ||||
| import { IntlMessageFormat } from 'intl-messageformat'; | ||||
|  | ||||
| function strtr(string, replacePairs) { | ||||
|     const regex = Object.entries(replacePairs).map(([from]) => { | ||||
|         return from.replace(/([-[\]{}()*+?.\\^$|#,])/g, '\\$1'); | ||||
|     }); | ||||
|     if (regex.length === 0) { | ||||
|         return string; | ||||
|     } | ||||
|     return string.replace(new RegExp(regex.join('|'), 'g'), (matched) => replacePairs[matched].toString()); | ||||
| } | ||||
|  | ||||
| function format(id, parameters, locale) { | ||||
|     if (null === id || '' === id) { | ||||
|         return ''; | ||||
|     } | ||||
|     if (typeof parameters['%count%'] === 'undefined' || Number.isNaN(parameters['%count%'])) { | ||||
|         return strtr(id, parameters); | ||||
|     } | ||||
|     const number = Number(parameters['%count%']); | ||||
|     let parts = []; | ||||
|     if (/^\|+$/.test(id)) { | ||||
|         parts = id.split('|'); | ||||
|     } | ||||
|     else { | ||||
|         parts = id.match(/(?:\|\||[^|])+/g) || []; | ||||
|     } | ||||
|     const intervalRegex = /^(?<interval>({\s*(-?\d+(\.\d+)?[\s*,\s*\-?\d+(.\d+)?]*)\s*})|(?<left_delimiter>[[\]])\s*(?<left>-Inf|-?\d+(\.\d+)?)\s*,\s*(?<right>\+?Inf|-?\d+(\.\d+)?)\s*(?<right_delimiter>[[\]]))\s*(?<message>.*?)$/s; | ||||
|     const standardRules = []; | ||||
|     for (let part of parts) { | ||||
|         part = part.trim().replace(/\|\|/g, '|'); | ||||
|         const matches = part.match(intervalRegex); | ||||
|         if (matches) { | ||||
|             const matchGroups = matches.groups || {}; | ||||
|             if (matches[2]) { | ||||
|                 for (const n of matches[3].split(',')) { | ||||
|                     if (number === Number(n)) { | ||||
|                         return strtr(matchGroups.message, parameters); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             else { | ||||
|                 const leftNumber = '-Inf' === matchGroups.left ? Number.NEGATIVE_INFINITY : Number(matchGroups.left); | ||||
|                 const rightNumber = ['Inf', '+Inf'].includes(matchGroups.right) | ||||
|                     ? Number.POSITIVE_INFINITY | ||||
|                     : Number(matchGroups.right); | ||||
|                 if (('[' === matchGroups.left_delimiter ? number >= leftNumber : number > leftNumber) && | ||||
|                     (']' === matchGroups.right_delimiter ? number <= rightNumber : number < rightNumber)) { | ||||
|                     return strtr(matchGroups.message, parameters); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
|             const ruleMatch = part.match(/^\w+:\s*(.*?)$/); | ||||
|             standardRules.push(ruleMatch ? ruleMatch[1] : part); | ||||
|         } | ||||
|     } | ||||
|     const position = getPluralizationRule(number, locale); | ||||
|     if (typeof standardRules[position] === 'undefined') { | ||||
|         if (1 === parts.length && typeof standardRules[0] !== 'undefined') { | ||||
|             return strtr(standardRules[0], parameters); | ||||
|         } | ||||
|         throw new Error(`Unable to choose a translation for "${id}" with locale "${locale}" for value "${number}". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %count% apples").`); | ||||
|     } | ||||
|     return strtr(standardRules[position], parameters); | ||||
| } | ||||
| function getPluralizationRule(number, locale) { | ||||
|     number = Math.abs(number); | ||||
|     let _locale = locale; | ||||
|     if (locale === 'pt_BR' || locale === 'en_US_POSIX') { | ||||
|         return 0; | ||||
|     } | ||||
|     _locale = _locale.length > 3 ? _locale.substring(0, _locale.indexOf('_')) : _locale; | ||||
|     switch (_locale) { | ||||
|         case 'af': | ||||
|         case 'bn': | ||||
|         case 'bg': | ||||
|         case 'ca': | ||||
|         case 'da': | ||||
|         case 'de': | ||||
|         case 'el': | ||||
|         case 'en': | ||||
|         case 'en_US_POSIX': | ||||
|         case 'eo': | ||||
|         case 'es': | ||||
|         case 'et': | ||||
|         case 'eu': | ||||
|         case 'fa': | ||||
|         case 'fi': | ||||
|         case 'fo': | ||||
|         case 'fur': | ||||
|         case 'fy': | ||||
|         case 'gl': | ||||
|         case 'gu': | ||||
|         case 'ha': | ||||
|         case 'he': | ||||
|         case 'hu': | ||||
|         case 'is': | ||||
|         case 'it': | ||||
|         case 'ku': | ||||
|         case 'lb': | ||||
|         case 'ml': | ||||
|         case 'mn': | ||||
|         case 'mr': | ||||
|         case 'nah': | ||||
|         case 'nb': | ||||
|         case 'ne': | ||||
|         case 'nl': | ||||
|         case 'nn': | ||||
|         case 'no': | ||||
|         case 'oc': | ||||
|         case 'om': | ||||
|         case 'or': | ||||
|         case 'pa': | ||||
|         case 'pap': | ||||
|         case 'ps': | ||||
|         case 'pt': | ||||
|         case 'so': | ||||
|         case 'sq': | ||||
|         case 'sv': | ||||
|         case 'sw': | ||||
|         case 'ta': | ||||
|         case 'te': | ||||
|         case 'tk': | ||||
|         case 'ur': | ||||
|         case 'zu': | ||||
|             return 1 === number ? 0 : 1; | ||||
|         case 'am': | ||||
|         case 'bh': | ||||
|         case 'fil': | ||||
|         case 'fr': | ||||
|         case 'gun': | ||||
|         case 'hi': | ||||
|         case 'hy': | ||||
|         case 'ln': | ||||
|         case 'mg': | ||||
|         case 'nso': | ||||
|         case 'pt_BR': | ||||
|         case 'ti': | ||||
|         case 'wa': | ||||
|             return number < 2 ? 0 : 1; | ||||
|         case 'be': | ||||
|         case 'bs': | ||||
|         case 'hr': | ||||
|         case 'ru': | ||||
|         case 'sh': | ||||
|         case 'sr': | ||||
|         case 'uk': | ||||
|             return 1 === number % 10 && 11 !== number % 100 | ||||
|                 ? 0 | ||||
|                 : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20) | ||||
|                     ? 1 | ||||
|                     : 2; | ||||
|         case 'cs': | ||||
|         case 'sk': | ||||
|             return 1 === number ? 0 : number >= 2 && number <= 4 ? 1 : 2; | ||||
|         case 'ga': | ||||
|             return 1 === number ? 0 : 2 === number ? 1 : 2; | ||||
|         case 'lt': | ||||
|             return 1 === number % 10 && 11 !== number % 100 | ||||
|                 ? 0 | ||||
|                 : number % 10 >= 2 && (number % 100 < 10 || number % 100 >= 20) | ||||
|                     ? 1 | ||||
|                     : 2; | ||||
|         case 'sl': | ||||
|             return 1 === number % 100 ? 0 : 2 === number % 100 ? 1 : 3 === number % 100 || 4 === number % 100 ? 2 : 3; | ||||
|         case 'mk': | ||||
|             return 1 === number % 10 ? 0 : 1; | ||||
|         case 'mt': | ||||
|             return 1 === number | ||||
|                 ? 0 | ||||
|                 : 0 === number || (number % 100 > 1 && number % 100 < 11) | ||||
|                     ? 1 | ||||
|                     : number % 100 > 10 && number % 100 < 20 | ||||
|                         ? 2 | ||||
|                         : 3; | ||||
|         case 'lv': | ||||
|             return 0 === number ? 0 : 1 === number % 10 && 11 !== number % 100 ? 1 : 2; | ||||
|         case 'pl': | ||||
|             return 1 === number | ||||
|                 ? 0 | ||||
|                 : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 12 || number % 100 > 14) | ||||
|                     ? 1 | ||||
|                     : 2; | ||||
|         case 'cy': | ||||
|             return 1 === number ? 0 : 2 === number ? 1 : 8 === number || 11 === number ? 2 : 3; | ||||
|         case 'ro': | ||||
|             return 1 === number ? 0 : 0 === number || (number % 100 > 0 && number % 100 < 20) ? 1 : 2; | ||||
|         case 'ar': | ||||
|             return 0 === number | ||||
|                 ? 0 | ||||
|                 : 1 === number | ||||
|                     ? 1 | ||||
|                     : 2 === number | ||||
|                         ? 2 | ||||
|                         : number % 100 >= 3 && number % 100 <= 10 | ||||
|                             ? 3 | ||||
|                             : number % 100 >= 11 && number % 100 <= 99 | ||||
|                                 ? 4 | ||||
|                                 : 5; | ||||
|         default: | ||||
|             return 0; | ||||
|     } | ||||
| } | ||||
|  | ||||
| function formatIntl(id, parameters, locale) { | ||||
|     if (id === '') { | ||||
|         return ''; | ||||
|     } | ||||
|     const intlMessage = new IntlMessageFormat(id, [locale.replace('_', '-')], undefined, { ignoreTag: true }); | ||||
|     parameters = { ...parameters }; | ||||
|     Object.entries(parameters).forEach(([key, value]) => { | ||||
|         if (key.includes('%') || key.includes('{')) { | ||||
|             delete parameters[key]; | ||||
|             parameters[key.replace(/[%{} ]/g, '').trim()] = value; | ||||
|         } | ||||
|     }); | ||||
|     return intlMessage.format(parameters); | ||||
| } | ||||
|  | ||||
| let _locale = null; | ||||
| let _localeFallbacks = {}; | ||||
| let _throwWhenNotFound = false; | ||||
| function setLocale(locale) { | ||||
|     _locale = locale; | ||||
| } | ||||
| function getLocale() { | ||||
|     return (_locale || | ||||
|         document.documentElement.getAttribute('data-symfony-ux-translator-locale') || | ||||
|         (document.documentElement.lang ? document.documentElement.lang.replace('-', '_') : null) || | ||||
|         'en'); | ||||
| } | ||||
| function throwWhenNotFound(enabled) { | ||||
|     _throwWhenNotFound = enabled; | ||||
| } | ||||
| function setLocaleFallbacks(localeFallbacks) { | ||||
|     _localeFallbacks = localeFallbacks; | ||||
| } | ||||
| function getLocaleFallbacks() { | ||||
|     return _localeFallbacks; | ||||
| } | ||||
| function trans(message, parameters = {}, domain = 'messages', locale = null) { | ||||
|     if (typeof domain === 'undefined') { | ||||
|         domain = 'messages'; | ||||
|     } | ||||
|     if (typeof locale === 'undefined' || null === locale) { | ||||
|         locale = getLocale(); | ||||
|     } | ||||
|     if (typeof message.translations === 'undefined') { | ||||
|         return message.id; | ||||
|     } | ||||
|     const localesFallbacks = getLocaleFallbacks(); | ||||
|     const translationsIntl = message.translations[`${domain}+intl-icu`]; | ||||
|     if (typeof translationsIntl !== 'undefined') { | ||||
|         while (typeof translationsIntl[locale] === 'undefined') { | ||||
|             locale = localesFallbacks[locale]; | ||||
|             if (!locale) { | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         if (locale) { | ||||
|             return formatIntl(translationsIntl[locale], parameters, locale); | ||||
|         } | ||||
|     } | ||||
|     const translations = message.translations[domain]; | ||||
|     if (typeof translations !== 'undefined') { | ||||
|         while (typeof translations[locale] === 'undefined') { | ||||
|             locale = localesFallbacks[locale]; | ||||
|             if (!locale) { | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         if (locale) { | ||||
|             return format(translations[locale], parameters, locale); | ||||
|         } | ||||
|     } | ||||
|     if (_throwWhenNotFound) { | ||||
|         throw new Error(`No translation message found with id "${message.id}".`); | ||||
|     } | ||||
|     return message.id; | ||||
| } | ||||
|  | ||||
| export { getLocale, getLocaleFallbacks, setLocale, setLocaleFallbacks, throwWhenNotFound, trans }; | ||||
							
								
								
									
										1
									
								
								assets/ux-translator/dist/utils.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/ux-translator/dist/utils.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export declare function strtr(string: string, replacePairs: Record<string, string | number>): string; | ||||
							
								
								
									
										34
									
								
								assets/ux-translator/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/ux-translator/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| { | ||||
|     "name": "@symfony/ux-translator", | ||||
|     "description": "Symfony Translator for JavaScript", | ||||
|     "license": "MIT", | ||||
|     "version": "1.0.0", | ||||
|     "main": "dist/translator_controller.js", | ||||
|     "types": "dist/translator_controller.d.ts", | ||||
|     "scripts": { | ||||
|         "build": "node ../../../bin/build_package.js .", | ||||
|         "watch": "node ../../../bin/build_package.js . --watch", | ||||
|         "test": "../../../bin/test_package.sh .", | ||||
|         "check": "biome check", | ||||
|         "ci": "biome ci" | ||||
|     }, | ||||
|     "symfony": { | ||||
|         "importmap": { | ||||
|             "intl-messageformat": "^10.5.11", | ||||
|             "@symfony/ux-translator": "path:%PACKAGE%/dist/translator_controller.js", | ||||
|             "@app/translations": "path:var/translations/index.js", | ||||
|             "@app/translations/configuration": "path:var/translations/configuration.js" | ||||
|         } | ||||
|     }, | ||||
|     "peerDependencies": { | ||||
|         "intl-messageformat": "^10.5.11" | ||||
|     }, | ||||
|     "peerDependenciesMeta": { | ||||
|         "intl-messageformat": { | ||||
|             "optional": false | ||||
|         } | ||||
|     }, | ||||
|     "devDependencies": { | ||||
|         "intl-messageformat": "^10.5.11" | ||||
|     } | ||||
| } | ||||
| @@ -13,8 +13,10 @@ | ||||
|         "ext-json": "*", | ||||
|         "ext-openssl": "*", | ||||
|         "ext-redis": "*", | ||||
|         "ext-zlib": "*", | ||||
|         "champs-libres/wopi-bundle": "dev-master@dev", | ||||
|         "champs-libres/wopi-lib": "dev-master@dev", | ||||
|         "doctrine/data-fixtures": "^1.8", | ||||
|         "doctrine/doctrine-bundle": "^2.1", | ||||
|         "doctrine/doctrine-migrations-bundle": "^3.0", | ||||
|         "doctrine/orm": "^2.13.0", | ||||
| @@ -56,7 +58,9 @@ | ||||
|         "symfony/messenger": "^5.4", | ||||
|         "symfony/mime": "^5.4", | ||||
|         "symfony/monolog-bundle": "^3.5", | ||||
|         "symfony/notifier": "^5.4", | ||||
|         "symfony/options-resolver": "^5.4", | ||||
|         "symfony/ovh-cloud-notifier": "^5.4", | ||||
|         "symfony/process": "^5.4", | ||||
|         "symfony/property-access": "^5.4", | ||||
|         "symfony/property-info": "^5.4", | ||||
| @@ -71,6 +75,7 @@ | ||||
|         "symfony/templating": "^5.4", | ||||
|         "symfony/translation": "^5.4", | ||||
|         "symfony/twig-bundle": "^5.4", | ||||
|         "symfony/ux-translator": "^2.22", | ||||
|         "symfony/validator": "^5.4", | ||||
|         "symfony/webpack-encore-bundle": "^1.11", | ||||
|         "symfony/workflow": "^5.4", | ||||
| @@ -85,6 +90,7 @@ | ||||
|     "require-dev": { | ||||
|         "doctrine/doctrine-fixtures-bundle": "^3.3", | ||||
|         "fakerphp/faker": "^1.13", | ||||
|         "friendsofphp/php-cs-fixer": "3.65.0", | ||||
|         "jangregor/phpstan-prophecy": "^1.0", | ||||
|         "nelmio/alice": "^3.8", | ||||
|         "nikic/php-parser": "^4.15", | ||||
| @@ -157,7 +163,9 @@ | ||||
|             "cache:clear": "symfony-cmd", | ||||
|             "assets:install %PUBLIC_DIR%": "symfony-cmd" | ||||
|         }, | ||||
|         "php-cs-fixer": "php-cs-fixer fix --config=./.php-cs-fixer.dist.php --show-progress=none" | ||||
|         "php-cs-fixer": "php-cs-fixer fix --config=./.php-cs-fixer.dist.php --show-progress=none", | ||||
|         "phpstan":  "phpstan --no-progress", | ||||
|         "rector": "rector --no-progress-bar" | ||||
|     }, | ||||
|     "extra": { | ||||
|         "symfony": { | ||||
|   | ||||
| @@ -36,4 +36,5 @@ return [ | ||||
|     Chill\BudgetBundle\ChillBudgetBundle::class => ['all' => true], | ||||
|     Chill\WopiBundle\ChillWopiBundle::class => ['all' => true], | ||||
|     Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], | ||||
|     Symfony\UX\Translator\UxTranslatorBundle::class => ['all' => true], | ||||
| ]; | ||||
|   | ||||
| @@ -12,3 +12,7 @@ framework: | ||||
|                 adapter: cache.adapter.redis | ||||
|                 public: false | ||||
|                 default_lifetime: 300 | ||||
|             cache.daily_notifications: | ||||
|                 adapter: cache.adapter.redis | ||||
|                 public: true | ||||
|                 default_lifetime: 90000  # 25 hours | ||||
|   | ||||
| @@ -1,4 +1,7 @@ | ||||
| chill_doc_store: | ||||
|     use_driver: openstack | ||||
|     local_storage: | ||||
|         storage_path: '%kernel.project_dir%/var/storage' | ||||
|     openstack: | ||||
|         temp_url: | ||||
|             temp_url_key:         '%env(resolve:ASYNC_UPLOAD_TEMP_URL_KEY)%'       # Required | ||||
|   | ||||
| @@ -45,6 +45,27 @@ framework: | ||||
|  | ||||
|                     auto_setup: false | ||||
|  | ||||
|             immediate_email: | ||||
|                 dsn: '%env(MESSENGER_TRANSPORT_DSN)%/priority' | ||||
|                 options: | ||||
|                     queue_name: immediate_notifications | ||||
|                     exchange: | ||||
|                         name: notifications | ||||
|                         type: direct | ||||
|                 retry_strategy: | ||||
|                     max_retries: 3 | ||||
|                     delay: 1000 | ||||
|                     multiplier: 2 | ||||
|  | ||||
|             daily_email: | ||||
|                 dsn: '%env(MESSENGER_TRANSPORT_DSN)%' | ||||
|                 options: | ||||
|                     queue_name: daily_notifications | ||||
|                     exchange: | ||||
|                         name: notifications | ||||
|                         type: direct | ||||
|                 # No automatic consumption - handled by cron job | ||||
|  | ||||
|         routing: | ||||
|             # routes added by chill-bundles recipes | ||||
|             'Chill\CalendarBundle\Messenger\Message\CalendarRangeMessage': async | ||||
| @@ -61,6 +82,9 @@ framework: | ||||
|             'Chill\MainBundle\Workflow\Messenger\PostSignatureStateChangeMessage': priority | ||||
|             'Chill\MainBundle\Workflow\Messenger\PostPublicViewMessage': async | ||||
|             'Chill\MainBundle\Service\Workflow\CancelStaleWorkflowMessage': async | ||||
|             'Chill\MainBundle\Notification\Email\SendImmediateNotificationEmailMessage': immediate_email | ||||
|             'Chill\MainBundle\Notification\Email\ScheduleDailyNotificationEmailMessage': daily_email | ||||
|             'Chill\MainBundle\Notification\Email\SendDailyDigestMessage': daily_email | ||||
|             # end of routes added by chill-bundles recipes | ||||
|             # Route your messages to the transports | ||||
|             # 'App\Message\YourMessage': async | ||||
|   | ||||
							
								
								
									
										13
									
								
								config/packages/notifier.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								config/packages/notifier.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| framework: | ||||
|     notifier: | ||||
|         texter_transports: | ||||
|             #ovhcloud: '%env(OVHCLOUD_DSN)%' | ||||
|             #ovhcloud: '%env(SHORT_MESSAGE_DSN)%' | ||||
|         channel_policy: | ||||
|             # use chat/slack, chat/telegram, sms/twilio or sms/nexmo | ||||
|             urgent: ['email'] | ||||
|             high: ['email'] | ||||
|             medium: ['email'] | ||||
|             low: ['email'] | ||||
|         admin_recipients: | ||||
|             - { email: admin@example.com } | ||||
							
								
								
									
										3
									
								
								config/packages/ux_translator.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								config/packages/ux_translator.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ux_translator: | ||||
|     # The directory where the JavaScript translations are dumped | ||||
|     dump_directory: '%kernel.project_dir%/var/translations' | ||||
| @@ -220,6 +220,7 @@ framework: | ||||
|                         - attenteModification | ||||
|                         - attenteMiseEnForme | ||||
|                         - attenteValidationMiseEnForme | ||||
|                         - attenteSignature | ||||
|                         - attenteVisa | ||||
|                         - postSignature | ||||
|                         - attenteTraitement | ||||
|   | ||||
							
								
								
									
										19
									
								
								config/routes/chill_assets_dev.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								config/routes/chill_assets_dev.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| when@dev: | ||||
|     sass_assets: | ||||
|         path: /_dev/assets | ||||
|         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||
|         defaults: | ||||
|             template: '@ChillMain/Dev/dev.assets.html.twig' | ||||
|  | ||||
|     sass_assets_test1: | ||||
|         path: /_dev/assets_test1 | ||||
|         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||
|         defaults: | ||||
|             template: '@ChillMain/Dev/dev.assets.test1.html.twig' | ||||
|  | ||||
|     sass_assets_test2: | ||||
|         path: /_dev/assets_test2 | ||||
|         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||
|         defaults: | ||||
|             template: '@ChillMain/Dev/dev.assets.test2.html.twig' | ||||
|  | ||||
							
								
								
									
										12
									
								
								config/routes/chill_swagger.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								config/routes/chill_swagger.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| when@dev: | ||||
|     swagger_ui: | ||||
|         path: /_dev/swagger | ||||
|         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||
|         defaults: | ||||
|             template: '@ChillMain/Dev/swagger-ui/index.html.twig' | ||||
|  | ||||
|     swagger_specs: | ||||
|         path: /_dev/specs.yaml | ||||
|         controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController | ||||
|         defaults: | ||||
|             template: api/specs.yaml | ||||
| @@ -12,6 +12,8 @@ This runs eslint **not** taking the baseline into account, thus showing all exis | ||||
| A script was also added to package.json allowing you to execute ``yarn run eslint``. | ||||
| This will run eslint, but **taking the baseline into account**, thus only alerting to newly created errors. | ||||
|  | ||||
| The eslint command is configured to also run ``prettier`` which will simply format the code to look more uniform (takes care indentation for example). | ||||
|  | ||||
| Interesting options that can be used in combination with eslint are: | ||||
|  | ||||
| - ``--quiet`` to only get errors and silence the warnings | ||||
|   | ||||
| @@ -16,7 +16,7 @@ Welcome to Chill documentation! | ||||
|  | ||||
| Chill is a free software for social workers. | ||||
|  | ||||
| Chill rely on the php framework `Symfony <http://symfony.com>`_.  | ||||
| Chill rely on the php framework `Symfony <http://symfony.com>`_. | ||||
|  | ||||
| Contents of this documentation: | ||||
|  | ||||
| @@ -42,7 +42,7 @@ Contribute | ||||
| User manual | ||||
| =========== | ||||
|  | ||||
| An user manual exists in French and currently focuses on describing the main concept of the software.  | ||||
| An user manual exists in French and currently focuses on describing the main concept of the software. | ||||
|  | ||||
| `Read (and contribute) to the manual <https://fr.wikibooks.org/wiki/Chill>`_ | ||||
|  | ||||
| @@ -55,12 +55,11 @@ Available bundles | ||||
|   * Chill Person, to deal with persons, | ||||
|   * chill custom fields, to add custom fields to some entities, | ||||
|   * chill activity: to add activities to people, | ||||
|   * chill report: to add report to people,  | ||||
|   * chill report: to add report to people, | ||||
|   * chill event: to gather people into events, | ||||
|   * chill docs store: to store documents to people, but also entities, | ||||
|   * chill task: to register task with people, | ||||
|   * chill third party: to register third parties, | ||||
|   * chill family members: to register family members | ||||
|  | ||||
| You will also found the following projects : | ||||
|  | ||||
|   | ||||
							
								
								
									
										84
									
								
								docs/source/installation/document-storage.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								docs/source/installation/document-storage.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| Document storage | ||||
| ################ | ||||
|  | ||||
| You can store document on two different ways: | ||||
|  | ||||
| - on disk | ||||
| - in the cloud, using object storage: currently only `openstack swift <https://docs.openstack.org/api-ref/object-store/index.html>`_ is supported. | ||||
|  | ||||
| Comparison | ||||
| ========== | ||||
|  | ||||
| Storing documents within the cloud is particularily suitable for "portable" deployments, like in kubernetes, or within container | ||||
| without having to manage volumes to store documents. But you'll have to subscribe on a commercial offer. | ||||
|  | ||||
| Storing documents on disk is more easy to configure, but more difficult to manage: if you use container, you will have to | ||||
| manager volumes to attach documents on disk. You'll have to do some backup of the directory. If chill is load-balanced (and | ||||
| multiple instances of chill are run), you will have to find a way to share the directories in read-write mode for every instance. | ||||
|  | ||||
| On Disk | ||||
| ======= | ||||
|  | ||||
| Configure Chill like this: | ||||
|  | ||||
| .. code-block:: yaml | ||||
|  | ||||
|    # file config/packages/chill_doc_store.yaml | ||||
|    chill_doc_store: | ||||
|        use_driver: local_storage | ||||
|        local_storage: | ||||
|            storage_path: '%kernel.project_dir%/var/storage' | ||||
|  | ||||
| In this configuration, documents will be stored in :code:`var/storage` within your app directory. But this path can be | ||||
| elsewhere on the disk. Be aware that the directory must be writable by the user executing the chill app (php-fpm or www-data). | ||||
|  | ||||
| Documents will be stored in subpathes within that directory. The files will be encrypted, the key is stored in the database. | ||||
|  | ||||
| In the cloud, using openstack object store | ||||
| ########################################## | ||||
|  | ||||
| You must subscribe to a commercial offer for object store. | ||||
|  | ||||
| Chill use some features to allow documents to be stored in the cloud without being uploaded first to the chill server: | ||||
|  | ||||
| - `Form POST Middelware <https://docs.openstack.org/swift/latest/api/form_post_middleware.html>`_; | ||||
| - `Temporary URL Middelware <https://docs.openstack.org/swift/latest/api/temporary_url_middleware.html>`_. | ||||
|  | ||||
| A secret key must be generated and configured, and CORS must be configured depending on the domain you will use to serve Chill. | ||||
|  | ||||
| At first, create a container and get the base path to the container. For instance, on OVH, if you create a container named "mychill", | ||||
| you will be able to retrieve the base path of the container within the OVH interface, like this: | ||||
|  | ||||
| - base_path: :code:`https://storage.gra.cloud.ovh.net/v1/AUTH_123456789/mychill/` => will be variable :code:`ASYNC_UPLOAD_TEMP_URL_BASE_PATH` | ||||
| - container: :code:`mychill` => will be variable :code:`ASYNC_UPLOAD_TEMP_URL_CONTAINER` | ||||
|  | ||||
| You can also generate a key, which should have at least 20 characters. This key will go in the variable :code:`ASYNC_UPLOAD_TEMP_URL_KEY`. | ||||
|  | ||||
| .. note:: | ||||
|  | ||||
|    See the `documentation of symfony <https://symfony.com/doc/current/configuration.html#config-env-vars>`_ on how to store variables, and how to encrypt them if needed. | ||||
|  | ||||
| Configure the storage like this: | ||||
|  | ||||
| .. code-block:: yaml | ||||
|  | ||||
|    # file config/packages/chill_doc_store.yaml | ||||
|    chill_doc_store: | ||||
|        use_driver: openstack | ||||
|        openstack: | ||||
|            temp_url: | ||||
|                temp_url_key:         '%env(resolve:ASYNC_UPLOAD_TEMP_URL_KEY)%'       # Required | ||||
|                container:            '%env(resolve:ASYNC_UPLOAD_TEMP_URL_CONTAINER)%' # Required | ||||
|                temp_url_base_path:   '%env(resolve:ASYNC_UPLOAD_TEMP_URL_BASE_PATH)%' # Required | ||||
|  | ||||
| Chill is able to configure the container in order to store document. Grab an Openstack Token (for instance, using :code:`openstack token issue` or | ||||
| the web interface of your openstack provider), and run this command: | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|    symfony console async-upload:configure --os_token=OPENSTACK_TOKEN -d https://mychill.mydomain.example | ||||
|  | ||||
|    # or, without symfony-cli | ||||
|    bin/console async-upload:configure --os_token=OPENSTACK_TOKEN -d https://mychill.mydomain.example | ||||
|  | ||||
|  | ||||
| @@ -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,8 +39,7 @@ We strongly encourage you to initialize a git repository at this step, to track | ||||
|    # add the flex endpoints required for custom recipes | ||||
|    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 | ||||
|    # TODO fix the suffix "alpha1" and replace by ^3.0.0 when version 3.0.0 will be released | ||||
|    symfony composer require chill-project/chill-bundles v3.0.0-RC3 champs-libres/wopi-lib dev-master@dev champs-libres/wopi-bundle dev-master@dev | ||||
|    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). | ||||
| @@ -39,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 | ||||
| @@ -48,7 +59,7 @@ You must also accept to configure recipes from the contrib repository, unless yo | ||||
|  | ||||
|    If you encounter this error during assets compilation (:code:`yarn run encore production`) (repeated multiple times): | ||||
|  | ||||
|    .. code-block:: txt | ||||
|    .. code-block:: | ||||
|  | ||||
|       [tsl] ERROR in /tmp/chill/v1/public/bundles/chillcalendar/types.ts(2,65) | ||||
|             TS2307: Cannot find module '../../../ChillMainBundle/Resources/public/types' or its corresponding type declarations. | ||||
| @@ -74,14 +85,22 @@ or in the :code:`.env.local` file, which should not be committed to the git repo | ||||
| You do not need to set variables for the smtp server, redis server and relatorio server, as they are generated automatically | ||||
| by the symfony server, from the docker compose services. | ||||
|  | ||||
| The only required variable is the :code:`ADMIN_PASSWORD`. You can generate a hashed and salted admin password using the command | ||||
| :code:`symfony console security:hash-password <your password> 'Symfony\Component\Security\Core\User\User'`. Then, | ||||
| The required variables are: | ||||
|  | ||||
| - the :code:`ADMIN_PASSWORD`; | ||||
| - the :code:`OVHCLOUD_DSN` variable; | ||||
|  | ||||
| :code:`ADMIN_PASSWORD` | ||||
| ^^^^^^^^^^^^^^^^^^^^^^ | ||||
|  | ||||
| You can generate a hashed and salted admin password using the command | ||||
| :code:`symfony console security:hash-password <your password> 'Symfony\Component\Security\Core\User\User'`.Then, | ||||
| you can either: | ||||
|  | ||||
| - add this password to the :code:`.env.local` file, you must escape the character :code:`$`: if the generated password | ||||
|   is :code:`$2y$13$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm`, your :code:`.env.local` file will be: | ||||
|  | ||||
|   .. code-block:: env | ||||
|   .. code-block:: bash | ||||
|  | ||||
|      ADMIN_PASSWORD=\$2y\$13\$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm | ||||
|      # note: if you copy-paste the line above, the password will be "admin". | ||||
| @@ -89,12 +108,24 @@ you can either: | ||||
| - add the generated password to the secrets manager (**note**: you must add the generated hashed password to the secrets env, | ||||
|   not the password in clear text). | ||||
|  | ||||
| - set up the jwt authentication bundle | ||||
| :code:`OVHCLOUD_DSN` and sending SMS messages | ||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||
|  | ||||
| This is a temporary dependency, for ensuring compatibility for previous behaviour. | ||||
|  | ||||
| You can set it to :code:`null://null` if you do not plan to use sending SMS. | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|    OVHCLOUD_DSN=null://null | ||||
|  | ||||
| If you plan to do it, you can configure the notifier component `as described in the symfony documentation <https://symfony.com/doc/current/notifier.html#notifier-sms-channel>`_. | ||||
|  | ||||
|  | ||||
| Some environment variables are available for the JWT authentication bundle in the :code:`.env` file. | ||||
|  | ||||
| Prepare migrations and other tools | ||||
| ---------------------------------- | ||||
| Prepare database, messenger queue, and other configuration | ||||
| ---------------------------------------------------------- | ||||
|  | ||||
| To continue the installation process, you will have to run migrations: | ||||
|  | ||||
| @@ -109,17 +140,22 @@ To continue the installation process, you will have to run migrations: | ||||
|    symfony console messenger:setup-transports | ||||
|    # prepare some views | ||||
|    symfony console chill:db:sync-views | ||||
|    # load languages data | ||||
|    symfony console chill:main:languages:populate | ||||
|    # generate jwt token, required for some api features (webdav access, ...) | ||||
|    symfony console lexik:jwt:generate-keypair | ||||
|  | ||||
| .. warning:: | ||||
| .. note:: | ||||
|  | ||||
|    If you encounter an error while running :code:`symfony console messenger:setup-transports`, you can set up the messenger | ||||
|    transport to redis, by adding this in the :code:`.env.local` or :code:`.env` file: | ||||
|    If you encounter this error: | ||||
|  | ||||
|    .. code-block:: | ||||
|  | ||||
|      No transport supports the given Messenger DSN. | ||||
|  | ||||
|    Please check that you installed the package `symfony/amqp-messenger`. | ||||
|  | ||||
|    .. code-block:: env | ||||
|  | ||||
|       MESSENGER_TRANSPORT_DSN=redis://${REDIS_HOST}:${REDIS_PORT}/messages | ||||
|  | ||||
| Start your web server locally | ||||
| ----------------------------- | ||||
| @@ -323,6 +359,7 @@ Going further | ||||
|    :maxdepth: 2 | ||||
|  | ||||
|    prod.rst | ||||
|    document-storage.rst | ||||
|    load-addresses.rst | ||||
|    prod-calendar-sms-sending.rst | ||||
|    msgraph-configure.rst | ||||
|   | ||||
| @@ -41,16 +41,18 @@ Postal code are loaded from this database. There is no need to load postal codes | ||||
| The data are prepared for Chill (`See this repository <https://gitea.champs-libres.be/Chill-project/belgian-bestaddresses-transform/releases>`_). | ||||
| One can select postal code by his first number (:code:`1xxx` for postal codes from 1000 to 1999), or a limited list for development purpose. | ||||
|  | ||||
| The command expects a language code as first argument. | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|    # load postal code from 1000 to 3999: | ||||
|    bin/console chill:main:address-ref-from-best-addresse 1xxx 2xxx 3xxx | ||||
|    bin/console chill:main:address-ref-from-best-addresse fr 1xxx 2xxx 3xxx | ||||
|  | ||||
|    # load only an extract (for dev purposes) | ||||
|    bin/console chill:main:address-ref-from-best-addresse extract | ||||
|    bin/console chill:main:address-ref-from-best-addresse fr extract | ||||
|  | ||||
|    # load full addresses (discouraged) | ||||
|    bin/console chill:main:address-ref-from-best-addresse full | ||||
|    bin/console chill:main:address-ref-from-best-addresse fr full | ||||
|  | ||||
| .. note:: | ||||
|  | ||||
|   | ||||
| @@ -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" | ||||
|         }, | ||||
|     }, | ||||
| ); | ||||
|   | ||||
							
								
								
									
										31
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								package.json
									
									
									
									
									
								
							| @@ -6,36 +6,33 @@ | ||||
|     "@apidevtools/swagger-cli": "^4.0.4", | ||||
|     "@babel/core": "^7.20.5", | ||||
|     "@babel/preset-env": "^7.20.2", | ||||
|     "@ckeditor/ckeditor5-build-classic": "^41.4.2", | ||||
|     "@ckeditor/ckeditor5-dev-translations": "^40.2.0", | ||||
|     "@ckeditor/ckeditor5-dev-utils": "^40.2.0", | ||||
|     "@ckeditor/ckeditor5-dev-webpack-plugin": "^31.1.13", | ||||
|     "@ckeditor/ckeditor5-markdown-gfm": "^41.4.2", | ||||
|     "@ckeditor/ckeditor5-theme-lark": "^41.4.2", | ||||
|     "@ckeditor/ckeditor5-vue": "^5.1.0", | ||||
|     "@ckeditor/ckeditor5-vue": "^7.3.0", | ||||
|     "@eslint/js": "^9.14.0", | ||||
|     "@hotwired/stimulus": "^3.0.0", | ||||
|     "@luminateone/eslint-baseline": "^1.0.9", | ||||
|     "@symfony/stimulus-bridge": "^3.2.0", | ||||
|     "@symfony/webpack-encore": "^4.1.0", | ||||
|     "@tsconfig/node14": "^1.0.1", | ||||
|     "@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": "^45.1.0", | ||||
|     "dompurify": "^3.1.0", | ||||
|     "eslint": "^9.14.0", | ||||
|     "eslint-config-prettier": "^9.1.0", | ||||
|     "eslint-plugin-prettier": "^5.2.1", | ||||
|     "eslint-plugin-vue": "^9.30.0", | ||||
|     "fork-awesome": "^1.1.7", | ||||
|     "intl-messageformat": "^10.5.11", | ||||
|     "jquery": "^3.6.0", | ||||
|     "marked": "^12.0.1", | ||||
|     "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", | ||||
| @@ -55,11 +52,13 @@ | ||||
|     "@fullcalendar/timegrid": "^6.1.4", | ||||
|     "@fullcalendar/vue3": "^6.1.4", | ||||
|     "@popperjs/core": "^2.9.2", | ||||
|     "@tsconfig/node20": "^20.1.4", | ||||
|     "@types/dompurify": "^3.0.5", | ||||
|     "@types/leaflet": "^1.9.3", | ||||
|     "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", | ||||
| @@ -73,15 +72,19 @@ | ||||
|     "vuex": "^4.0.0" | ||||
|   }, | ||||
|   "browserslist": [ | ||||
|     "Firefox ESR" | ||||
|     "defaults and fully supports es6-module and not dead" | ||||
|   ], | ||||
|   "scripts": { | ||||
|     "dev-server": "encore dev-server", | ||||
|     "dev": "encore dev", | ||||
|     "prettier": "prettier --write \"**/*.{js,ts,vue}\"", | ||||
|     "watch": "encore dev --watch", | ||||
|     "build": "encore production --progress", | ||||
|     "eslint": "npx eslint-baseline \"**/*.{js,ts,vue}\"" | ||||
|     "specs-build": "yaml-merge src/Bundle/ChillMainBundle/chill.api.specs.yaml src/Bundle/ChillPersonBundle/chill.api.specs.yaml src/Bundle/ChillCalendarBundle/chill.api.specs.yaml src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml", | ||||
|     "specs-validate": "swagger-cli validate templates/api/specs.yaml", | ||||
|     "specs-create-dir": "mkdir -p templates/api", | ||||
|     "specs": "yarn run specs-create-dir && yarn run specs-build && yarn run specs-validate", | ||||
|     "version": "node --version", | ||||
|     "eslint": "npx eslint-baseline --fix \"src/**/*.{js,ts,vue}\"" | ||||
|   }, | ||||
|   "private": true | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
| @@ -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 | ||||
|  | ||||
|   | ||||
							
								
								
									
										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> | ||||
| @@ -20,6 +20,10 @@ return static function (RectorConfig $rectorConfig): void { | ||||
|         __DIR__ . '/src', | ||||
|     ]); | ||||
|  | ||||
|     $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'); | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
| @@ -55,6 +55,10 @@ final readonly class PersonHavingActivityBetweenDateFilter implements ExportElem | ||||
|             .' AND ' | ||||
|             .'(person_person_having_activity.id = person.id OR person MEMBER OF activity_person_having_activity.persons)'); | ||||
|  | ||||
|         if (\in_array('activity', $qb->getAllAliases(), true)) { | ||||
|             $sqb->andWhere('activity_person_having_activity.id = activity.id'); | ||||
|         } | ||||
|  | ||||
|         if (isset($data['reasons']) && [] !== $data['reasons']) { | ||||
|             // add clause activity reason | ||||
|             $sqb->join('activity_person_having_activity.reasons', 'reasons_person_having_activity'); | ||||
|   | ||||
| @@ -11,6 +11,7 @@ declare(strict_types=1); | ||||
|  | ||||
| namespace Chill\ActivityBundle\Menu; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\Activity; | ||||
| use Chill\ActivityBundle\Security\Authorization\ActivityVoter; | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\PersonBundle\Entity\AccompanyingPeriod; | ||||
| @@ -23,22 +24,30 @@ use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  */ | ||||
| class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     public function __construct(protected Security $security, protected TranslatorInterface $translator) {} | ||||
|     public function __construct( | ||||
|         protected Security $security, | ||||
|         protected TranslatorInterface $translator, | ||||
|         private readonly \Doctrine\Persistence\ManagerRegistry $managerRegistry, | ||||
|     ) {} | ||||
|  | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters) | ||||
|     { | ||||
|         $period = $parameters['accompanyingCourse']; | ||||
|  | ||||
|         $activities = $this->managerRegistry->getManager()->getRepository(Activity::class)->findBy( | ||||
|             ['accompanyingPeriod' => $period] | ||||
|         ); | ||||
|  | ||||
|         if ( | ||||
|             AccompanyingPeriod::STEP_DRAFT !== $period->getStep() | ||||
|             && $this->security->isGranted(ActivityVoter::SEE, $period) | ||||
|         ) { | ||||
|             $menu->addChild($this->translator->trans('Activity'), [ | ||||
|             $menu->addChild($this->translator->trans('Activities'), [ | ||||
|                 'route' => 'chill_activity_activity_list', | ||||
|                 'routeParameters' => [ | ||||
|                     'accompanying_period_id' => $period->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 40]); | ||||
|                 ->setExtras(['order' => 40, 'counter' => count($activities) > 0 ? count($activities) : null]); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -11,6 +11,7 @@ declare(strict_types=1); | ||||
|  | ||||
| namespace Chill\ActivityBundle\Menu; | ||||
|  | ||||
| use Chill\ActivityBundle\Repository\ActivityACLAwareRepositoryInterface; | ||||
| use Chill\ActivityBundle\Security\Authorization\ActivityVoter; | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\PersonBundle\Entity\Person; | ||||
| @@ -23,13 +24,20 @@ use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  */ | ||||
| final readonly class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     public function __construct(private AuthorizationCheckerInterface $authorizationChecker, private TranslatorInterface $translator) {} | ||||
|     public function __construct( | ||||
|         private readonly ActivityACLAwareRepositoryInterface $activityACLAwareRepository, | ||||
|         private AuthorizationCheckerInterface $authorizationChecker, | ||||
|         private TranslatorInterface $translator, | ||||
|     ) {} | ||||
|  | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters) | ||||
|     { | ||||
|         /** @var Person $person */ | ||||
|         $person = $parameters['person']; | ||||
|  | ||||
|  | ||||
|         $count = $this->activityACLAwareRepository->countByPerson($person, ActivityVoter::SEE); | ||||
|  | ||||
|         if ($this->authorizationChecker->isGranted(ActivityVoter::SEE, $person)) { | ||||
|             $menu->addChild( | ||||
|                 $this->translator->trans('Activities'), | ||||
| @@ -38,7 +46,7 @@ final readonly class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
|                     'routeParameters' => ['person_id' => $person->getId()], | ||||
|                 ] | ||||
|             ) | ||||
|                 ->setExtra('order', 201); | ||||
|                 ->setExtras(['order' => 201, 'counter' => $count > 0 ? $count : null]); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -15,10 +15,13 @@ use Chill\ActivityBundle\Entity\Activity; | ||||
| use Chill\ActivityBundle\Repository\ActivityRepository; | ||||
| use Chill\MainBundle\Entity\Notification; | ||||
| use Chill\MainBundle\Notification\NotificationHandlerInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Symfony\Component\Translation\TranslatableMessage; | ||||
| use Symfony\Contracts\Translation\TranslatableInterface; | ||||
|  | ||||
| final readonly class ActivityNotificationHandler implements NotificationHandlerInterface | ||||
| { | ||||
|     public function __construct(private ActivityRepository $activityRepository) {} | ||||
|     public function __construct(private ActivityRepository $activityRepository, private TranslatableStringHelperInterface $translatableStringHelper) {} | ||||
|  | ||||
|     public function getTemplate(Notification $notification, array $options = []): string | ||||
|     { | ||||
| @@ -37,4 +40,30 @@ final readonly class ActivityNotificationHandler implements NotificationHandlerI | ||||
|     { | ||||
|         return Activity::class === $notification->getRelatedEntityClass(); | ||||
|     } | ||||
|  | ||||
|     public function getTitle(Notification $notification, array $options = []): TranslatableInterface | ||||
|     { | ||||
|         if (null === $activity = $this->getRelatedEntity($notification)) { | ||||
|             return new TranslatableMessage('activity.deleted'); | ||||
|         } | ||||
|  | ||||
|         return new TranslatableMessage('activity.title', [ | ||||
|             'date' => $activity->getDate(), | ||||
|             'type' => $this->translatableStringHelper->localize($activity->getActivityType()->getName()), | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     public function getAssociatedPersons(Notification $notification, array $options = []): array | ||||
|     { | ||||
|         if (null === $activity = $this->getRelatedEntity($notification)) { | ||||
|             return []; | ||||
|         } | ||||
|  | ||||
|         return $activity->getPersonsAssociated(); | ||||
|     } | ||||
|  | ||||
|     public function getRelatedEntity(Notification $notification): ?Activity | ||||
|     { | ||||
|         return $this->activityRepository->find($notification->getRelatedEntityId()); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -120,3 +120,34 @@ li.document-list-item { | ||||
|         vertical-align: baseline; | ||||
|     } | ||||
| } | ||||
|  | ||||
| .badge-activity-type-simple { | ||||
|     @extend .badge; | ||||
|     display: inline-block; | ||||
|     margin: 0.2rem 0; | ||||
|     padding-left: 0; | ||||
|     padding-right: 0.5rem; | ||||
|  | ||||
|     border-left: 20px groove #9acd32; | ||||
|     border-radius: $badge-border-radius; | ||||
|  | ||||
|     color: black; | ||||
|     font-weight: normal; | ||||
|     font-size: unset; | ||||
|     max-width: 100%; | ||||
|     background-color: $gray-100; | ||||
|  | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|     text-indent: 5px hanging; | ||||
|     text-align: left; | ||||
|  | ||||
|     &::before { | ||||
|         margin-right: 3px; | ||||
|         position: relative; | ||||
|         left: -0.5px; | ||||
|         font-family: ForkAwesome; | ||||
|         content: '\f04b'; | ||||
|         color: #9acd32; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -30,13 +30,14 @@ | ||||
|         <ul class="record_actions"> | ||||
|             <li class="add-persons"> | ||||
|                 <add-persons | ||||
|                     button-title="activity.add_persons" | ||||
|                     modal-title="activity.add_persons" | ||||
|                     :key="addPersons.key" | ||||
|                     :options="addPersonsOptions" | ||||
|                     @add-new-persons="addNewPersons" | ||||
|                     :buttonTitle="trans(ACTIVITY_ADD_PERSONS)" | ||||
|                     :modalTitle="trans(ACTIVITY_ADD_PERSONS)" | ||||
|                     v-bind:key="addPersons.key" | ||||
|                     v-bind:options="addPersonsOptions" | ||||
|                     @addNewPersons="addNewPersons" | ||||
|                     ref="addPersons" | ||||
|                 /> | ||||
|                 > | ||||
|                 </add-persons> | ||||
|             </li> | ||||
|         </ul> | ||||
|     </teleport> | ||||
| @@ -47,6 +48,14 @@ import { mapState, mapGetters } from "vuex"; | ||||
| import AddPersons from "ChillPersonAssets/vuejs/_components/AddPersons.vue"; | ||||
| import PersonsBloc from "./ConcernedGroups/PersonsBloc.vue"; | ||||
| import PersonText from "ChillPersonAssets/vuejs/_components/Entity/PersonText.vue"; | ||||
| import { | ||||
|     ACTIVITY_BLOC_PERSONS, | ||||
|     ACTIVITY_BLOC_PERSONS_ASSOCIATED, | ||||
|     ACTIVITY_BLOC_THIRDPARTY, | ||||
|     ACTIVITY_BLOC_USERS, | ||||
|     ACTIVITY_ADD_PERSONS, | ||||
|     trans, | ||||
| } from "translator"; | ||||
|  | ||||
| export default { | ||||
|     name: "ConcernedGroups", | ||||
| @@ -55,18 +64,24 @@ export default { | ||||
|         PersonsBloc, | ||||
|         PersonText, | ||||
|     }, | ||||
|     setup() { | ||||
|         return { | ||||
|             trans, | ||||
|             ACTIVITY_ADD_PERSONS, | ||||
|         }; | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             personsBlocs: [ | ||||
|                 { | ||||
|                     key: "persons", | ||||
|                     title: "activity.bloc_persons", | ||||
|                     title: trans(ACTIVITY_BLOC_PERSONS), | ||||
|                     persons: [], | ||||
|                     included: false, | ||||
|                 }, | ||||
|                 { | ||||
|                     key: "personsAssociated", | ||||
|                     title: "activity.bloc_persons_associated", | ||||
|                     title: trans(ACTIVITY_BLOC_PERSONS_ASSOCIATED), | ||||
|                     persons: [], | ||||
|                     included: window.activity | ||||
|                         ? window.activity.activityType.personsVisible !== 0 | ||||
| @@ -82,7 +97,7 @@ export default { | ||||
|                 }, | ||||
|                 { | ||||
|                     key: "thirdparty", | ||||
|                     title: "activity.bloc_thirdparty", | ||||
|                     title: trans(ACTIVITY_BLOC_THIRDPARTY), | ||||
|                     persons: [], | ||||
|                     included: window.activity | ||||
|                         ? window.activity.activityType.thirdPartiesVisible !== 0 | ||||
| @@ -90,7 +105,7 @@ export default { | ||||
|                 }, | ||||
|                 { | ||||
|                     key: "users", | ||||
|                     title: "activity.bloc_users", | ||||
|                     title: trans(ACTIVITY_BLOC_USERS), | ||||
|                     persons: [], | ||||
|                     included: window.activity | ||||
|                         ? window.activity.activityType.usersVisible !== 0 | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|     <teleport to="#location"> | ||||
|         <div class="mb-3 row"> | ||||
|             <label :class="locationClassList"> | ||||
|                 {{ $t("activity.location") }} | ||||
|                 {{ trans(ACTIVITY_LOCATION) }} | ||||
|             </label> | ||||
|             <div class="col-sm-8"> | ||||
|                 <VueMultiselect | ||||
| @@ -13,17 +13,17 @@ | ||||
|                     open-direction="top" | ||||
|                     :multiple="false" | ||||
|                     :searchable="true" | ||||
|                     :placeholder="$t('activity.choose_location')" | ||||
|                     :placeholder="trans(ACTIVITY_CHOOSE_LOCATION)" | ||||
|                     :custom-label="customLabel" | ||||
|                     :select-label="$t('multiselect.select_label')" | ||||
|                     :deselect-label="$t('multiselect.deselect_label')" | ||||
|                     :selected-label="$t('multiselect.selected_label')" | ||||
|                     :select-label="trans(MULTISELECT_SELECT_LABEL)" | ||||
|                     :deselect-label="trans(MULTISELECT_DESELECT_LABEL)" | ||||
|                     :selected-label="trans(MULTISELECT_SELECTED_LABEL)" | ||||
|                     :options="availableLocations" | ||||
|                     group-values="locations" | ||||
|                     group-label="locationGroup" | ||||
|                     v-model="location" | ||||
|                 /> | ||||
|                 <new-location :available-locations="availableLocations" /> | ||||
|                 <new-location v-bind:available-locations="availableLocations" /> | ||||
|             </div> | ||||
|         </div> | ||||
|     </teleport> | ||||
| @@ -33,6 +33,15 @@ | ||||
| import { mapState, mapGetters } from "vuex"; | ||||
| import VueMultiselect from "vue-multiselect"; | ||||
| import NewLocation from "./Location/NewLocation.vue"; | ||||
| import { localizeString } from "ChillMainAssets/lib/localizationHelper/localizationHelper"; | ||||
| import { | ||||
|     trans, | ||||
|     ACTIVITY_LOCATION, | ||||
|     ACTIVITY_CHOOSE_LOCATION, | ||||
|     MULTISELECT_SELECT_LABEL, | ||||
|     MULTISELECT_DESELECT_LABEL, | ||||
|     MULTISELECT_SELECTED_LABEL, | ||||
| } from "translator"; | ||||
|  | ||||
| export default { | ||||
|     name: "Location", | ||||
| @@ -40,6 +49,16 @@ export default { | ||||
|         NewLocation, | ||||
|         VueMultiselect, | ||||
|     }, | ||||
|     setup() { | ||||
|         return { | ||||
|             trans, | ||||
|             ACTIVITY_LOCATION, | ||||
|             ACTIVITY_CHOOSE_LOCATION, | ||||
|             MULTISELECT_SELECT_LABEL, | ||||
|             MULTISELECT_DESELECT_LABEL, | ||||
|             MULTISELECT_SELECTED_LABEL, | ||||
|         }; | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             locationClassList: `col-form-label col-sm-4 ${document.querySelector("input#chill_activitybundle_activity_location").getAttribute("required") ? "required" : ""}`, | ||||
| @@ -59,15 +78,15 @@ export default { | ||||
|     }, | ||||
|     methods: { | ||||
|         labelAccompanyingCourseLocation(value) { | ||||
|             return `${value.address.text} (${value.locationType.title.fr})`; | ||||
|             return `${value.address.text} (${localizeString(value.locationType.title)})`; | ||||
|         }, | ||||
|         customLabel(value) { | ||||
|             return value.locationType | ||||
|                 ? value.name | ||||
|                     ? value.name === "__AccompanyingCourseLocation__" | ||||
|                         ? this.labelAccompanyingCourseLocation(value) | ||||
|                         : `${value.name} (${value.locationType.title.fr})` | ||||
|                     : value.locationType.title.fr | ||||
|                         : `${value.name} (${localizeString(value.locationType.title)})` | ||||
|                     : localizeString(value.locationType.title) | ||||
|                 : ""; | ||||
|         }, | ||||
|     }, | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|         <ul class="record_actions"> | ||||
|             <li> | ||||
|                 <a class="btn btn-sm btn-create" @click="openModal"> | ||||
|                     {{ $t("activity.create_new_location") }} | ||||
|                     {{ trans(ACTIVITY_CREATE_NEW_LOCATION) }} | ||||
|                 </a> | ||||
|             </li> | ||||
|         </ul> | ||||
| @@ -11,12 +11,12 @@ | ||||
|         <teleport to="body"> | ||||
|             <modal | ||||
|                 v-if="modal.showModal" | ||||
|                 :modal-dialog-class="modal.modalDialogClass" | ||||
|                 :modalDialogClass="modal.modalDialogClass" | ||||
|                 @close="modal.showModal = false" | ||||
|             > | ||||
|                 <template #header> | ||||
|                     <h3 class="modal-title"> | ||||
|                         {{ $t("activity.create_new_location") }} | ||||
|                         {{ trans(ACTIVITY_CREATE_NEW_LOCATION) }} | ||||
|                     </h3> | ||||
|                 </template> | ||||
|                 <template #body> | ||||
| @@ -37,18 +37,18 @@ | ||||
|                                 v-model="selectType" | ||||
|                             > | ||||
|                                 <option selected disabled value=""> | ||||
|                                     {{ $t("activity.choose_location_type") }} | ||||
|                                     {{ trans(ACTIVITY_CHOOSE_LOCATION_TYPE) }} | ||||
|                                 </option> | ||||
|                                 <option | ||||
|                                     v-for="t in locationTypes" | ||||
|                                     :value="t" | ||||
|                                     :key="t.id" | ||||
|                                 > | ||||
|                                     {{ t.title.fr }} | ||||
|                                     {{ localizeString(t.title) }} | ||||
|                                 </option> | ||||
|                             </select> | ||||
|                             <label>{{ | ||||
|                                 $t("activity.location_fields.type") | ||||
|                                 trans(ACTIVITY_LOCATION_FIELDS_TYPE) | ||||
|                             }}</label> | ||||
|                         </div> | ||||
|  | ||||
| @@ -60,14 +60,14 @@ | ||||
|                                 placeholder | ||||
|                             /> | ||||
|                             <label for="name">{{ | ||||
|                                 $t("activity.location_fields.name") | ||||
|                                 trans(ACTIVITY_LOCATION_FIELDS_NAME) | ||||
|                             }}</label> | ||||
|                         </div> | ||||
|  | ||||
|                         <add-address | ||||
|                             :context="addAddress.context" | ||||
|                             :options="addAddress.options" | ||||
|                             :address-changed-callback="submitNewAddress" | ||||
|                             :addressChangedCallback="submitNewAddress" | ||||
|                             v-if="showAddAddress" | ||||
|                             ref="addAddress" | ||||
|                         /> | ||||
| @@ -80,7 +80,7 @@ | ||||
|                                 placeholder | ||||
|                             /> | ||||
|                             <label for="phonenumber1">{{ | ||||
|                                 $t("activity.location_fields.phonenumber1") | ||||
|                                 trans(ACTIVITY_LOCATION_FIELDS_PHONENUMBER1) | ||||
|                             }}</label> | ||||
|                         </div> | ||||
|                         <div class="form-floating mb-3" v-if="hasPhonenumber1"> | ||||
| @@ -91,7 +91,7 @@ | ||||
|                                 placeholder | ||||
|                             /> | ||||
|                             <label for="phonenumber2">{{ | ||||
|                                 $t("activity.location_fields.phonenumber2") | ||||
|                                 trans(ACTIVITY_LOCATION_FIELDS_PHONENUMBER2) | ||||
|                             }}</label> | ||||
|                         </div> | ||||
|                         <div class="form-floating mb-3" v-if="showContactData"> | ||||
| @@ -102,7 +102,7 @@ | ||||
|                                 placeholder | ||||
|                             /> | ||||
|                             <label for="email">{{ | ||||
|                                 $t("activity.location_fields.email") | ||||
|                                 trans(ACTIVITY_LOCATION_FIELDS_EMAIL) | ||||
|                             }}</label> | ||||
|                         </div> | ||||
|                     </form> | ||||
| @@ -112,7 +112,7 @@ | ||||
|                         class="btn btn-save" | ||||
|                         @click.prevent="saveNewLocation" | ||||
|                     > | ||||
|                         {{ $t("action.save") }} | ||||
|                         {{ trans(SAVE) }} | ||||
|                     </button> | ||||
|                 </template> | ||||
|             </modal> | ||||
| @@ -126,6 +126,18 @@ import AddAddress from "ChillMainAssets/vuejs/Address/components/AddAddress.vue" | ||||
| import { mapState } from "vuex"; | ||||
| import { getLocationTypes } from "../../api"; | ||||
| import { makeFetch } from "ChillMainAssets/lib/api/apiMethods"; | ||||
| import { localizeString } from "ChillMainAssets/lib/localizationHelper/localizationHelper"; | ||||
| import { | ||||
|     SAVE, | ||||
|     ACTIVITY_LOCATION_FIELDS_EMAIL, | ||||
|     ACTIVITY_LOCATION_FIELDS_PHONENUMBER1, | ||||
|     ACTIVITY_LOCATION_FIELDS_PHONENUMBER2, | ||||
|     ACTIVITY_LOCATION_FIELDS_NAME, | ||||
|     ACTIVITY_LOCATION_FIELDS_TYPE, | ||||
|     ACTIVITY_CHOOSE_LOCATION_TYPE, | ||||
|     ACTIVITY_CREATE_NEW_LOCATION, | ||||
|     trans, | ||||
| } from "translator"; | ||||
|  | ||||
| export default { | ||||
|     name: "NewLocation", | ||||
| @@ -133,6 +145,19 @@ export default { | ||||
|         Modal, | ||||
|         AddAddress, | ||||
|     }, | ||||
|     setup() { | ||||
|         return { | ||||
|             trans, | ||||
|             SAVE, | ||||
|             ACTIVITY_LOCATION_FIELDS_EMAIL, | ||||
|             ACTIVITY_LOCATION_FIELDS_PHONENUMBER1, | ||||
|             ACTIVITY_LOCATION_FIELDS_PHONENUMBER2, | ||||
|             ACTIVITY_LOCATION_FIELDS_NAME, | ||||
|             ACTIVITY_LOCATION_FIELDS_TYPE, | ||||
|             ACTIVITY_CHOOSE_LOCATION_TYPE, | ||||
|             ACTIVITY_CREATE_NEW_LOCATION, | ||||
|         }; | ||||
|     }, | ||||
|     props: ["availableLocations"], | ||||
|     data() { | ||||
|         return { | ||||
| @@ -246,6 +271,7 @@ export default { | ||||
|         this.getLocationTypesList(); | ||||
|     }, | ||||
|     methods: { | ||||
|         localizeString, | ||||
|         checkForm() { | ||||
|             let cond = true; | ||||
|             this.errors = []; | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|         <div class="mb-3 row"> | ||||
|             <div class="col-4"> | ||||
|                 <label :class="socialIssuesClassList">{{ | ||||
|                     $t("activity.social_issues") | ||||
|                     trans(ACTIVITY_SOCIAL_ISSUES) | ||||
|                 }}</label> | ||||
|             </div> | ||||
|             <div class="col-8"> | ||||
| @@ -12,8 +12,9 @@ | ||||
|                     :key="issue.id" | ||||
|                     :issue="issue" | ||||
|                     :selection="socialIssuesSelected" | ||||
|                     @update-selected="updateIssuesSelected" | ||||
|                 /> | ||||
|                     @updateSelected="updateIssuesSelected" | ||||
|                 > | ||||
|                 </check-social-issue> | ||||
|  | ||||
|                 <div class="my-3"> | ||||
|                     <VueMultiselect | ||||
| @@ -31,10 +32,11 @@ | ||||
|                         :allow-empty="true" | ||||
|                         :show-labels="false" | ||||
|                         :loading="issueIsLoading" | ||||
|                         :placeholder="$t('activity.choose_other_social_issue')" | ||||
|                         :placeholder="trans(ACTIVITY_CHOOSE_OTHER_SOCIAL_ISSUE)" | ||||
|                         :options="socialIssuesOther" | ||||
|                         @select="addIssueInList" | ||||
|                     /> | ||||
|                     > | ||||
|                     </VueMultiselect> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
| @@ -42,35 +44,46 @@ | ||||
|         <div class="mb-3 row"> | ||||
|             <div class="col-4"> | ||||
|                 <label :class="socialActionsClassList">{{ | ||||
|                     $t("activity.social_actions") | ||||
|                     trans(ACTIVITY_SOCIAL_ACTIONS) | ||||
|                 }}</label> | ||||
|             </div> | ||||
|             <div class="col-8"> | ||||
|                 <div v-if="actionIsLoading === true"> | ||||
|                     <i class="chill-green fa fa-circle-o-notch fa-spin fa-lg" /> | ||||
|                     <i | ||||
|                         class="chill-green fa fa-circle-o-notch fa-spin fa-lg" | ||||
|                     ></i> | ||||
|                 </div> | ||||
|  | ||||
|                 <span | ||||
|                     v-else-if="socialIssuesSelected.length === 0" | ||||
|                     class="inline-choice chill-no-data-statement mt-3" | ||||
|                 > | ||||
|                     {{ $t("activity.select_first_a_social_issue") }} | ||||
|                     {{ trans(ACTIVITY_SELECT_FIRST_A_SOCIAL_ISSUE) }} | ||||
|                 </span> | ||||
|  | ||||
|                 <template v-else-if="socialActionsList.length > 0"> | ||||
|                 <template | ||||
|                     v-else-if=" | ||||
|                         socialActionsList.length > 0 && | ||||
|                         (socialIssuesSelected.length || | ||||
|                             socialActionsSelected.length) | ||||
|                     " | ||||
|                 > | ||||
|                     <div | ||||
|                         v-if=" | ||||
|                             socialIssuesSelected.length || | ||||
|                             socialActionsSelected.length | ||||
|                         " | ||||
|                         id="actionsList" | ||||
|                         v-for="group in socialActionsList" | ||||
|                         :key="group.issue" | ||||
|                     > | ||||
|                         <span class="badge bg-chill-l-gray text-dark">{{ | ||||
|                             group.issue | ||||
|                         }}</span> | ||||
|                         <check-social-action | ||||
|                             v-for="action in socialActionsList" | ||||
|                             v-for="action in group.actions" | ||||
|                             :key="action.id" | ||||
|                             :action="action" | ||||
|                             :selection="socialActionsSelected" | ||||
|                             @update-selected="updateActionsSelected" | ||||
|                         /> | ||||
|                             @updateSelected="updateActionsSelected" | ||||
|                         > | ||||
|                         </check-social-action> | ||||
|                     </div> | ||||
|                 </template> | ||||
|  | ||||
| @@ -80,7 +93,7 @@ | ||||
|                     " | ||||
|                     class="inline-choice chill-no-data-statement mt-3" | ||||
|                 > | ||||
|                     {{ $t("activity.social_action_list_empty") }} | ||||
|                     {{ trans(ACTIVITY_SOCIAL_ACTION_LIST_EMPTY) }} | ||||
|                 </span> | ||||
|             </div> | ||||
|         </div> | ||||
| @@ -92,6 +105,14 @@ import VueMultiselect from "vue-multiselect"; | ||||
| import CheckSocialIssue from "./SocialIssuesAcc/CheckSocialIssue.vue"; | ||||
| import CheckSocialAction from "./SocialIssuesAcc/CheckSocialAction.vue"; | ||||
| import { getSocialIssues, getSocialActionByIssue } from "../api.js"; | ||||
| import { | ||||
|     ACTIVITY_SOCIAL_ACTION_LIST_EMPTY, | ||||
|     ACTIVITY_SELECT_FIRST_A_SOCIAL_ISSUE, | ||||
|     ACTIVITY_SOCIAL_ACTIONS, | ||||
|     ACTIVITY_SOCIAL_ISSUES, | ||||
|     ACTIVITY_CHOOSE_OTHER_SOCIAL_ISSUE, | ||||
|     trans, | ||||
| } from "translator"; | ||||
|  | ||||
| export default { | ||||
|     name: "SocialIssuesAcc", | ||||
| @@ -100,6 +121,16 @@ export default { | ||||
|         CheckSocialAction, | ||||
|         VueMultiselect, | ||||
|     }, | ||||
|     setup() { | ||||
|         return { | ||||
|             trans, | ||||
|             ACTIVITY_SOCIAL_ACTION_LIST_EMPTY, | ||||
|             ACTIVITY_SELECT_FIRST_A_SOCIAL_ISSUE, | ||||
|             ACTIVITY_SOCIAL_ACTIONS, | ||||
|             ACTIVITY_SOCIAL_ISSUES, | ||||
|             ACTIVITY_CHOOSE_OTHER_SOCIAL_ISSUE, | ||||
|         }; | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             issueIsLoading: false, | ||||
| @@ -127,53 +158,44 @@ export default { | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|         /* Load others issues in multiselect | ||||
|          */ | ||||
|         /* Load other issues in multiselect */ | ||||
|         this.issueIsLoading = true; | ||||
|         this.actionAreLoaded = false; | ||||
|         getSocialIssues().then( | ||||
|             (response) => | ||||
|                 new Promise((resolve, reject) => { | ||||
|                     this.$store.commit("updateIssuesOther", response.results); | ||||
|  | ||||
|                     /* Add in list the issues already associated (if not yet listed) | ||||
|                      */ | ||||
|                     this.socialIssuesSelected.forEach((issue) => { | ||||
|                         if ( | ||||
|                             this.socialIssuesList.filter( | ||||
|                                 (i) => i.id === issue.id, | ||||
|                             ).length !== 1 | ||||
|                         ) { | ||||
|                             this.$store.commit("addIssueInList", issue); | ||||
|                         } | ||||
|                     }, this); | ||||
|         getSocialIssues().then((response) => { | ||||
|             /* Add issues to the store */ | ||||
|             this.$store.commit("updateIssuesOther", response); | ||||
|  | ||||
|                     /* Remove from multiselect the issues that are not yet in checkbox list | ||||
|                      */ | ||||
|                     this.socialIssuesList.forEach((issue) => { | ||||
|                         this.$store.commit("removeIssueInOther", issue); | ||||
|                     }, this); | ||||
|             /* Add in list the issues already associated (if not yet listed) */ | ||||
|             this.socialIssuesSelected.forEach((issue) => { | ||||
|                 if ( | ||||
|                     this.socialIssuesList.filter((i) => i.id === issue.id) | ||||
|                         .length !== 1 | ||||
|                 ) { | ||||
|                     this.$store.commit("addIssueInList", issue); | ||||
|                 } | ||||
|             }); | ||||
|  | ||||
|                     /* Filter issues | ||||
|                      */ | ||||
|                     this.$store.commit("filterList", "issues"); | ||||
|             /* Remove from multiselect the issues that are not yet in the checkbox list */ | ||||
|             this.socialIssuesList.forEach((issue) => { | ||||
|                 this.$store.commit("removeIssueInOther", issue); | ||||
|             }); | ||||
|  | ||||
|                     /* Add in list the actions already associated (if not yet listed) | ||||
|                      */ | ||||
|                     this.socialActionsSelected.forEach((action) => { | ||||
|                         this.$store.commit("addActionInList", action); | ||||
|                     }, this); | ||||
|             /* Filter issues */ | ||||
|             this.$store.commit("filterList", "issues"); | ||||
|  | ||||
|                     /* Filter issues | ||||
|                      */ | ||||
|                     this.$store.commit("filterList", "actions"); | ||||
|             /* Add in list the actions already associated (if not yet listed) */ | ||||
|             this.socialActionsSelected.forEach((action) => { | ||||
|                 this.$store.commit("addActionInList", action); | ||||
|             }); | ||||
|  | ||||
|                     this.issueIsLoading = false; | ||||
|                     this.actionAreLoaded = true; | ||||
|                     this.updateActionsList(); | ||||
|                     resolve(); | ||||
|                 }), | ||||
|         ); | ||||
|             /* Filter actions */ | ||||
|             this.$store.commit("filterList", "actions"); | ||||
|  | ||||
|             this.issueIsLoading = false; | ||||
|             this.actionAreLoaded = true; | ||||
|             this.updateActionsList(); | ||||
|         }); | ||||
|     }, | ||||
|     methods: { | ||||
|         /* When choosing an issue in multiselect, add it in checkboxes (as selected), | ||||
| @@ -208,7 +230,7 @@ export default { | ||||
|                 this.actionIsLoading = true; | ||||
|                 getSocialActionByIssue(item.id).then( | ||||
|                     (actions) => | ||||
|                         new Promise((resolve, reject) => { | ||||
|                         new Promise((resolve) => { | ||||
|                             actions.results.forEach((action) => { | ||||
|                                 this.$store.commit("addActionInList", action); | ||||
|                             }, this); | ||||
| @@ -235,9 +257,24 @@ export default { | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| <style src="vue-multiselect/dist/vue-multiselect.css"></style> | ||||
| <style lang="scss" scoped> | ||||
| @import "ChillMainAssets/module/bootstrap/shared"; | ||||
| @import "ChillPersonAssets/chill/scss/mixins"; | ||||
| @import "ChillMainAssets/chill/scss/chill_variables"; | ||||
|  | ||||
| span.multiselect__single { | ||||
|     display: none !important; | ||||
| } | ||||
|  | ||||
| #actionsList { | ||||
|     border-radius: 0.5rem; | ||||
|     padding: 1rem; | ||||
|     margin: 0.5rem; | ||||
|     background-color: whitesmoke; | ||||
| } | ||||
|  | ||||
| span.badge { | ||||
|     margin-bottom: 0.5rem; | ||||
|     @include badge_social($social-issue-color); | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -10,7 +10,9 @@ | ||||
|                 :value="action" | ||||
|             /> | ||||
|             <label class="form-check-label" :for="action.id"> | ||||
|                 <span class="badge bg-light text-dark">{{ action.text }}</span> | ||||
|                 <span class="badge bg-light text-dark" :title="action.text">{{ | ||||
|                     action.text | ||||
|                 }}</span> | ||||
|             </label> | ||||
|         </div> | ||||
|     </span> | ||||
| @@ -43,5 +45,9 @@ span.badge { | ||||
|     font-size: 95%; | ||||
|     margin-bottom: 5px; | ||||
|     margin-right: 1em; | ||||
|     max-width: 100%; /* Adjust as needed */ | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|     white-space: nowrap; | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -41,9 +41,7 @@ const i18nGendoc = _createI18n({}); | ||||
| document.querySelectorAll("div[data-docgen-template-picker]").forEach((el) => { | ||||
|   fetchTemplates(el.dataset.entityClass).then((templates) => { | ||||
|     const picker = { | ||||
|       template: | ||||
|         '<pick-template :templates="this.templates" :preventDefaultMoveToGenerate="true" ' + | ||||
|         ':entityClass="faked" @go-to-generate-document="generateDoc"></pick-template>', | ||||
|       template: `<pick-template :templates="this.templates" :preventDefaultMoveToGenerate="true" @go-to-generate-document="generateDoc"></pick-template>`, | ||||
|       components: { | ||||
|         PickTemplate, | ||||
|       }, | ||||
| @@ -54,7 +52,7 @@ document.querySelectorAll("div[data-docgen-template-picker]").forEach((el) => { | ||||
|         }; | ||||
|       }, | ||||
|       methods: { | ||||
|         generateDoc({ event, link, template }) { | ||||
|         generateDoc({ link, template }) { | ||||
|           console.log("generateDoc"); | ||||
|           console.log("link", link); | ||||
|           console.log("template", template); | ||||
|   | ||||
| @@ -2,6 +2,7 @@ import "es6-promise/auto"; | ||||
| import { createStore } from "vuex"; | ||||
| import { postLocation } from "./api"; | ||||
| import prepareLocations from "./store.locations.js"; | ||||
| import { makeFetch } from "ChillMainAssets/lib/api/apiMethods"; | ||||
|  | ||||
| const debug = process.env.NODE_ENV !== "production"; | ||||
| //console.log('window.activity', window.activity); | ||||
| @@ -23,7 +24,9 @@ const removeIdFromValue = (string, id) => { | ||||
| const store = createStore({ | ||||
|   strict: debug, | ||||
|   state: { | ||||
|     me: null, | ||||
|     activity: window.activity, | ||||
|     accompanyingPeriodWorks: [], | ||||
|     socialIssuesOther: [], | ||||
|     socialActionsList: [], | ||||
|     availableLocations: [], | ||||
| @@ -39,7 +42,7 @@ const store = createStore({ | ||||
|       const allEntities = [ | ||||
|         ...store.getters.suggestedPersons, | ||||
|         ...store.getters.suggestedRequestor, | ||||
|         ...store.getters.suggestedUser, | ||||
|         ...store.getters.suggestedUsers, | ||||
|         ...store.getters.suggestedResources, | ||||
|       ]; | ||||
|       const uniqueIds = [ | ||||
| @@ -78,16 +81,32 @@ const store = createStore({ | ||||
|             state.activity.activityType.thirdPartiesVisible !== 0), | ||||
|       ); | ||||
|     }, | ||||
|     suggestedUser(state) { | ||||
|     suggestedUsers(state) { | ||||
|       const existingUserIds = state.activity.users.map((p) => p.id); | ||||
|       return state.activity.activityType.usersVisible === 0 | ||||
|         ? [] | ||||
|         : [state.activity.accompanyingPeriod.user].filter( | ||||
|             (u) => u !== null && !existingUserIds.includes(u.id), | ||||
|           ); | ||||
|       let suggestedUsers = | ||||
|         state.activity.activityType.usersVisible === 0 | ||||
|           ? [] | ||||
|           : [state.activity.accompanyingPeriod.user].filter( | ||||
|               (u) => u !== null && !existingUserIds.includes(u.id), | ||||
|             ); | ||||
|  | ||||
|       state.accompanyingPeriodWorks.forEach((work) => { | ||||
|         work.referrers.forEach((r) => { | ||||
|           if (!existingUserIds.includes(r.id)) { | ||||
|             suggestedUsers.push(r); | ||||
|           } | ||||
|         }); | ||||
|       }); | ||||
|       // Add the current user from the state | ||||
|       if (state.me && !existingUserIds.includes(state.me.id)) { | ||||
|         suggestedUsers.push(state.me); | ||||
|       } | ||||
|       // console.log("suggested users", suggestedUsers); | ||||
|  | ||||
|       return suggestedUsers; | ||||
|     }, | ||||
|     suggestedResources(state) { | ||||
|       const resources = state.activity.accompanyingPeriod.resources; | ||||
|       // const resources = state.activity.accompanyingPeriod.resources; | ||||
|       const existingPersonIds = state.activity.persons.map((p) => p.id); | ||||
|       const existingThirdPartyIds = state.activity.thirdParties.map( | ||||
|         (p) => p.id, | ||||
| @@ -105,12 +124,25 @@ const store = createStore({ | ||||
|         ); | ||||
|     }, | ||||
|     socialActionsListSorted(state) { | ||||
|       return [...state.socialActionsList].sort( | ||||
|         (a, b) => a.ordering - b.ordering, | ||||
|       ); | ||||
|       return [...state.socialActionsList] | ||||
|         .sort((a, b) => a.ordering - b.ordering) | ||||
|         .reduce((acc, action) => { | ||||
|           const issueText = action.issue?.text || "Uncategorized"; | ||||
|           // Find if the group for the issue already exists | ||||
|           let group = acc.find((item) => item.issue === issueText); | ||||
|           if (!group) { | ||||
|             group = { issue: issueText, actions: [] }; | ||||
|             acc.push(group); | ||||
|           } | ||||
|           group.actions.push(action); | ||||
|           return acc; | ||||
|         }, []); | ||||
|     }, | ||||
|   }, | ||||
|   mutations: { | ||||
|     setWhoAmI(state, me) { | ||||
|       state.me = me; | ||||
|     }, | ||||
|     // SocialIssueAcc | ||||
|     addIssueInList(state, issue) { | ||||
|       //console.log('add issue list', issue.id); | ||||
| @@ -208,6 +240,9 @@ const store = createStore({ | ||||
|     addAvailableLocationGroup(state, group) { | ||||
|       state.availableLocations.push(group); | ||||
|     }, | ||||
|     setAccompanyingPeriodWorks(state, works) { | ||||
|       state.accompanyingPeriodWorks = works; | ||||
|     }, | ||||
|   }, | ||||
|   actions: { | ||||
|     addIssueSelected({ commit }, issue) { | ||||
| @@ -326,9 +361,29 @@ const store = createStore({ | ||||
|       } | ||||
|       commit("updateLocation", value); | ||||
|     }, | ||||
|     async fetchAccompanyingPeriodWorks({ state, commit }) { | ||||
|       const accompanyingPeriodId = state.activity.accompanyingPeriod.id; | ||||
|       const url = `/api/1.0/person/accompanying-course/${accompanyingPeriodId}/works.json`; | ||||
|       try { | ||||
|         const works = await makeFetch("GET", url); | ||||
|         // console.log("works", works); | ||||
|         commit("setAccompanyingPeriodWorks", works); | ||||
|       } catch (error) { | ||||
|         console.error("Failed to fetch accompanying period works:", error); | ||||
|       } | ||||
|     }, | ||||
|     getWhoAmI({ commit }) { | ||||
|       const url = `/api/1.0/main/whoami.json`; | ||||
|       makeFetch("GET", url).then((user) => { | ||||
|         commit("setWhoAmI", user); | ||||
|       }); | ||||
|     }, | ||||
|   }, | ||||
| }); | ||||
|  | ||||
| store.dispatch("getWhoAmI"); | ||||
|  | ||||
| prepareLocations(store); | ||||
| store.dispatch("fetchAccompanyingPeriodWorks"); | ||||
|  | ||||
| export default store; | ||||
|   | ||||
| @@ -1,83 +1,3 @@ | ||||
| {% import "@ChillDocStore/Macro/macro.html.twig" as m %} | ||||
| {% import "@ChillDocStore/Macro/macro_mimeicon.html.twig" as mm %} | ||||
| {% import '@ChillPerson/Macro/updatedBy.html.twig' as mmm %} | ||||
|  | ||||
| {% set person_id = null %} | ||||
| {% if activity.person %} | ||||
|     {% set person_id = activity.person.id %} | ||||
| {% endif %} | ||||
|  | ||||
| {% set accompanying_course_id = null %} | ||||
| {% if activity.accompanyingPeriod %} | ||||
|     {% set accompanying_course_id = activity.accompanyingPeriod.id %} | ||||
| {% endif %} | ||||
|  | ||||
| <div class="item-bloc activity-item{% if itemBlocClass is defined %} {{ itemBlocClass }}{% endif %}"> | ||||
|     <div class="item-row"> | ||||
|         <div class="item-col" style="width: unset"> | ||||
|             {% if document.isPending %} | ||||
|                 <div class="badge text-bg-info" data-docgen-is-pending="{{ document.id }}">{{ 'docgen.Doc generation is pending'|trans }}</div> | ||||
|             {% elseif document.isFailure %} | ||||
|                 <div class="badge text-bg-warning">{{ 'docgen.Doc generation failed'|trans }}</div> | ||||
|             {% endif %} | ||||
|  | ||||
|             <div> | ||||
|                 {% if activity.accompanyingPeriod is not null and context == 'person' %} | ||||
|                     <span class="badge bg-primary"> | ||||
|                         <i class="fa fa-random"></i> {{ activity.accompanyingPeriod.id }} | ||||
|                     </span>  | ||||
|                 {% endif %} | ||||
|                 <div class="badge-activity-type"> | ||||
|                     <span class="title_label"></span> | ||||
|                     <span class="title_action"> | ||||
|                     {{ activity.type.name | localize_translatable_string }} | ||||
|                         {% if activity.emergency %} | ||||
|                             <span class="badge bg-danger rounded-pill fs-6 float-end">{{ 'Emergency'|trans|upper }}</span> | ||||
|                         {% endif %} | ||||
|                     </span> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <div class="denomination h2"> | ||||
|                 {{ document.title|chill_print_or_message("No title") }} | ||||
|             </div> | ||||
|             {% if document.hasTemplate %} | ||||
|                 <div> | ||||
|                     <p>{{ document.template.name|localize_translatable_string }}</p> | ||||
|                 </div> | ||||
|             {% endif %} | ||||
|         </div> | ||||
|  | ||||
|         <div class="item-col"> | ||||
|             <div class="container"> | ||||
|                 <div class="dates row text-end"> | ||||
|                     <span>{{ document.createdAt|format_date('short') }}</span> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|  | ||||
|     <div class="item-row separator"> | ||||
|         <div class="item-col item-meta"> | ||||
|             {{ mmm.createdBy(document) }} | ||||
|         </div> | ||||
|         <ul class="item-col record_actions flex-shrink-1"> | ||||
|             {% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) %} | ||||
|                 <li> | ||||
|                     {{ document|chill_document_button_group(document.title, is_granted('CHILL_ACTIVITY_UPDATE', activity), {small: false})  }} | ||||
|                 </li> | ||||
|             {% endif %} | ||||
|             {% if is_granted('CHILL_ACTIVITY_SEE', activity)%} | ||||
|                 <li> | ||||
|                     <a href="{{ chill_path_add_return_path('chill_activity_activity_show', {'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id}) }}" class="btn btn-show"></a> | ||||
|                 </li> | ||||
|             {% endif %} | ||||
|             {% if is_granted('CHILL_ACTIVITY_UPDATE', activity) %} | ||||
|                 <li> | ||||
|                     <a href="{{ chill_path_add_return_path('chill_activity_activity_edit', {'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}" class="btn btn-edit"></a> | ||||
|                 </li> | ||||
|             {% endif %} | ||||
|         </ul> | ||||
|  | ||||
|     </div> | ||||
|     {{ include('@ChillActivity/GenericDoc/activity_document_row.html.twig') }} | ||||
| </div> | ||||
|   | ||||
| @@ -0,0 +1,81 @@ | ||||
| {% import "@ChillDocStore/Macro/macro.html.twig" as m %} | ||||
| {% import "@ChillDocStore/Macro/macro_mimeicon.html.twig" as mm %} | ||||
| {% import '@ChillPerson/Macro/updatedBy.html.twig' as mmm %} | ||||
|  | ||||
| {% set person_id = null %} | ||||
| {% if activity.person %} | ||||
|     {% set person_id = activity.person.id %} | ||||
| {% endif %} | ||||
|  | ||||
| {% set accompanying_course_id = null %} | ||||
| {% if activity.accompanyingPeriod %} | ||||
|     {% set accompanying_course_id = activity.accompanyingPeriod.id %} | ||||
| {% endif %} | ||||
|  | ||||
| <div class="item-row"> | ||||
|     <div class="item-two-col-grid"> | ||||
|         <div class="title"> | ||||
|             {% if document.isPending %} | ||||
|                 <div class="badge text-bg-info" data-docgen-is-pending="{{ document.id }}">{{ 'docgen.Doc generation is pending'|trans }}</div> | ||||
|             {% elseif document.isFailure %} | ||||
|                 <div class="badge text-bg-warning">{{ 'docgen.Doc generation failed'|trans }}</div> | ||||
|             {% endif %} | ||||
|  | ||||
|             <div> | ||||
|                 <div> | ||||
|                     <div class="badge-activity-type-simple"> | ||||
|                         {{ activity.type.name | localize_translatable_string }} | ||||
|                     </div> | ||||
|                     {% if activity.emergency %} | ||||
|                         <span class="badge bg-danger rounded-pill fs-6 float-end">{{ 'Emergency'|trans|upper }}</span> | ||||
|                     {% endif %} | ||||
|                 </div> | ||||
|             </div> | ||||
|             <div class="denomination h2"> | ||||
|                 {{ document.title|chill_print_or_message("No title") }} | ||||
|             </div> | ||||
|             {% if document.hasTemplate %} | ||||
|                 <div> | ||||
|                     <p>{{ document.template.name|localize_translatable_string }}</p> | ||||
|                 </div> | ||||
|             {% endif %} | ||||
|         </div> | ||||
|         <div class="aside"> | ||||
|             <div class="dates row text-end"> | ||||
|                 <span>{{ document.createdAt|format_date('short') }}</span> | ||||
|             </div> | ||||
|             {% if activity.accompanyingPeriod is not null and context == 'person' %} | ||||
|                 <div class="text-end"> | ||||
|                     <span class="badge bg-primary"> | ||||
|                         <i class="fa fa-random"></i> {{ activity.accompanyingPeriod.id }} | ||||
|                     </span>  | ||||
|                 </div> | ||||
|             {% endif %} | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
|  | ||||
| {% if show_actions %} | ||||
|     <div class="item-row separator"> | ||||
|         <div class="item-col item-meta"> | ||||
|             {{ mmm.createdBy(document) }} | ||||
|         </div> | ||||
|         <ul class="item-col record_actions flex-shrink-1"> | ||||
|             {% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) %} | ||||
|                 <li> | ||||
|                     {{ document|chill_document_button_group(document.title, is_granted('CHILL_ACTIVITY_UPDATE', activity), {small: false})  }} | ||||
|                 </li> | ||||
|             {% endif %} | ||||
|             {% if is_granted('CHILL_ACTIVITY_SEE', activity)%} | ||||
|                 <li> | ||||
|                     <a href="{{ chill_path_add_return_path('chill_activity_activity_show', {'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id}) }}" class="btn btn-show"></a> | ||||
|                 </li> | ||||
|             {% endif %} | ||||
|             {% if is_granted('CHILL_ACTIVITY_UPDATE', activity) %} | ||||
|                 <li> | ||||
|                     <a href="{{ chill_path_add_return_path('chill_activity_activity_edit', {'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}" class="btn btn-edit"></a> | ||||
|                 </li> | ||||
|             {% endif %} | ||||
|         </ul> | ||||
|     </div> | ||||
| {% endif %} | ||||
| @@ -143,7 +143,10 @@ class ListActivitiesByAccompanyingPeriodContext implements | ||||
|             array_filter( | ||||
|                 $works, | ||||
|                 function ($work) use ($user) { | ||||
|                     $workUsernames = array_map(static fn (User $user) => $user['username'], $work['referrers'] ?? []); | ||||
|                     $workUsernames = []; | ||||
|                     foreach ($work['referrers'] as $referrer) { | ||||
|                         $workUsernames[] = $referrer['username']; | ||||
|                     } | ||||
|  | ||||
|                     return \in_array($user->getUserIdentifier(), $workUsernames, true); | ||||
|                 } | ||||
|   | ||||
| @@ -0,0 +1,54 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| /* | ||||
|  * Chill is a software for social workers | ||||
|  * | ||||
|  * For the full copyright and license information, please view | ||||
|  * the LICENSE file that was distributed with this source code. | ||||
|  */ | ||||
|  | ||||
| namespace Chill\ActivityBundle\Service\GenericDoc\Normalizer; | ||||
|  | ||||
| use Chill\ActivityBundle\Service\GenericDoc\Providers\AccompanyingPeriodActivityGenericDocProvider; | ||||
| use Chill\ActivityBundle\Service\GenericDoc\Renderers\AccompanyingPeriodActivityGenericDocRenderer; | ||||
| use Chill\DocStoreBundle\GenericDoc\GenericDocDTO; | ||||
| use Chill\DocStoreBundle\GenericDoc\GenericDocNormalizerInterface; | ||||
| use Chill\DocStoreBundle\Repository\StoredObjectRepositoryInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
| use Twig\Environment; | ||||
|  | ||||
| final readonly class AccompanyingPeriodActivityGenericDocNormalizer implements GenericDocNormalizerInterface | ||||
| { | ||||
|     public function __construct( | ||||
|         private StoredObjectRepositoryInterface $storedObjectRepository, | ||||
|         private AccompanyingPeriodActivityGenericDocRenderer $renderer, | ||||
|         private Environment $twig, | ||||
|         private TranslatorInterface $translator, | ||||
|     ) {} | ||||
|  | ||||
|     public function supportsNormalization(GenericDocDTO $genericDocDTO, string $format, array $context = []): bool | ||||
|     { | ||||
|         return AccompanyingPeriodActivityGenericDocProvider::KEY === $genericDocDTO->key | ||||
|             && 'json' == $format; | ||||
|     } | ||||
|  | ||||
|     public function normalize(GenericDocDTO $genericDocDTO, string $format, array $context = []): array | ||||
|     { | ||||
|         $storedObject = $this->storedObjectRepository->find($genericDocDTO->identifiers['id']); | ||||
|  | ||||
|         if (null === $storedObject) { | ||||
|             return ['title' => $this->translator->trans('generic_doc.document removed'), 'isPresent' => false]; | ||||
|         } | ||||
|  | ||||
|         return [ | ||||
|             'isPresent' => true, | ||||
|             'title' => $storedObject->getTitle(), | ||||
|             'html' => $this->twig->render( | ||||
|                 $this->renderer->getTemplate($genericDocDTO, ['show-actions' => false, 'row-only' => true]), | ||||
|                 $this->renderer->getTemplateData($genericDocDTO, ['show-actions' => false, 'row-only' => true]), | ||||
|             ), | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
| @@ -13,10 +13,12 @@ namespace Chill\ActivityBundle\Service\GenericDoc\Providers; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\Activity; | ||||
| use Chill\ActivityBundle\Repository\ActivityDocumentACLAwareRepositoryInterface; | ||||
| use Chill\ActivityBundle\Repository\ActivityRepository; | ||||
| use Chill\ActivityBundle\Security\Authorization\ActivityVoter; | ||||
| use Chill\DocStoreBundle\Entity\StoredObject; | ||||
| use Chill\DocStoreBundle\GenericDoc\FetchQuery; | ||||
| use Chill\DocStoreBundle\GenericDoc\FetchQueryInterface; | ||||
| use Chill\DocStoreBundle\GenericDoc\GenericDocDTO; | ||||
| use Chill\DocStoreBundle\GenericDoc\GenericDocForAccompanyingPeriodProviderInterface; | ||||
| use Chill\DocStoreBundle\GenericDoc\GenericDocForPersonProviderInterface; | ||||
| use Chill\PersonBundle\Entity\AccompanyingPeriod; | ||||
| @@ -34,8 +36,47 @@ final readonly class AccompanyingPeriodActivityGenericDocProvider implements Gen | ||||
|         private EntityManagerInterface $em, | ||||
|         private Security $security, | ||||
|         private ActivityDocumentACLAwareRepositoryInterface $activityDocumentACLAwareRepository, | ||||
|         private ActivityRepository $activityRepository, | ||||
|     ) {} | ||||
|  | ||||
|     public function fetchAssociatedStoredObject(GenericDocDTO $genericDocDTO): ?StoredObject | ||||
|     { | ||||
|         if (null === $activity = $this->getRelatedEntity($genericDocDTO->key, $genericDocDTO->identifiers)) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         return $activity->getDocuments()->findFirst(fn (int $key, StoredObject $storedObject) => $storedObject->getId() === $genericDocDTO->identifiers['id']); | ||||
|     } | ||||
|  | ||||
|     public function supportsGenericDoc(GenericDocDTO $genericDocDTO): bool | ||||
|     { | ||||
|         return $this->supportsKeyAndIdentifiers($genericDocDTO->key, $genericDocDTO->identifiers); | ||||
|     } | ||||
|  | ||||
|     public function supportsKeyAndIdentifiers(string $key, array $identifiers): bool | ||||
|     { | ||||
|         return self::KEY === $key && array_key_exists('activity_id', $identifiers); | ||||
|     } | ||||
|  | ||||
|     private function getRelatedEntity(string $key, array $identifiers): ?Activity | ||||
|     { | ||||
|         return $this->activityRepository->find($identifiers['activity_id']); | ||||
|     } | ||||
|  | ||||
|     public function buildOneGenericDoc(string $key, array $identifiers): ?GenericDocDTO | ||||
|     { | ||||
|         if (null === $activity = $this->getRelatedEntity($key, $identifiers)) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         return new GenericDocDTO( | ||||
|             self::KEY, | ||||
|             $identifiers, | ||||
|             \DateTimeImmutable::createFromInterface($activity->getDate()), | ||||
|             $activity->getAccompanyingPeriod(), | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function buildFetchQueryForAccompanyingPeriod(AccompanyingPeriod $accompanyingPeriod, ?\DateTimeImmutable $startDate = null, ?\DateTimeImmutable $endDate = null, ?string $content = null, ?string $origin = null): FetchQueryInterface | ||||
|     { | ||||
|         $storedObjectMetadata = $this->em->getClassMetadata(StoredObject::class); | ||||
|   | ||||
| @@ -18,6 +18,9 @@ use Chill\DocStoreBundle\GenericDoc\GenericDocDTO; | ||||
| use Chill\DocStoreBundle\GenericDoc\Twig\GenericDocRendererInterface; | ||||
| use Chill\DocStoreBundle\Repository\StoredObjectRepository; | ||||
|  | ||||
| /** | ||||
|  * @implements GenericDocRendererInterface<array{row-only?: bool, show-actions?: bool}> | ||||
|  */ | ||||
| final readonly class AccompanyingPeriodActivityGenericDocRenderer implements GenericDocRendererInterface | ||||
| { | ||||
|     public function __construct(private StoredObjectRepository $objectRepository, private ActivityRepository $activityRepository) {} | ||||
| @@ -29,7 +32,8 @@ final readonly class AccompanyingPeriodActivityGenericDocRenderer implements Gen | ||||
|  | ||||
|     public function getTemplate(GenericDocDTO $genericDocDTO, $options = []): string | ||||
|     { | ||||
|         return '@ChillActivity/GenericDoc/activity_document.html.twig'; | ||||
|         return ($options['row-only'] ?? false) ? '@ChillActivity/GenericDoc/activity_document_row.html.twig' : | ||||
|             '@ChillActivity/GenericDoc/activity_document.html.twig'; | ||||
|     } | ||||
|  | ||||
|     public function getTemplateData(GenericDocDTO $genericDocDTO, $options = []): array | ||||
| @@ -38,6 +42,7 @@ final readonly class AccompanyingPeriodActivityGenericDocRenderer implements Gen | ||||
|             'activity' => $this->activityRepository->find($genericDocDTO->identifiers['activity_id']), | ||||
|             'document' => $this->objectRepository->find($genericDocDTO->identifiers['id']), | ||||
|             'context' => $genericDocDTO->getContext(), | ||||
|             'show_actions' => $options['show-actions'] ?? true, | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,10 +0,0 @@ | ||||
| # configuration for apigen  | ||||
|  | ||||
| source:     | ||||
|     - .  | ||||
|      | ||||
| exclude:     | ||||
|     - vendor/*     | ||||
|     - Test*  | ||||
|      | ||||
| title: Chill Activity Bundle | ||||
| @@ -1,40 +0,0 @@ | ||||
| { | ||||
|     "name": "chill-project/activity", | ||||
|     "description": "This bundle extend chill for recording the different activities of the user", | ||||
|     "type": "symfony-bundle", | ||||
|     "license": "AGPL-3.0", | ||||
|     "keywords" : ["chill", "social work"], | ||||
|     "homepage" : "https://github.com/Chill-project/Activity", | ||||
|     "autoload": { | ||||
|         "psr-4": { "Chill\\ActivityBundle\\": "" } | ||||
|     }, | ||||
|     "autoload-dev": { | ||||
|         "classmap": [ "Resources/test/Fixtures/App/app/AppKernel.php" ] | ||||
|     }, | ||||
|     "authors": [ | ||||
|         { | ||||
|             "name": "Champs-Libres", | ||||
|             "email": "info@champs-libres.coop" | ||||
|         } | ||||
|     ], | ||||
|     "require": { | ||||
|     }, | ||||
|     "require-dev": { | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "post-install-cmd": [ | ||||
|             "ComposerBundleMigration\\Composer\\Migrations::synchronizeMigrations", | ||||
|             "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap" | ||||
|         ], | ||||
|         "post-update-cmd": [ | ||||
|             "ComposerBundleMigration\\Composer\\Migrations::synchronizeMigrations", | ||||
|             "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap" | ||||
|         ] | ||||
|     }, | ||||
|     "extra": { | ||||
|         "app-migrations-dir": "Resources/test/Fixtures/App/app/DoctrineMigrations", | ||||
|         "symfony-app-dir": "Test/Fixtures/App/app/" | ||||
|     }, | ||||
|     "minimum-stability": "dev", | ||||
|     "prefer-stable": true | ||||
| } | ||||
| @@ -1,23 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
|  | ||||
| <phpunit bootstrap="./Resources/test/Fixtures/App/app/autoload.php" colors="true"> | ||||
|     <testsuites> | ||||
|         <testsuite name="ChillActivityBundle test suite"> | ||||
|             <directory suffix="Test.php">./Tests</directory> | ||||
|         </testsuite> | ||||
|     </testsuites> | ||||
|     <filter> | ||||
|         <whitelist> | ||||
|             <directory>./</directory> | ||||
|             <exclude> | ||||
|                 <directory>./Resources</directory> | ||||
|                 <directory>./Tests</directory> | ||||
|                 <directory>./vendor</directory> | ||||
|             </exclude> | ||||
|        </whitelist> | ||||
|     </filter> | ||||
|     <php> | ||||
|         <server name="KERNEL_DIR" value="Resources/test/Fixtures/App/app/" /> | ||||
|         <env name="SYMFONY_DEPRECATIONS_HELPER" value="weak" /> | ||||
|     </php>   | ||||
| </phpunit> | ||||
| @@ -14,3 +14,5 @@ export: | ||||
|             describe_action_with_subject: >- | ||||
|                 Filtré par personne ayant eu un échange entre le {date_from, date} et le {date_to, date}, et un de ces sujets choisis: {reasons} | ||||
|  | ||||
| activity: | ||||
|     title: Échange du {date, date, long} - {type} | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user