mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +00:00 
			
		
		
		
	Compare commits
	
		
			614 Commits
		
	
	
		
			fix-calend
			...
			upgrade-ph
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a64d75ffc9 | |||
| 27dbdbcd96 | |||
| 2a3011d358 | |||
| 5a1296724b | |||
| f483a6f28a | |||
| 0dfa7f8cf7 | |||
| 54bb38bcda | |||
| e159bde6b1 | |||
| 4319b0d804 | |||
| 322ff32e5d | |||
| 77dc040034 | |||
| 23951f1997 | |||
| 1be4e43d31 | |||
| 7585eff488 | |||
| 88b4159ced | |||
| 782bda0744 | |||
| 8d3888068d | |||
| 96ddc73e45 | |||
| b2789099be | |||
| 4eb7d10e45 | |||
| efa475df0f | |||
| 4edb8bd0c5 | |||
| a8977729fe | |||
| ecac409586 | |||
| df2480c47c | |||
| 97a4c39941 | |||
| c729a14304 | |||
| 06b7e84270 | |||
| 1cc80c8e6a | |||
| c3558beee1 | |||
| 44ecad2bca | |||
| d1bdf41c4c | |||
| eaea702454 | |||
| de4cb1585b | |||
| 2e2c11a3c1 | |||
| 1a3d66213b | |||
| 67e68ac149 | |||
| 5319991a6f | |||
| 1198133a7f | |||
| 1195564adb | |||
| 4c7a16587b | |||
| 9c589b9296 | |||
| 3821bc3a70 | |||
| bbddf7813e | |||
| 4a30f310b8 | |||
| d893e3a664 | |||
| d1e8e6c18e | |||
| 896b4cdfe3 | |||
| 4df6a6fc85 | |||
| a272dabcaf | |||
| 3901fe2d32 | |||
| 244614a691 | |||
| 78858e84f2 | |||
| cc98f64be5 | |||
| 6e812b54e1 | |||
| 83e0a50b57 | |||
| 3aac4d5d35 | |||
| 23cee274a5 | |||
| aacb54037b | |||
| 57cb96320c | |||
| 5a2d80cb4d | |||
| 2e822a9486 | |||
| f376b1af49 | |||
| 9d1703ccba | |||
| ef3b41fa90 | |||
| dd621186e8 | |||
| 1b15abe635 | |||
| 1965fc55f4 | |||
| 672418e70a | |||
| a9290eb3fe | |||
| e78eb8789d | |||
| 9911112e08 | |||
| c0675aee9b | |||
| 03ee04978c | |||
| 15d68df8c6 | |||
| 1b2c0ecc87 | |||
| f15017ebd7 | |||
| 9a56a1b115 | |||
| 11e7f2179c | |||
| e982e81900 | |||
| e50b02a8c7 | |||
| bea839663f | |||
| ac4c821290 | |||
| c953da3fd0 | |||
| f5d17eb38c | |||
| 8695099819 | |||
| 4dbb195b45 | |||
| 73f332927d | |||
| ef75deda26 | |||
| 6264a95d62 | |||
| 26a6169b95 | |||
| 678defdee7 | |||
| f07aaecc3d | |||
| 0efe43a4d9 | |||
| 88ccbd450a | |||
| 62532e0a90 | |||
| 73fa585707 | |||
| 21a16dcbe2 | |||
| b30e966316 | |||
| 9696a8194c | |||
| 6749758b46 | |||
| f1ebc089c3 | |||
| 813adc70f4 | |||
| 95984eff6d | |||
| c35ca3dbeb | |||
| 3db5b62d57 | |||
| cf1cc937ca | |||
| 14df8fe9ad | |||
| b1d4334c0f | |||
| d7737af4f3 | |||
| fe4388c884 | |||
| 318599334e | |||
| 7dc07129f8 | |||
| dbcc425f5f | |||
| 77c545344c | |||
| c13d672db2 | |||
| a16244a3f5 | |||
| c5fc6d4aad | |||
| 73af63a2b5 | |||
| 365df4f3ba | |||
| 9e6579a176 | |||
| 8b517f169f | |||
| 27f13e0dd1 | |||
| f07ea3259e | |||
| 1f4438690e | |||
| d62ba56cfe | |||
| 096e2f6e40 | |||
| 542b6ccc83 | |||
| 610f129cae | |||
| c0526533cc | |||
| 16dd816a1a | |||
| 744b62184a | |||
| 5ee0ab5ab8 | |||
| 4370349f10 | |||
| 9ff116797a | |||
| e528e4f57a | |||
| 8957f3fed4 | |||
| 08b3d476a7 | |||
| f75f6719bc | |||
| 6254303392 | |||
| 9676975cd8 | |||
| 7c4bc8f46a | |||
| a5f4eabc34 | |||
| 80a88fc00c | |||
| 4a62c2e167 | |||
| 881d76ea1d | |||
| 55a845fcd6 | |||
| 91d21ba939 | |||
| 55918bcafb | |||
| bb05ba0f17 | |||
| 8a6b2354bd | |||
| bf4e036b7f | |||
| eac3471cbb | |||
| f653f8fd7a | |||
| 6d2c6fb6e1 | |||
| 950ca42f68 | |||
| aea6272c4d | |||
| 25cbb528ec | |||
| 2d013e110a | |||
| 38b50324b2 | |||
| d6df16973a | |||
| 80835dd7c3 | |||
| 9e63480c70 | |||
| 988495df27 | |||
| cc62c9cc4a | |||
| 40924d9d39 | |||
| 8b505410ca | |||
| d535ec6cfb | |||
| 9029426d03 | |||
| 9ae2e51819 | |||
| 68f7a832b4 | |||
| 3b255e8482 | |||
| af5f27ff49 | |||
| 5e58d36e79 | |||
| 8ccce12e54 | |||
| f57555dab4 | |||
| fa481fd795 | |||
| e5c183aa44 | |||
| afd2235254 | |||
| b0ab591cbd | |||
| d8af7d455e | |||
| 5830c3e177 | |||
| 1285100801 | |||
| a4e21b7834 | |||
| 1a44a516c2 | |||
| fb9b9b9226 | |||
| 0ace1c1f6a | |||
| 7d80507517 | |||
| b5ec0919e7 | |||
| 068311d071 | |||
| 88eefa698b | |||
| 5756a37178 | |||
| 70871176fc | |||
| 4b2c330d22 | |||
| aa41070a66 | |||
| 070e153263 | |||
| 264a6ef43e | |||
| 584ac05b53 | |||
| 856eea37ee | |||
| a01cc23c14 | |||
| 344a65e99d | |||
| c83e8ad9a4 | |||
| c64ec89274 | |||
| 16ec858ee8 | |||
| de55ff920f | |||
| 885256ac0d | |||
| f53d3852c3 | |||
| 9f5b11e6cc | |||
| e5bc74d11d | |||
| 5c0d89a88b | |||
| 56a17a0bcd | |||
| 5bfd2aefe6 | |||
| 2165e04ec3 | |||
| 1a8e21a77f | |||
| 9ffe1ff8a8 | |||
| 50bb8f10cf | |||
| 1c673db628 | |||
| fa8a2c5cc5 | |||
| d46304e229 | |||
| 4dd81da1ef | |||
| 882e72b609 | |||
| bb7d072cc8 | |||
| f76c031ff3 | |||
| 86b5f4dfac | |||
| ded71c5997 | |||
| 5ae4eb1bf7 | |||
| c790b22496 | |||
| e54c2ca712 | |||
| 2f091a639b | |||
| 7f9e045d5d | |||
| 9ada19ef23 | |||
| 8ee184e665 | |||
| c5f842076f | |||
| f9b151e4db | |||
| 2c360e979b | |||
| 459df26fef | |||
| e36d2a5eec | |||
| 0301641290 | |||
| 5c413edb32 | |||
| 8e3a83de85 | |||
| 050a4feab5 | |||
| 06238c8355 | |||
| 6b90a7d2a7 | |||
| de5f818c5a | |||
| c4eb45edcc | |||
| 99482edf0d | |||
| e87f0bf348 | |||
| bd324753f3 | |||
| 7915aae86f | |||
| 4fec18f3aa | |||
| 583d7b24ba | |||
| 4a56c4c945 | |||
| 239a978adb | |||
| b2dec3e587 | |||
| 6bba6f68b3 | |||
| 164beb3ca9 | |||
| 25dd65fbd8 | |||
| e99fb75ebd | |||
| 08ddbee6af | |||
| a2b2cafbce | |||
| a913d2820d | |||
| de9d53936f | |||
| 6c1108b8aa | |||
| 5bbe5af124 | |||
| 2c5c815f68 | |||
| 44ef21f940 | |||
| 68998c9156 | |||
| b93b78615b | |||
| b2924ede70 | |||
| 01790fa0cf | |||
| 582983f5ef | |||
| fb51e44e45 | |||
| 1f48900434 | |||
| 91494c07d5 | |||
| c05d153029 | |||
| 5fea61c450 | |||
| e7ac8aafe1 | |||
| 34296e7841 | |||
| a34c102c4b | |||
| c1c92dc296 | |||
| 99455ca685 | |||
| e542ebe531 | |||
| 77e4b1d4ff | |||
| b23019cb3a | |||
| 1fad0f88a4 | |||
| bbd2599e7e | |||
| 5aa59aa0ff | |||
| 351df930a1 | |||
| c8127a1d9d | |||
| f12f640cb4 | |||
| 4da9b6587d | |||
| 0fec753118 | |||
| 4d3d9db1b3 | |||
| ce17f5f5c0 | |||
| 6a14c2b9b3 | |||
| ad94c7bcb7 | |||
| 3ca2811494 | |||
| 1bc7221315 | |||
| 7a1cc9b076 | |||
| f7fa9c31f3 | |||
| fa237bf27b | |||
| 64e65d08fe | |||
| 1f58acd871 | |||
| b06a76784a | |||
| 1585a73974 | |||
| 2deed644b6 | |||
| 5211d092e3 | |||
| ac084a1309 | |||
| 2ca3cced2e | |||
| f17c08f530 | |||
| 2a9ebe436e | |||
| 6ab5e708ec | |||
| ba261ddeb9 | |||
| 58ede06dfe | |||
| 2dec6a017d | |||
| fb42cb1baf | |||
| ae1df1f47a | |||
| f2cbd7f4a3 | |||
| 7abecdea02 | |||
| 2be8aefb38 | |||
| ff930e94f6 | |||
| 38ff46f03f | |||
| d41dc7035c | |||
| 23d7d1c8f0 | |||
| acfa3d6849 | |||
| 0bfb5c617e | |||
| 17461aa21e | |||
| 7d469df62a | |||
| 204ebd4415 | |||
| b789250b8d | |||
| 1ebdcd1530 | |||
| e93458f943 | |||
| ceee5e7eea | |||
| 9f00754eb7 | |||
| 0f7d4ce5ee | |||
| 1eb1e2ec24 | |||
| 52512e45fc | |||
| 49380f5f61 | |||
| e0c9e12008 | |||
| 4fcfe3f5d2 | |||
| 333e524136 | |||
| 3c85b5ca92 | |||
| ff7f5a5dd3 | |||
| fb8f74119f | |||
| 34602d0a56 | |||
| 43a4576ed4 | |||
| a32d20e320 | |||
| 7e6ef3dafe | |||
| 7e06d7beed | |||
| 8e65b3851a | |||
| aca81122d5 | |||
| 5a93e21758 | |||
| 368846e09b | |||
| efe494d61f | |||
| c050c42a27 | |||
| 6309877a14 | |||
| 8d19e8d7af | |||
| 34c97769a6 | |||
| a10aae2100 | |||
| 516e4e5f47 | |||
| 531b49a536 | |||
| 5328bee262 | |||
| 060d5d5ca3 | |||
| 368136ea57 | |||
| d080dfda9a | |||
| 88fb48e2be | |||
| feb760a97b | |||
| e97a04ab54 | |||
| c16454214d | |||
| be5f87348b | |||
| e71bb5d77b | |||
| 6cac298724 | |||
| 39f410dc8f | |||
| fc15b85d11 | |||
| 74673380aa | |||
| 72ae6fb2cd | |||
| a73dca5efe | |||
| 8cbfe16c24 | |||
| 9b32ce53c8 | |||
| 788b1e9eeb | |||
| 57e1786b99 | |||
| 6eb23c6073 | |||
| b6e3baa5dc | |||
| 02a7074218 | |||
| 593caec851 | |||
| 9913938c1b | |||
| 7c8ac8cfcb | |||
| 3ebf3ae148 | |||
| 24833be681 | |||
| 6777cf7225 | |||
| 3b9e6d2742 | |||
| 390da7c641 | |||
| d3e784de15 | |||
| d35dacf562 | |||
| cd54fdd13f | |||
| 448d93cd02 | |||
| 8894491dac | |||
| 999e9e8553 | |||
| 3ca46efd2c | |||
| e90782500b | |||
| 0f159281ba | |||
| 15c304b1d1 | |||
| 53980dd757 | |||
| c1261f63e7 | |||
| 80f6b7d330 | |||
| 56a7833858 | |||
| 318d6b6d4e | |||
| d0e1f31ec7 | |||
| 15871db7fd | |||
| 00bf7bf299 | |||
| dafd715efd | |||
| 928869666c | |||
| 9623a35e6f | |||
| d58aad4624 | |||
| a39f547907 | |||
| 0e661784b0 | |||
| fc607d6a0e | |||
| 2f765a3aa5 | |||
| 9ad3bbc1b4 | |||
| f144663877 | |||
| 434ef075da | |||
| 2db778c4a4 | |||
| 2178485e5e | |||
| e767557216 | |||
| 68bfb082fc | |||
| 1f3dd00d81 | |||
| f633fabf79 | |||
| cf6430ae9b | |||
| d3ba11f521 | |||
| f3401faea1 | |||
| ec9555ec84 | |||
| a68422e0e8 | |||
| 400770123a | |||
| 91e3588e76 | |||
| 61f44396c5 | |||
| 8e44f20535 | |||
| a7c44830d2 | |||
| a942a24596 | |||
| 826a975fbe | |||
| c1df8084a6 | |||
| c22135f101 | |||
| a2e1228c09 | |||
| 11f0cac86e | |||
| 9dba5965f6 | |||
| be38251a13 | |||
| 43791badd5 | |||
| 79e9906a05 | |||
| aec4c52567 | |||
| ccb2cd0295 | |||
| 8aeeab9e6b | |||
| 48da6d0a92 | |||
| 50db96ffbc | |||
| 86be95ac43 | |||
| 8159f91e25 | |||
| 0756bec580 | |||
| 4e3c93cdd3 | |||
| c7f740d5d7 | |||
| 5489178e4b | |||
| 3b96ac3ef3 | |||
| df4f5e7cf8 | |||
| 82d9ab8ca6 | |||
| c05637bc72 | |||
| d450f06286 | |||
| 3b68997c69 | |||
| 17e8e1964d | |||
| bf5ecd25de | |||
| 9fa3a72cb4 | |||
| f10a448ae9 | |||
| 9bfc184f70 | |||
| 2e60b6735a | |||
| 2ee362bfd5 | |||
| b42e1a9a05 | |||
| 055acbf43c | |||
| 5655f953d7 | |||
| e6553e71ee | |||
| 7f9e8c5a7b | |||
| f3a3cab801 | |||
| d6b358cfa1 | |||
| abd79df8cd | |||
| dc38e5927c | |||
| 18406e83a1 | |||
| 6687742e23 | |||
| 2767075be7 | |||
| 371a7dc05c | |||
| 63129a3b8c | |||
| 8ea29e8ec4 | |||
| 2bdc06397e | |||
| edd9aaa475 | |||
| 5695564723 | |||
| fc9689e881 | |||
| 75f69859e6 | |||
| b5a9dac62e | |||
| bf58c5d59c | |||
| 8a395bf108 | |||
| 1ed367e079 | |||
| e3801d54b4 | |||
| 4c9cdb7b8c | |||
| 2096e175d4 | |||
| 781253a854 | |||
| c396635163 | |||
| eeb84d5cfb | |||
| fc2f8d33e1 | |||
| a69965345f | |||
| 226f172970 | |||
| 6d0622aa38 | |||
| 0e553594a0 | |||
| f714c7206c | |||
| 42012dbad2 | |||
| bc41910a39 | |||
| a18870c91e | |||
| 68ebf8303c | |||
| 9e89302aa4 | |||
| 2e52729806 | |||
| afb5ebc077 | |||
| f751d2e9ab | |||
| 13d6e4587a | |||
| 6fd75a175f | |||
| 03e765f811 | |||
| d3f03fb27c | |||
| 481be32997 | |||
| 4524240ad8 | |||
| 0255f12fa9 | |||
| 4ca10ce38d | |||
| f0b2ec1348 | |||
| 2d40c38c88 | |||
| d8104c4443 | |||
| 63d38e35f7 | |||
| 9c3533d106 | |||
| e07d2ab467 | |||
| cda25d3459 | |||
| 1bf7f9945c | |||
| 9cf06c147f | |||
| 60f93f7f12 | |||
| c872ca7204 | |||
| 51ac4e0938 | |||
| 24873f0cc2 | |||
| 84e5be6a60 | |||
| 5acf2a1986 | |||
| 094a912e42 | |||
| f40aa89d08 | |||
| 50e2f4a147 | |||
| be215bd135 | |||
| be75cdce55 | |||
| e46b285d3e | |||
| 17a7b053cf | |||
| 32cdf56fbd | |||
| 749facb9b0 | |||
| edd1557f35 | |||
| 3059935305 | |||
| 355436aa82 | |||
| 8d4ec5d675 | |||
| c20b561de5 | |||
| acc9523ff5 | |||
| afa6dfd77c | |||
| c331f94201 | |||
| 6ffe99a2be | |||
| d75ec92417 | |||
| 4e55f1ede7 | |||
| cf7d0c1bdb | |||
| f4c3997e55 | |||
| f434cc5c02 | |||
| 333c305eef | |||
| 4af261a366 | |||
| 1228a0323c | |||
| dc149c7fd5 | |||
| 7dc34cb357 | |||
| ed04c276c2 | |||
| f8b5078997 | |||
| 68b9c171a6 | |||
| 791ea25e4f | |||
| e3846829e1 | |||
| d48474bbc9 | |||
| 05f9a83bed | |||
| 441c5c8da7 | |||
| a0fc9d4de5 | |||
| 8527c19073 | |||
| fe120086c7 | |||
| f1fb77187f | |||
| 43d9ba1ba5 | |||
| 77a6e92f69 | |||
| e1b6fb2db1 | |||
| 2a4a4a80b1 | |||
| 2e44689549 | |||
| eb404404f9 | |||
| a26029999f | |||
| dbf3780593 | |||
| b20a75c2ee | |||
| 71db287ded | |||
| 5f0a6f37b0 | |||
| fa1b5c4a02 | |||
| 4388331b2f | |||
| 9d1c38e978 | |||
| a95f0c538d | |||
| ffd1145cd0 | |||
| d1b9400257 | |||
| fdd537b18e | |||
| 1786fa838f | |||
| 7fe8d0837f | |||
| 753d6ea481 | |||
| 8cf25415ab | |||
| 743e0b9403 | |||
| 97d6f35605 | |||
| 5af492b2db | |||
| 70c631b612 | |||
| e550d64fd4 | |||
| 4aaf75a1a4 | |||
| 9db43f1de3 | |||
| 674629e2bf | |||
| e42d6c2d77 | |||
| 3782cf35ff | |||
| 68c1833584 | |||
| 191b8ecf81 | |||
| e7ba42de1f | |||
| 8b145ebc11 | 
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -3,7 +3,9 @@ composer | ||||
| composer.phar | ||||
| composer.lock | ||||
| docs/build/ | ||||
| node_modules/* | ||||
| .php_cs.cache | ||||
| .cache/* | ||||
|  | ||||
| ###> symfony/framework-bundle ### | ||||
| /.env.local | ||||
| @@ -24,3 +26,5 @@ docs/build/ | ||||
| /.php-cs-fixer.cache | ||||
| /.idea/ | ||||
| /.psalm/ | ||||
|  | ||||
| node_modules/* | ||||
|   | ||||
| @@ -9,7 +9,7 @@ cache: | ||||
| # Bring in any services we need http://docs.gitlab.com/ee/ci/docker/using_docker_images.html#what-is-a-service | ||||
| # See http://docs.gitlab.com/ee/ci/services/README.html for examples. | ||||
| services: | ||||
|     - name: postgis/postgis:12-3.1-alpine | ||||
|     - name: postgis/postgis:14-3.3-alpine | ||||
|       alias: db | ||||
|     - name: redis | ||||
|       alias: redis | ||||
| @@ -21,7 +21,7 @@ variables: | ||||
|     POSTGRES_USER: postgres | ||||
|     POSTGRES_PASSWORD: postgres | ||||
|     # configure database access | ||||
|     DATABASE_URL: postgresql://postgres:postgres@db:5432/postgres?serverVersion=12&charset=utf8 | ||||
|     DATABASE_URL: postgresql://postgres:postgres@db:5432/postgres?serverVersion=14&charset=utf8 | ||||
|     # fetch the chill-app using git submodules | ||||
|     GIT_SUBMODULE_STRATEGY: recursive | ||||
|     REDIS_HOST: redis | ||||
| @@ -37,12 +37,11 @@ stages: | ||||
|  | ||||
| build: | ||||
|     stage: Composer install | ||||
|     image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 | ||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 | ||||
|     before_script: | ||||
|         - curl -sS https://getcomposer.org/installer | php | ||||
|         - php -d memory_limit=2G composer.phar config -g cache-dir "$(pwd)/.cache" | ||||
|         - composer config -g cache-dir "$(pwd)/.cache" | ||||
|     script: | ||||
|         - php -d memory_limit=2G composer.phar install --optimize-autoloader --no-ansi --no-interaction --no-progress | ||||
|         - composer install --optimize-autoloader --no-ansi --no-interaction --no-progress | ||||
|     cache: | ||||
|         paths: | ||||
|             - .cache/ | ||||
| @@ -54,9 +53,12 @@ build: | ||||
|  | ||||
| code_style: | ||||
|     stage: Tests | ||||
|     image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 | ||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 | ||||
|     script: | ||||
|         - bin/grumphp run --tasks=phpcsfixer | ||||
|         - php-cs-fixer fix --dry-run -v --show-progress=none | ||||
|     cache: | ||||
|         paths: | ||||
|             - .cache/ | ||||
|     artifacts: | ||||
|         expire_in: 30 min | ||||
|         paths: | ||||
| @@ -65,9 +67,12 @@ code_style: | ||||
|  | ||||
| phpstan_tests: | ||||
|     stage: Tests | ||||
|     image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 | ||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 | ||||
|     script: | ||||
|         - bin/grumphp run --tasks=phpstan | ||||
|         - bin/phpstan | ||||
|     cache: | ||||
|         paths: | ||||
|             - .cache/ | ||||
|     artifacts: | ||||
|         expire_in: 30 min | ||||
|         paths: | ||||
| @@ -76,9 +81,9 @@ phpstan_tests: | ||||
|  | ||||
| psalm_tests: | ||||
|     stage: Tests | ||||
|     image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 | ||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 | ||||
|     script: | ||||
|         - bin/grumphp run --tasks=psalm | ||||
|         - bin/psalm | ||||
|     allow_failure: true | ||||
|     artifacts: | ||||
|         expire_in: 30 min | ||||
| @@ -88,7 +93,7 @@ psalm_tests: | ||||
|  | ||||
| unit_tests: | ||||
|     stage: Tests | ||||
|     image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 | ||||
|     image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 | ||||
|     script: | ||||
|         - php tests/app/bin/console doctrine:migrations:migrate -n | ||||
|         - php -d memory_limit=2G tests/app/bin/console cache:clear --env=dev | ||||
|   | ||||
| @@ -9,13 +9,24 @@ declare(strict_types=1); | ||||
|  * the LICENSE file that was distributed with this source code. | ||||
|  */ | ||||
| 
 | ||||
| $config = require __DIR__ . '/tests/app/vendor/drupol/php-conventions/config/php73/php_cs_fixer.config.php'; | ||||
| $finder = PhpCsFixer\Finder::create(); | ||||
| 
 | ||||
| $config | ||||
|     ->getFinder() | ||||
|     ->ignoreDotFiles(false) | ||||
| $finder | ||||
|     ->in(__DIR__.'/src') | ||||
|     ->append([__FILE__]) | ||||
|     ->exclude(['docs/', 'tests/app']) | ||||
|     ->notPath('tests/app') | ||||
|     ->name(['.php_cs.dist.php']); | ||||
|     ->ignoreDotFiles(true) | ||||
|     ->name('**.php') | ||||
| ; | ||||
| 
 | ||||
| $config = new PhpCsFixer\Config(); | ||||
| $config | ||||
|     ->setFinder($finder) | ||||
|     ->setRiskyAllowed(true) | ||||
|     ->setCacheFile('.cache/php-cs-fixer.cache') | ||||
|     ->setUsingCache(true) | ||||
| ; | ||||
| 
 | ||||
| $rules = $config->getRules(); | ||||
| 
 | ||||
| @@ -68,9 +79,42 @@ $riskyRules = [ | ||||
|     //    'psr_autoloading' => false,
 | ||||
| ]; | ||||
| 
 | ||||
| $untilFullSwitchToPhp8 = [ | ||||
|     'blank_line_between_import_groups' => false, | ||||
|     'declare_strict_types' => true, | ||||
|     'multiline_whitespace_before_semicolons' => false, | ||||
|     'phpdoc_no_empty_return' => false, | ||||
| ]; | ||||
| 
 | ||||
| $rules = array_merge( | ||||
|     [ | ||||
|         '@PhpCsFixer' => true, | ||||
|         '@PhpCsFixer:risky' => false, | ||||
|         '@Symfony' => false, | ||||
|         '@Symfony:risky' => false, | ||||
|         'ordered_class_elements' => [ | ||||
|             'order' => [ | ||||
|                 'use_trait', | ||||
|                 'constant_public', | ||||
|                 'constant_protected', | ||||
|                 'constant_private', | ||||
|                 'property_public', | ||||
|                 'property_protected', | ||||
|                 'property_private', | ||||
|                 'construct', | ||||
|                 'destruct', | ||||
|                 'magic', | ||||
|                 'phpunit', | ||||
|                 'method_public', | ||||
|                 'method_protected', | ||||
|                 'method_private', | ||||
|             ], | ||||
|             'sort_algorithm' => 'alpha', | ||||
|         ] | ||||
|     ], | ||||
|     $rules, | ||||
|     $riskyRules | ||||
|     $riskyRules, | ||||
|     $untilFullSwitchToPhp8, | ||||
| ); | ||||
| 
 | ||||
| $rules['header_comment']['header'] = trim(file_get_contents(__DIR__ . '/resource/header.txt')); | ||||
| @@ -8,19 +8,23 @@ | ||||
|         "social worker" | ||||
|     ], | ||||
|     "require": { | ||||
|         "php": "^7.4", | ||||
|         "php": "^7.4|^8.2", | ||||
|         "ext-json": "*", | ||||
|         "ext-openssl": "*", | ||||
|         "ext-redis": "*", | ||||
|         "champs-libres/async-uploader-bundle": "dev-sf4#d57134aee8e504a83c902ff0cf9f8d36ac418290", | ||||
|         "champs-libres/wopi-bundle": "dev-master#6dd8e0a14e00131eb4b889ecc30270ee4a0e5224", | ||||
|         "champs-libres/wopi-lib": "dev-master#8615f4a45a39fc2b6a98765ea835fcfd39618787", | ||||
|         "champs-libres/wopi-bundle": "dev-master@dev", | ||||
|         "champs-libres/wopi-lib": "dev-master@dev", | ||||
|         "doctrine/doctrine-bundle": "^2.1", | ||||
|         "doctrine/doctrine-migrations-bundle": "^3.0", | ||||
|         "doctrine/orm": "^2.7", | ||||
|         "doctrine/orm": "^2.13.0", | ||||
|         "erusev/parsedown": "^1.7", | ||||
|         "graylog2/gelf-php": "^1.5", | ||||
|         "knplabs/knp-menu-bundle": "^3.0", | ||||
|         "knplabs/knp-time-bundle": "^1.12", | ||||
|         "knpuniversity/oauth2-client-bundle": "^2.10", | ||||
|         "league/csv": "^9.7.1", | ||||
|         "lexik/jwt-authentication-bundle": "^2.16", | ||||
|         "nyholm/psr7": "^1.4", | ||||
|         "ocramius/package-versions": "^1.10 || ^2", | ||||
|         "odolbeau/phone-number-bundle": "^3.6", | ||||
| @@ -29,12 +33,12 @@ | ||||
|         "ramsey/uuid-doctrine": "^1.7", | ||||
|         "sensio/framework-extra-bundle": "^5.5", | ||||
|         "spomky-labs/base64url": "^2.0", | ||||
|         "symfony/asset": "^4.4", | ||||
|         "symfony/browser-kit": "^4.4", | ||||
|         "symfony/css-selector": "^4.4", | ||||
|         "symfony/expression-language": "^4.4", | ||||
|         "symfony/form": "^4.4", | ||||
|         "symfony/framework-bundle": "^4.4", | ||||
|         "symfony/http-client": "^4.4 || ^5", | ||||
|         "symfony/http-foundation": "^4.4", | ||||
|         "symfony/intl": "^4.4", | ||||
|         "symfony/mailer": "^5.4", | ||||
| @@ -48,7 +52,6 @@ | ||||
|         "symfony/translation": "^4.4", | ||||
|         "symfony/twig-bundle": "^4.4", | ||||
|         "symfony/validator": "^4.4", | ||||
|         "symfony/web-link": "*", | ||||
|         "symfony/webpack-encore-bundle": "^1.11", | ||||
|         "symfony/workflow": "^4.4", | ||||
|         "symfony/yaml": "^4.4", | ||||
| @@ -61,19 +64,24 @@ | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "doctrine/doctrine-fixtures-bundle": "^3.3", | ||||
|         "drupol/php-conventions": "^5", | ||||
|         "fakerphp/faker": "^1.13", | ||||
|         "jangregor/phpstan-prophecy": "^1.0", | ||||
|         "nelmio/alice": "^3.8", | ||||
|         "phpspec/prophecy-phpunit": "^2.0", | ||||
|         "phpstan/extension-installer": "^1.2", | ||||
|         "phpstan/phpstan": "^1.9", | ||||
|         "phpstan/phpstan-deprecation-rules": "^1.1", | ||||
|         "phpstan/phpstan-strict-rules": "^1.0", | ||||
|         "phpunit/phpunit": ">= 7.5", | ||||
|         "psalm/plugin-phpunit": "^0.18.4", | ||||
|         "psalm/plugin-symfony": "^4.0.2", | ||||
|         "symfony/debug-bundle": "^5.1", | ||||
|         "symfony/dotenv": "^4.4", | ||||
|         "symfony/maker-bundle": "^1.20", | ||||
|         "symfony/phpunit-bridge": "^4.4", | ||||
|         "symfony/stopwatch": "^4.4", | ||||
|         "symfony/var-dumper": "^4.4", | ||||
|         "symfony/web-profiler-bundle": "^4.4" | ||||
|         "vimeo/psalm": "^4.30.0" | ||||
|     }, | ||||
|     "conflict": { | ||||
|         "symfony/symfony": "*" | ||||
|   | ||||
							
								
								
									
										93
									
								
								docs/source/development/cronjob.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								docs/source/development/cronjob.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | ||||
|  | ||||
| .. Copyright (C)  2014-2023 Champs Libres Cooperative SCRLFS | ||||
|     Permission is granted to copy, distribute and/or modify this document | ||||
|     under the terms of the GNU Free Documentation License, Version 1.3 | ||||
|     or any later version published by the Free Software Foundation; | ||||
|     with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. | ||||
|     A copy of the license is included in the section entitled "GNU | ||||
|     Free Documentation License". | ||||
|  | ||||
| .. _cronjob: | ||||
|  | ||||
| Cron jobs | ||||
| ********* | ||||
|  | ||||
| Some tasks must be executed regularly: refresh some materialized views, remove old data, ... | ||||
|  | ||||
| For this purpose, one can programmatically implements a "cron job", which will be scheduled by a specific command. | ||||
|  | ||||
| The command :code:`chill:cron-job:execute` | ||||
| ========================================== | ||||
|  | ||||
| The command :code:`chill:cron-job:execute` will schedule a task, one by one. In a classical implementation, it should | ||||
| be executed every 15 minutes (more or less), to ensure that every task can be executed. | ||||
|  | ||||
| .. warning:: | ||||
|  | ||||
|    This command should not be executed in parallel. The installer should ensure that two job are executed concurrently. | ||||
|  | ||||
| How to implements a cron job ? | ||||
| ============================== | ||||
|  | ||||
| Implements a :code:`Chill\MainBundle\Cron\CronJobInterface`. Here is an example: | ||||
|  | ||||
| .. code-block:: php | ||||
|  | ||||
|     namespace Chill\MainBundle\Service\Something; | ||||
|  | ||||
|     use Chill\MainBundle\Cron\CronJobInterface; | ||||
|     use Chill\MainBundle\Entity\CronJobExecution; | ||||
|     use DateInterval; | ||||
|     use DateTimeImmutable; | ||||
|  | ||||
|     class MyCronJob implements CronJobInterface | ||||
|     { | ||||
|         public function canRun(?CronJobExecution $cronJobExecution): bool | ||||
|         { | ||||
|             // the parameter $cronJobExecution contains data about the last execution of the cronjob | ||||
|             // if it is null, it should be executed immediatly | ||||
|             if (null === $cronJobExecution) { | ||||
|                 return true; | ||||
|             } | ||||
|  | ||||
|             if ($cronJobExecution->getKey() !== $this->getKey()) { | ||||
|                 throw new UnexpectedValueException(); | ||||
|             } | ||||
|  | ||||
|             // this cron job should be executed if the last execution is greater than one day, but only during the night | ||||
|  | ||||
|             $now = new DateTimeImmutable('now'); | ||||
|  | ||||
|             return $cronJobExecution->getLastStart() < $now->sub(new DateInterval('P1D')) | ||||
|                 && in_array($now->format('H'), self::ACCEPTED_HOURS, true) | ||||
|                 // introduce a random component to ensure a roll of task execution when multiple instances are hosted on same machines | ||||
|                 && mt_rand(0, 5) === 0; | ||||
|         } | ||||
|  | ||||
|         public function getKey(): string | ||||
|         { | ||||
|             return 'arbitrary-and-unique-key'; | ||||
|         } | ||||
|  | ||||
|         public function run(): void | ||||
|         { | ||||
|             // here, we execute the command | ||||
|         } | ||||
|     } | ||||
|  | ||||
| How are cron job scheduled ? | ||||
| ============================ | ||||
|  | ||||
| If the command :code:`chill:cron-job:execute` is run with one or more :code:`job` argument, those jobs are run, **without checking that the job can run** (the method :code:`canRun` is not executed). | ||||
|  | ||||
| If any :code:`job` argument is given, the :code:`CronManager` schedule job with those steps: | ||||
|  | ||||
| * the tasks are ordered, with: | ||||
|    * a priority is given for tasks that weren't never executed; | ||||
|    * then, the tasks are ordered, the last executed are the first in the list | ||||
| * then, for each tasks, and in the given order, the first task where :code:`canRun` return :code:`TRUE` will be executed. | ||||
|  | ||||
| The command :code:`chill:cron-job:execute` execute **only one** task. | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -34,6 +34,7 @@ As Chill rely on the `symfony <http://symfony.com>`_ framework, reading the fram | ||||
|     Useful snippets <useful-snippets.rst> | ||||
|     manual/index.rst | ||||
|     Assets <assets.rst> | ||||
|     Cron Jobs <cronjob.rst> | ||||
|  | ||||
| Layout and UI | ||||
| ************** | ||||
|   | ||||
| @@ -18,6 +18,7 @@ Installation & Usage | ||||
|    :maxdepth: 2 | ||||
|  | ||||
|    prod.rst | ||||
|    load-addresses.rst | ||||
|    prod-calendar-sms-sending.rst | ||||
|    msgraph-configure.rst | ||||
|  | ||||
| @@ -128,12 +129,12 @@ This script will : | ||||
|  | ||||
| .. note:: | ||||
|  | ||||
|    In some cases it can happen that an old image (chill_base_php or chill_php) stored in the docker cache will make the script fail. To solve this problem you have to delete the image and the container, before the make init : | ||||
|    In some cases it can happen that an old image (chill_base_php82 or chill_php82) stored in the docker cache will make the script fail. To solve this problem you have to delete the image and the container, before the make init : | ||||
|  | ||||
|     .. code-block:: bash | ||||
|  | ||||
|        docker-compose images php | ||||
|        docker rmi -f chill_php:prod | ||||
|        docker rmi -f chill_php82:prod | ||||
|        docker-compose rm php | ||||
|  | ||||
|  | ||||
| @@ -170,7 +171,7 @@ There are several users available: | ||||
|  | ||||
| The password is always ``password``. | ||||
|  | ||||
| Now, read `Operations` below. | ||||
| Now, read `Operations` below. For running in production, read `prod_`. | ||||
|  | ||||
|  | ||||
| Operations | ||||
|   | ||||
							
								
								
									
										50
									
								
								docs/source/installation/load-addresses.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								docs/source/installation/load-addresses.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
|  | ||||
| .. _addresses: | ||||
|  | ||||
| Addresses | ||||
| ********* | ||||
|  | ||||
| Chill can store a list of geolocated address references, which are used to suggest address and ensure that the data is correctly stored. | ||||
|  | ||||
| Those addresses may be load from a dedicated source. | ||||
|  | ||||
| In France | ||||
| ========= | ||||
|  | ||||
| The address are loaded from the `BANO <https://bano.openstreetmap.fr/>`_. The postal codes are loaded from `the official list of | ||||
| postal codes <https://datanova.laposte.fr/explore/dataset/laposte_hexasmal/information/>`_ | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|    # first, load postal codes | ||||
|    bin/console chill:main:postal-code:load:FR | ||||
|    # then, load all addresses, by departement (multiple departement can be loaded by repeating the departement code | ||||
|    bin/console chill:main:address-ref-from-bano 57 54 51 | ||||
|  | ||||
| In Belgium | ||||
| ========== | ||||
|  | ||||
| Addresses are prepared from the `BeST Address data <https://www.geo.be/catalog/details/ca0fd5c0-8146-11e9-9012-482ae30f98d9>`_. | ||||
|  | ||||
| Postal code are loaded from this database. There is no need to load postal codes from another source (actually, this is strongly discouraged). | ||||
|  | ||||
| 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. | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|    # load postal code from 1000 to 3999: | ||||
|    bin/console chill:main:address-ref-from-best-addresse 1xxx 2xxx 3xxx | ||||
|  | ||||
|    # load only an extract (for dev purposes) | ||||
|    bin/console chill:main:address-ref-from-best-addresse extract | ||||
|  | ||||
|    # load full addresses (discouraged) | ||||
|    bin/console chill:main:address-ref-from-best-addresse full | ||||
|  | ||||
| .. note:: | ||||
|  | ||||
|    There is a possibility to load the full list of addresses is discouraged: the loading is optimized with smaller extracts. | ||||
|  | ||||
|    Once you load the full list, it is not possible to load smaller extract: each extract loaded **after** will not | ||||
|    delete the addresses loaded with the full extract (and some addresses will be present twice). | ||||
| @@ -1,10 +1,12 @@ | ||||
| .. Copyright (C)  2014-2019 Champs Libres Cooperative SCRLFS | ||||
| Permission is granted to copy, distribute and/or modify this document | ||||
| under the terms of the GNU Free Documentation License, Version 1.3 | ||||
| or any later version published by the Free Software Foundation; | ||||
| with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. | ||||
| A copy of the license is included in the section entitled "GNU | ||||
| Free Documentation License". | ||||
|     Permission is granted to copy, distribute and/or modify this document | ||||
|     under the terms of the GNU Free Documentation License, Version 1.3 | ||||
|     or any later version published by the Free Software Foundation; | ||||
|     with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. | ||||
|     A copy of the license is included in the section entitled "GNU | ||||
|     Free Documentation License". | ||||
|  | ||||
| .. _prod: | ||||
|  | ||||
| Installation for production | ||||
| ########################### | ||||
| @@ -36,12 +38,25 @@ This should be adapted to your needs: | ||||
|  | ||||
| * Think about how you will backup your database. Some adminsys find easier to store database outside of docker, which might be easier to administrate or replicate. | ||||
|  | ||||
| Cron jobs | ||||
| ========= | ||||
|  | ||||
| The command :code:`chill:cron-job:execute` should be executed every 15 minutes (more or less). | ||||
|  | ||||
| This command should never be executed concurrently. It should be not have more than one process for a single instance. | ||||
|  | ||||
| Post-install tasks | ||||
| ================== | ||||
|  | ||||
| - import addresses. See :ref:`addresses`. | ||||
|  | ||||
|  | ||||
| Tweak symfony messenger | ||||
| ======================= | ||||
|  | ||||
| Calendar sync is processed using symfony messenger. | ||||
|  | ||||
| You can tweak the configuration  | ||||
| You can tweak the configuration | ||||
|  | ||||
| Going further: | ||||
|  | ||||
|   | ||||
| @@ -5,69 +5,70 @@ Add condition with distinct alias on each export join clauses (Indicators + Filt | ||||
|  | ||||
| These are alias conventions : | ||||
|  | ||||
| | Entity                                  | Join                                    | Attribute                                  | Alias                             | | ||||
| |:----------------------------------------|:----------------------------------------|:-------------------------------------------|:----------------------------------| | ||||
| | AccompanyingPeriod::class               |                                         |                                            | acp                               | | ||||
| |                                         | AccompanyingPeriodWork::class           | acp.works                                  | acpw                              | | ||||
| |                                         | AccompanyingPeriodParticipation::class  | acp.participations                         | acppart                           | | ||||
| |                                         | Location::class                         | acp.administrativeLocation                 | acploc                            | | ||||
| |                                         | ClosingMotive::class                    | acp.closingMotive                          | acpmotive                         | | ||||
| |                                         | UserJob::class                          | acp.job                                    | acpjob                            | | ||||
| |                                         | Origin::class                           | acp.origin                                 | acporigin                         | | ||||
| |                                         | Scope::class                            | acp.scopes                                 | acpscope                          | | ||||
| |                                         | SocialIssue::class                      | acp.socialIssues                           | acpsocialissue                    | | ||||
| |                                         | User::class                             | acp.user                                   | acpuser                           | | ||||
| |                                         | AccompanyingPeriopStepHistory::class    | acp.stepHistories                          | acpstephistories                  | | ||||
| | AccompanyingPeriodWork::class           |                                         |                                            | acpw                              | | ||||
| |                                         | AccompanyingPeriodWorkEvaluation::class | acpw.accompanyingPeriodWorkEvaluations     | workeval                          | | ||||
| |                                         | User::class                             | acpw.referrers                             | acpwuser                          | | ||||
| |                                         | SocialAction::class                     | acpw.socialAction                          | acpwsocialaction                  | | ||||
| |                                         | Goal::class                             | acpw.goals                                 | goal                              | | ||||
| |                                         | Result::class                           | acpw.results                               | result                            | | ||||
| | AccompanyingPeriodParticipation::class  |                                         |                                            | acppart                           | | ||||
| |                                         | Person::class                           | acppart.person                             | partperson                        | | ||||
| | AccompanyingPeriodWorkEvaluation::class |                                         |                                            | workeval                          | | ||||
| |                                         | Evaluation::class                       | workeval.evaluation                        | eval                              | | ||||
| | Goal::class                             |                                         |                                            | goal                              | | ||||
| |                                         | Result::class                           | goal.results                               | goalresult                        | | ||||
| | Person::class                           |                                         |                                            | person                            | | ||||
| |                                         | Center::class                           | person.center                              | center                            | | ||||
| |                                         | HouseholdMember::class                  | partperson.householdParticipations         | householdmember                   | | ||||
| |                                         | MaritalStatus::class                    | person.maritalStatus                       | personmarital                     | | ||||
| |                                         | VendeePerson::class                     |                                            | vp                                | | ||||
| |                                         | VendeePersonMineur::class               |                                            | vpm                               | | ||||
| | ResidentialAddress::class               |                                         |                                            | resaddr                           | | ||||
| |                                         | ThirdParty::class                       | resaddr.hostThirdParty                     | tparty                            | | ||||
| | ThirdParty::class                       |                                         |                                            | tparty                            | | ||||
| |                                         | ThirdPartyCategory::class               | tparty.categories                          | tpartycat                         | | ||||
| | HouseholdMember::class                  |                                         |                                            | householdmember                   | | ||||
| |                                         | Household::class                        | householdmember.household                  | household                         | | ||||
| |                                         | Person::class                           | householdmember.person                     | memberperson                      | | ||||
| |                                         |                                         | memberperson.center                        | membercenter                      | | ||||
| | Household::class                        |                                         |                                            | household                         | | ||||
| |                                         | HouseholdComposition::class             | household.compositions                     | composition                       | | ||||
| | Activity::class                         |                                         |                                            | activity                          | | ||||
| |                                         | Person::class                           | activity.person                            | actperson                         | | ||||
| |                                         | AccompanyingPeriod::class               | activity.accompanyingPeriod                | acp                               | | ||||
| |                                         | Person::class                           | activity\_person\_having\_activity.person  | person\_person\_having\_activity  | | ||||
| |                                         | ActivityReason::class                   | activity\_person\_having\_activity.reasons | reasons\_person\_having\_activity | | ||||
| |                                         | ActivityType::class                     | activity.activityType                      | acttype                           | | ||||
| |                                         | Location::class                         | activity.location                          | actloc                            | | ||||
| |                                         | SocialAction::class                     | activity.socialActions                     | actsocialaction                   | | ||||
| |                                         | SocialIssue::class                      | activity.socialIssues                      | actsocialssue                     | | ||||
| |                                         | ThirdParty::class                       | activity.thirdParties                      | acttparty                         | | ||||
| |                                         | User::class                             | activity.user                              | actuser                           | | ||||
| |                                         | User::class                             | activity.users                             | actusers                          | | ||||
| |                                         | ActivityReason::class                   | activity.reasons                           | actreasons                        | | ||||
| |                                         | Center::class                           | actperson.center                           | actcenter                         | | ||||
| |                                         | Person::class                           | activity.createdBy                         | actcreator                        | | ||||
| | ActivityReason::class                   |                                         |                                            | actreasons                        | | ||||
| |                                         | ActivityReasonCategory::class           | actreason.category                         | actreasoncat                      | | ||||
| | Calendar::class                         |                                         |                                            | cal                               | | ||||
| |                                         | CancelReason::class                     | cal.cancelReason                           | calcancel                         | | ||||
| |                                         | Location::class                         | cal.location                               | calloc                            | | ||||
| |                                         | User::class                             | cal.user                                   | caluser                           | | ||||
| | VendeePerson::class                     |                                         |                                            | vp                                | | ||||
| |                                         | SituationProfessionelle::class          | vp.situationProfessionelle                 | vpprof                            | | ||||
| |                                         | StatutLogement::class                   | vp.statutLogement                          | vplog                             | | ||||
| |                                         | TempsDeTravail::class                   | vp.tempsDeTravail                          | vptt                              | | ||||
| | Entity                                  | Join                                    | Attribute                                  | Alias                                  | | ||||
| |:----------------------------------------|:----------------------------------------|:-------------------------------------------|:---------------------------------------| | ||||
| | AccompanyingPeriod::class               |                                         |                                            | acp                                    | | ||||
| |                                         | AccompanyingPeriodWork::class           | acp.works                                  | acpw                                   | | ||||
| |                                         | AccompanyingPeriodParticipation::class  | acp.participations                         | acppart                                | | ||||
| |                                         | Location::class                         | acp.administrativeLocation                 | acploc                                 | | ||||
| |                                         | ClosingMotive::class                    | acp.closingMotive                          | acpmotive                              | | ||||
| |                                         | UserJob::class                          | acp.job                                    | acpjob                                 | | ||||
| |                                         | Origin::class                           | acp.origin                                 | acporigin                              | | ||||
| |                                         | Scope::class                            | acp.scopes                                 | acpscope                               | | ||||
| |                                         | SocialIssue::class                      | acp.socialIssues                           | acpsocialissue                         | | ||||
| |                                         | User::class                             | acp.user                                   | acpuser                                | | ||||
| |                                         | AccompanyingPeriopStepHistory::class    | acp.stepHistories                          | acpstephistories                       | | ||||
| | AccompanyingPeriodWork::class           |                                         |                                            | acpw                                   | | ||||
| |                                         | AccompanyingPeriodWorkEvaluation::class | acpw.accompanyingPeriodWorkEvaluations     | workeval                               | | ||||
| |                                         | User::class                             | acpw.referrers                             | acpwuser                               | | ||||
| |                                         | SocialAction::class                     | acpw.socialAction                          | acpwsocialaction                       | | ||||
| |                                         | Goal::class                             | acpw.goals                                 | goal                                   | | ||||
| |                                         | Result::class                           | acpw.results                               | result                                 | | ||||
| | AccompanyingPeriodParticipation::class  |                                         |                                            | acppart                                | | ||||
| |                                         | Person::class                           | acppart.person                             | partperson                             | | ||||
| | AccompanyingPeriodWorkEvaluation::class |                                         |                                            | workeval                               | | ||||
| |                                         | Evaluation::class                       | workeval.evaluation                        | eval                                   | | ||||
| | Goal::class                             |                                         |                                            | goal                                   | | ||||
| |                                         | Result::class                           | goal.results                               | goalresult                             | | ||||
| | Person::class                           |                                         |                                            | person                                 | | ||||
| |                                         | Center::class                           | person.center                              | center                                 | | ||||
| |                                         | HouseholdMember::class                  | partperson.householdParticipations         | householdmember                        | | ||||
| |                                         | MaritalStatus::class                    | person.maritalStatus                       | personmarital                          | | ||||
| |                                         | VendeePerson::class                     |                                            | vp                                     | | ||||
| |                                         | VendeePersonMineur::class               |                                            | vpm                                    | | ||||
| |                                         | CurrentPersonAddress::class             | person.currentPersonAddress                | currentPersonAddress (on a given date) | | ||||
| | ResidentialAddress::class               |                                         |                                            | resaddr                                | | ||||
| |                                         | ThirdParty::class                       | resaddr.hostThirdParty                     | tparty                                 | | ||||
| | ThirdParty::class                       |                                         |                                            | tparty                                 | | ||||
| |                                         | ThirdPartyCategory::class               | tparty.categories                          | tpartycat                              | | ||||
| | HouseholdMember::class                  |                                         |                                            | householdmember                        | | ||||
| |                                         | Household::class                        | householdmember.household                  | household                              | | ||||
| |                                         | Person::class                           | householdmember.person                     | memberperson                           | | ||||
| |                                         |                                         | memberperson.center                        | membercenter                           | | ||||
| | Household::class                        |                                         |                                            | household                              | | ||||
| |                                         | HouseholdComposition::class             | household.compositions                     | composition                            | | ||||
| | Activity::class                         |                                         |                                            | activity                               | | ||||
| |                                         | Person::class                           | activity.person                            | actperson                              | | ||||
| |                                         | AccompanyingPeriod::class               | activity.accompanyingPeriod                | acp                                    | | ||||
| |                                         | Person::class                           | activity\_person\_having\_activity.person  | person\_person\_having\_activity       | | ||||
| |                                         | ActivityReason::class                   | activity\_person\_having\_activity.reasons | reasons\_person\_having\_activity      | | ||||
| |                                         | ActivityType::class                     | activity.activityType                      | acttype                                | | ||||
| |                                         | Location::class                         | activity.location                          | actloc                                 | | ||||
| |                                         | SocialAction::class                     | activity.socialActions                     | actsocialaction                        | | ||||
| |                                         | SocialIssue::class                      | activity.socialIssues                      | actsocialssue                          | | ||||
| |                                         | ThirdParty::class                       | activity.thirdParties                      | acttparty                              | | ||||
| |                                         | User::class                             | activity.user                              | actuser                                | | ||||
| |                                         | User::class                             | activity.users                             | actusers                               | | ||||
| |                                         | ActivityReason::class                   | activity.reasons                           | actreasons                             | | ||||
| |                                         | Center::class                           | actperson.center                           | actcenter                              | | ||||
| |                                         | Person::class                           | activity.createdBy                         | actcreator                             | | ||||
| | ActivityReason::class                   |                                         |                                            | actreasons                             | | ||||
| |                                         | ActivityReasonCategory::class           | actreason.category                         | actreasoncat                           | | ||||
| | Calendar::class                         |                                         |                                            | cal                                    | | ||||
| |                                         | CancelReason::class                     | cal.cancelReason                           | calcancel                              | | ||||
| |                                         | Location::class                         | cal.location                               | calloc                                 | | ||||
| |                                         | User::class                             | cal.user                                   | caluser                                | | ||||
| | VendeePerson::class                     |                                         |                                            | vp                                     | | ||||
| |                                         | SituationProfessionelle::class          | vp.situationProfessionelle                 | vpprof                                 | | ||||
| |                                         | StatutLogement::class                   | vp.statutLogement                          | vplog                                  | | ||||
| |                                         | TempsDeTravail::class                   | vp.tempsDeTravail                          | vptt                                   | | ||||
|   | ||||
							
								
								
									
										40
									
								
								grumphp.yml
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								grumphp.yml
									
									
									
									
									
								
							| @@ -1,40 +0,0 @@ | ||||
| imports: | ||||
|     - { | ||||
|           resource: tests/app/vendor/drupol/php-conventions/config/php73/grumphp.yml, | ||||
|       } | ||||
|  | ||||
| parameters: | ||||
|     tasks.phpcsfixer.config: .php_cs.dist.php | ||||
|     tasks.license.name: AGPL-3.0 | ||||
|     tasks.license.holder: Champs-Libres | ||||
|     tasks.license.date_from: 2001 | ||||
|  | ||||
|     tasks.phpcsfixer.allow_risky: true | ||||
|     tasks.phpcsfixer.diff: true | ||||
|     tasks.phpstan.level: 1 | ||||
|     tasks.phpstan.blocking: true | ||||
|     tasks.phpstan.ignore_patterns: | ||||
|         - "/.github/" | ||||
|         - "/.idea/" | ||||
|         - "/build/" | ||||
|         - "/benchmarks/" | ||||
|         - "/docs/" | ||||
|         - "/node_modules/" | ||||
|         - "/resource/" | ||||
|         - "/spec/" | ||||
|         - "/var/" | ||||
|         - "/vendor/" | ||||
|         - "/tests/app" | ||||
|  | ||||
|     # Psalm | ||||
|     tasks.psalm.blocking: true | ||||
|     tasks.psalm.ignore_patterns: | ||||
|         - "/.github/" | ||||
|         - "/.idea/" | ||||
|         - "/build/" | ||||
|         - "/benchmarks/" | ||||
|         - "/node_modules/" | ||||
|         - "/resource/" | ||||
|         - "/spec/" | ||||
|         - "/var/" | ||||
|         - "/vendor/" | ||||
							
								
								
									
										67
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| { | ||||
|   "name": "chill", | ||||
|   "version": "2.0.0", | ||||
|   "devDependencies": { | ||||
|     "@alexlafroscia/yaml-merge": "^4.0.0", | ||||
|     "@apidevtools/swagger-cli": "^4.0.4", | ||||
|     "@babel/core": "^7.20.5", | ||||
|     "@babel/preset-env": "^7.20.2", | ||||
|     "@ckeditor/ckeditor5-build-classic": "^35.3.2", | ||||
|     "@ckeditor/ckeditor5-dev-utils": "^31.1.13", | ||||
|     "@ckeditor/ckeditor5-dev-webpack-plugin": "^31.1.13", | ||||
|     "@ckeditor/ckeditor5-markdown-gfm": "^35.3.2", | ||||
|     "@ckeditor/ckeditor5-theme-lark": "^35.3.2", | ||||
|     "@ckeditor/ckeditor5-vue": "^4.0.1", | ||||
|     "@symfony/webpack-encore": "^4.1.0", | ||||
|     "@tsconfig/node14": "^1.0.1", | ||||
|     "bindings": "^1.5.0", | ||||
|     "bootstrap": "^5.0.1", | ||||
|     "chokidar": "^3.5.1", | ||||
|     "fork-awesome": "^1.1.7", | ||||
|     "jquery": "^3.6.0", | ||||
|     "node-sass": "^8.0.0", | ||||
|     "popper.js": "^1.16.1", | ||||
|     "postcss-loader": "^7.0.2", | ||||
|     "raw-loader": "^4.0.2", | ||||
|     "sass-loader": "^13.0.0", | ||||
|     "select2": "^4.0.13", | ||||
|     "select2-bootstrap-theme": "0.1.0-beta.10", | ||||
|     "style-loader": "^3.3.1", | ||||
|     "ts-loader": "^9.3.1", | ||||
|     "typescript": "^4.7.2", | ||||
|     "vue-loader": "^17.0.0", | ||||
|     "webpack": "^5.75.0", | ||||
|     "webpack-cli": "^5.0.1" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@fullcalendar/core": "^6.1.4", | ||||
|     "@fullcalendar/daygrid": "^6.1.4", | ||||
|     "@fullcalendar/interaction": "^6.1.4", | ||||
|     "@fullcalendar/list": "^6.1.4", | ||||
|     "@fullcalendar/timegrid": "^6.1.4", | ||||
|     "@fullcalendar/vue3": "^6.1.4", | ||||
|     "@popperjs/core": "^2.9.2", | ||||
|     "dropzone": "^5.7.6", | ||||
|     "es6-promise": "^4.2.8", | ||||
|     "leaflet": "^1.7.1", | ||||
|     "masonry-layout": "^4.2.2", | ||||
|     "mime": "^3.0.0", | ||||
|     "swagger-ui": "^4.15.5", | ||||
|     "vis-network": "^9.1.0", | ||||
|     "vue": "^3.2.37", | ||||
|     "vue-i18n": "^9.1.6", | ||||
|     "vue-multiselect": "3.0.0-alpha.2", | ||||
|     "vue-toast-notification": "^2.0", | ||||
|     "vuex": "^4.0.0" | ||||
|   }, | ||||
|   "browserslist": [ | ||||
|     "Firefox ESR" | ||||
|   ], | ||||
|   "scripts": { | ||||
|     "dev-server": "encore dev-server", | ||||
|     "dev": "encore dev", | ||||
|     "watch": "encore dev --watch", | ||||
|     "build": "encore production --progress" | ||||
|   }, | ||||
|   "private": true | ||||
| } | ||||
							
								
								
									
										301
									
								
								phpstan-baseline-level-2.neon
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										301
									
								
								phpstan-baseline-level-2.neon
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,301 @@ | ||||
| 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 | ||||
							
								
								
									
										819
									
								
								phpstan-baseline-level-3.neon
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										819
									
								
								phpstan-baseline-level-3.neon
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,819 @@ | ||||
| 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: "#^Return type \\(int\\|void\\|null\\) of method Chill\\\\PersonBundle\\\\Command\\\\ImportPeopleFromCSVCommand\\:\\:execute\\(\\) should be covariant with return type \\(int\\) of method Symfony\\\\Component\\\\Console\\\\Command\\\\Command\\:\\:execute\\(\\)$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.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 \\$thirdParty \\(Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\) of method Chill\\\\ThirdPartyBundle\\\\Serializer\\\\Normalizer\\\\ThirdPartyNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillThirdPartyBundle/Serializer/Normalizer/ThirdPartyNormalizer.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\ThirdPartyBundle\\\\Serializer\\\\Normalizer\\\\ThirdPartyNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillThirdPartyBundle/Serializer/Normalizer/ThirdPartyNormalizer.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 | ||||
							
								
								
									
										4903
									
								
								phpstan-baseline-level-4.neon
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4903
									
								
								phpstan-baseline-level-4.neon
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										701
									
								
								phpstan-baseline-level-5.neon
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										701
									
								
								phpstan-baseline-level-5.neon
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,701 @@ | ||||
| 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 \\$name of method Symfony\\\\Component\\\\Form\\\\FormFactoryInterface\\:\\:createNamedBuilder\\(\\) expects string, null 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 \\#1 \\$name of method Symfony\\\\Component\\\\Form\\\\FormFactoryInterface\\:\\:createNamedBuilder\\(\\) expects string, null 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/Command/ImportPeopleFromCSVCommand.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Parameter \\#1 \\$mobilenumber of method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:setMobilenumber\\(\\) expects libphonenumber\\\\PhoneNumber\\|null, string given\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Parameter \\#1 \\$phonenumber of method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:setPhonenumber\\(\\) expects libphonenumber\\\\PhoneNumber\\|null, string given\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.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 | ||||
| @@ -1,10 +1,5 @@ | ||||
| parameters: | ||||
| 	ignoreErrors: | ||||
| 		- | ||||
| 			message: "#^Variable property access on \\$this\\(Chill\\\\ActivityBundle\\\\Entity\\\\ActivityType\\)\\.$#" | ||||
| 			count: 3 | ||||
| 			path: src/Bundle/ChillActivityBundle/Entity/ActivityType.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Foreach overwrites \\$key with its key variable\\.$#" | ||||
| 			count: 1 | ||||
| @@ -20,11 +15,6 @@ parameters: | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Variable method call on object\\.$#" | ||||
| 			count: 2 | ||||
| 			path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Cannot unset offset '_token' on array\\{formatter\\: mixed, export\\: mixed, centers\\: mixed, alias\\: string\\}\\.$#" | ||||
| 			count: 1 | ||||
| @@ -50,46 +40,11 @@ parameters: | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Variable \\$message on left side of \\?\\? always exists and is not nullable\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillMainBundle/Templating/ChillTwigHelper.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Variable \\$sqls on left side of \\?\\? always exists and is not nullable\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Class Chill\\\\PersonBundle\\\\Entity\\\\Person constructor invoked with 1 parameter, 0 required\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Variable \\$street1Value might not be defined\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Variable method call on mixed\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Foreach overwrites \\$value with its value variable\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Foreach overwrites \\$action with its value variable\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/GoalRepository.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Foreach overwrites \\$action with its value variable\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Repository/SocialWork/ResultRepository.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Foreach overwrites \\$value with its value variable\\.$#" | ||||
| 			count: 1 | ||||
|   | ||||
| @@ -1,86 +1,6 @@ | ||||
| parameters: | ||||
|     ignoreErrors: | ||||
|         - | ||||
|             message: "#^Implicit array creation is not allowed \\- variable \\$centers might not exist\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$relation\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillPersonBundle/Entity/Household/PersonHouseholdAddress.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:\\$work\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Undefined variable\\: \\$person$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Variable variables are not allowed\\.$#" | ||||
|             count: 4 | ||||
|             path: src/Bundle/ChillPersonBundle/Search/PersonSearch.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Function Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\·\\\\is_array not found\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Undefined variable\\: \\$choiceSlug$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Undefined variable\\: \\$choiceSlug$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Undefined variable\\: \\$type$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillTaskBundle/Controller/TaskController.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Call to an undefined method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:getRoleFor\\(\\)\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Controller\\\\UserController\\:\\:createEditForm\\(\\)\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillMainBundle/Controller/UserController.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Undefined variable\\: \\$current$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillMainBundle/Pagination/PageGenerator.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AbstractChillVoter\\:\\:getSupportedAttributes\\(\\)\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillMainBundle/Security/Authorization/AbstractChillVoter.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AbstractChillVoter\\:\\:getSupportedClasses\\(\\)\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillMainBundle/Security/Authorization/AbstractChillVoter.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AbstractChillVoter\\:\\:isGranted\\(\\)\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillMainBundle/Security/Authorization/AbstractChillVoter.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Controller\\\\PersonController\\:\\:\\$security\\.$#" | ||||
|             count: 3 | ||||
|             path: src/Bundle/ChillPersonBundle/Controller/PersonController.php | ||||
|  | ||||
|         - | ||||
|             message: "#^Call to an undefined method Chill\\\\ThirdPartyBundle\\\\Form\\\\Type\\\\PickThirdPartyTypeCategoryType\\:\\:transform\\(\\)\\.$#" | ||||
|             count: 1 | ||||
|             path: src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyTypeCategoryType.php | ||||
|   | ||||
| @@ -32,14 +32,6 @@ parameters: | ||||
| 			path: src/Bundle/ChillActivityBundle/Form/ActivityType.php | ||||
|  | ||||
|  | ||||
| 		- | ||||
| 			message: """ | ||||
| 				#^Instantiation of deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role\\: | ||||
| 				since Symfony 4\\.3, to be removed in 5\\.0\\. Use strings as roles instead\\.$# | ||||
| 			""" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php | ||||
|  | ||||
| 		- | ||||
| 			message: """ | ||||
| 				#^Parameter \\$centerResolverDispatcher of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: | ||||
| @@ -199,14 +191,6 @@ parameters: | ||||
| 			count: 2 | ||||
| 			path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadLanguages.php | ||||
|  | ||||
| 		- | ||||
| 			message: """ | ||||
| 				#^Class Chill\\\\MainBundle\\\\Entity\\\\User implements deprecated interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\AdvancedUserInterface\\: | ||||
| 				since Symfony 4\\.1$# | ||||
| 			""" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillMainBundle/Entity/User.php | ||||
|  | ||||
| 		- | ||||
| 			message: """ | ||||
| 				#^Return type of method Chill\\\\MainBundle\\\\Entity\\\\User\\:\\:getRoles\\(\\) has typehint with deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role\\: | ||||
| @@ -329,22 +313,6 @@ parameters: | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Actions/ActionEvent.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/Command/ImportPeopleFromCSVCommand.php | ||||
|  | ||||
| 		- | ||||
| 			message: """ | ||||
| 				#^Instantiation of deprecated class Symfony\\\\Component\\\\EventDispatcher\\\\Event\\: | ||||
| 				since Symfony 4\\.3, use "Symfony\\\\Contracts\\\\EventDispatcher\\\\Event" instead$# | ||||
| 			""" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php | ||||
|  | ||||
| 		- | ||||
| 			message: """ | ||||
| 				#^Class Chill\\\\PersonBundle\\\\Controller\\\\AccompanyingCourseController extends deprecated class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\Controller\\: | ||||
| @@ -541,11 +509,3 @@ parameters: | ||||
| 			count: 3 | ||||
| 			path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php | ||||
|  | ||||
| 		- | ||||
| 			message: """ | ||||
| 				#^Instantiation of deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role\\: | ||||
| 				since Symfony 4\\.3, to be removed in 5\\.0\\. Use strings as roles instead\\.$# | ||||
| 			""" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php | ||||
|  | ||||
|   | ||||
| @@ -10,16 +10,6 @@ parameters: | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Method Chill\\\\ActivityBundle\\\\Export\\\\Export\\\\StatActivityDuration\\:\\:getDescription\\(\\) should return string but return statement is missing\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillActivityBundle/Export/Export/StatActivityDuration.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Method Chill\\\\ActivityBundle\\\\Export\\\\Export\\\\StatActivityDuration\\:\\:getTitle\\(\\) should return string but return statement is missing\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillActivityBundle/Export/Export/StatActivityDuration.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 1 | ||||
| @@ -110,11 +100,6 @@ parameters: | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillDocStoreBundle/Entity/DocumentCategory.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Method Chill\\\\EventBundle\\\\Entity\\\\Participation\\:\\:offsetGet\\(\\) should return mixed but return statement is missing\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillEventBundle/Entity/Participation.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 1 | ||||
| @@ -330,21 +315,6 @@ parameters: | ||||
| 			count: 6 | ||||
| 			path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Export/Aggregator/CountryOfBirthAggregator.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Export/Aggregator/NationalityAggregator.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 2 | ||||
| 			path: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 1 | ||||
| @@ -365,21 +335,11 @@ parameters: | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillPersonBundle/Form/Type/PersonPhoneType.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 3 | ||||
| 			path: src/Bundle/ChillPersonBundle/Search/PersonSearch.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: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 2 | ||||
| 			path: src/Bundle/ChillPersonBundle/Templating/Entity/ClosingMotiveRender.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Method Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\LoadReports\\:\\:getRandomChoice\\(\\) should return array\\<string\\>\\|string but return statement is missing\\.$#" | ||||
| 			count: 1 | ||||
| @@ -425,16 +385,6 @@ parameters: | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillThirdPartyBundle/Form/ChoiceLoader/ThirdPartyChoiceLoader.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" | ||||
| 			count: 1 | ||||
| 			path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php | ||||
|  | ||||
| 		- | ||||
| 			message: "#^Method Chill\\\\ThirdPartyBundle\\\\Search\\\\ThirdPartySearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#" | ||||
| 			count: 1 | ||||
|   | ||||
| @@ -1,7 +1,9 @@ | ||||
| parameters: | ||||
|     level: 1 | ||||
|     level: 5 | ||||
|     paths: | ||||
|         - src/ | ||||
|     tmpDir: .cache/ | ||||
|     reportUnmatchedIgnoredErrors: true | ||||
|     excludePaths: | ||||
|         - .php_cs* | ||||
|         - docs/ | ||||
| @@ -24,4 +26,8 @@ includes: | ||||
|     - 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 | ||||
|  | ||||
|   | ||||
							
								
								
									
										25
									
								
								psalm.xml
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								psalm.xml
									
									
									
									
									
								
							| @@ -9,9 +9,10 @@ | ||||
|     cacheDirectory="./.psalm" | ||||
| > | ||||
|     <projectFiles> | ||||
|         <directory name="src" /> | ||||
|         <directory name="src"/> | ||||
|         <ignoreFiles> | ||||
|             <directory name="./tests/" /> | ||||
|             <directory name="./tests/"/> | ||||
|             <directory name="./node_modules/"/> | ||||
|         </ignoreFiles> | ||||
|     </projectFiles> | ||||
|  | ||||
| @@ -20,9 +21,27 @@ | ||||
|     <issueHandlers> | ||||
|         <UndefinedDocblockClass> | ||||
|             <errorLevel type="suppress"> | ||||
|                 <referencedClass name="UnitEnum" /> | ||||
|                 <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> | ||||
|   | ||||
| @@ -43,6 +43,7 @@ use Symfony\Component\HttpFoundation\Request; | ||||
| use Symfony\Component\HttpFoundation\Response; | ||||
| use Symfony\Component\Security\Core\Role\Role; | ||||
| use Symfony\Component\Serializer\SerializerInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
| use function array_key_exists; | ||||
|  | ||||
| final class ActivityController extends AbstractController | ||||
| @@ -73,6 +74,8 @@ final class ActivityController extends AbstractController | ||||
|  | ||||
|     private ThirdPartyRepository $thirdPartyRepository; | ||||
|  | ||||
|     private TranslatorInterface $translator; | ||||
|  | ||||
|     private UserRepositoryInterface $userRepository; | ||||
|  | ||||
|     public function __construct( | ||||
| @@ -89,7 +92,8 @@ final class ActivityController extends AbstractController | ||||
|         LoggerInterface $logger, | ||||
|         SerializerInterface $serializer, | ||||
|         UserRepositoryInterface $userRepository, | ||||
|         CenterResolverManagerInterface $centerResolver | ||||
|         CenterResolverManagerInterface $centerResolver, | ||||
|         TranslatorInterface $translator | ||||
|     ) { | ||||
|         $this->activityACLAwareRepository = $activityACLAwareRepository; | ||||
|         $this->activityTypeRepository = $activityTypeRepository; | ||||
| @@ -105,6 +109,7 @@ final class ActivityController extends AbstractController | ||||
|         $this->serializer = $serializer; | ||||
|         $this->userRepository = $userRepository; | ||||
|         $this->centerResolver = $centerResolver; | ||||
|         $this->translator = $translator; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -160,7 +165,7 @@ final class ActivityController extends AbstractController | ||||
|                 $this->entityManager->remove($activity); | ||||
|                 $this->entityManager->flush(); | ||||
|  | ||||
|                 $this->addFlash('success', $this->get('translator') | ||||
|                 $this->addFlash('success', $this->translator | ||||
|                     ->trans('The activity has been successfully removed.')); | ||||
|  | ||||
|                 $params = $this->buildParamsToUrl($person, $accompanyingPeriod); | ||||
| @@ -245,7 +250,7 @@ final class ActivityController extends AbstractController | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
|             $this->addFlash('success', $this->get('translator')->trans('Success : activity updated!')); | ||||
|             $this->addFlash('success', $this->translator->trans('Success : activity updated!')); | ||||
|  | ||||
|             return $this->redirectToRoute('chill_activity_activity_show', $params); | ||||
|         } | ||||
| @@ -363,6 +368,7 @@ final class ActivityController extends AbstractController | ||||
|  | ||||
|         if ($person instanceof Person) { | ||||
|             $entity->setPerson($person); | ||||
|             $entity->getPersons()->add($person); | ||||
|         } | ||||
|  | ||||
|         if ($accompanyingPeriod instanceof AccompanyingPeriod) { | ||||
| @@ -472,7 +478,7 @@ final class ActivityController extends AbstractController | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
|             $this->addFlash('success', $this->get('translator')->trans('Success : activity created!')); | ||||
|             $this->addFlash('success', $this->translator->trans('Success : activity created!')); | ||||
|  | ||||
|             $params = $this->buildParamsToUrl($person, $accompanyingPeriod); | ||||
|  | ||||
| @@ -645,8 +651,8 @@ final class ActivityController extends AbstractController | ||||
|                 throw $this->createNotFoundException('Accompanying Period not found'); | ||||
|             } | ||||
|  | ||||
|             // TODO Add permission | ||||
|             // $this->denyAccessUnlessGranted('CHILL_PERSON_SEE', $person); | ||||
|         // TODO Add permission | ||||
|         // $this->denyAccessUnlessGranted('CHILL_PERSON_SEE', $person); | ||||
|         } else { | ||||
|             throw $this->createNotFoundException('Person or Accompanying Period not found'); | ||||
|         } | ||||
|   | ||||
| @@ -13,15 +13,24 @@ namespace Chill\ActivityBundle\Controller; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\ActivityReason; | ||||
| use Chill\ActivityBundle\Form\ActivityReasonType; | ||||
| use Chill\ActivityBundle\Repository\ActivityReasonRepository; | ||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
| use Symfony\Component\Form\Extension\Core\Type\SubmitType; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; | ||||
|  | ||||
| /** | ||||
|  * ActivityReason controller. | ||||
|  */ | ||||
| class ActivityReasonController extends AbstractController | ||||
| { | ||||
|     private ActivityReasonRepository $activityReasonRepository; | ||||
|  | ||||
|     public function __construct(ActivityReasonRepository $activityReasonRepository) | ||||
|     { | ||||
|         $this->activityReasonRepository = $activityReasonRepository; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Creates a new ActivityReason entity. | ||||
|      */ | ||||
| @@ -56,8 +65,8 @@ class ActivityReasonController extends AbstractController | ||||
|  | ||||
|         $entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->find($id); | ||||
|  | ||||
|         if (!$entity) { | ||||
|             throw $this->createNotFoundException('Unable to find ActivityReason entity.'); | ||||
|         if (null === $entity) { | ||||
|             throw new NotFoundHttpException('Unable to find ActivityReason entity.'); | ||||
|         } | ||||
|  | ||||
|         $editForm = $this->createEditForm($entity); | ||||
| @@ -75,7 +84,7 @@ class ActivityReasonController extends AbstractController | ||||
|     { | ||||
|         $em = $this->getDoctrine()->getManager(); | ||||
|  | ||||
|         $entities = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->findAll(); | ||||
|         $entities = $this->activityReasonRepository->findAll(); | ||||
|  | ||||
|         return $this->render('ChillActivityBundle:ActivityReason:index.html.twig', [ | ||||
|             'entities' => $entities, | ||||
|   | ||||
| @@ -257,12 +257,10 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac | ||||
|     /** | ||||
|      * Add a social issue. | ||||
|      * | ||||
|      * Note: the social issue consistency (the fact that only yougest social issues | ||||
|      * Note: the social issue consistency (the fact that only youngest social issues | ||||
|      * are kept) is processed by an entity listener: | ||||
|      * | ||||
|      * @see{\Chill\PersonBundle\AccompanyingPeriod\SocialIssueConsistency\AccompanyingPeriodSocialIssueConsistencyEntityListener} | ||||
|      * | ||||
|      * @return $this | ||||
|      */ | ||||
|     public function addSocialIssue(SocialIssue $socialIssue): self | ||||
|     { | ||||
| @@ -270,6 +268,10 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac | ||||
|             $this->socialIssues[] = $socialIssue; | ||||
|         } | ||||
|  | ||||
|         if ($this->getAccompanyingPeriod() !== null) { | ||||
|             $this->getAccompanyingPeriod()->addSocialIssue($socialIssue); | ||||
|         } | ||||
|  | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
| @@ -550,6 +552,10 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac | ||||
|     { | ||||
|         $this->accompanyingPeriod = $accompanyingPeriod; | ||||
|  | ||||
|         foreach ($this->getSocialIssues() as $issue) { | ||||
|             $this->accompanyingPeriod->addSocialIssue($issue); | ||||
|         } | ||||
|  | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -63,10 +63,8 @@ class ActivityReason | ||||
|  | ||||
|     /** | ||||
|      * Get category. | ||||
|      * | ||||
|      * @return ActivityReasonCategory | ||||
|      */ | ||||
|     public function getCategory() | ||||
|     public function getCategory(): ?ActivityReasonCategory | ||||
|     { | ||||
|         return $this->category; | ||||
|     } | ||||
| @@ -107,6 +105,11 @@ class ActivityReason | ||||
|         return $this->name; | ||||
|     } | ||||
|  | ||||
|     public function isActiveAndParentActive(): bool | ||||
|     { | ||||
|         return $this->active && null !== $this->getCategory() && $this->getCategory()->getActive(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Set active. | ||||
|      * | ||||
|   | ||||
| @@ -380,6 +380,7 @@ class ActivityType | ||||
|             throw new InvalidArgumentException('Field "' . $field . '" not found'); | ||||
|         } | ||||
|  | ||||
|         /** @phpstan-ignore-next-line  */ | ||||
|         return $this->{$property}; | ||||
|     } | ||||
|  | ||||
| @@ -538,6 +539,7 @@ class ActivityType | ||||
|             throw new InvalidArgumentException('Field "' . $field . '" not found'); | ||||
|         } | ||||
|  | ||||
|         /** @phpstan-ignore-next-line  */ | ||||
|         return self::FIELD_REQUIRED === $this->{$property}; | ||||
|     } | ||||
|  | ||||
| @@ -549,6 +551,7 @@ class ActivityType | ||||
|             throw new InvalidArgumentException('Field "' . $field . '" not found'); | ||||
|         } | ||||
|  | ||||
|         /** @phpstan-ignore-next-line  */ | ||||
|         return self::FIELD_INVISIBLE !== $this->{$property}; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,68 @@ | ||||
| <?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\Export\Aggregator\ACPAggregators; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\Activity; | ||||
| use Chill\MainBundle\Export\AggregatorInterface; | ||||
| use Chill\PersonBundle\Export\Declarations; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class ByActivityNumberAggregator implements AggregatorInterface | ||||
| { | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data): void | ||||
|     { | ||||
|         $qb | ||||
|             ->addSelect('(SELECT COUNT(activity.id) FROM ' . Activity::class . ' activity WHERE activity.accompanyingPeriod = acp) AS activity_by_number_aggregator') | ||||
|             ->addGroupBy('activity_by_number_aggregator'); | ||||
|     } | ||||
|  | ||||
|     public function applyOn(): string | ||||
|     { | ||||
|         return Declarations::ACP_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder): void | ||||
|     { | ||||
|         // No form needed | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         return static function ($value) { | ||||
|             if ('_header' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             return $value; | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['activity_by_number_aggregator']; | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'Group acp by activity number'; | ||||
|     } | ||||
| } | ||||
| @@ -60,7 +60,7 @@ class ByCreatorAggregator implements AggregatorInterface | ||||
|                 return 'Created by'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -65,7 +65,7 @@ class BySocialActionAggregator implements AggregatorInterface | ||||
|                 return 'Social action'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -65,7 +65,7 @@ class BySocialIssueAggregator implements AggregatorInterface | ||||
|                 return 'Social issues'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -65,7 +65,7 @@ class ByThirdpartyAggregator implements AggregatorInterface | ||||
|                 return 'Accepted thirdparty'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -65,7 +65,7 @@ class CreatorScopeAggregator implements AggregatorInterface | ||||
|                 return 'Scope'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -58,7 +58,8 @@ class DateAggregator implements AggregatorInterface | ||||
|                 break; | ||||
|  | ||||
|             case 'year': | ||||
|                 $fmt = 'YYYY'; $order = 'DESC'; | ||||
|                 $fmt = 'YYYY'; | ||||
|                 $order = 'DESC'; | ||||
|  | ||||
|                 break; // order DESC does not works ! | ||||
|  | ||||
|   | ||||
| @@ -65,11 +65,13 @@ class LocationTypeAggregator implements AggregatorInterface | ||||
|                 return 'Accepted locationtype'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             $lt = $this->locationTypeRepository->find($value); | ||||
|             if (null === $lt = $this->locationTypeRepository->find($value)) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             return $this->translatableStringHelper->localize( | ||||
|                 $lt->getTitle() | ||||
|   | ||||
| @@ -44,7 +44,7 @@ class ActivityTypeAggregator implements AggregatorInterface | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         if (!in_array('acttype', $qb->getAllAliases(), true)) { | ||||
|             $qb->join('activity.activityType', 'acttype'); | ||||
|             $qb->leftJoin('activity.activityType', 'acttype'); | ||||
|         } | ||||
|  | ||||
|         $qb->addSelect(sprintf('IDENTITY(activity.activityType) AS %s', self::KEY)); | ||||
| @@ -71,7 +71,7 @@ class ActivityTypeAggregator implements AggregatorInterface | ||||
|                 return 'Activity type'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -66,7 +66,7 @@ class ActivityUserAggregator implements AggregatorInterface | ||||
|                 return 'Activity user'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -64,7 +64,7 @@ class ActivityUsersAggregator implements AggregatorInterface | ||||
|                 return 'Activity users'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -63,7 +63,7 @@ class ActivityUsersJobAggregator implements \Chill\MainBundle\Export\AggregatorI | ||||
|                 return 'Users \'s job'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -63,7 +63,7 @@ class ActivityUsersScopeAggregator implements \Chill\MainBundle\Export\Aggregato | ||||
|                 return 'Users \'s scope'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value) { | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -134,6 +134,10 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali | ||||
|                 return 'reasons' === $data['level'] ? 'Group by reasons' : 'Group by categories of reason'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             switch ($data['level']) { | ||||
|                 case 'reasons': | ||||
|                     $r = $this->activityReasonRepository->find($value); | ||||
|   | ||||
| @@ -0,0 +1,84 @@ | ||||
| <?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\Export\Aggregator; | ||||
|  | ||||
| use Chill\ActivityBundle\Export\Declarations; | ||||
| use Chill\MainBundle\Export\AggregatorInterface; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use LogicException; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class SentReceivedAggregator implements AggregatorInterface | ||||
| { | ||||
|     private TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct(TranslatorInterface $translator) | ||||
|     { | ||||
|         $this->translator = $translator; | ||||
|     } | ||||
|  | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data): void | ||||
|     { | ||||
|         $qb->addSelect('activity.sentReceived AS activity_sentreceived_aggregator') | ||||
|             ->addGroupBy('activity_sentreceived_aggregator'); | ||||
|     } | ||||
|  | ||||
|     public function applyOn(): string | ||||
|     { | ||||
|         return Declarations::ACTIVITY; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder): void | ||||
|     { | ||||
|         // No form needed | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data): callable | ||||
|     { | ||||
|         return function (?string $value): string { | ||||
|             if ('_header' === $value) { | ||||
|                 return 'export.aggregator.activity.by_sent_received.Sent or received'; | ||||
|             } | ||||
|  | ||||
|             switch ($value) { | ||||
|                 case null: | ||||
|                 case '': | ||||
|                     return ''; | ||||
|  | ||||
|                 case 'sent': | ||||
|                     return $this->translator->trans('export.aggregator.activity.by_sent_received.is sent'); | ||||
|  | ||||
|                 case 'received': | ||||
|                     return $this->translator->trans('export.aggregator.activity.by_sent_received.is received'); | ||||
|  | ||||
|                 default: | ||||
|                     throw new LogicException(sprintf('The value %s is not valid', $value)); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['activity_sentreceived_aggregator']; | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'export.aggregator.activity.by_sent_received.Group activity by sentreceived'; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,165 @@ | ||||
| <?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\Export\Export\LinkedToACP; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\Activity; | ||||
| use Chill\ActivityBundle\Export\Export\ListActivityHelper; | ||||
| use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter; | ||||
| use Chill\MainBundle\Entity\Scope; | ||||
| use Chill\MainBundle\Export\GroupedExportInterface; | ||||
| use Chill\MainBundle\Export\Helper\TranslatableStringExportLabelHelper; | ||||
| use Chill\MainBundle\Export\ListInterface; | ||||
| use Chill\PersonBundle\Entity\Person\PersonCenterHistory; | ||||
| use Doctrine\ORM\EntityManagerInterface; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class ListActivity implements ListInterface, GroupedExportInterface | ||||
| { | ||||
|     private EntityManagerInterface $entityManager; | ||||
|  | ||||
|     private ListActivityHelper $helper; | ||||
|  | ||||
|     private TranslatableStringExportLabelHelper $translatableStringExportLabelHelper; | ||||
|  | ||||
|     public function __construct( | ||||
|         ListActivityHelper $helper, | ||||
|         EntityManagerInterface $entityManager, | ||||
|         TranslatableStringExportLabelHelper $translatableStringExportLabelHelper | ||||
|     ) { | ||||
|         $this->helper = $helper; | ||||
|         $this->entityManager = $entityManager; | ||||
|         $this->translatableStringExportLabelHelper = $translatableStringExportLabelHelper; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         $this->helper->buildForm($builder); | ||||
|     } | ||||
|  | ||||
|     public function getAllowedFormattersTypes() | ||||
|     { | ||||
|         return $this->helper->getAllowedFormattersTypes(); | ||||
|     } | ||||
|  | ||||
|     public function getDescription() | ||||
|     { | ||||
|         return ListActivityHelper::MSG_KEY . 'List activities linked to an accompanying course'; | ||||
|     } | ||||
|  | ||||
|     public function getGroup(): string | ||||
|     { | ||||
|         return 'Exports of activities linked to an accompanying period'; | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         switch ($key) { | ||||
|             case 'acpId': | ||||
|                 return static function ($value) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return ListActivityHelper::MSG_KEY . 'accompanying course id'; | ||||
|                     } | ||||
|  | ||||
|                     return $value ?? ''; | ||||
|                 }; | ||||
|  | ||||
|             case 'scopesNames': | ||||
|                 return $this->translatableStringExportLabelHelper->getLabelMulti($key, $values, ListActivityHelper::MSG_KEY . 'course circles'); | ||||
|  | ||||
|             default: | ||||
|                 return $this->helper->getLabels($key, $values, $data); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data) | ||||
|     { | ||||
|         return | ||||
|             array_merge( | ||||
|                 $this->helper->getQueryKeys($data), | ||||
|                 [ | ||||
|                     'acpId', | ||||
|                     'scopesNames', | ||||
|                 ] | ||||
|             ); | ||||
|     } | ||||
|  | ||||
|     public function getResult($query, $data) | ||||
|     { | ||||
|         return $this->helper->getResult($query, $data); | ||||
|     } | ||||
|  | ||||
|     public function getTitle() | ||||
|     { | ||||
|         return ListActivityHelper::MSG_KEY . 'List activity linked to a course'; | ||||
|     } | ||||
|  | ||||
|     public function getType() | ||||
|     { | ||||
|         return $this->helper->getType(); | ||||
|     } | ||||
|  | ||||
|     public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) | ||||
|     { | ||||
|         $centers = array_map(static function ($el) { | ||||
|             return $el['center']; | ||||
|         }, $acl); | ||||
|  | ||||
|         $qb = $this->entityManager->createQueryBuilder(); | ||||
|  | ||||
|         $qb | ||||
|             ->distinct() | ||||
|             ->from(Activity::class, 'activity') | ||||
|             ->join('activity.accompanyingPeriod', 'acp') | ||||
|             ->leftJoin('acp.participations', 'acppart') | ||||
|             ->leftJoin('acppart.person', 'person') | ||||
|             ->andWhere('acppart.startDate != acppart.endDate OR acppart.endDate IS NULL') | ||||
|             ->andWhere( | ||||
|                 $qb->expr()->exists( | ||||
|                     'SELECT 1 | ||||
|                     FROM ' . PersonCenterHistory::class . ' acl_count_person_history | ||||
|                     WHERE acl_count_person_history.person = person | ||||
|                     AND acl_count_person_history.center IN (:authorized_centers) | ||||
|                     ' | ||||
|                 ) | ||||
|             ) | ||||
|             // some grouping are necessary | ||||
|             ->addGroupBy('acp.id') | ||||
|             ->addOrderBy('activity.date') | ||||
|             ->addOrderBy('activity.id') | ||||
|             ->setParameter('authorized_centers', $centers); | ||||
|  | ||||
|         $this->helper->addSelect($qb); | ||||
|  | ||||
|         // add select for this step | ||||
|         $qb | ||||
|             ->addSelect('acp.id AS acpId') | ||||
|             ->addSelect('(SELECT AGGREGATE(acpScope.name) FROM ' . Scope::class . ' acpScope WHERE acpScope MEMBER OF acp.scopes) AS scopesNames') | ||||
|             ->addGroupBy('scopesNames'); | ||||
|  | ||||
|         return $qb; | ||||
|     } | ||||
|  | ||||
|     public function requiredRole(): string | ||||
|     { | ||||
|         return ActivityStatsVoter::LISTS; | ||||
|     } | ||||
|  | ||||
|     public function supportsModifiers() | ||||
|     { | ||||
|         return array_merge( | ||||
|             $this->helper->supportsModifiers(), | ||||
|             [ | ||||
|                 \Chill\PersonBundle\Export\Declarations::ACP_TYPE, | ||||
|             ] | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| @@ -124,7 +124,7 @@ class ListActivity implements ListInterface, GroupedExportInterface | ||||
|                         return 'attendee'; | ||||
|                     } | ||||
|  | ||||
|                     return $value ? 1 : 0; | ||||
|                     return $value ? 'X' : ''; | ||||
|                 }; | ||||
|  | ||||
|             case 'list_reasons': | ||||
| @@ -210,10 +210,20 @@ class ListActivity implements ListInterface, GroupedExportInterface | ||||
|  | ||||
|         $qb | ||||
|             ->from('ChillActivityBundle:Activity', 'activity') | ||||
|             ->join('activity.person', 'person') | ||||
|             ->join('actperson.center', 'actcenter') | ||||
|             ->andWhere('actcenter IN (:authorized_centers)') | ||||
|             ->setParameter('authorized_centers', $centers); | ||||
|             ->join('activity.person', 'actperson') | ||||
|             ->join('actperson.centerHistory', 'centerHistory'); | ||||
|  | ||||
|         $qb->where( | ||||
|             $qb->expr()->andX( | ||||
|                 $qb->expr()->lte('centerHistory.startDate', 'activity.date'), | ||||
|                 $qb->expr()->orX( | ||||
|                     $qb->expr()->isNull('centerHistory.endDate'), | ||||
|                     $qb->expr()->gt('centerHistory.endDate', 'activity.date') | ||||
|                 ) | ||||
|             ) | ||||
|         ) | ||||
|             ->andWhere($qb->expr()->in('centerHistory.center', ':centers')) | ||||
|             ->setParameter('centers', $centers); | ||||
|  | ||||
|         foreach ($this->fields as $f) { | ||||
|             if (in_array($f, $data['fields'], true)) { | ||||
| @@ -224,17 +234,17 @@ class ListActivity implements ListInterface, GroupedExportInterface | ||||
|                         break; | ||||
|  | ||||
|                     case 'person_firstname': | ||||
|                         $qb->addSelect('person.firstName AS person_firstname'); | ||||
|                         $qb->addSelect('actperson.firstName AS person_firstname'); | ||||
|  | ||||
|                         break; | ||||
|  | ||||
|                     case 'person_lastname': | ||||
|                         $qb->addSelect('person.lastName AS person_lastname'); | ||||
|                         $qb->addSelect('actperson.lastName AS person_lastname'); | ||||
|  | ||||
|                         break; | ||||
|  | ||||
|                     case 'person_id': | ||||
|                         $qb->addSelect('person.id AS person_id'); | ||||
|                         $qb->addSelect('actperson.id AS person_id'); | ||||
|  | ||||
|                         break; | ||||
|  | ||||
| @@ -251,7 +261,7 @@ class ListActivity implements ListInterface, GroupedExportInterface | ||||
|                         break; | ||||
|  | ||||
|                     case 'type_name': | ||||
|                         $qb->join('activity.type', 'type'); | ||||
|                         $qb->join('activity.activityType', 'type'); | ||||
|                         $qb->addSelect('type.name AS type_name'); | ||||
|  | ||||
|                         break; | ||||
| @@ -263,6 +273,11 @@ class ListActivity implements ListInterface, GroupedExportInterface | ||||
|  | ||||
|                         break; | ||||
|  | ||||
|                     case 'attendee': | ||||
|                         $qb->addSelect('IDENTITY(activity.attendee) AS attendee'); | ||||
|  | ||||
|                         break; | ||||
|  | ||||
|                     default: | ||||
|                         $qb->addSelect(sprintf('activity.%s as %s', $f, $f)); | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,269 @@ | ||||
| <?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\Export\Export; | ||||
|  | ||||
| use Chill\ActivityBundle\Export\Declarations; | ||||
| use Chill\ActivityBundle\Repository\ActivityPresenceRepositoryInterface; | ||||
| use Chill\ActivityBundle\Repository\ActivityTypeRepositoryInterface; | ||||
| use Chill\MainBundle\Export\FormatterInterface; | ||||
| use Chill\MainBundle\Export\Helper\DateTimeHelper; | ||||
| use Chill\MainBundle\Export\Helper\TranslatableStringExportLabelHelper; | ||||
| use Chill\MainBundle\Export\Helper\UserHelper; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Chill\PersonBundle\Export\Helper\LabelPersonHelper; | ||||
| use Chill\ThirdPartyBundle\Export\Helper\LabelThirdPartyHelper; | ||||
| use Doctrine\ORM\AbstractQuery; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use LogicException; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
| use const SORT_NUMERIC; | ||||
|  | ||||
| class ListActivityHelper | ||||
| { | ||||
|     public const MSG_KEY = 'export.list.activity.'; | ||||
|  | ||||
|     private ActivityPresenceRepositoryInterface $activityPresenceRepository; | ||||
|  | ||||
|     private ActivityTypeRepositoryInterface $activityTypeRepository; | ||||
|  | ||||
|     private DateTimeHelper $dateTimeHelper; | ||||
|  | ||||
|     private LabelPersonHelper $labelPersonHelper; | ||||
|  | ||||
|     private LabelThirdPartyHelper $labelThirdPartyHelper; | ||||
|  | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
|  | ||||
|     private TranslatableStringExportLabelHelper $translatableStringLabelHelper; | ||||
|  | ||||
|     private TranslatorInterface $translator; | ||||
|  | ||||
|     private UserHelper $userHelper; | ||||
|  | ||||
|     public function __construct( | ||||
|         ActivityPresenceRepositoryInterface $activityPresenceRepository, | ||||
|         ActivityTypeRepositoryInterface $activityTypeRepository, | ||||
|         DateTimeHelper $dateTimeHelper, | ||||
|         LabelPersonHelper $labelPersonHelper, | ||||
|         LabelThirdPartyHelper $labelThirdPartyHelper, | ||||
|         TranslatorInterface $translator, | ||||
|         TranslatableStringHelperInterface $translatableStringHelper, | ||||
|         TranslatableStringExportLabelHelper $translatableStringLabelHelper, | ||||
|         UserHelper $userHelper | ||||
|     ) { | ||||
|         $this->activityPresenceRepository = $activityPresenceRepository; | ||||
|         $this->activityTypeRepository = $activityTypeRepository; | ||||
|         $this->dateTimeHelper = $dateTimeHelper; | ||||
|         $this->labelPersonHelper = $labelPersonHelper; | ||||
|         $this->labelThirdPartyHelper = $labelThirdPartyHelper; | ||||
|         $this->translator = $translator; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|         $this->translatableStringLabelHelper = $translatableStringLabelHelper; | ||||
|         $this->userHelper = $userHelper; | ||||
|     } | ||||
|  | ||||
|     public function addSelect(QueryBuilder $qb): void | ||||
|     { | ||||
|         $qb | ||||
|             ->addSelect('activity.id AS id') | ||||
|             ->addSelect('activity.date') | ||||
|             ->addSelect('IDENTITY(activity.activityType) AS typeName') | ||||
|             ->leftJoin('activity.reasons', 'reasons') | ||||
|             ->addSelect('AGGREGATE(reasons.name) AS listReasons') | ||||
|             ->leftJoin('activity.persons', 'actPerson') | ||||
|             ->addSelect('AGGREGATE(actPerson.id) AS personsIds') | ||||
|             ->addSelect('AGGREGATE(actPerson.id) AS personsNames') | ||||
|             ->leftJoin('activity.users', 'users_u') | ||||
|             ->addSelect('AGGREGATE(users_u.id) AS usersIds') | ||||
|             ->addSelect('AGGREGATE(users_u.id) AS usersNames') | ||||
|             ->leftJoin('activity.thirdParties', 'thirdparty') | ||||
|             ->addSelect('AGGREGATE(thirdparty.id) AS thirdPartiesIds') | ||||
|             ->addSelect('AGGREGATE(thirdparty.id) AS thirdPartiesNames') | ||||
|             ->addSelect('IDENTITY(activity.attendee) AS attendeeName') | ||||
|             ->addSelect('activity.durationTime') | ||||
|             ->addSelect('activity.travelTime') | ||||
|             ->addSelect('activity.emergency') | ||||
|             ->leftJoin('activity.location', 'location') | ||||
|             ->addSelect('location.name AS locationName') | ||||
|             ->addSelect('activity.sentReceived') | ||||
|             ->addSelect('IDENTITY(activity.createdBy) AS createdBy') | ||||
|             ->addSelect('activity.createdAt') | ||||
|             ->addSelect('IDENTITY(activity.updatedBy) AS updatedBy') | ||||
|             ->addSelect('activity.updatedAt') | ||||
|             ->addGroupBy('activity.id') | ||||
|             ->addGroupBy('location.id'); | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     public function getAllowedFormattersTypes() | ||||
|     { | ||||
|         return [FormatterInterface::TYPE_LIST]; | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         switch ($key) { | ||||
|             case 'createdAt': | ||||
|             case 'updatedAt': | ||||
|                 return $this->dateTimeHelper->getLabel($key); | ||||
|  | ||||
|             case 'createdBy': | ||||
|             case 'updatedBy': | ||||
|                 return $this->userHelper->getLabel($key, $values, $key); | ||||
|  | ||||
|             case 'date': | ||||
|                 return $this->dateTimeHelper->getLabel(self::MSG_KEY . $key); | ||||
|  | ||||
|             case 'attendeeName': | ||||
|                 return function ($value) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return 'Attendee'; | ||||
|                     } | ||||
|  | ||||
|                     if (null === $value || null === $presence = $this->activityPresenceRepository->find($value)) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     return $this->translatableStringHelper->localize($presence->getName()); | ||||
|                 }; | ||||
|  | ||||
|             case 'listReasons': | ||||
|                 return $this->translatableStringLabelHelper->getLabelMulti($key, $values, 'Activity Reasons'); | ||||
|  | ||||
|             case 'typeName': | ||||
|                 return function ($value) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return 'Activity type'; | ||||
|                     } | ||||
|  | ||||
|                     if (null === $value || null === $type = $this->activityTypeRepository->find($value)) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     return $this->translatableStringHelper->localize($type->getName()); | ||||
|                 }; | ||||
|  | ||||
|             case 'usersNames': | ||||
|                 return $this->userHelper->getLabelMulti($key, $values, self::MSG_KEY . 'users name'); | ||||
|  | ||||
|             case 'usersIds': | ||||
|             case 'thirdPartiesIds': | ||||
|             case 'personsIds': | ||||
|                 return static function ($value) use ($key) { | ||||
|                     if ('_header' === $value) { | ||||
|                         switch ($key) { | ||||
|                             case 'usersIds': | ||||
|                                 return self::MSG_KEY . 'users ids'; | ||||
|  | ||||
|                             case 'thirdPartiesIds': | ||||
|                                 return self::MSG_KEY . 'third parties ids'; | ||||
|  | ||||
|                             case 'personsIds': | ||||
|                                 return self::MSG_KEY . 'persons ids'; | ||||
|  | ||||
|                             default: | ||||
|                                 throw new LogicException('key not supported'); | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                     $decoded = json_decode($value); | ||||
|  | ||||
|                     return implode( | ||||
|                         '|', | ||||
|                         array_unique( | ||||
|                             array_filter($decoded, static fn (?int $id) => null !== $id), | ||||
|                             SORT_NUMERIC | ||||
|                         ) | ||||
|                     ); | ||||
|                 }; | ||||
|  | ||||
|             case 'personsNames': | ||||
|                 return $this->labelPersonHelper->getLabelMulti($key, $values, self::MSG_KEY . 'persons name'); | ||||
|  | ||||
|             case 'thirdPartiesNames': | ||||
|                 return $this->labelThirdPartyHelper->getLabelMulti($key, $values, self::MSG_KEY . 'thirds parties'); | ||||
|  | ||||
|             case 'sentReceived': | ||||
|                 return function ($value) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return self::MSG_KEY . 'sent received'; | ||||
|                     } | ||||
|  | ||||
|                     if (null === $value) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     return $this->translator->trans($value); | ||||
|                 }; | ||||
|  | ||||
|             default: | ||||
|                 return function ($value) use ($key) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return self::MSG_KEY . $key; | ||||
|                     } | ||||
|  | ||||
|                     if (null === $value) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     return $this->translator->trans($value); | ||||
|                 }; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data) | ||||
|     { | ||||
|         return [ | ||||
|             'id', | ||||
|             'date', | ||||
|             'typeName', | ||||
|             'listReasons', | ||||
|             'attendeeName', | ||||
|             'durationTime', | ||||
|             'travelTime', | ||||
|             'emergency', | ||||
|             'locationName', | ||||
|             'sentReceived', | ||||
|             'personsIds', | ||||
|             'personsNames', | ||||
|             'usersIds', | ||||
|             'usersNames', | ||||
|             'thirdPartiesIds', | ||||
|             'thirdPartiesNames', | ||||
|             'createdBy', | ||||
|             'createdAt', | ||||
|             'updatedBy', | ||||
|             'updatedAt', | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     public function getResult($query, $data) | ||||
|     { | ||||
|         return $query->getQuery()->getResult(AbstractQuery::HYDRATE_SCALAR); | ||||
|     } | ||||
|  | ||||
|     public function getType(): string | ||||
|     { | ||||
|         return Declarations::ACTIVITY; | ||||
|     } | ||||
|  | ||||
|     public function supportsModifiers() | ||||
|     { | ||||
|         return [ | ||||
|             Declarations::ACTIVITY, | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
| @@ -17,11 +17,9 @@ use Chill\ActivityBundle\Repository\ActivityTypeRepositoryInterface; | ||||
| use Chill\MainBundle\Export\FilterInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Chill\PersonBundle\Export\Declarations; | ||||
| use Doctrine\ORM\Query\Expr; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
| use function in_array; | ||||
|  | ||||
| class ActivityTypeFilter implements FilterInterface | ||||
| { | ||||
| @@ -44,14 +42,13 @@ class ActivityTypeFilter implements FilterInterface | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         if (!in_array('activity', $qb->getAllAliases(), true)) { | ||||
|             $qb->join(Activity::class, 'activity', Expr\Join::WITH, 'activity.accompanyingPeriod = acp'); | ||||
|         } | ||||
|  | ||||
|         $clause = $qb->expr()->in('activity.activityType', ':selected_activity_types'); | ||||
|  | ||||
|         $qb->andWhere($clause); | ||||
|         $qb->setParameter('selected_activity_types', $data['types']); | ||||
|         $qb->andWhere( | ||||
|             $qb->expr()->exists( | ||||
|                 'SELECT 1 FROM ' . Activity::class . ' act_type_filter_activity | ||||
|                 WHERE act_type_filter_activity.activityType IN (:act_type_filter_activity_types) AND act_type_filter_activity.accompanyingPeriod = acp' | ||||
|             ) | ||||
|         ); | ||||
|         $qb->setParameter('act_type_filter_activity_types', $data['accepted_activitytypes']); | ||||
|     } | ||||
|  | ||||
|     public function applyOn() | ||||
|   | ||||
| @@ -0,0 +1,57 @@ | ||||
| <?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\Export\Filter\ACPFilters; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\Activity; | ||||
| use Chill\MainBundle\Export\FilterInterface; | ||||
| use Chill\PersonBundle\Export\Declarations; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class HasNoActivityFilter implements FilterInterface | ||||
| { | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         $qb | ||||
|             ->andWhere(' | ||||
|                 NOT EXISTS ( | ||||
|                     SELECT 1 FROM ' . Activity::class . ' activity | ||||
|                     WHERE activity.accompanyingPeriod = acp | ||||
|                 ) | ||||
|             '); | ||||
|     } | ||||
|  | ||||
|     public function applyOn(): string | ||||
|     { | ||||
|         return Declarations::ACP_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         //no form needed | ||||
|     } | ||||
|  | ||||
|     public function describeAction($data, $format = 'string'): array | ||||
|     { | ||||
|         return ['Filtered acp which has no activities', []]; | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'Filter acp which has no activity'; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,74 @@ | ||||
| <?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\Export\Filter\ACPFilters; | ||||
|  | ||||
| use Chill\ActivityBundle\Export\Declarations; | ||||
| use Chill\MainBundle\Export\FilterInterface; | ||||
| use Chill\MainBundle\Form\Type\PickUserLocationType; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelper; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class LocationFilter implements FilterInterface | ||||
| { | ||||
|     private TranslatableStringHelper $translatableStringHelper; | ||||
|  | ||||
|     public function __construct(TranslatableStringHelper $translatableStringHelper) | ||||
|     { | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|     } | ||||
|  | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         $qb->andWhere( | ||||
|             $qb->expr()->in('activity.location', ':location') | ||||
|         ); | ||||
|  | ||||
|         $qb->setParameter('location', $data['accepted_location']); | ||||
|     } | ||||
|  | ||||
|     public function applyOn(): string | ||||
|     { | ||||
|         return Declarations::ACTIVITY_ACP; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         $builder->add('accepted_location', PickUserLocationType::class, [ | ||||
|             'multiple' => true, | ||||
|             'label' => 'pick location', | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     public function describeAction($data, $format = 'string'): array | ||||
|     { | ||||
|         $locations = []; | ||||
|  | ||||
|         foreach ($data['accepted_location'] as $location) { | ||||
|             $locations[] = $location->getName(); | ||||
|         } | ||||
|  | ||||
|         return ['Filtered activity by location: only %locations%', [ | ||||
|             '%locations%' => implode(', ', $locations), | ||||
|         ]]; | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'Filter activity by location'; | ||||
|     } | ||||
| } | ||||
| @@ -13,9 +13,10 @@ namespace Chill\ActivityBundle\Export\Filter; | ||||
|  | ||||
| use Chill\ActivityBundle\Export\Declarations; | ||||
| use Chill\MainBundle\Export\FilterInterface; | ||||
| use Chill\MainBundle\Form\Type\ChillDateType; | ||||
| use Chill\MainBundle\Form\Type\Export\FilterType; | ||||
| use DateTime; | ||||
| use Chill\MainBundle\Form\Type\PickRollingDateType; | ||||
| use Chill\MainBundle\Service\RollingDate\RollingDate; | ||||
| use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; | ||||
| use Doctrine\ORM\Query\Expr; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
| @@ -28,9 +29,14 @@ class ActivityDateFilter implements FilterInterface | ||||
| { | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct(TranslatorInterface $translator) | ||||
|     { | ||||
|     private RollingDateConverterInterface $rollingDateConverter; | ||||
|  | ||||
|     public function __construct( | ||||
|         TranslatorInterface $translator, | ||||
|         RollingDateConverterInterface $rollingDateConverter | ||||
|     ) { | ||||
|         $this->translator = $translator; | ||||
|         $this->rollingDateConverter = $rollingDateConverter; | ||||
|     } | ||||
|  | ||||
|     public function addRole(): ?string | ||||
| @@ -54,8 +60,14 @@ class ActivityDateFilter implements FilterInterface | ||||
|         } | ||||
|  | ||||
|         $qb->add('where', $where); | ||||
|         $qb->setParameter('date_from', $data['date_from']); | ||||
|         $qb->setParameter('date_to', $data['date_to']); | ||||
|         $qb->setParameter( | ||||
|             'date_from', | ||||
|             $this->rollingDateConverter->convert($data['date_from']) | ||||
|         ); | ||||
|         $qb->setParameter( | ||||
|             'date_to', | ||||
|             $this->rollingDateConverter->convert($data['date_to']) | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function applyOn(): string | ||||
| @@ -66,13 +78,13 @@ class ActivityDateFilter implements FilterInterface | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         $builder | ||||
|             ->add('date_from', ChillDateType::class, [ | ||||
|             ->add('date_from', PickRollingDateType::class, [ | ||||
|                 'label' => 'Activities after this date', | ||||
|                 'data' => new DateTime(), | ||||
|                 'data' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START), | ||||
|             ]) | ||||
|             ->add('date_to', ChillDateType::class, [ | ||||
|             ->add('date_to', PickRollingDateType::class, [ | ||||
|                 'label' => 'Activities before this date', | ||||
|                 'data' => new DateTime(), | ||||
|                 'data' => new RollingDate(RollingDate::T_TODAY), | ||||
|             ]); | ||||
|  | ||||
|         $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) { | ||||
| @@ -121,8 +133,8 @@ class ActivityDateFilter implements FilterInterface | ||||
|         return [ | ||||
|             'Filtered by date of activity: only between %date_from% and %date_to%', | ||||
|             [ | ||||
|                 '%date_from%' => $data['date_from']->format('d-m-Y'), | ||||
|                 '%date_to%' => $data['date_to']->format('d-m-Y'), | ||||
|                 '%date_from%' => $this->rollingDateConverter->convert($data['date_from'])->format('d-m-Y'), | ||||
|                 '%date_to%' => $this->rollingDateConverter->convert($data['date_to'])->format('d-m-Y'), | ||||
|             ], | ||||
|         ]; | ||||
|     } | ||||
|   | ||||
| @@ -50,7 +50,7 @@ class ActivityReasonFilter implements ExportElementValidatedInterface, FilterInt | ||||
|     { | ||||
|         $where = $qb->getDQLPart('where'); | ||||
|         $join = $qb->getDQLPart('join'); | ||||
|         $clause = $qb->expr()->in('reasons', ':selected_activity_reasons'); | ||||
|         $clause = $qb->expr()->in('actreasons', ':selected_activity_reasons'); | ||||
|  | ||||
|         if (!in_array('actreasons', $qb->getAllAliases(), true)) { | ||||
|             $qb->join('activity.reasons', 'actreasons'); | ||||
| @@ -77,6 +77,7 @@ class ActivityReasonFilter implements ExportElementValidatedInterface, FilterInt | ||||
|             'class' => ActivityReason::class, | ||||
|             'choice_label' => fn (ActivityReason $reason) => $this->translatableStringHelper->localize($reason->getName()), | ||||
|             'group_by' => fn (ActivityReason $reason) => $this->translatableStringHelper->localize($reason->getCategory()->getName()), | ||||
|             'attr' => ['class' => 'select2 '], | ||||
|             'multiple' => true, | ||||
|             'expanded' => false, | ||||
|         ]); | ||||
|   | ||||
| @@ -39,9 +39,9 @@ class UsersJobFilter implements FilterInterface | ||||
|         $qb | ||||
|             ->andWhere( | ||||
|                 $qb->expr()->exists( | ||||
|                 'SELECT 1 FROM ' . Activity::class . ' activity_users_job_filter_act | ||||
|                     'SELECT 1 FROM ' . Activity::class . ' activity_users_job_filter_act | ||||
|                 JOIN activity_users_job_filter_act.users users WHERE users.userJob IN (:activity_users_job_filter_jobs) AND  activity_users_job_filter_act = activity ' | ||||
|             ) | ||||
|                 ) | ||||
|             ) | ||||
|             ->setParameter('activity_users_job_filter_jobs', $data['jobs']); | ||||
|     } | ||||
|   | ||||
| @@ -11,7 +11,8 @@ declare(strict_types=1); | ||||
|  | ||||
| namespace Chill\ActivityBundle\Form; | ||||
|  | ||||
| use Chill\ActivityBundle\Form\Type\TranslatableActivityReasonCategory; | ||||
| use Chill\ActivityBundle\Entity\ActivityReason; | ||||
| use Chill\ActivityBundle\Form\Type\TranslatableActivityReasonCategoryType; | ||||
| use Chill\MainBundle\Form\Type\TranslatableStringFormType; | ||||
| use Symfony\Component\Form\AbstractType; | ||||
| use Symfony\Component\Form\Extension\Core\Type\CheckboxType; | ||||
| @@ -25,13 +26,13 @@ class ActivityReasonType extends AbstractType | ||||
|         $builder | ||||
|             ->add('name', TranslatableStringFormType::class) | ||||
|             ->add('active', CheckboxType::class, ['required' => false]) | ||||
|             ->add('category', TranslatableActivityReasonCategory::class); | ||||
|             ->add('category', TranslatableActivityReasonCategoryType::class); | ||||
|     } | ||||
|  | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     { | ||||
|         $resolver->setDefaults([ | ||||
|             'data_class' => 'Chill\ActivityBundle\Entity\ActivityReason', | ||||
|             'data_class' => ActivityReason::class, | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -13,7 +13,7 @@ namespace Chill\ActivityBundle\Form; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\Activity; | ||||
| use Chill\ActivityBundle\Entity\ActivityPresence; | ||||
| use Chill\ActivityBundle\Entity\ActivityReason; | ||||
| use Chill\ActivityBundle\Form\Type\PickActivityReasonType; | ||||
| use Chill\ActivityBundle\Security\Authorization\ActivityVoter; | ||||
| use Chill\DocStoreBundle\Form\StoredObjectType; | ||||
| use Chill\MainBundle\Entity\Center; | ||||
| @@ -229,19 +229,10 @@ class ActivityType extends AbstractType | ||||
|         } | ||||
|  | ||||
|         if ($activityType->isVisible('reasons')) { | ||||
|             $builder->add('reasons', EntityType::class, [ | ||||
|             $builder->add('reasons', PickActivityReasonType::class, [ | ||||
|                 'label' => $activityType->getLabel('reasons'), | ||||
|                 'required' => $activityType->isRequired('reasons'), | ||||
|                 'class' => ActivityReason::class, | ||||
|                 'multiple' => true, | ||||
|                 'choice_label' => function (ActivityReason $activityReason) { | ||||
|                     return $this->translatableStringHelper->localize($activityReason->getName()); | ||||
|                 }, | ||||
|                 'attr' => ['class' => 'select2 '], | ||||
|                 'query_builder' => static function (EntityRepository $er) { | ||||
|                     return $er->createQueryBuilder('a') | ||||
|                         ->where('a.active = true'); | ||||
|                 }, | ||||
|             ]); | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -12,9 +12,9 @@ declare(strict_types=1); | ||||
| namespace Chill\ActivityBundle\Form\Type; | ||||
| 
 | ||||
| use Chill\ActivityBundle\Entity\ActivityReason; | ||||
| use Chill\ActivityBundle\Repository\ActivityReasonRepository; | ||||
| use Chill\ActivityBundle\Templating\Entity\ActivityReasonRender; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelper; | ||||
| use Doctrine\ORM\EntityRepository; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||
| use Symfony\Component\Form\AbstractType; | ||||
| use Symfony\Component\OptionsResolver\OptionsResolver; | ||||
| @@ -22,31 +22,29 @@ use Symfony\Component\OptionsResolver\OptionsResolver; | ||||
| /** | ||||
|  * FormType to choose amongst activity reasons. | ||||
|  */ | ||||
| class TranslatableActivityReason extends AbstractType | ||||
| class PickActivityReasonType extends AbstractType | ||||
| { | ||||
|     /** | ||||
|      * @var ActivityReasonRender | ||||
|      */ | ||||
|     protected $reasonRender; | ||||
|     private ActivityReasonRepository $activityReasonRepository; | ||||
| 
 | ||||
|     /** | ||||
|      * @var TranslatableStringHelper | ||||
|      */ | ||||
|     protected $translatableStringHelper; | ||||
|     private ActivityReasonRender $reasonRender; | ||||
| 
 | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
| 
 | ||||
|     public function __construct( | ||||
|         TranslatableStringHelper $translatableStringHelper, | ||||
|         ActivityReasonRender $reasonRender | ||||
|         ActivityReasonRepository $activityReasonRepository, | ||||
|         ActivityReasonRender $reasonRender, | ||||
|         TranslatableStringHelperInterface $translatableStringHelper | ||||
|     ) { | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|         $this->activityReasonRepository = $activityReasonRepository; | ||||
|         $this->reasonRender = $reasonRender; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|     } | ||||
| 
 | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     { | ||||
|         $resolver->setDefaults( | ||||
|             [ | ||||
|                 'class' => 'ChillActivityBundle:ActivityReason', | ||||
|                 'class' => ActivityReason::class, | ||||
|                 'choice_label' => function (ActivityReason $choice) { | ||||
|                     return $this->reasonRender->renderString($choice, []); | ||||
|                 }, | ||||
| @@ -57,10 +55,7 @@ class TranslatableActivityReason extends AbstractType | ||||
| 
 | ||||
|                     return null; | ||||
|                 }, | ||||
|                 'query_builder' => static function (EntityRepository $er) { | ||||
|                     return $er->createQueryBuilder('r') | ||||
|                         ->where('r.active = true'); | ||||
|                 }, | ||||
|                 'choices' => $this->activityReasonRepository->findAll(), | ||||
|                 'attr' => ['class' => ' select2 '], | ||||
|             ] | ||||
|         ); | ||||
| @@ -1,59 +0,0 @@ | ||||
| <?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\Form\Type; | ||||
|  | ||||
| use Doctrine\ORM\EntityRepository; | ||||
| use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||
| use Symfony\Component\Form\AbstractType; | ||||
| use Symfony\Component\HttpFoundation\RequestStack; | ||||
| use Symfony\Component\OptionsResolver\OptionsResolver; | ||||
|  | ||||
| /** | ||||
|  * Description of TranslatableActivityReasonCategory. | ||||
|  */ | ||||
| class TranslatableActivityReasonCategory extends AbstractType | ||||
| { | ||||
|     /** | ||||
|      * @var RequestStack | ||||
|      */ | ||||
|     private $requestStack; | ||||
|  | ||||
|     public function __construct(RequestStack $requestStack) | ||||
|     { | ||||
|         $this->requestStack = $requestStack; | ||||
|     } | ||||
|  | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     { | ||||
|         $locale = $this->requestStack->getCurrentRequest()->getLocale(); | ||||
|         $resolver->setDefaults( | ||||
|             [ | ||||
|                 'class' => 'ChillActivityBundle:ActivityReasonCategory', | ||||
|                 'choice_label' => 'name[' . $locale . ']', | ||||
|                 'query_builder' => static function (EntityRepository $er) { | ||||
|                     return $er->createQueryBuilder('c') | ||||
|                         ->where('c.active = true'); | ||||
|                 }, | ||||
|             ] | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function getBlockPrefix() | ||||
|     { | ||||
|         return 'translatable_activity_reason_category'; | ||||
|     } | ||||
|  | ||||
|     public function getParent() | ||||
|     { | ||||
|         return EntityType::class; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,58 @@ | ||||
| <?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\Form\Type; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\ActivityReasonCategory; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||
| use Symfony\Component\Form\AbstractType; | ||||
| use Symfony\Component\OptionsResolver\OptionsResolver; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| /** | ||||
|  * Description of TranslatableActivityReasonCategory. | ||||
|  */ | ||||
| class TranslatableActivityReasonCategoryType extends AbstractType | ||||
| { | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
|  | ||||
|     private TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct(TranslatableStringHelperInterface $translatableStringHelper, TranslatorInterface $translator) | ||||
|     { | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|         $this->translator = $translator; | ||||
|     } | ||||
|  | ||||
|     public function configureOptions(OptionsResolver $resolver) | ||||
|     { | ||||
|         $resolver->setDefaults( | ||||
|             [ | ||||
|                 'class' => ActivityReasonCategory::class, | ||||
|                 'choice_label' => function (ActivityReasonCategory $category) { | ||||
|                     return $this->translatableStringHelper->localize($category->getName()) | ||||
|                         . (!$category->getActive() ? ' (' . $this->translator->trans('inactive') . ')' : ''); | ||||
|                 }, | ||||
|             ] | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function getBlockPrefix() | ||||
|     { | ||||
|         return 'translatable_activity_reason_category'; | ||||
|     } | ||||
|  | ||||
|     public function getParent() | ||||
|     { | ||||
|         return EntityType::class; | ||||
|     } | ||||
| } | ||||
| @@ -18,6 +18,9 @@ use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Security; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| /** | ||||
|  * @implements LocalMenuBuilderInterface<array{accompanyingCourse: AccompanyingPeriod}> | ||||
|  */ | ||||
| class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     protected Security $security; | ||||
|   | ||||
| @@ -15,6 +15,9 @@ use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Security; | ||||
|  | ||||
| /** | ||||
|  * @implements LocalMenuBuilderInterface<array> | ||||
|  */ | ||||
| final class AdminMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     private Security $security; | ||||
| @@ -36,7 +39,6 @@ final class AdminMenuBuilder implements LocalMenuBuilderInterface | ||||
|             ->setAttribute('class', 'list-group-item-header') | ||||
|             ->setExtras([ | ||||
|                 'order' => 5000, | ||||
|                 'icons' => ['exchange'], | ||||
|             ]); | ||||
|  | ||||
|         $menu->addChild('Activity Reasons', [ | ||||
|   | ||||
| @@ -13,11 +13,15 @@ namespace Chill\ActivityBundle\Menu; | ||||
|  | ||||
| use Chill\ActivityBundle\Security\Authorization\ActivityVoter; | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\PersonBundle\Entity\Person; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
| /** | ||||
|  * @implements LocalMenuBuilderInterface<array{person: Person}> | ||||
|  */ | ||||
| final class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|   | ||||
| @@ -225,10 +225,9 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte | ||||
|         $personToCenter = $metadataPerson->getAssociationMapping('center')['joinColumns'][0]['name']; | ||||
|  | ||||
|         // acls: | ||||
|         $role = new Role(ActivityVoter::SEE); | ||||
|         $reachableCenters = $this->authorizationHelper->getReachableCenters( | ||||
|             $this->tokenStorage->getToken()->getUser(), | ||||
|             $role | ||||
|             ActivityVoter::SEE | ||||
|         ); | ||||
|  | ||||
|         if (count($reachableCenters) === 0) { | ||||
| @@ -239,7 +238,7 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte | ||||
|         if ('person' === $context) { | ||||
|             // we start with activities having the person_id linked to person | ||||
|             $where .= sprintf('%s = ? AND ', $activityToPerson); | ||||
|             $parameters[] = $person->getId(); | ||||
|             $parameters[] = $args['context']->getId(); | ||||
|         } | ||||
|  | ||||
|         // we add acl (reachable center and scopes) | ||||
| @@ -252,7 +251,7 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte | ||||
|                 continue; | ||||
|             } | ||||
|             // we get all the reachable scopes for this center | ||||
|             $reachableScopes = $this->authorizationHelper->getReachableScopes($this->tokenStorage->getToken()->getUser(), $role, $center); | ||||
|             $reachableScopes = $this->authorizationHelper->getReachableScopes($this->tokenStorage->getToken()->getUser(), ActivityVoter::SEE, $center); | ||||
|             // we get the ids for those scopes | ||||
|             $reachablesScopesId = array_map( | ||||
|                 static function (Scope $scope) { | ||||
|   | ||||
| @@ -0,0 +1,51 @@ | ||||
| <?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\Repository; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\ActivityPresence; | ||||
| use Doctrine\ORM\EntityManagerInterface; | ||||
| use Doctrine\ORM\EntityRepository; | ||||
|  | ||||
| class ActivityPresenceRepository implements ActivityPresenceRepositoryInterface | ||||
| { | ||||
|     private EntityRepository $repository; | ||||
|  | ||||
|     public function __construct(EntityManagerInterface $entityManager) | ||||
|     { | ||||
|         $this->repository = $entityManager->getRepository($this->getClassName()); | ||||
|     } | ||||
|  | ||||
|     public function find($id): ?ActivityPresence | ||||
|     { | ||||
|         return $this->repository->find($id); | ||||
|     } | ||||
|  | ||||
|     public function findAll(): array | ||||
|     { | ||||
|         return $this->repository->findAll(); | ||||
|     } | ||||
|  | ||||
|     public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array | ||||
|     { | ||||
|         return $this->findBy($criteria, $orderBy, $limit, $offset); | ||||
|     } | ||||
|  | ||||
|     public function findOneBy(array $criteria): ?ActivityPresence | ||||
|     { | ||||
|         return $this->findOneBy($criteria); | ||||
|     } | ||||
|  | ||||
|     public function getClassName(): string | ||||
|     { | ||||
|         return ActivityPresence::class; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,33 @@ | ||||
| <?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\Repository; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\ActivityPresence; | ||||
|  | ||||
| interface ActivityPresenceRepositoryInterface | ||||
| { | ||||
|     public function find($id): ?ActivityPresence; | ||||
|  | ||||
|     /** | ||||
|      * @return array|ActivityPresence[] | ||||
|      */ | ||||
|     public function findAll(): array; | ||||
|  | ||||
|     /** | ||||
|      * @return array|ActivityPresence[] | ||||
|      */ | ||||
|     public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array; | ||||
|  | ||||
|     public function findOneBy(array $criteria): ?ActivityPresence; | ||||
|  | ||||
|     public function getClassName(): string; | ||||
| } | ||||
| @@ -14,17 +14,38 @@ namespace Chill\ActivityBundle\Repository; | ||||
| use Chill\ActivityBundle\Entity\ActivityReason; | ||||
| use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; | ||||
| use Doctrine\Persistence\ManagerRegistry; | ||||
| use Symfony\Component\HttpFoundation\RequestStack; | ||||
|  | ||||
| /** | ||||
|  * @method ActivityReason|null find($id, $lockMode = null, $lockVersion = null) | ||||
|  * @method ActivityReason|null findOneBy(array $criteria, array $orderBy = null) | ||||
|  * @method ActivityReason[]    findAll() | ||||
|  * @method ActivityReason[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) | ||||
|  */ | ||||
| class ActivityReasonRepository extends ServiceEntityRepository | ||||
| { | ||||
|     public function __construct(ManagerRegistry $registry) | ||||
|     { | ||||
|     private RequestStack $requestStack; | ||||
|  | ||||
|     public function __construct( | ||||
|         ManagerRegistry $registry, | ||||
|         RequestStack $requestStack | ||||
|     ) { | ||||
|         parent::__construct($registry, ActivityReason::class); | ||||
|  | ||||
|         $this->requestStack = $requestStack; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return ActivityReason[] | ||||
|      */ | ||||
|     public function findAll(): array | ||||
|     { | ||||
|         $qb = $this->createQueryBuilder('ar'); | ||||
|         $qb->select(['ar']) | ||||
|             ->leftJoin('ar.category', 'category') | ||||
|             ->addOrderBy('JSON_EXTRACT(category.name, :lang)') | ||||
|             ->addOrderBy('JSON_EXTRACT(ar.name, :lang)') | ||||
|             ->setParameter('lang', $this->requestStack->getCurrentRequest()->getLocale() ?? 'fr'); | ||||
|  | ||||
|         return $qb->getQuery()->getResult(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -88,3 +88,11 @@ div.flex-bloc.concerned-groups { | ||||
|       font-size: 120%; | ||||
|    } | ||||
| } | ||||
|  | ||||
| /// DOCUMENT LIST IN ACTIVITY ITEM | ||||
| li.document-list-item { | ||||
|     display: flex; | ||||
|     width: 100%; | ||||
|     justify-content: space-between; | ||||
|     margin-bottom: 0.3rem; | ||||
| } | ||||
|   | ||||
| @@ -117,7 +117,8 @@ export default { | ||||
|                     target: { //name, id | ||||
|                         }, | ||||
|                     edit: false, | ||||
|                     addressId: null | ||||
|                     addressId: null, | ||||
|                     defaults: window.addaddress | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -30,7 +30,7 @@ const store = createStore({ | ||||
|     }, | ||||
|     getters: { | ||||
|         suggestedEntities(state) { | ||||
|             if (typeof state.activity.accompanyingPeriod === "undefined") { | ||||
|             if (typeof state.activity.accompanyingPeriod === "undefined" || state.activity.accompanyingPeriod === null) { | ||||
|                 return []; | ||||
|             } | ||||
|             const allEntities = [ | ||||
|   | ||||
| @@ -39,6 +39,9 @@ const makeConcernedThirdPartiesLocation = (locationType, store) => { | ||||
|     return locations; | ||||
| }; | ||||
| const makeAccompanyingPeriodLocation = (locationType, store) => { | ||||
|     if (store.state.activity.accompanyingPeriod === null) { | ||||
|         return {}; | ||||
|     } | ||||
|     const accPeriodLocation = store.state.activity.accompanyingPeriod.location; | ||||
|     return { | ||||
|         type: 'location', | ||||
|   | ||||
| @@ -68,7 +68,7 @@ | ||||
|                     <div class="wl-col title"><h3>{{ 'Referrer'|trans }}</h3></div> | ||||
|                     <div class="wl-col list"> | ||||
|                         <p class="wl-item"> | ||||
|                             {{ activity.user|chill_entity_render_box }} | ||||
|                             <span class="badge-user">{{ activity.user|chill_entity_render_box }}</span> | ||||
|                         </p> | ||||
|                     </div> | ||||
|                 </div> | ||||
| @@ -137,19 +137,42 @@ | ||||
|                         {{ activity.comment|chill_entity_render_box({ | ||||
|                             'disable_markdown': false, | ||||
|                             'limit_lines': 3, | ||||
|                             'metadata': false | ||||
|                             'metadata': false, | ||||
|                         }) }} | ||||
|                     </div> | ||||
|                 </div> | ||||
|             {% endif %} | ||||
|  | ||||
|             {#  Only if ACL SEE_DETAILS AND/OR only on template SHOW ?? | ||||
|                 durationTime | ||||
|                 travelTime | ||||
|                 comment | ||||
|                 documents | ||||
|                 attendee | ||||
|             #} | ||||
|             {% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) and activity.privateComment.hasCommentForUser(app.user) %} | ||||
|                 <div class="wl-row"> | ||||
|                     <div class="wl-col title"> | ||||
|                         <h3>{{ 'Private comment'|trans }}</h3> | ||||
|                     </div> | ||||
|                     <div class="wl-col list"> | ||||
|                         <section class="chill-entity entity-comment-embeddable"> | ||||
|                             <blockquote class="chill-user-quote private-quote"> | ||||
|                                 {{ activity.privateComment.comments[app.user.id]|chill_markdown_to_html }} | ||||
|                             </blockquote> | ||||
|                         </section> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             {% endif %} | ||||
|  | ||||
|             {% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) and activity.documents|length > 0 %} | ||||
|                 <div class="wl-row"> | ||||
|                     <div class="wl-col title"> | ||||
|                         <h3>{{ 'Documents'|trans }}</h3> | ||||
|                     </div> | ||||
|                     <div class="wl-col list"> | ||||
|                         <ul> | ||||
|                             {% for d in activity.documents %} | ||||
|                                 <li class="document-list-item">{{ d.title|chill_print_or_message('document.Any title') }} {{ d|chill_document_button_group(d.title, is_granted('CHILL_ACTIVITY_UPDATE', activity), {small: true}) }}</li> | ||||
|                             {% endfor %} | ||||
|                         </ul> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             {% endif %} | ||||
|  | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|   | ||||
| @@ -8,11 +8,13 @@ | ||||
| {% block js %} | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_script_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_script_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block css %} | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_link_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_link_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block content %} | ||||
|   | ||||
| @@ -23,11 +23,13 @@ | ||||
| {% block js %} | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_script_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_script_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block css %} | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_link_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_link_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block content %} | ||||
|   | ||||
| @@ -41,7 +41,7 @@ | ||||
|                         {% if activity.user and t.userVisible %} | ||||
|                             <li> | ||||
|                                 <span class="item-key">{{ 'Referrer'|trans ~ ': ' }}</span> | ||||
|                                 <b>{{ activity.user|chill_entity_render_box}}</b> | ||||
|                                 <span class="badge-user">{{ activity.user|chill_entity_render_box }}</span> | ||||
|                             </li> | ||||
|                         {% endif %} | ||||
|  | ||||
|   | ||||
| @@ -35,7 +35,9 @@ | ||||
|         <div class="item-row separator"> | ||||
|             <dl class="chill_view_data"> | ||||
|                 <dt class="inline">{{ 'Referrer'|trans|capitalize }}</dt> | ||||
|                 <dd>{{ entity.user|chill_entity_render_box }}</dd> | ||||
|                 <dd> | ||||
|                     <span class="badge-user">{{ entity.user|chill_entity_render_box }}</span> | ||||
|                 </dd> | ||||
|  | ||||
|                 {%- if entity.scope -%} | ||||
|                     <dt class="inline">{{ 'Scope'|trans }}</dt> | ||||
| @@ -156,7 +158,7 @@ | ||||
|                 <dd> | ||||
|                     <section class="chill-entity entity-comment-embeddable"> | ||||
|                         <blockquote class="chill-user-quote private-quote"> | ||||
|                             {{ entity.privateComment.comments[userId] }} | ||||
|                             {{ entity.privateComment.comments[userId]|chill_markdown_to_html }} | ||||
|                         </blockquote> | ||||
|                     </section> | ||||
|                 </dd> | ||||
| @@ -168,11 +170,11 @@ | ||||
|                     {% if entity.documents|length > 0 %} | ||||
|                         <ul> | ||||
|                             {% for d in entity.documents %} | ||||
|                                 <li>{{ d.title }}{{ m.download_button(d) }}</li> | ||||
|                                 <li class="document-list-item">{{ d.title|chill_print_or_message('document.Any title') }} {{ d|chill_document_button_group(d.title, is_granted('CHILL_ACTIVITY_UPDATE', entity), {small: true}) }}</li> | ||||
|                             {% endfor %} | ||||
|                         </ul> | ||||
|                     {% else %} | ||||
|                         <span class="chill-no-data-statement">{{ 'Any document found'|trans }}</span> | ||||
|                         <span class="chill-no-data-statement">{{ 'No document found'|trans }}</span> | ||||
|                     {% endif %} | ||||
|                 </dd> | ||||
|             {% endif %} | ||||
|   | ||||
| @@ -8,12 +8,14 @@ | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_script_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_script_tags('mod_async_upload') }} | ||||
|     {{ encore_entry_script_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block css %} | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_link_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_link_tags('mod_async_upload') }} | ||||
|     {{ encore_entry_link_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% import 'ChillActivityBundle:ActivityReason:macro.html.twig' as m %} | ||||
|   | ||||
| @@ -7,13 +7,13 @@ | ||||
| {% block js %} | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_script_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_link_tags('mod_async_upload') }} | ||||
|     {{ encore_entry_script_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block css %} | ||||
|     {{ parent() }} | ||||
|     {{ encore_entry_link_tags('mod_notification_toggle_read_status') }} | ||||
|     {{ encore_entry_link_tags('mod_async_upload') }} | ||||
|     {{ encore_entry_link_tags('mod_document_action_buttons_group') }} | ||||
| {% endblock %} | ||||
|  | ||||
| {% import 'ChillActivityBundle:ActivityReason:macro.html.twig' as m %} | ||||
|   | ||||
| @@ -7,22 +7,34 @@ | ||||
|         <thead> | ||||
|             <tr> | ||||
|                 <th>{{ 'Name'|trans }}</th> | ||||
|                 <th>{{ 'Active'|trans }}</th> | ||||
|                 <th>{{ 'Actions'|trans }}</th> | ||||
|             </tr> | ||||
|         </thead> | ||||
|         <tbody> | ||||
|         {% for entity in entities %} | ||||
|             <tr class="{% if entity.active %}active{% else %}inactive{% endif %}"> | ||||
|                 <td><a href="{{ path('chill_activity_activityreason_show', { 'id': entity.id }) }}">{{ entity.name|localize_translatable_string }}</a></td> | ||||
|                 <td> | ||||
|                 <ul class="record_actions"> | ||||
|                     <li> | ||||
|                         <a href="{{ path('chill_activity_activityreason_show', { 'id': entity.id }) }}" class="btn btn-show" title="{{ 'show'|trans }}"></a> | ||||
|                     </li> | ||||
|                     <li> | ||||
|                         <a href="{{ path('chill_activity_activityreason_edit', { 'id': entity.id }) }}" class="btn btn-edit" title="{{ 'edit'|trans }}"></a> | ||||
|                     </li> | ||||
|                 </ul> | ||||
|                     {% if entity.category is not null -%} | ||||
|                     {{  entity.category.name|localize_translatable_string }} > | ||||
|                     {% endif -%} | ||||
|                     {{ entity.name|localize_translatable_string }} | ||||
|                 </td> | ||||
|                 <td> | ||||
|                     <i class="fa {% if entity.active %}fa-check-square-o{% else %}fa-square-o{% endif %}"></i> | ||||
|                     {% if entity.active and not entity.isActiveAndParentActive %} | ||||
|                     <span class="badge text-bg-danger text-white">{{ 'Associated activity reason category is inactive'|trans }}</span> | ||||
|                     {% endif %} | ||||
|                 </td> | ||||
|                 <td> | ||||
|                     <ul class="record_actions"> | ||||
|                         <li> | ||||
|                             <a href="{{ path('chill_activity_activityreason_show', { 'id': entity.id }) }}" class="btn btn-show" title="{{ 'show'|trans }}"></a> | ||||
|                         </li> | ||||
|                         <li> | ||||
|                             <a href="{{ path('chill_activity_activityreason_edit', { 'id': entity.id }) }}" class="btn btn-edit" title="{{ 'edit'|trans }}"></a> | ||||
|                         </li> | ||||
|                     </ul> | ||||
|                 </td> | ||||
|             </tr> | ||||
|         {% endfor %} | ||||
|   | ||||
| @@ -7,6 +7,7 @@ | ||||
|         <thead> | ||||
|             <tr> | ||||
|                 <th>{{ 'Name'|trans }}</th> | ||||
|                 <th>{{ 'Active'|trans }}</th> | ||||
|                 <th>{{ 'Actions'|trans }}</th> | ||||
|             </tr> | ||||
|         </thead> | ||||
| @@ -14,7 +15,11 @@ | ||||
|         {% for entity in entities %} | ||||
|             <tr> | ||||
|                 <td> | ||||
|                     <a href="{{ path('chill_activity_activityreasoncategory_show', { 'id': entity.id }) }}">{{ entity.name|localize_translatable_string }}</a></td> | ||||
|                     {{ entity.name|localize_translatable_string }} | ||||
|                 </td> | ||||
|                 <td> | ||||
|                     <i class="fa {% if entity.active %}fa-check-square-o{% else %}fa-square-o{% endif %}"></i> | ||||
|                 </td> | ||||
|                 <td> | ||||
|                     <ul class="record_actions"> | ||||
|                     <li> | ||||
|   | ||||
| @@ -22,6 +22,7 @@ use Chill\DocStoreBundle\Repository\DocumentCategoryRepository; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Chill\PersonBundle\Entity\AccompanyingPeriod; | ||||
| use Chill\PersonBundle\Entity\Person; | ||||
| use Chill\PersonBundle\Repository\PersonRepository; | ||||
| use Chill\PersonBundle\Templating\Entity\PersonRenderInterface; | ||||
| use Doctrine\ORM\EntityManagerInterface; | ||||
| use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||
| @@ -31,6 +32,9 @@ use Symfony\Component\Form\FormBuilderInterface; | ||||
| use Symfony\Component\Serializer\Normalizer\NormalizerInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| /** | ||||
|  * @implements DocGeneratorContextWithPublicFormInterface<Activity> | ||||
|  */ | ||||
| class ActivityContext implements | ||||
|     DocGeneratorContextWithAdminFormInterface, | ||||
|     DocGeneratorContextWithPublicFormInterface | ||||
| @@ -45,6 +49,8 @@ class ActivityContext implements | ||||
|  | ||||
|     private PersonRenderInterface $personRender; | ||||
|  | ||||
|     private PersonRepository $personRepository; | ||||
|  | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
|  | ||||
|     private TranslatorInterface $translator; | ||||
| @@ -55,6 +61,7 @@ class ActivityContext implements | ||||
|         TranslatableStringHelperInterface $translatableStringHelper, | ||||
|         EntityManagerInterface $em, | ||||
|         PersonRenderInterface $personRender, | ||||
|         PersonRepository $personRepository, | ||||
|         TranslatorInterface $translator, | ||||
|         BaseContextData $baseContextData | ||||
|     ) { | ||||
| @@ -63,6 +70,7 @@ class ActivityContext implements | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|         $this->em = $em; | ||||
|         $this->personRender = $personRender; | ||||
|         $this->personRepository = $personRepository; | ||||
|         $this->translator = $translator; | ||||
|         $this->baseContextData = $baseContextData; | ||||
|     } | ||||
| @@ -147,7 +155,7 @@ class ActivityContext implements | ||||
|         $options = $template->getOptions(); | ||||
|  | ||||
|         $data = []; | ||||
|         $data = array_merge($data, $this->baseContextData->getData()); | ||||
|         $data = array_merge($data, $this->baseContextData->getData($contextGenerationData['creator'] ?? null)); | ||||
|         $data['activity'] = $this->normalizer->normalize($entity, 'docgen', ['docgen:expects' => Activity::class, 'groups' => 'docgen:read']); | ||||
|  | ||||
|         $data['course'] = $this->normalizer->normalize($entity->getAccompanyingPeriod(), 'docgen', ['docgen:expects' => AccompanyingPeriod::class, 'groups' => 'docgen:read']); | ||||
| @@ -206,9 +214,32 @@ class ActivityContext implements | ||||
|         return $options['mainPerson'] || $options['person1'] || $options['person2']; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param Activity $entity | ||||
|      */ | ||||
|     public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array | ||||
|     { | ||||
|         $normalized = []; | ||||
|  | ||||
|         foreach (['mainPerson', 'person1', 'person2'] as $k) { | ||||
|             $normalized[$k] = null === $data[$k] ? null : $data[$k]->getId(); | ||||
|         } | ||||
|  | ||||
|         return $normalized; | ||||
|     } | ||||
|  | ||||
|     public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array | ||||
|     { | ||||
|         $denormalized = []; | ||||
|  | ||||
|         foreach (['mainPerson', 'person1', 'person2'] as $k) { | ||||
|             if (null !== ($id = ($data[$k] ?? null))) { | ||||
|                 $denormalized[$k] = $this->personRepository->find($id); | ||||
|             } else { | ||||
|                 $denormalized[$k] = null; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $denormalized; | ||||
|     } | ||||
|  | ||||
|     public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void | ||||
|     { | ||||
|         $storedObject->setTitle($this->translatableStringHelper->localize($template->getName())); | ||||
|   | ||||
| @@ -146,6 +146,16 @@ class ListActivitiesByAccompanyingPeriodContext implements | ||||
|         return $this->accompanyingPeriodContext->hasPublicForm($template, $entity); | ||||
|     } | ||||
|  | ||||
|     public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array | ||||
|     { | ||||
|         return $this->accompanyingPeriodContext->contextGenerationDataNormalize($template, $entity, $data); | ||||
|     } | ||||
|  | ||||
|     public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array | ||||
|     { | ||||
|         return $this->accompanyingPeriodContext->contextGenerationDataDenormalize($template, $entity, $data); | ||||
|     } | ||||
|  | ||||
|     public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void | ||||
|     { | ||||
|         $this->accompanyingPeriodContext->storeGenerated($template, $storedObject, $entity, $contextGenerationData); | ||||
|   | ||||
| @@ -13,13 +13,18 @@ namespace Chill\ActivityBundle\Templating\Entity; | ||||
|  | ||||
| use Chill\ActivityBundle\Entity\ActivityReason; | ||||
| use Chill\MainBundle\Templating\Entity\AbstractChillEntityRender; | ||||
| use Chill\MainBundle\Templating\Entity\BoxUtilsChillEntityRenderTrait; | ||||
| use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelper; | ||||
|  | ||||
| /** | ||||
|  * Render activity reason. | ||||
|  * | ||||
|  * @implements ChillEntityRenderInterface<ActivityReason> | ||||
|  */ | ||||
| class ActivityReasonRender extends AbstractChillEntityRender | ||||
| class ActivityReasonRender implements ChillEntityRenderInterface | ||||
| { | ||||
|     use BoxUtilsChillEntityRenderTrait; | ||||
|     /** | ||||
|      * @var TranslatableStringHelper | ||||
|      */ | ||||
| @@ -51,9 +56,6 @@ class ActivityReasonRender extends AbstractChillEntityRender | ||||
|             $this->getDefaultClosingBox(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param ActivityReason $entity | ||||
|      */ | ||||
|     public function renderString($entity, array $options): string | ||||
|     { | ||||
|         $category = ''; | ||||
|   | ||||
| @@ -234,7 +234,7 @@ final class ActivityControllerTest extends WebTestCase | ||||
|         $user = new \Chill\MainBundle\Entity\User(); | ||||
|         $user | ||||
|             ->setPassword($container->get('security.password_encoder') | ||||
|             ->encodePassword($user, 'password')) | ||||
|                 ->encodePassword($user, 'password')) | ||||
|             ->setUsername($username) | ||||
|             ->addGroupCenter($groupCenter); | ||||
|  | ||||
| @@ -369,8 +369,12 @@ final class ActivityControllerTest extends WebTestCase | ||||
|                 $center | ||||
|             ); | ||||
|         $reachableScopesId = array_intersect( | ||||
|             array_map(static function ($s) { return $s->getId(); }, $reachableScopesDelete), | ||||
|             array_map(static function ($s) { return $s->getId(); }, $reachableScopesUpdate) | ||||
|             array_map(static function ($s) { | ||||
|                 return $s->getId(); | ||||
|             }, $reachableScopesDelete), | ||||
|             array_map(static function ($s) { | ||||
|                 return $s->getId(); | ||||
|             }, $reachableScopesUpdate) | ||||
|         ); | ||||
|  | ||||
|         if (count($reachableScopesId) === 0) { | ||||
|   | ||||
| @@ -188,7 +188,9 @@ final class ActivityTypeTest extends KernelTestCase | ||||
|  | ||||
|         // map all the values in an array | ||||
|         $values = array_map( | ||||
|             static function ($choice) { return $choice->value; }, | ||||
|             static function ($choice) { | ||||
|                 return $choice->value; | ||||
|             }, | ||||
|             $view['activity']['durationTime']->vars['choices'] | ||||
|         ); | ||||
|  | ||||
|   | ||||
| @@ -11,7 +11,7 @@ declare(strict_types=1); | ||||
|  | ||||
| namespace Chill\ActivityBundle\Tests\Form\Type; | ||||
|  | ||||
| use Chill\ActivityBundle\Form\Type\TranslatableActivityReason; | ||||
| use Chill\ActivityBundle\Form\Type\PickActivityReasonType; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelper; | ||||
| use Symfony\Component\Form\PreloadedExtension; | ||||
| use Symfony\Component\Form\Test\TypeTestCase; | ||||
| @@ -36,7 +36,7 @@ final class TranslatableActivityReasonTest extends TypeTestCase | ||||
|  | ||||
|     public function testSimple() | ||||
|     { | ||||
|         $translatableActivityReasonType = new TranslatableActivityReason( | ||||
|         $translatableActivityReasonType = new PickActivityReasonType( | ||||
|             $this->getTranslatableStringHelper() | ||||
|         ); | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,11 @@ | ||||
| services: | ||||
|     Chill\ActivityBundle\Controller\ActivityController: | ||||
|     _defaults: | ||||
|         autowire: true | ||||
|         autoconfigure: true | ||||
|  | ||||
|     Chill\ActivityBundle\Controller\: | ||||
|         resource: '../../Controller/' | ||||
|         tags: ['controller.service_arguments'] | ||||
|  | ||||
|     Chill\ActivityBundle\Controller\ActivityController: | ||||
|         tags: ['controller.service_arguments'] | ||||
|   | ||||
| @@ -41,6 +41,12 @@ services: | ||||
|         tags: | ||||
|             - { name: chill.export, alias: 'avg_activity_visit_duration_linked_to_acp' } | ||||
|  | ||||
|     Chill\ActivityBundle\Export\Export\LinkedToACP\ListActivity: | ||||
|         tags: | ||||
|             - { name: chill.export, alias: 'list_activity_acp'} | ||||
|  | ||||
|     Chill\ActivityBundle\Export\Export\ListActivityHelper: ~ | ||||
|  | ||||
|     ## Filters | ||||
|     chill.activity.export.type_filter: | ||||
|         class: Chill\ActivityBundle\Export\Filter\ActivityTypeFilter | ||||
| @@ -73,6 +79,11 @@ services: | ||||
|         tags: | ||||
|             - { name: chill.export_filter, alias: 'accompanyingcourse_activitytype_filter' } | ||||
|  | ||||
|     chill.activity.export.location_filter: | ||||
|         class: Chill\ActivityBundle\Export\Filter\ACPFilters\LocationFilter | ||||
|         tags: | ||||
|             - { name: chill.export_filter, alias: 'activity_location_filter' } | ||||
|  | ||||
|     chill.activity.export.locationtype_filter: | ||||
|         class: Chill\ActivityBundle\Export\Filter\ACPFilters\LocationTypeFilter | ||||
|         tags: | ||||
| @@ -120,15 +131,18 @@ services: | ||||
|         tags: | ||||
|             - { name: chill.export_filter, alias: 'activity_usersscope_filter' } | ||||
|  | ||||
|     Chill\ActivityBundle\Export\Filter\ACPFilters\HasNoActivityFilter: | ||||
|         tags: | ||||
|             - { name: chill.export_filter, alias: 'accompanyingcourse_has_no_activity_filter' } | ||||
|  | ||||
|     ## Aggregators | ||||
|     Chill\ActivityBundle\Export\Aggregator\PersonAggregators\ActivityReasonAggregator: | ||||
|         tags: | ||||
|             - { name: chill.export_aggregator, alias: activity_reason_aggregator } | ||||
|  | ||||
|     chill.activity.export.type_aggregator: | ||||
|         class: Chill\ActivityBundle\Export\Aggregator\ActivityTypeAggregator | ||||
|     Chill\ActivityBundle\Export\Aggregator\ActivityTypeAggregator: | ||||
|         tags: | ||||
|             - { name: chill.export_aggregator, alias: activity_type_aggregator } | ||||
|             - { name: chill.export_aggregator, alias: activity_common_type_aggregator } | ||||
|  | ||||
|     chill.activity.export.user_aggregator: | ||||
|         class: Chill\ActivityBundle\Export\Aggregator\ActivityUserAggregator | ||||
| @@ -179,3 +193,11 @@ services: | ||||
|     Chill\ActivityBundle\Export\Aggregator\ActivityUsersJobAggregator: | ||||
|         tags: | ||||
|             - { name: chill.export_aggregator, alias: activity_users_job_aggregator } | ||||
|  | ||||
|     Chill\ActivityBundle\Export\Aggregator\ACPAggregators\ByActivityNumberAggregator: | ||||
|         tags: | ||||
|             - { name: chill.export_aggregator, alias: accompanyingcourse_by_activity_number_aggregator } | ||||
|  | ||||
|     Chill\ActivityBundle\Export\Aggregator\SentReceivedAggregator: | ||||
|         tags: | ||||
|             - { name: chill.export_aggregator, alias: activity_sentreceived_aggregator } | ||||
|   | ||||
| @@ -1,19 +1,12 @@ | ||||
| --- | ||||
| services: | ||||
|     chill.activity.form.type.translatableactivityreasoncategory: | ||||
|         class: Chill\ActivityBundle\Form\Type\TranslatableActivityReasonCategory | ||||
|         arguments: | ||||
|             - "@request_stack" | ||||
|         tags: | ||||
|             - { name: form.type, alias: translatable_activity_reason_category } | ||||
|     Chill\ActivityBundle\Form\Type\TranslatableActivityReasonCategoryType: | ||||
|         autowire: true | ||||
|         autoconfigure: true | ||||
|  | ||||
|     chill.activity.form.type.translatableactivityreason: | ||||
|         class: Chill\ActivityBundle\Form\Type\TranslatableActivityReason | ||||
|         arguments: | ||||
|             $translatableStringHelper: "@chill.main.helper.translatable_string" | ||||
|             $reasonRender: '@Chill\ActivityBundle\Templating\Entity\ActivityReasonRender' | ||||
|         tags: | ||||
|             - { name: form.type, alias: translatable_activity_reason } | ||||
|     Chill\ActivityBundle\Form\Type\PickActivityReasonType: | ||||
|         autowire: true | ||||
|         autoconfigure: true | ||||
|  | ||||
|     chill.activity.form.type.translatableactivitytype: | ||||
|         class: Chill\ActivityBundle\Form\Type\TranslatableActivityType | ||||
|   | ||||
| @@ -1,5 +1,8 @@ | ||||
| --- | ||||
| services: | ||||
|     Chill\ActivityBundle\Repository\ActivityReasonRepository: | ||||
|         autowire: true | ||||
|  | ||||
|     chill_activity.repository.activity_type: '@Chill\ActivityBundle\Repository\ActivityTypeRepository' | ||||
|     chill_activity.repository.reason: '@Chill\ActivityBundle\Repository\ActivityReasonRepository' | ||||
|     chill_activity.repository.reason_category: '@Chill\ActivityBundle\Repository\ActivityReasonCategoryRepository' | ||||
|   | ||||
| @@ -45,6 +45,8 @@ by: 'Par ' | ||||
| location: Lieu | ||||
| Reasons: Sujets | ||||
| Private comment: Commentaire privé | ||||
| sent: Envoyé | ||||
| received: Reçu | ||||
|  | ||||
|  | ||||
| #forms | ||||
| @@ -75,7 +77,7 @@ Choose a type: Choisir un type | ||||
| 4 hours: 4 heures | ||||
| 4 hours 30: 4 heures 30 | ||||
| 5 hours: 5 heures | ||||
| Concerned groups: Parties concernées | ||||
| Concerned groups: Parties concernées par l'échange | ||||
| Persons in accompanying course: Usagers du parcours | ||||
| Third persons: Tiers non-pro. | ||||
| Others persons: Usagers | ||||
| @@ -115,6 +117,7 @@ Activity Reasons: Sujets d'une activité | ||||
| Activity Reasons Category: Catégories de sujet d'activités | ||||
| Activity Types Categories: Catégories des types d'activité | ||||
| Activity Presences: Presences aux activités | ||||
| Associated activity reason category is inactive: La catégorie de sujet attachée est inactive | ||||
|  | ||||
|  | ||||
| # Crud | ||||
| @@ -249,6 +252,8 @@ Activity reasons for those activities: Sujets de ces activités | ||||
|  | ||||
| Filter by activity type: Filtrer les activités par type | ||||
|  | ||||
| Filter activity by location: Filtrer les activités par localisation | ||||
| 'Filtered activity by location: only %locations%': "Filtré par localisation: uniquement %locations%" | ||||
| Filter activity by locationtype: Filtrer les activités par type de localisation | ||||
| 'Filtered activity by locationtype: only %types%': "Filtré par type de localisation: uniquement %types%" | ||||
| Accepted locationtype: Types de localisation | ||||
| @@ -260,8 +265,6 @@ activity is not emergency: l'activité n'est pas urgente | ||||
| Filter activity by sentreceived: Filtrer les activités par envoyé/reçu | ||||
| 'Filtered activity by sentreceived: only %sentreceived%': "Filtré par envoyé/reçu: uniquement %sentreceived%" | ||||
| Accepted sentreceived: '' | ||||
| is sent: envoyé | ||||
| is received: reçu | ||||
| Filter activity by linked socialaction: Filtrer les activités par action liée | ||||
| 'Filtered activity by linked socialaction: only %actions%': "Filtré par action liée: uniquement %actions%" | ||||
| Filter activity by linked socialissue: Filtrer les activités par problématique liée | ||||
| @@ -277,6 +280,10 @@ Filter activity by userscope: Filtrer les activités par service du créateur | ||||
| 'Filtered activity by userscope: only %scopes%': "Filtré par service du créateur: uniquement %scopes%" | ||||
| Accepted userscope: Services | ||||
|  | ||||
| Filter acp which has no activity: Filtrer les parcours qui n’ont pas d’activité | ||||
| Filtered acp which has no activities: Filtrer les parcours sans activité associée | ||||
| Group acp by activity number: Grouper les parcours par nombre d’activité | ||||
|  | ||||
| #aggregators | ||||
| Activity type: Type d'activité | ||||
| Activity user: Utilisateur lié à l'activité | ||||
| @@ -319,11 +326,32 @@ This is the minimal activity data: Activité n° | ||||
|  | ||||
| docgen: | ||||
|     Activity basic: Echange | ||||
|     A basic context for activity: Contexte pour les échanges | ||||
|     Accompanying period with a list of activities: Parcours d'accompagnement avec liste des échanges | ||||
|     Accompanying period with a list of activities description: Ce contexte reprend les informations du parcours, et tous les échanges pour un parcours. Les échanges ne sont pas filtrés. | ||||
|     A basic context for activity: Contexte pour les activités | ||||
|     Accompanying period with a list of activities: Parcours d'accompagnement avec liste des activités | ||||
|     Accompanying period with a list of activities description: Ce contexte reprend les informations du parcours, et tous les activités pour un parcours. Les activités ne sont pas filtrés. | ||||
|  | ||||
| export: | ||||
|     list: | ||||
|         activity: | ||||
|             users name: Nom des utilisateurs | ||||
|             users ids: Identifiant des utilisateurs | ||||
|             third parties ids: Identifiant des tiers | ||||
|             persons ids: Identifiant des personnes | ||||
|             persons name: Nom des personnes | ||||
|             thirds parties: Tiers | ||||
|             date: Date de l'activité | ||||
|             locationName: Localisation | ||||
|             sent received: Envoyé ou reçu | ||||
|             emergency: Urgence | ||||
|             accompanying course id: Identifiant du parcours | ||||
|             course circles: Cercles du parcours | ||||
|             travelTime: Durée de déplacement | ||||
|             durationTime: Durée | ||||
|             id: Identifiant | ||||
|             List activities linked to an accompanying course: Liste les activités liées à un parcours en fonction de différents filtres. | ||||
|             List activity linked to a course: Liste des activités liées à un parcours | ||||
|  | ||||
|  | ||||
|     filter: | ||||
|         activity: | ||||
|             by_usersjob: | ||||
| @@ -332,3 +360,10 @@ export: | ||||
|             by_usersscope: | ||||
|                 Filter by users scope: Filtrer les activités par services d'au moins un utilisateur participant | ||||
|                 'Filtered activity by users scope: only %scopes%': 'Filtré par service d''au moins un utilisateur participant: seulement %scopes%' | ||||
|     aggregator: | ||||
|         activity: | ||||
|             by_sent_received: | ||||
|                 Sent or received: Envoyé ou reçu | ||||
|                 is sent: envoyé | ||||
|                 is received: reçu | ||||
|                 Group activity by sentreceived: Grouper les activités par envoyé / reçu | ||||
|   | ||||
| @@ -231,4 +231,4 @@ This is the minimal activity data: Activité n° | ||||
|  | ||||
| docgen: | ||||
|     Activity basic: Echange | ||||
|     A basic context for activity: Contexte pour les échanges | ||||
|     A basic context for activity: Contexte pour les activités | ||||
|   | ||||
| @@ -16,8 +16,8 @@ For this type of activity, document is required: Pour ce type d'activité, un do | ||||
| For this type of activity, emergency is required: Pour ce type d'activité, le champ "Urgent" est requis | ||||
| For this type of activity, accompanying period is required: Pour ce type d'activité, le parcours d'accompagnement est requis | ||||
| For this type of activity, you must add at least one social issue: Pour ce type d'activité, vous devez ajouter au moins une problématique sociale | ||||
| For this type of activity, you must add at least one social action: Pour ce type d'activité, vous devez indiquez au moins une action sociale | ||||
| For this type of activity, you must add at least one social action: Pour ce type d'activité, vous devez indiquer au moins une action sociale | ||||
|  | ||||
| # admin | ||||
| This parameter must be equal to social issue parameter: Ce paramètre doit être égal au paramètre "Visibilité du champs Problématiques sociales" | ||||
| The socialActionsVisible value is not compatible with the socialIssuesVisible value: Cette valeur du paramètre "Visibilité du champs Actions sociales" n'est pas compatible avec la valeur du paramètre "Visibilité du champs Problématiques sociales" | ||||
| The socialActionsVisible value is not compatible with the socialIssuesVisible value: Cette valeur du paramètre "Visibilité du champs Actions sociales" n'est pas compatible avec la valeur du paramètre "Visibilité du champs Problématiques sociales" | ||||
|   | ||||
| @@ -55,7 +55,7 @@ class LoadAsideActivity extends Fixture implements DependentFixtureInterface | ||||
|                     $this->getReference('aside_activity_category_0') | ||||
|                 ) | ||||
|                 ->setDate((new DateTimeImmutable('today')) | ||||
|                 ->sub(new DateInterval('P' . random_int(1, 100) . 'D'))); | ||||
|                     ->sub(new DateInterval('P' . random_int(1, 100) . 'D'))); | ||||
|  | ||||
|             $manager->persist($activity); | ||||
|         } | ||||
|   | ||||
| @@ -30,6 +30,8 @@ final class ChillAsideActivityExtension extends Extension implements PrependExte | ||||
|         $loader->load('services.yaml'); | ||||
|         $loader->load('services/form.yaml'); | ||||
|         $loader->load('services/menu.yaml'); | ||||
|         $loader->load('services/security.yaml'); | ||||
|         $loader->load('services/export.yaml'); | ||||
|     } | ||||
|  | ||||
|     public function prepend(ContainerBuilder $container) | ||||
|   | ||||
| @@ -0,0 +1,78 @@ | ||||
| <?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\AsideActivityBundle\Export\Aggregator; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\AsideActivityBundle\Repository\AsideActivityCategoryRepository; | ||||
| use Chill\MainBundle\Export\AggregatorInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelper; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class ByActivityTypeAggregator implements AggregatorInterface | ||||
| { | ||||
|     private AsideActivityCategoryRepository $asideActivityCategoryRepository; | ||||
|  | ||||
|     private TranslatableStringHelper $translatableStringHelper; | ||||
|  | ||||
|     public function __construct(AsideActivityCategoryRepository $asideActivityCategoryRepository, TranslatableStringHelper $translatableStringHelper) | ||||
|     { | ||||
|         $this->asideActivityCategoryRepository = $asideActivityCategoryRepository; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|     } | ||||
|  | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         $qb->addSelect('IDENTITY(aside.type) AS by_aside_activity_type_aggregator') | ||||
|             ->addGroupBy('by_aside_activity_type_aggregator'); | ||||
|     } | ||||
|  | ||||
|     public function applyOn(): string | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         // No form needed | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         return function ($value): string { | ||||
|             if ('_header' === $value) { | ||||
|                 return 'export.aggregator.Aside activity type'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value || null === $t = $this->asideActivityCategoryRepository->find($value)) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             return $this->translatableStringHelper->localize($t->getTitle()); | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['by_aside_activity_type_aggregator']; | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'export.aggregator.Group by aside activity type'; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,89 @@ | ||||
| <?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\AsideActivityBundle\Export\Aggregator; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\MainBundle\Export\AggregatorInterface; | ||||
| use Chill\MainBundle\Repository\UserJobRepositoryInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| use function in_array; | ||||
|  | ||||
| class ByUserJobAggregator implements AggregatorInterface | ||||
| { | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
|  | ||||
|     private UserJobRepositoryInterface $userJobRepository; | ||||
|  | ||||
|     public function __construct(UserJobRepositoryInterface $userJobRepository, TranslatableStringHelperInterface $translatableStringHelper) | ||||
|     { | ||||
|         $this->userJobRepository = $userJobRepository; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|     } | ||||
|  | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         if (!in_array('aside_user', $qb->getAllAliases(), true)) { | ||||
|             $qb->leftJoin('aside.agent', 'aside_user'); | ||||
|         } | ||||
|  | ||||
|         $qb | ||||
|             ->addSelect('IDENTITY(aside_user.userJob) AS aside_activity_user_job_aggregator') | ||||
|             ->addGroupBy('aside_activity_user_job_aggregator'); | ||||
|     } | ||||
|  | ||||
|     public function applyOn() | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         // nothing to add in the form | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         return function ($value): string { | ||||
|             if ('_header' === $value) { | ||||
|                 return 'Users \'s job'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             $j = $this->userJobRepository->find($value); | ||||
|  | ||||
|             return $this->translatableStringHelper->localize( | ||||
|                 $j->getLabel() | ||||
|             ); | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['aside_activity_user_job_aggregator']; | ||||
|     } | ||||
|  | ||||
|     public function getTitle() | ||||
|     { | ||||
|         return 'export.aggregator.Aggregate by user job'; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,89 @@ | ||||
| <?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\AsideActivityBundle\Export\Aggregator; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\MainBundle\Export\AggregatorInterface; | ||||
| use Chill\MainBundle\Repository\ScopeRepositoryInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| use function in_array; | ||||
|  | ||||
| class ByUserScopeAggregator implements AggregatorInterface | ||||
| { | ||||
|     private ScopeRepositoryInterface $scopeRepository; | ||||
|  | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
|  | ||||
|     public function __construct(ScopeRepositoryInterface $scopeRepository, TranslatableStringHelperInterface $translatableStringHelper) | ||||
|     { | ||||
|         $this->scopeRepository = $scopeRepository; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|     } | ||||
|  | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         if (!in_array('aside_user', $qb->getAllAliases(), true)) { | ||||
|             $qb->leftJoin('aside.agent', 'aside_user'); | ||||
|         } | ||||
|  | ||||
|         $qb | ||||
|             ->addSelect('IDENTITY(aside_user.mainScope) AS aside_activity_user_scope_aggregator') | ||||
|             ->addGroupBy('aside_activity_user_scope_aggregator'); | ||||
|     } | ||||
|  | ||||
|     public function applyOn() | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         // nothing to add in the form | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         return function ($value): string { | ||||
|             if ('_header' === $value) { | ||||
|                 return 'Users \'s scope'; | ||||
|             } | ||||
|  | ||||
|             if (null === $value || '' === $value) { | ||||
|                 return ''; | ||||
|             } | ||||
|  | ||||
|             $s = $this->scopeRepository->find($value); | ||||
|  | ||||
|             return $this->translatableStringHelper->localize( | ||||
|                 $s->getName() | ||||
|             ); | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['aside_activity_user_scope_aggregator']; | ||||
|     } | ||||
|  | ||||
|     public function getTitle() | ||||
|     { | ||||
|         return 'export.aggregator.Aggregate by user scope'; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,20 @@ | ||||
| <?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\AsideActivityBundle\Export; | ||||
|  | ||||
| /** | ||||
|  * This class declare constants used for the export framework. | ||||
|  */ | ||||
| abstract class Declarations | ||||
| { | ||||
|     public const ASIDE_ACTIVITY_TYPE = 'aside_activity'; | ||||
| } | ||||
| @@ -0,0 +1,102 @@ | ||||
| <?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\AsideActivityBundle\Export\Export; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\AsideActivityBundle\Repository\AsideActivityRepository; | ||||
| use Chill\AsideActivityBundle\Security\AsideActivityVoter; | ||||
| use Chill\MainBundle\Export\ExportInterface; | ||||
| use Chill\MainBundle\Export\FormatterInterface; | ||||
| use Chill\MainBundle\Export\GroupedExportInterface; | ||||
| use Doctrine\ORM\Query; | ||||
| use LogicException; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class AvgAsideActivityDuration implements ExportInterface, GroupedExportInterface | ||||
| { | ||||
|     private AsideActivityRepository $repository; | ||||
|  | ||||
|     public function __construct( | ||||
|         AsideActivityRepository $repository | ||||
|     ) { | ||||
|         $this->repository = $repository; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     public function getAllowedFormattersTypes(): array | ||||
|     { | ||||
|         return [FormatterInterface::TYPE_TABULAR]; | ||||
|     } | ||||
|  | ||||
|     public function getDescription(): string | ||||
|     { | ||||
|         return 'export.Average aside activities duration'; | ||||
|     } | ||||
|  | ||||
|     public function getGroup(): string | ||||
|     { | ||||
|         return 'export.Exports of aside activities'; | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         if ('export_avg_aside_activity_duration' !== $key) { | ||||
|             throw new LogicException("the key {$key} is not used by this export"); | ||||
|         } | ||||
|  | ||||
|         return static fn ($value) => '_header' === $value ? 'Average duration aside activities' : $value; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['export_avg_aside_activity_duration']; | ||||
|     } | ||||
|  | ||||
|     public function getResult($query, $data) | ||||
|     { | ||||
|         return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'export.Average aside activities duration'; | ||||
|     } | ||||
|  | ||||
|     public function getType(): string | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) | ||||
|     { | ||||
|         $qb = $this->repository->createQueryBuilder('aside'); | ||||
|  | ||||
|         $qb | ||||
|             ->select('AVG(aside.duration) as export_avg_aside_activity_duration') | ||||
|             ->andWhere($qb->expr()->isNotNull('aside.duration')); | ||||
|  | ||||
|         return $qb; | ||||
|     } | ||||
|  | ||||
|     public function requiredRole(): string | ||||
|     { | ||||
|         return AsideActivityVoter::STATS; | ||||
|     } | ||||
|  | ||||
|     public function supportsModifiers(): array | ||||
|     { | ||||
|         return [Declarations::ASIDE_ACTIVITY_TYPE]; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,107 @@ | ||||
| <?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\AsideActivityBundle\Export\Export; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\AsideActivityBundle\Repository\AsideActivityRepository; | ||||
| use Chill\AsideActivityBundle\Security\AsideActivityVoter; | ||||
| use Chill\MainBundle\Export\ExportInterface; | ||||
| use Chill\MainBundle\Export\FormatterInterface; | ||||
| use Chill\MainBundle\Export\GroupedExportInterface; | ||||
| use Doctrine\ORM\Query; | ||||
| use LogicException; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class CountAsideActivity implements ExportInterface, GroupedExportInterface | ||||
| { | ||||
|     private AsideActivityRepository $repository; | ||||
|  | ||||
|     public function __construct( | ||||
|         AsideActivityRepository $repository | ||||
|     ) { | ||||
|         $this->repository = $repository; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     public function getAllowedFormattersTypes(): array | ||||
|     { | ||||
|         return [FormatterInterface::TYPE_TABULAR]; | ||||
|     } | ||||
|  | ||||
|     public function getDescription(): string | ||||
|     { | ||||
|         return 'export.Count aside activities by various parameters.'; | ||||
|     } | ||||
|  | ||||
|     public function getGroup(): string | ||||
|     { | ||||
|         return 'export.Exports of aside activities'; | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         if ('export_result' !== $key) { | ||||
|             throw new LogicException("the key {$key} is not used by this export"); | ||||
|         } | ||||
|  | ||||
|         $labels = array_combine($values, $values); | ||||
|         $labels['_header'] = $this->getTitle(); | ||||
|  | ||||
|         return static function ($value) use ($labels) { | ||||
|             return $labels[$value]; | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['export_result']; | ||||
|     } | ||||
|  | ||||
|     public function getResult($query, $data) | ||||
|     { | ||||
|         return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'export.Count aside activities'; | ||||
|     } | ||||
|  | ||||
|     public function getType(): string | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) | ||||
|     { | ||||
|         $qb = $this->repository->createQueryBuilder('aside'); | ||||
|  | ||||
|         $qb->select('COUNT(DISTINCT aside.id) AS export_result'); | ||||
|  | ||||
|         return $qb; | ||||
|     } | ||||
|  | ||||
|     public function requiredRole(): string | ||||
|     { | ||||
|         return AsideActivityVoter::STATS; | ||||
|     } | ||||
|  | ||||
|     public function supportsModifiers(): array | ||||
|     { | ||||
|         return [ | ||||
|             Declarations::ASIDE_ACTIVITY_TYPE, | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,243 @@ | ||||
| <?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\AsideActivityBundle\Export\Export; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Entity\AsideActivity; | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\AsideActivityBundle\Repository\AsideActivityCategoryRepository; | ||||
| use Chill\AsideActivityBundle\Security\AsideActivityVoter; | ||||
| use Chill\AsideActivityBundle\Templating\Entity\CategoryRender; | ||||
| use Chill\MainBundle\Entity\Center; | ||||
| use Chill\MainBundle\Export\FormatterInterface; | ||||
| use Chill\MainBundle\Export\GroupedExportInterface; | ||||
| use Chill\MainBundle\Export\Helper\DateTimeHelper; | ||||
| use Chill\MainBundle\Export\Helper\UserHelper; | ||||
| use Chill\MainBundle\Export\ListInterface; | ||||
| use Chill\MainBundle\Repository\CenterRepositoryInterface; | ||||
| use Chill\MainBundle\Repository\ScopeRepositoryInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use DateTimeInterface; | ||||
| use Doctrine\ORM\AbstractQuery; | ||||
| use Doctrine\ORM\EntityManagerInterface; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use LogicException; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| final class ListAsideActivity implements ListInterface, GroupedExportInterface | ||||
| { | ||||
|     private AsideActivityCategoryRepository $asideActivityCategoryRepository; | ||||
|  | ||||
|     private CategoryRender $categoryRender; | ||||
|  | ||||
|     private CenterRepositoryInterface $centerRepository; | ||||
|  | ||||
|     private DateTimeHelper $dateTimeHelper; | ||||
|  | ||||
|     private EntityManagerInterface $em; | ||||
|  | ||||
|     private ScopeRepositoryInterface $scopeRepository; | ||||
|  | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
|  | ||||
|     private UserHelper $userHelper; | ||||
|  | ||||
|     public function __construct( | ||||
|         EntityManagerInterface $em, | ||||
|         DateTimeHelper $dateTimeHelper, | ||||
|         UserHelper $userHelper, | ||||
|         ScopeRepositoryInterface $scopeRepository, | ||||
|         CenterRepositoryInterface $centerRepository, | ||||
|         AsideActivityCategoryRepository $asideActivityCategoryRepository, | ||||
|         CategoryRender $categoryRender, | ||||
|         TranslatableStringHelperInterface $translatableStringHelper | ||||
|     ) { | ||||
|         $this->em = $em; | ||||
|         $this->dateTimeHelper = $dateTimeHelper; | ||||
|         $this->userHelper = $userHelper; | ||||
|         $this->scopeRepository = $scopeRepository; | ||||
|         $this->centerRepository = $centerRepository; | ||||
|         $this->asideActivityCategoryRepository = $asideActivityCategoryRepository; | ||||
|         $this->categoryRender = $categoryRender; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     public function getAllowedFormattersTypes() | ||||
|     { | ||||
|         return [FormatterInterface::TYPE_LIST]; | ||||
|     } | ||||
|  | ||||
|     public function getDescription() | ||||
|     { | ||||
|         return 'export.aside_activity.List of aside activities'; | ||||
|     } | ||||
|  | ||||
|     public function getGroup(): string | ||||
|     { | ||||
|         return 'export.Exports of aside activities'; | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         switch ($key) { | ||||
|             case 'id': | ||||
|             case 'note': | ||||
|                 return static function ($value) use ($key) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return 'export.aside_activity.' . $key; | ||||
|                     } | ||||
|  | ||||
|                     return $value ?? ''; | ||||
|                 }; | ||||
|  | ||||
|             case 'duration': | ||||
|                 return static function ($value) use ($key) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return 'export.aside_activity.' . $key; | ||||
|                     } | ||||
|  | ||||
|                     if (null === $value) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     if ($value instanceof DateTimeInterface) { | ||||
|                         return $value->format('H:i:s'); | ||||
|                     } | ||||
|  | ||||
|                     return $value; | ||||
|                 }; | ||||
|  | ||||
|             case 'createdAt': | ||||
|             case 'updatedAt': | ||||
|             case 'date': | ||||
|                 return $this->dateTimeHelper->getLabel('export.aside_activity.' . $key); | ||||
|  | ||||
|             case 'agent_id': | ||||
|             case 'creator_id': | ||||
|                 return $this->userHelper->getLabel($key, $values, 'export.aside_activity.' . $key); | ||||
|  | ||||
|             case 'aside_activity_type': | ||||
|                 return function ($value) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return 'export.aside_activity.aside_activity_type'; | ||||
|                     } | ||||
|  | ||||
|                     if (null === $value || '' === $value || null === $c = $this->asideActivityCategoryRepository->find($value)) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     return $this->categoryRender->renderString($c, []); | ||||
|                 }; | ||||
|  | ||||
|             case 'main_scope': | ||||
|                 return function ($value) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return 'export.aside_activity.main_scope'; | ||||
|                     } | ||||
|  | ||||
|                     if (null === $value || '' === $value || null === $c = $this->scopeRepository->find($value)) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     return $this->translatableStringHelper->localize($c->getName()); | ||||
|                 }; | ||||
|  | ||||
|             case 'main_center': | ||||
|                 return function ($value) { | ||||
|                     if ('_header' === $value) { | ||||
|                         return 'export.aside_activity.main_center'; | ||||
|                     } | ||||
|  | ||||
|                     /** @var Center $c */ | ||||
|                     if (null === $value || '' === $value || null === $c = $this->centerRepository->find($value)) { | ||||
|                         return ''; | ||||
|                     } | ||||
|  | ||||
|                     return $c->getName(); | ||||
|                 }; | ||||
|  | ||||
|             default: | ||||
|                 throw new LogicException('this key is not supported : ' . $key); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data) | ||||
|     { | ||||
|         return [ | ||||
|             'id', | ||||
|             'createdAt', | ||||
|             'updatedAt', | ||||
|             'agent_id', | ||||
|             'creator_id', | ||||
|             'main_scope', | ||||
|             'main_center', | ||||
|             'aside_activity_type', | ||||
|             'date', | ||||
|             'duration', | ||||
|             'note', | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param QueryBuilder $query | ||||
|      * @param array $data | ||||
|      */ | ||||
|     public function getResult($query, $data): array | ||||
|     { | ||||
|         return $query->getQuery()->getResult(AbstractQuery::HYDRATE_ARRAY); | ||||
|     } | ||||
|  | ||||
|     public function getTitle() | ||||
|     { | ||||
|         return 'export.aside_activity.List of aside activities'; | ||||
|     } | ||||
|  | ||||
|     public function getType(): string | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) | ||||
|     { | ||||
|         $qb = $this->em->createQueryBuilder() | ||||
|             ->from(AsideActivity::class, 'aside') | ||||
|             ->leftJoin('aside.agent', 'agent'); | ||||
|  | ||||
|         $qb | ||||
|             ->addSelect('aside.id AS id') | ||||
|             ->addSelect('aside.createdAt AS createdAt') | ||||
|             ->addSelect('aside.updatedAt AS updatedAt') | ||||
|             ->addSelect('IDENTITY(aside.agent) AS agent_id') | ||||
|             ->addSelect('IDENTITY(aside.createdBy) AS creator_id') | ||||
|             ->addSelect('IDENTITY(agent.mainScope) AS main_scope') | ||||
|             ->addSelect('IDENTITY(agent.mainCenter) AS main_center') | ||||
|             ->addSelect('IDENTITY(aside.type) AS aside_activity_type') | ||||
|             ->addSelect('aside.date') | ||||
|             ->addSelect('aside.duration') | ||||
|             ->addSelect('aside.note'); | ||||
|  | ||||
|         return $qb; | ||||
|     } | ||||
|  | ||||
|     public function requiredRole(): string | ||||
|     { | ||||
|         return AsideActivityVoter::STATS; | ||||
|     } | ||||
|  | ||||
|     public function supportsModifiers() | ||||
|     { | ||||
|         return [Declarations::ASIDE_ACTIVITY_TYPE]; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,102 @@ | ||||
| <?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\AsideActivityBundle\Export\Export; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\AsideActivityBundle\Repository\AsideActivityRepository; | ||||
| use Chill\AsideActivityBundle\Security\AsideActivityVoter; | ||||
| use Chill\MainBundle\Export\ExportInterface; | ||||
| use Chill\MainBundle\Export\FormatterInterface; | ||||
| use Chill\MainBundle\Export\GroupedExportInterface; | ||||
| use Doctrine\ORM\Query; | ||||
| use LogicException; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class SumAsideActivityDuration implements ExportInterface, GroupedExportInterface | ||||
| { | ||||
|     private AsideActivityRepository $repository; | ||||
|  | ||||
|     public function __construct( | ||||
|         AsideActivityRepository $repository | ||||
|     ) { | ||||
|         $this->repository = $repository; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     public function getAllowedFormattersTypes(): array | ||||
|     { | ||||
|         return [FormatterInterface::TYPE_TABULAR]; | ||||
|     } | ||||
|  | ||||
|     public function getDescription(): string | ||||
|     { | ||||
|         return 'export.Sum aside activities duration'; | ||||
|     } | ||||
|  | ||||
|     public function getGroup(): string | ||||
|     { | ||||
|         return 'export.Exports of aside activities'; | ||||
|     } | ||||
|  | ||||
|     public function getLabels($key, array $values, $data) | ||||
|     { | ||||
|         if ('export_sum_aside_activity_duration' !== $key) { | ||||
|             throw new LogicException("the key {$key} is not used by this export"); | ||||
|         } | ||||
|  | ||||
|         return static fn ($value) => '_header' === $value ? 'Sum duration aside activities' : $value; | ||||
|     } | ||||
|  | ||||
|     public function getQueryKeys($data): array | ||||
|     { | ||||
|         return ['export_sum_aside_activity_duration']; | ||||
|     } | ||||
|  | ||||
|     public function getResult($query, $data) | ||||
|     { | ||||
|         return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'export.Sum aside activities duration'; | ||||
|     } | ||||
|  | ||||
|     public function getType(): string | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) | ||||
|     { | ||||
|         $qb = $this->repository | ||||
|             ->createQueryBuilder('aside'); | ||||
|  | ||||
|         $qb->select('SUM(aside.duration) as export_sum_aside_activity_duration') | ||||
|             ->andWhere($qb->expr()->isNotNull('aside.duration')); | ||||
|  | ||||
|         return $qb; | ||||
|     } | ||||
|  | ||||
|     public function requiredRole(): string | ||||
|     { | ||||
|         return AsideActivityVoter::STATS; | ||||
|     } | ||||
|  | ||||
|     public function supportsModifiers(): array | ||||
|     { | ||||
|         return [Declarations::ASIDE_ACTIVITY_TYPE]; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,96 @@ | ||||
| <?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\AsideActivityBundle\Export\Filter; | ||||
|  | ||||
| use Chill\AsideActivityBundle\Entity\AsideActivityCategory; | ||||
| use Chill\AsideActivityBundle\Export\Declarations; | ||||
| use Chill\AsideActivityBundle\Repository\AsideActivityCategoryRepository; | ||||
| use Chill\AsideActivityBundle\Templating\Entity\CategoryRender; | ||||
| use Chill\MainBundle\Export\FilterInterface; | ||||
| use Chill\MainBundle\Templating\TranslatableStringHelperInterface; | ||||
| use Doctrine\ORM\QueryBuilder; | ||||
| use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||
| use Symfony\Component\Form\FormBuilderInterface; | ||||
|  | ||||
| class ByActivityTypeFilter implements FilterInterface | ||||
| { | ||||
|     private AsideActivityCategoryRepository $asideActivityTypeRepository; | ||||
|  | ||||
|     private CategoryRender $categoryRender; | ||||
|  | ||||
|     private TranslatableStringHelperInterface $translatableStringHelper; | ||||
|  | ||||
|     public function __construct( | ||||
|         CategoryRender $categoryRender, | ||||
|         TranslatableStringHelperInterface $translatableStringHelper, | ||||
|         AsideActivityCategoryRepository $asideActivityTypeRepository | ||||
|     ) { | ||||
|         $this->categoryRender = $categoryRender; | ||||
|         $this->asideActivityTypeRepository = $asideActivityTypeRepository; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|     } | ||||
|  | ||||
|     public function addRole(): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function alterQuery(QueryBuilder $qb, $data) | ||||
|     { | ||||
|         $clause = $qb->expr()->in('aside.type', ':types'); | ||||
|  | ||||
|         $qb->andWhere($clause); | ||||
|         $qb->setParameter('types', $data['types']); | ||||
|     } | ||||
|  | ||||
|     public function applyOn(): string | ||||
|     { | ||||
|         return Declarations::ASIDE_ACTIVITY_TYPE; | ||||
|     } | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder) | ||||
|     { | ||||
|         $builder | ||||
|             ->add('types', EntityType::class, [ | ||||
|                 'class' => AsideActivityCategory::class, | ||||
|                 'choices' => $this->asideActivityTypeRepository->findAllActive(), | ||||
|                 'required' => false, | ||||
|                 'multiple' => true, | ||||
|                 'expanded' => false, | ||||
|                 'attr' => [ | ||||
|                     'class' => 'select2', | ||||
|                 ], | ||||
|                 'choice_label' => function (AsideActivityCategory $category) { | ||||
|                     $options = []; | ||||
|  | ||||
|                     return $this->categoryRender->renderString($category, $options); | ||||
|                 }, | ||||
|             ]); | ||||
|     } | ||||
|  | ||||
|     public function describeAction($data, $format = 'string'): array | ||||
|     { | ||||
|         $types = array_map( | ||||
|             fn (AsideActivityCategory $t): string => $this->translatableStringHelper->localize($t->getTitle()), | ||||
|             $data['types']->toArray() | ||||
|         ); | ||||
|  | ||||
|         return ['export.filter.Filtered by aside activity type: only %type%', [ | ||||
|             '%type%' => implode(', ', $types), | ||||
|         ]]; | ||||
|     } | ||||
|  | ||||
|     public function getTitle(): string | ||||
|     { | ||||
|         return 'export.filter.Filter by aside activity type'; | ||||
|     } | ||||
| } | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user