mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2026-01-02 07:21:24 +00:00
Compare commits
2393 Commits
convert_to
...
fix_filiat
| Author | SHA1 | Date | |
|---|---|---|---|
| 34801dcd5f | |||
| cc2bee8188 | |||
| 99154eaa99 | |||
| b28677fac9 | |||
| fb0135a0af | |||
| 88961e3e7e | |||
| 85796c2271 | |||
| 83ee3c7cfd | |||
| 8809abedf6 | |||
| 5896a77ae9 | |||
| 11d1b26efc | |||
| 5f6c11bde9 | |||
| b3da9611ce | |||
| ba8a80a202 | |||
| 6998043159 | |||
| ce17c15d41 | |||
| 93560a62ef | |||
| 3785e5096e | |||
| 3748eb99c6 | |||
| c69af351cc | |||
| 692c2bdac0 | |||
| 6bcc28b4bb | |||
| a79a2b6ee9 | |||
| 09b2c9a14e | |||
| 4ef48216ed | |||
| 16fed67dd0 | |||
| 87a9d48bdf | |||
| f3ca01fd88 | |||
| 5962d3f233 | |||
| ab08dab88a | |||
| 3bb8b713d1 | |||
| 94c258e914 | |||
| 1d8f25e2c8 | |||
| b4b67c6f0d | |||
|
|
9978e76a87 | ||
|
|
36e35f2e8f | ||
|
|
389f014d36 | ||
| 135b385c11 | |||
|
|
3cf8609e8f | ||
| c82e128c5c | |||
| 3ddab4f6e2 | |||
|
|
31e1bfdf80 | ||
|
|
c76f2a81c9 | ||
|
|
f48e197e0b | ||
|
|
f70e3b7997 | ||
| 66baf0391c | |||
| 4f81bffa67 | |||
| 5432ce2b0f | |||
| 03bc94178f | |||
| bf536aab38 | |||
| df593c7c7f | |||
|
|
07f4aaa590 | ||
| 10095343ec | |||
| 1742dd4951 | |||
| 832da83b27 | |||
| 0cfad13720 | |||
| dfb583fa8b | |||
| da9eba2618 | |||
| 8982697a73 | |||
| 1bd00c3f4c | |||
| 7ac54a6c9f | |||
| ccaf430b37 | |||
| 72ce5c716d | |||
| 86afe2f702 | |||
| f297548a3a | |||
| d20d38e5f4 | |||
| 3735f24e10 | |||
| 4b5cdd471b | |||
| f339cf56d6 | |||
| 4592be3a8d | |||
| 4e1d7278c6 | |||
| a26346859c | |||
| a48b990c73 | |||
| 0943366d39 | |||
| 4719a74307 | |||
| 72167b9e77 | |||
| c14ae98130 | |||
| 83b928b0b0 | |||
| f0187536c1 | |||
| fec27babbe | |||
| ceb0f741ef | |||
| 149d4c3846 | |||
| 9a29532362 | |||
| d9dfe75378 | |||
| 8d70562132 | |||
| 83de518b45 | |||
| 21bc472886 | |||
| 75490306a2 | |||
| f92cef02cf | |||
| a4e3ffbe27 | |||
| 0849b2d5f4 | |||
| 679d19e2a1 | |||
| 7fb0e44307 | |||
| 1496ae34f8 | |||
| b9c1dbd8c1 | |||
| bc288a2161 | |||
| c41ee1d9de | |||
| 3ceda28994 | |||
| 5d13a587df | |||
| d49859e474 | |||
| c9ea9112f1 | |||
| 3274ecfaec | |||
| dba4cfbb2d | |||
| e6da1be5f5 | |||
| cb1108a25e | |||
| 3efb4a4a5e | |||
| 9511d6eaee | |||
| d4aba04a52 | |||
| 71a92a8b6b | |||
| 2cabe80bf6 | |||
| 9680f7c01e | |||
| 3c8b2207c4 | |||
| 7278a5f3fa | |||
| 566c1c5380 | |||
| af7df7029b | |||
| 4d0717690b | |||
| 96a0b76e85 | |||
| f3800ff38f | |||
| 5e5a855578 | |||
| 54a3e2b2ef | |||
| 014c460eef | |||
| 01f1605cb8 | |||
|
|
0a4ef3ad22 | ||
|
|
dbdf435721 | ||
|
|
cdbb70b9c5 | ||
|
|
60c163ae9d | ||
|
|
e8cf7ae8e1 | ||
|
|
dea554ced4 | ||
|
|
5948ac5b2a | ||
|
|
af898cbd12 | ||
|
|
8863157fc9 | ||
|
|
2ac78a12db | ||
|
|
bc410b02e7 | ||
|
|
5ebaeeb4ba | ||
|
|
4402d52de7 | ||
|
|
d6f1aa53dc | ||
|
|
da2c88c026 | ||
|
|
a4210dd2c7 | ||
|
|
d8db8c0f8e | ||
|
|
b13ac3a919 | ||
| 354c37ade2 | |||
|
|
cecfa1a18a | ||
|
|
f77031630f | ||
|
|
8eef073988 | ||
|
|
380c55698c | ||
| 9dd463882c | |||
| 6edc9b25db | |||
| bb18082c3a | |||
| 89a700ff61 | |||
| 2a5bb28210 | |||
| aec01df202 | |||
| a9df9f4880 | |||
| b26fcc4566 | |||
| 9970212075 | |||
| fd935795e5 | |||
| 52dd08e088 | |||
| 3fb3df9db1 | |||
| b98f4e2d76 | |||
| 58fce9999d | |||
| 49b1ca13f2 | |||
|
|
6481f6a4c1 | ||
|
|
05088b5964 | ||
|
|
f44b9ca05b | ||
|
|
fa458c54ec | ||
|
|
629dbb9137 | ||
|
|
97fd9c557c | ||
|
|
f449dcbda1 | ||
|
|
b7ed658f96 | ||
|
|
f4652adbc2 | ||
|
|
fde1d563c2 | ||
|
|
cb1bbe940f | ||
|
|
be27df1fd5 | ||
|
|
0e8b73638f | ||
|
|
c9b3bab508 | ||
|
|
0f735c5749 | ||
|
|
1a764025e1 | ||
|
|
1c04a873c0 | ||
|
|
3f399296c8 | ||
|
|
fd67f327ae | ||
|
|
0f319a1003 | ||
|
|
63bfd25acb | ||
| 6453de32ec | |||
| 3a115744fe | |||
|
|
24794c1285 | ||
|
|
7cefce8305 | ||
| 66c7504b22 | |||
|
|
a4f2d47c46 | ||
| 31d076d49b | |||
| 189974d5e4 | |||
| f55c06d5c5 | |||
| 6c246a0d38 | |||
| 6abbf9bf21 | |||
| 64432bb08a | |||
|
|
7907e4a050 | ||
|
|
9ce7f10415 | ||
|
|
2fbdd169df | ||
|
|
5daf09334b | ||
|
|
10aa727fb3 | ||
|
|
475e8adedc | ||
|
|
54ced6ec3d | ||
|
|
47f47ac017 | ||
|
|
ba495def7e | ||
|
|
b09d92eae8 | ||
|
|
ab90f72c7e | ||
|
|
16d74eaa0c | ||
| 10d0078716 | |||
| 6567143ff5 | |||
|
|
e50e68a52b | ||
| e19cac168b | |||
| 416a88b93d | |||
| 784a725ce3 | |||
| 2ef3a3362a | |||
|
|
3f256ad907 | ||
|
|
76af733bc3 | ||
|
|
9808675455 | ||
|
|
04f27cc555 | ||
| a3c3834081 | |||
|
|
4c99abd6d3 | ||
| 0e0e0799d1 | |||
| 02a8f5a863 | |||
| ae624d25fc | |||
| 14341b9768 | |||
| ee14cd268b | |||
| 3122098447 | |||
| 065b10b877 | |||
| 8113fddcb2 | |||
| 1b6e84262b | |||
| acee0ade24 | |||
| c629dd79cb | |||
| 0ec859e345 | |||
| eb2bc306f7 | |||
|
|
64d459466f | ||
| 372ec7c4b2 | |||
| f917be0958 | |||
| 6fd0ff7960 | |||
| 45d2e0c9cd | |||
| da3236425e | |||
| 79ac908631 | |||
| 8ba7a39335 | |||
| 304c734f9b | |||
| dae383dbd9 | |||
| 3f63bc803d | |||
| 472bc3f35d | |||
| 27e74014ce | |||
| f26d50a3a8 | |||
| 6da19b0135 | |||
| d0cc0e775f | |||
| 4b9b27a8ef | |||
| 864e1eeabb | |||
| a0392b9216 | |||
| 8ba51bafd0 | |||
| afdc32d416 | |||
|
|
de362dcad7 | ||
|
|
2263e7be73 | ||
|
|
8d62ce46c6 | ||
|
|
fabf23f1f0 | ||
|
|
192ab02be2 | ||
|
|
62d59e6037 | ||
|
|
83a888a32d | ||
| e1fe2a396f | |||
| 99413cf328 | |||
| fedcf7272c | |||
| df4abd6661 | |||
| ad96319d97 | |||
| fcbf62f613 | |||
| cc139782b1 | |||
| 770010ceb8 | |||
| 1e06926f6d | |||
| ed35822eb5 | |||
|
|
671950708c | ||
| 7a96671f35 | |||
| 6daee268bf | |||
|
|
4675525225 | ||
| 86a7bb5880 | |||
| 6eaa553d77 | |||
| daa09e2df3 | |||
| 09aa7ff631 | |||
| a28ac8f28c | |||
| ea6a9b3e2d | |||
| a8527b6cbb | |||
| ad9ac8ec0a | |||
| 44f9601759 | |||
| 9244040d7b | |||
| 467ae5f474 | |||
| aa356185a5 | |||
| 9789c79402 | |||
| fa7850196f | |||
| 4794039250 | |||
| 916e3ab02d | |||
| 48daed26f9 | |||
| c56a125a78 | |||
| 4dc56db018 | |||
| e878960da9 | |||
| b2003c74a6 | |||
| 27ce146aa0 | |||
| 3ed2b36057 | |||
| e8dcb45abb | |||
|
|
6662e0fb5f | ||
|
|
76549581e6 | ||
| f14c915502 | |||
| 2e44926088 | |||
| fcec3af5a8 | |||
| 452c4b85c6 | |||
| d5864027d6 | |||
| c2061110dd | |||
| b2fb86111d | |||
| db6c4f15f8 | |||
| 12231912d6 | |||
| 7b0c8d21ee | |||
| 37a198b860 | |||
| 64b5de2c03 | |||
| f713b1ddc8 | |||
| faf1559770 | |||
| 5a1ce399f6 | |||
| 505384c2a0 | |||
| a7654edefa | |||
| 81689e3507 | |||
| b891ba842d | |||
| 3ceae0473d | |||
| 8ba70b08c4 | |||
| 795a8e9daf | |||
|
|
3f47503528 | ||
|
|
81edaef062 | ||
|
|
dc48b4b9c7 | ||
| 2684345981 | |||
| 51d1e5422b | |||
| 064286aa2f | |||
| e72a2004d7 | |||
| 329fb05db0 | |||
| 75250402c8 | |||
| e5209ca6d9 | |||
| 4512b94293 | |||
| 217f95472b | |||
| b7abf6b6bf | |||
| c39fa1c49b | |||
| 81c8d0ec77 | |||
| 72012a70d9 | |||
| 916560c522 | |||
| 57d6240cd1 | |||
| 2d460adc4d | |||
| d155c76013 | |||
| 529a9e5f58 | |||
| 2b837e0445 | |||
| 4279acc2f8 | |||
| 8fb3870ca0 | |||
| 171cc79a4a | |||
| 79fa030323 | |||
| b36fd57e4f | |||
| ff72b28861 | |||
| 1f2638626c | |||
|
|
5ae6c6397c | ||
|
|
f8410de569 | ||
|
|
3ad8223949 | ||
|
|
111906c2b9 | ||
| f5efb07e3c | |||
| 79e46c7fe8 | |||
| 09503768f5 | |||
| 41ff21ee23 | |||
| 30bb2e8393 | |||
| ca166655da | |||
| 8f69f852b9 | |||
| 6747cad210 | |||
| 0cbcd91c3f | |||
|
|
63dacb9ebb | ||
|
|
5acd49357e | ||
| d757e07dfc | |||
| 92c04c545f | |||
| f681e50167 | |||
| 9c428f989c | |||
| ef84576903 | |||
| 12df38d32d | |||
| 084d77c8f4 | |||
| 2646fa5b65 | |||
| 81bff2bb76 | |||
| 291d340aa0 | |||
| 38a26f0bc1 | |||
| 18025012a8 | |||
| 805b9dc0df | |||
| 9f064784f2 | |||
|
|
07ea2b771c | ||
| 83dd8f810c | |||
| bd0b45b4dd | |||
| 6dbe8068ae | |||
| 19561c63cb | |||
| 354f130e9e | |||
| 2d9af8f8c0 | |||
| f7d9551dc1 | |||
| abc3caee00 | |||
| 33f93d484d | |||
| 8470604b8f | |||
| b85e6aae3f | |||
| a4baf89a6a | |||
| 0a05dcd753 | |||
|
|
3ed562e5d9 | ||
| c6be7955fd | |||
| e246ccbcd9 | |||
| 44b537f05e | |||
| 0fd23c61a1 | |||
| 6cad0be181 | |||
| 9a0eb1c74c | |||
| a70c561596 | |||
| daa3eabd43 | |||
| b24de76d77 | |||
| 92d394b669 | |||
| c17d20f945 | |||
| be77c3729b | |||
| ad1e7b576c | |||
| bf0578b6d7 | |||
| 0ce23230da | |||
| 8b7404e531 | |||
| bc550ea42a | |||
| 65e6471a02 | |||
| de9d2aa885 | |||
| 66ab38c60f | |||
| 8882c99f5a | |||
| 8512a5e1bc | |||
| 7f97215fe9 | |||
| 6427fc64cd | |||
| 26d5bf03bd | |||
|
|
f2c60cfd20 | ||
|
|
7a6aa6edcb | ||
|
|
bad5506b98 | ||
|
|
c214c2f4a4 | ||
|
|
7048f670ed | ||
| c757fa068a | |||
| ebc4ec0d7c | |||
|
|
4bc8da9655 | ||
| 69394df89b | |||
|
|
84038c0ff2 | ||
|
|
584111b5f7 | ||
|
|
355c5cf8fd | ||
|
|
57ed90a696 | ||
|
|
bea019e9bc | ||
|
|
ae45f5f40b | ||
|
|
946ae31d11 | ||
|
|
4009f3ffda | ||
|
|
7d3239d6d6 | ||
|
|
7a2151f23a | ||
|
|
c1ec2933e5 | ||
| 617473f6a5 | |||
| 124a6a58fc | |||
| afa38e9dd5 | |||
| a52f29bb78 | |||
| b95ff337b6 | |||
| 92a169be1e | |||
| e6d59bc837 | |||
| 31731c6f44 | |||
| 86ec020f80 | |||
| 07351e2946 | |||
| 405694a0b4 | |||
| bad39364c2 | |||
| c0b39e4e7c | |||
| f98b35f009 | |||
| 8770188d54 | |||
| 35c7d55b8c | |||
| 2a53fb9341 | |||
| e7f0cd50c9 | |||
| a41d6cf744 | |||
| 24d28b0a52 | |||
| 4425f2ad49 | |||
| a8db07a383 | |||
| ef9fd80ad5 | |||
| e6169ddffa | |||
| ccf7c885bb | |||
| 01c571ab06 | |||
| 69b2dce7ee | |||
| 910245f855 | |||
| 7fbb3dfd07 | |||
| 9765bc5663 | |||
| bb65909bfa | |||
| 03b0a8766e | |||
| 5eea202586 | |||
| a78c62789c | |||
| 68671e297c | |||
| c3179da320 | |||
| 2a32284471 | |||
| 4257a918f3 | |||
| 7ffb3dc74f | |||
| 0f926e9dfe | |||
| fc55567a64 | |||
| 009030b5fb | |||
| 6e1cabc8fc | |||
| 572c602387 | |||
| 26a4577420 | |||
|
|
c0ee51068c | ||
| f09870931c | |||
| ea21f2d9c4 | |||
| d81a41bb17 | |||
| 7851d9956e | |||
| f35479e4d2 | |||
| 432b105be5 | |||
| 988b67bd4b | |||
| f64409e5e6 | |||
| a1baf99294 | |||
| d9bb18e042 | |||
| 00a6ef0598 | |||
|
|
c03e38f4ff | ||
|
|
f9bcc5b1e9 | ||
| 56340b44d5 | |||
| 934a066910 | |||
| 095afb90c7 | |||
| 645549ae34 | |||
| 02b12c097d | |||
|
|
d34462d849 | ||
|
|
c65a73604d | ||
|
|
6a4edd000f | ||
|
|
017b7bca87 | ||
| 612d053892 | |||
| 8edc68859e | |||
| a4afe73efe | |||
| 2b67f105f7 | |||
| 95b114a144 | |||
| 5477a70c84 | |||
| 7d69ec6d6b | |||
| 17594b58ab | |||
| cddd3c20c8 | |||
| 25a37974e5 | |||
| 066afc07a8 | |||
| 56c3f05ec9 | |||
| 1907beaf6e | |||
| 37c04d3f12 | |||
| a7fbce0add | |||
| e663bae5c4 | |||
| ad6a68487c | |||
|
|
88f377778c | ||
|
|
d6deaeb324 | ||
|
|
f2744fba43 | ||
| 72a62a3a1b | |||
| bcde4497cc | |||
|
|
c3731ae2db | ||
|
|
ddce7603ad | ||
|
|
3a3eb68288 | ||
| a4ece21f2b | |||
| c7762dd6d2 | |||
| f47fb17b8d | |||
| 51dc255be5 | |||
| 6ddbb79157 | |||
| dcddf4b3f1 | |||
| e027958c63 | |||
| 034a416612 | |||
| 63cdc97c47 | |||
| ae10a8bd1c | |||
| eb2bad0f47 | |||
| bc43d8bae5 | |||
| 83dfe530e9 | |||
| c477996acf | |||
| 36b1f05524 | |||
| dae9d48574 | |||
| 9812710cd0 | |||
| 3b083c31e7 | |||
| 1b567327b7 | |||
|
|
1d6d8dc002 | ||
| 38e92ee981 | |||
| e433b6a42b | |||
| df24d085ca | |||
|
|
f29ead4961 | ||
|
|
b361ab2d74 | ||
| de4f65fede | |||
| ed1ddbe53d | |||
| 818370f037 | |||
|
|
10fcd4f732 | ||
|
|
bc8709f9a1 | ||
| 3d6745e535 | |||
| 961c0a867c | |||
| f5327fe8ab | |||
| 6f270188f7 | |||
| 5895334244 | |||
| 1812592d43 | |||
| 3babbe5e84 | |||
| 632ea710c8 | |||
| 7963076505 | |||
| bdcb135adb | |||
|
|
58f1984c77 | ||
| 3b93d2c0a5 | |||
| f24b2931dd | |||
| c1e972963f | |||
| ce2e05464f | |||
| dbe0c9097f | |||
| e68c12e0e7 | |||
| c99a967fb9 | |||
| d11eebefae | |||
| b423821ae9 | |||
| f2ae183682 | |||
| 7a0234adb2 | |||
|
|
f36fc0ba60 | ||
|
|
cff126953e | ||
|
|
89064f55a1 | ||
| f69dab5ca5 | |||
| 259cdd34c4 | |||
|
|
9dca42e242 | ||
|
|
248e4e93ed | ||
|
|
db2bf1e98e | ||
| ea66db07a4 | |||
| 5f35a42fe3 | |||
| e82b2bd10a | |||
| ad4f400262 | |||
| 866bcec114 | |||
| 367188b03d | |||
| dd4d463c42 | |||
| 1031f0d40e | |||
| 5d7943f871 | |||
| d0c34c0206 | |||
| 726b8f0e3c | |||
| 5d4149db35 | |||
| f04474c82f | |||
| 156398caba | |||
| ae3091f620 | |||
| 84f9fdba28 | |||
| 531f940b65 | |||
| d907f3f11b | |||
| 02409d4992 | |||
| 771b6a59a5 | |||
| 2e336ac874 | |||
| a61c9553e1 | |||
| 3243a7e0a2 | |||
| 06cc84a21f | |||
| 688914906d | |||
| f9d87876f2 | |||
| 7df70cab98 | |||
| 287ea80be9 | |||
| dc3d88a1ef | |||
| cba6394823 | |||
| eea0711a04 | |||
| 949bdfd993 | |||
| 3067da5d24 | |||
| 546c925224 | |||
| d7b5944c5f | |||
| aa234e0749 | |||
| 506118b3f1 | |||
| 52a78902f7 | |||
| e89489fde9 | |||
| a7be9c0a83 | |||
| 6331d8fd3e | |||
|
|
eb6790b17d | ||
| 61f010f5ad | |||
| 30fd36b741 | |||
| 91aacb91cc | |||
| 73c17febd9 | |||
| 99dc9dd4a8 | |||
| c5ffca22ff | |||
| 89e7eb85ff | |||
| 98d5de29b0 | |||
| 4939c8c8e4 | |||
| 8d5c66dc40 | |||
| 02571bf727 | |||
| 2c6cbeb8ca | |||
| 13a7d791a1 | |||
| ae555fed00 | |||
| 6d65009987 | |||
| 386e88387d | |||
| 22473d6547 | |||
| e7b4f1a54f | |||
| 1f6565d2ef | |||
| e838a82556 | |||
| eebca7b0f1 | |||
| 169d4dc41c | |||
| 9e063180bf | |||
| 5b0b15f395 | |||
| 736d43e756 | |||
| b4add2de95 | |||
| 37a8928e41 | |||
| 0a0243eb85 | |||
| a6c7c1d997 | |||
| c7caa2ba76 | |||
| 2ce8b1110d | |||
| 11d57094e8 | |||
| 704392a729 | |||
| efeda81e05 | |||
| ae5940eb48 | |||
| 638ae3315f | |||
| ac9e55e2fc | |||
| 293efc03b4 | |||
| f084078cf2 | |||
| c8a66f008e | |||
| b6b6c25b3b | |||
| cb35aed202 | |||
| eebe1d669a | |||
| 8f462da627 | |||
| 3aaecc8630 | |||
| 9b97b03d42 | |||
| bdb07a3a05 | |||
| 2fda5b751b | |||
| ddb048daca | |||
| ac42de7863 | |||
| 2c55cfe1dc | |||
| 3ba3498892 | |||
| 99276dc41c | |||
| fced8ef4b7 | |||
| 247f1879e3 | |||
| a06a0788c1 | |||
| 5a8291dc87 | |||
| 15af0203ff | |||
| 7006196691 | |||
| 5cbe14464d | |||
| 2463a492c8 | |||
| 72f69f0f82 | |||
| a2daeff384 | |||
| caaa25ef8e | |||
| ff5aeaae17 | |||
| 184a664bf9 | |||
|
|
dbc604d84a | ||
|
|
9c353669ea | ||
| 8d92cc0ba7 | |||
|
|
215b859725 | ||
| da67fa4c4f | |||
| 5b4c3ae9b3 | |||
| fdb36ab047 | |||
| a1b1e6bb17 | |||
|
|
73dd97f7d3 | ||
| bfd51c6615 | |||
|
|
b84e161399 | ||
|
|
3b8c329ff6 | ||
|
|
e7299bac4a | ||
|
|
80d518e4af | ||
|
|
730762d1c6 | ||
|
|
288f0dbf69 | ||
|
|
2c02150b1a | ||
|
|
5e0a693108 | ||
| 72ba2c6bca | |||
| 6adb647ccc | |||
| 97731b0a9b | |||
|
|
1e63d00767 | ||
| 6151d0ce54 | |||
| 9551e10d2b | |||
| 387b7c2fbd | |||
| 39ba21f308 | |||
|
|
22755de1dd | ||
|
|
3d7fcd99a8 | ||
|
|
35d723e5fb | ||
|
|
62af980ea5 | ||
|
|
8abed67e1c | ||
|
|
b8992b8eeb | ||
|
|
6ddbf35a7b | ||
|
|
325ab0daf3 | ||
| 1a783e1881 | |||
| d04f5a527b | |||
| f51279e83e | |||
| 90bebbad7d | |||
|
|
82052f5d70 | ||
|
|
369397bf4f | ||
| c61577edda | |||
|
|
1beae4d713 | ||
| 352302b7aa | |||
| 01b60f334a | |||
| 0546a43d63 | |||
| 5c68879509 | |||
| 9d844f6692 | |||
| 28509f651d | |||
| b590444375 | |||
| 873258fc84 | |||
| 7988becc45 | |||
| 45c4a7ae64 | |||
| 05803787a9 | |||
| 33acc645ea | |||
| 0ce787701f | |||
| e9cacbb74a | |||
| a2f8f7ae43 | |||
| a49c53772e | |||
| 1adccdb06e | |||
| 22d593fc12 | |||
| de7ec6fa54 | |||
| 90948e5513 | |||
| bd79391efc | |||
| 4ea72f7d9d | |||
| 96e38a8a6d | |||
| 09e6872724 | |||
| f44f9d356b | |||
|
|
9f0ab5aee7 | ||
|
|
6eac6044cd | ||
| a24cd693e3 | |||
| f63aab327d | |||
| 0c9499dd58 | |||
| 00787adf2b | |||
|
|
dbe186547f | ||
|
|
13f0b8610c | ||
|
|
f9e8bf4f2d | ||
|
|
44e93dd5f8 | ||
|
|
ee8f331de4 | ||
|
|
99f8aeb6cd | ||
|
|
fc1fe7c277 | ||
|
|
a8b6609dbf | ||
|
|
ded2ac7d48 | ||
|
|
16a0dc4621 | ||
|
|
ba668d3b9d | ||
|
|
690a443bdb | ||
|
|
137eb184d0 | ||
| 0a2730540e | |||
| 9284a4bc29 | |||
|
|
f2edc1ef0c | ||
| bf2d9acc5a | |||
| 2628e58ea0 | |||
|
|
da650fa1f2 | ||
|
|
55a65ee6e9 | ||
|
|
492c22d1b7 | ||
| e153fa34e9 | |||
| d272e1398c | |||
| 9457926a35 | |||
| 8ff80ac65e | |||
| 3d1ded8b1c | |||
| c611f35cd6 | |||
| f79cfda74a | |||
| ff4b90835e | |||
| d5501bcfbd | |||
| fb1552f6b7 | |||
| e28da7e99b | |||
| 4b899d337a | |||
| d6933fce35 | |||
| aefd09693b | |||
| 8555277827 | |||
| 6f58a9a8bb | |||
| b02739cc3c | |||
| b8d9d59d76 | |||
|
|
ba52e95253 | ||
|
|
2e69dbb7c9 | ||
| 13d579dc33 | |||
|
|
efcc602d53 | ||
| ee82bd2867 | |||
|
|
fcc5d3d349 | ||
| af3b761208 | |||
| 23e61ac6a7 | |||
| e4ae495a3f | |||
| ec99bc95fa | |||
|
|
b68b43118b | ||
|
|
db95e935d9 | ||
|
|
dc5ff53a57 | ||
|
|
50a2de1559 | ||
| d18ab5cf49 | |||
| 1860478aea | |||
|
|
17e83deb55 | ||
| 16be28681a | |||
| 388b666b5d | |||
|
|
9b06ccc3e6 | ||
| efbd9b0185 | |||
| b2a61071bf | |||
| f0849eeef5 | |||
| c7f2eedd4b | |||
| ab74478afc | |||
| f88d0ee19e | |||
| 727480d6d1 | |||
| af79ffd544 | |||
| 80aee185a7 | |||
| 7afada5dad | |||
| 739c7e9a77 | |||
| 03471a74fe | |||
| 44ed2e44e0 | |||
| 68aa80269f | |||
| 2012df512c | |||
| 1c21b80703 | |||
| 25fe105590 | |||
| b6e530fec6 | |||
| 4ef2274803 | |||
| 3352999862 | |||
| 5605813826 | |||
| 72795240b9 | |||
| d0772fc306 | |||
|
|
def90893de | ||
|
|
4b692edd7d | ||
|
|
6472c554ed | ||
|
|
f04118218d | ||
|
|
cde6e8f368 | ||
| 474fffcbb5 | |||
| 0333e79b0a | |||
| 7c043e9d85 | |||
|
|
6d46efa610 | ||
|
|
84f2e1c72a | ||
|
|
1c1dec1f5b | ||
|
|
3ff9291580 | ||
| 9265a15427 | |||
| 6d3b88aee9 | |||
| 827c85ac56 | |||
|
|
7b52a10943 | ||
|
|
187c9d82b6 | ||
| 214ef09fe7 | |||
| 892be42580 | |||
| 18694a34cf | |||
| e9236875d2 | |||
| db4b0b104b | |||
| 4ad65b616d | |||
|
|
c5eac09478 | ||
|
|
a88e052eb6 | ||
|
|
568a1d95f4 | ||
| 9769aa1386 | |||
| bf4a3a2c91 | |||
| 3df2335cf4 | |||
| 1c7c217d1c | |||
| f0e41f839f | |||
|
|
349db2142d | ||
| 34b3c6fa32 | |||
| b1c0e18e51 | |||
| 6edf0bcb3b | |||
| 6171b3411f | |||
| 86bf0115dd | |||
| 19cad9a7a4 | |||
| a736c2a67e | |||
| 636f92b168 | |||
|
|
1b66941746 | ||
|
|
dca17c409b | ||
| 7f5a91fc49 | |||
| 3ab71c8a2e | |||
| fdf1911c15 | |||
| ba24abf788 | |||
| 076728bf5f | |||
| 0833bb49ca | |||
|
|
23fd4be2e5 | ||
|
|
4406016f82 | ||
| ac12e75714 | |||
| d50d68aa86 | |||
| fccac80222 | |||
| bf70d344bf | |||
| d0591d0351 | |||
| c83d6d392f | |||
| 09ca1ec6bb | |||
| 970431197f | |||
| 9fdd9da486 | |||
| b9eee51de6 | |||
| c0ec64e4be | |||
| 74a84e42a6 | |||
| 595ddf5b6f | |||
| abe183fd10 | |||
| 9a0883eb5f | |||
| 663295d436 | |||
| 9f9986d367 | |||
| db37527f72 | |||
| 6171a221b2 | |||
| 1312fd0941 | |||
| c1832d39f1 | |||
| 3756631595 | |||
| 969f0b8aeb | |||
| 8b37f008e6 | |||
| a7a933c7a7 | |||
| 15bc3e62d3 | |||
| 5ce62f5458 | |||
| 283b378291 | |||
| 3e30684198 | |||
| c2e284682f | |||
| 5407dbfc98 | |||
| fa23bfd7d5 | |||
| 09de7cbf7d | |||
| 6a3c8017f0 | |||
| 9bb149fb02 | |||
| eb6ec8a4af | |||
| c8c2c4c859 | |||
| 7bd93e53c2 | |||
| 5d6f3de694 | |||
| 3eb826d422 | |||
| e9ffdb1f03 | |||
| f4f488dad1 | |||
| 2a9f1dc238 | |||
| 8482c8ffa7 | |||
| 54ad7a4b8f | |||
| ed4cf67e79 | |||
| 550168fd7c | |||
| 8470430c57 | |||
| 5dc117037d | |||
| 7f1083aa40 | |||
| 900adc7105 | |||
| 0648154ba1 | |||
| 86de8137e4 | |||
| a9415488dd | |||
| 8945703785 | |||
| 9f90cc8fe1 | |||
|
|
d6d7edf25d | ||
| 7b17dc692e | |||
| e5f7120733 | |||
| 1a05ffab96 | |||
| aad7a21bc3 | |||
| ae0bf7bfd7 | |||
| d2ecc5d3a3 | |||
| 22aefca5c9 | |||
| cce790f2f8 | |||
|
|
84478c651e | ||
|
|
88e9a96e0e | ||
| cefa304fb5 | |||
|
|
a187bac7b0 | ||
| 83760cc980 | |||
| 2b108d0d70 | |||
| f5accb827c | |||
|
|
4543c411e7 | ||
|
|
7aefa5014c | ||
|
|
d163783ed3 | ||
| 4536f30da2 | |||
| 8764aacd92 | |||
| 8b8f6027cc | |||
| 6769752c26 | |||
|
|
5695bb0e9e | ||
|
|
48a32f2403 | ||
| 695b9d5bea | |||
| f38cfb4b28 | |||
|
|
a7240e8cc6 | ||
| 67948f7f3a | |||
| 52d8776fbb | |||
| 0d38cae217 | |||
| d6bad9e030 | |||
|
|
b146f17d2f | ||
| df675cd757 | |||
| ecc2e390f7 | |||
| c3e0b3b708 | |||
| 449a6a1b4e | |||
| eb874a15a6 | |||
| 3b26466a6c | |||
| a6ac6ee6d8 | |||
| a59994355b | |||
| 06c279627a | |||
| 1e146f542e | |||
| cdd21c94c6 | |||
|
|
30cdcb0836 | ||
|
|
29308110ea | ||
|
|
18c57d532c | ||
|
|
b814e812b6 | ||
|
|
dbbbd99788 | ||
|
|
47676c67ff | ||
|
|
7ad78fbce1 | ||
|
|
37e38436a8 | ||
|
|
e1b3719746 | ||
|
|
68a64aa67f | ||
|
|
d780d95157 | ||
|
|
4822acb6fb | ||
| 260ce8ba17 | |||
| 822f0aa737 | |||
| e10a6b4bf2 | |||
| 8e1f3a5cc0 | |||
| 31ec6c70ef | |||
| cd84700400 | |||
| 08fa1edbee | |||
| 15d9593d0f | |||
| 010afded18 | |||
| c12f633829 | |||
| fb6f0c316e | |||
| b1ed263c4e | |||
| 846e487e27 | |||
| 72a9183ca8 | |||
| fe89704672 | |||
| 93d023007e | |||
| 8bf179934d | |||
| 24c79cc4b1 | |||
| f93282d657 | |||
| 18c0e6a6bf | |||
| 3a602385cc | |||
| 26373e5d23 | |||
| cb4c3b46b9 | |||
| abb81bf45f | |||
| a9694da557 | |||
|
|
d205939361 | ||
| deadeb341e | |||
| 274c6115cc | |||
| 416665f209 | |||
| f60f927549 | |||
| 2e59c1415b | |||
| d852477c51 | |||
| f8d5f13a88 | |||
| af0d7765ff | |||
| c1f5730c4d | |||
| da019a146a | |||
|
|
4bd50d0148 | ||
|
|
1826b20b40 | ||
| 356d1a7133 | |||
|
|
2cc7473276 | ||
|
|
2ea5c4b0c7 | ||
| 432cce280b | |||
| 530297bc67 | |||
| c416f1ef6d | |||
| 3a5e956e49 | |||
| 5cf4013a99 | |||
| 16cca07e12 | |||
|
|
aae360d6ab | ||
| bf25740098 | |||
| 18836f312a | |||
| 2b257cc402 | |||
|
|
289d79e011 | ||
| b7d6d69101 | |||
|
|
15487cd84c | ||
| fc5a893b00 | |||
| 92a6fed521 | |||
| 051ed19f97 | |||
| 1479e2ae9a | |||
|
|
1ab4f997ba | ||
|
|
24b11f609d | ||
| c4e0b68ebe | |||
| f8ec0f85e5 | |||
| ed33514aee | |||
| 0d96c1f12d | |||
| 0fcf21bd35 | |||
| 9065ec40b1 | |||
| 8f6ab15621 | |||
| fd69ae3d4a | |||
| 81b42ef99a | |||
| c546d23421 | |||
|
|
0661eb8701 | ||
|
|
c073ec14c8 | ||
|
|
bf26092764 | ||
|
|
e035a6fd94 | ||
| ff1ff8f5bb | |||
|
|
3f43574371 | ||
|
|
b1390f4e9b | ||
|
|
fd29a4ce65 | ||
|
|
4655892815 | ||
| e46220ff72 | |||
|
|
f19a090549 | ||
| 08f9819453 | |||
| 7067d4b5bd | |||
| de0be15fff | |||
| b56d8c2956 | |||
|
|
5f71b46bb7 | ||
| fd16222c51 | |||
| 185d1dbf49 | |||
| 576f46f845 | |||
|
|
154f976762 | ||
| d5477e94b1 | |||
| 67ae506bb5 | |||
| 5a514cf2db | |||
| 1fdc994c0a | |||
| 35aa05fb97 | |||
| 70c7b1385e | |||
| d486f2ddfc | |||
| fc5ca30df0 | |||
| 0601fa0142 | |||
| fffed6e3f6 | |||
| ffe4dd4a98 | |||
| cc4dfdb042 | |||
| fd0ca3b29d | |||
| daab42109b | |||
| ab5bb3963b | |||
| 262bb13b6c | |||
| 5d530aaae9 | |||
|
|
f0e6bfc6c6 | ||
|
|
d4283a0b94 | ||
|
|
568c4b60ef | ||
|
|
736ca2272b | ||
|
|
88059884ec | ||
|
|
ce1d213082 | ||
|
|
71f3a3403c | ||
|
|
fbeda163f0 | ||
|
|
08c1bb7992 | ||
|
|
2f7b237c4c | ||
|
|
665027085d | ||
|
|
2618003177 | ||
| 8f597eb254 | |||
| 775d223be2 | |||
| 3849776511 | |||
| cb3301bcef | |||
| 8d74566eac | |||
| 4a03c2aa43 | |||
| 292d56cfbe | |||
| b41e016a6d | |||
| 0a2e2301a9 | |||
| 874c90e0e0 | |||
| bb8898a4ec | |||
| 213da59b0b | |||
| 4e9879ba92 | |||
| 0690704391 | |||
| 610b861345 | |||
| b7f8ba4385 | |||
| a923a1f135 | |||
| 0d804dd817 | |||
| 4f4b1bfbaa | |||
| caa63ea97a | |||
| 8675bb65c1 | |||
| 104af6d9b5 | |||
| 2f2d4493ae | |||
| 2d23068354 | |||
| b65dacca72 | |||
| 265c8b776b | |||
| 4920c8b28b | |||
| 4f9acf3174 | |||
| 962957409b | |||
| 0b4d79fd5e | |||
| 0efd3d2af3 | |||
|
|
02e5a1158d | ||
| cfe32828a4 | |||
|
|
ca6bfea51f | ||
|
|
8c7da5f80c | ||
|
|
57175e1c0b | ||
|
|
c5d2953ecb | ||
| ee8044b857 | |||
| 1fda56b5f7 | |||
| ca79da2f9b | |||
| c90e6231f9 | |||
| e86fa41180 | |||
| ebea4b7008 | |||
| 9565464489 | |||
| 05f83bf566 | |||
| 673d0c1e53 | |||
| fe35a29fb8 | |||
| 53d51fea2f | |||
| caaebd593b | |||
| 672fa48140 | |||
| a9aeea234c | |||
| 1683685f6b | |||
| e4aac56f2d | |||
| d6990349d8 | |||
| 9ac2f7e359 | |||
| f86c0353a2 | |||
| 0a289e1edd | |||
| c2c5bec0e5 | |||
| 68bfca8a1f | |||
|
|
6e1b95aa60 | ||
|
|
baf9b6e1ae | ||
| 5ff47050ff | |||
|
|
c302f2dcf9 | ||
|
|
24fc7a216b | ||
|
|
2926965400 | ||
|
|
341177aa5e | ||
| 56923aa1b8 | |||
| 62f54a3c27 | |||
| 64e9461586 | |||
| 5e01eebd25 | |||
| bae2a385aa | |||
| 9861e3fe1c | |||
| 95b2fcead7 | |||
| 45beb27f83 | |||
|
|
b992bde41d | ||
| aebb21935b | |||
| 20104f1b3b | |||
| 25264447bc | |||
| c1036a3627 | |||
| f1a9a872bb | |||
| df322d7ebb | |||
|
|
56a4fd3fa0 | ||
|
|
02716a6a93 | ||
| d4534b56a0 | |||
|
|
81b7b49170 | ||
| c8922a6a82 | |||
| cdf0bb30c9 | |||
| e4793e1a77 | |||
| 8347ddd5be | |||
| 12412e05a7 | |||
|
|
dd99c35e35 | ||
|
|
9d651a70e9 | ||
| b0d50d315c | |||
| 41bddf2db6 | |||
| 769700fe83 | |||
| 433ccb1fc4 | |||
| 145c1d59e9 | |||
| ae8cc0f700 | |||
| a764da3e99 | |||
| 8f92f79f85 | |||
| f093765d03 | |||
| c44d962ba8 | |||
| 20d22b726c | |||
| 8fa2f0e7ad | |||
| 604c7f385e | |||
| 1a07c9d71a | |||
| f7e287d415 | |||
| b16cc2dc27 | |||
| 188447fc10 | |||
| b920bf6d22 | |||
| 32ff54e130 | |||
| 02c09687a4 | |||
| 3b1fc4aacb | |||
| bf9469d538 | |||
| c2dec360b1 | |||
| dc7422bf56 | |||
| 89edf508f5 | |||
|
|
50410d190f | ||
|
|
b54e076ca0 | ||
| 2ab7556ac3 | |||
| 3d38da7b37 | |||
| 056d5a3f98 | |||
| 17612afd87 | |||
| 0a4913f341 | |||
|
|
3aa12d2e8c | ||
| a6504366b4 | |||
| 4e83e7905a | |||
|
|
96b1854fef | ||
|
|
489473806f | ||
|
|
f5bc8dca5e | ||
|
|
bc99c85802 | ||
| 385664e2bc | |||
| 1658fee090 | |||
| b9dbb1916a | |||
|
|
99afd2e830 | ||
| 861f461bc5 | |||
| b6c118a0c8 | |||
| 89d3ab38f0 | |||
| 441704dc29 | |||
| 8ee451c6e0 | |||
|
|
785e690404 | ||
|
|
2fcd7a21a4 | ||
| f2221565c5 | |||
|
|
d5c1591205 | ||
|
|
7895699ef3 | ||
|
|
bd9963e65f | ||
| df61fbff12 | |||
| 9ead38ee22 | |||
| 6402962990 | |||
| 9e9fa5039f | |||
| e6d503a1e2 | |||
| 844650b685 | |||
| 4920142540 | |||
|
|
a7a1f699bb | ||
| 61cf838458 | |||
|
|
229a91ddf0 | ||
| 68d0c66402 | |||
| c2a132a40b | |||
|
|
94729a66ca | ||
| bd05315de3 | |||
| d254a9e14a | |||
| e028c1ca2b | |||
|
|
1c3f6c7c1e | ||
|
|
f8888462f1 | ||
|
|
4e2be091cd | ||
|
|
40a1726ca7 | ||
|
|
fc9deb8ba8 | ||
|
|
b1993dbf22 | ||
| 7dd6cd04ba | |||
| 1072f539dc | |||
| 9bcf4cce9f | |||
| 9223beac47 | |||
| 62c78e650f | |||
| e7d0c1cac6 | |||
| b859283766 | |||
| 973644c62d | |||
| b9af54892b | |||
| f9154233e4 | |||
| e595500cb8 | |||
|
|
aa7da2559c | ||
| 753a007172 | |||
| f34847f9f6 | |||
| 0fa119c984 | |||
| 270d00c1e8 | |||
| 983c5f3c6a | |||
| c6141e473f | |||
| c30cb5879d | |||
| 29e384ada5 | |||
| c8e5ba4738 | |||
| bf0b7f1bb2 | |||
| d6cc69b919 | |||
| ac33c6aad8 | |||
| 89383a5ec4 | |||
| 0fd26da299 | |||
| 6fa99655b2 | |||
| a387305ef8 | |||
| e0c7daf3fd | |||
| 4304baeca5 | |||
| d2a567c79e | |||
| 3c04ced1a3 | |||
| a28d8a7287 | |||
| 1c055e842e | |||
| dea283d655 | |||
|
|
01a3af694a | ||
| 58c8373c81 | |||
| a1ccfadac1 | |||
| 632b1262f9 | |||
| e157624479 | |||
| 3a2370d536 | |||
|
|
eee38e9577 | ||
| 50b7df1f4a | |||
| 981c94906d | |||
| adce90c151 | |||
| 83f8402081 | |||
| 22417ee9f9 | |||
| 3c5d269ece | |||
| 42579b5752 | |||
| 15023d348a | |||
| fbf777e134 | |||
| 450277f32a | |||
|
|
1f5d529d33 | ||
| 93128cb61b | |||
|
|
c19099e76c | ||
| d3d655293e | |||
|
|
692343aae4 | ||
| 0592601aa6 | |||
| a17f5948fb | |||
|
|
4dd9bc1123 | ||
| 6578f66fec | |||
| 3f2a19a6f0 | |||
| d5160ead4c | |||
| a6e9cbdece | |||
| 657bf7075b | |||
| f1c3e8dc1b | |||
| a9624b36f7 | |||
| db4aec9a18 | |||
| c34ce48a53 | |||
| 93345c09a1 | |||
| b5a1985fa1 | |||
| 9b4c350213 | |||
| 199a441593 | |||
| f42d106e3c | |||
| 13eddbfc5b | |||
| 7c30126fed | |||
| e3c5f6f95f | |||
| a86f1a05ac | |||
| 9ba0cb0c2a | |||
| add8588767 | |||
| a083a320ae | |||
| 64fa7f2e00 | |||
| c7a830ee28 | |||
| 9aa51406fa | |||
| 344981cf99 | |||
| 28c4d6b92f | |||
| ef2ab5faf6 | |||
| 54dbf711f9 | |||
| bb93cb23a7 | |||
| 60951231c4 | |||
| ece30b63c3 | |||
| 94503505f7 | |||
| 48589f3368 | |||
| 1e04c178dc | |||
| 37ed703abe | |||
| 7ed20d2fc5 | |||
| 5fe2a8e737 | |||
|
|
861abe708b | ||
| 57a88845dc | |||
|
|
f43e216e13 | ||
| 5210e7985f | |||
| ddabdff206 | |||
| 5a692db30f | |||
| 659983fef1 | |||
| aca5a3c731 | |||
| 406cfc86cd | |||
| 90da067fbd | |||
| 3532e9dd8c | |||
| fddb74f107 | |||
| e7a6742964 | |||
| ee817b1d62 | |||
| 3ffeaf419a | |||
| a399804094 | |||
| 05e9f118d7 | |||
| ce2f64acd0 | |||
| 7aad5be29f | |||
| 41b0dd50bd | |||
| 08f544f6ea | |||
| 4e862cc585 | |||
| 05d2c3b2e8 | |||
| 513207e510 | |||
| dee6ed6707 | |||
| d60095987c | |||
| b4f9be0d92 | |||
| a2a0f6af44 | |||
| 7fa0353d8c | |||
| 9256c71715 | |||
| 5520f3df50 | |||
| a6c0d8b219 | |||
| f6e667700e | |||
| f94ef0798a | |||
| 7bd7476200 | |||
| a2752765af | |||
| 4de2cbe807 | |||
| 1e81256404 | |||
| 6b571e87b4 | |||
| 4314823a70 | |||
| dc08ced6c9 | |||
| 9d660311f0 | |||
| b3e65f0733 | |||
| 03007370bc | |||
| f9b514c869 | |||
| bc2d4c1066 | |||
| 298b597dd0 | |||
|
|
91ba08dfa1 | ||
| 481456a038 | |||
|
|
06142797c3 | ||
|
|
4185b660cc | ||
| ad46776164 | |||
| 2343a4a334 | |||
| 3f83c323be | |||
| 9a9ed64298 | |||
|
|
a0cadb46db | ||
|
|
f139af8b6f | ||
|
|
1f0ef6e187 | ||
|
|
4afea55465 | ||
|
|
3d5723facb | ||
| 211ecf1c3e | |||
| 796b4ff76b | |||
| 9553e18d83 | |||
| 02d9a713de | |||
| 6cc4fa582e | |||
| b8d43f36eb | |||
| 06b3d63133 | |||
| 232e71f46c | |||
| 0b5a0e65a8 | |||
| ef42227e6c | |||
| 2af3de4f61 | |||
| 8bafa37fe1 | |||
|
|
a83b0326d7 | ||
| 53e03395f2 | |||
| 5fef4048a4 | |||
| d8929a6222 | |||
| 33af7f36a0 | |||
| 3f2454cead | |||
| 0ac9f2df8c | |||
| 333224a9d5 | |||
| 496e5f0259 | |||
| f2a62822a4 | |||
| 7879a99197 | |||
| 72d8cc297f | |||
| 1a0674a20b | |||
| 572aa2c14e | |||
| bc4b2c4e86 | |||
| a227e88e79 | |||
| d9e9f472fb | |||
| fcff4bf863 | |||
| 79b82e09e1 | |||
|
|
a78f29cffc | ||
| e98b1b049b | |||
| 99efa51794 | |||
| 76932e6e8c | |||
| 97d2e3d5b5 | |||
|
|
2c94811c8f | ||
| a2063ab13b | |||
|
|
eb32b13bcc | ||
| 2bb718f3ea | |||
| c6373a075d | |||
| 46337ef25d | |||
| 2f5fecf414 | |||
| 5d2cb8c712 | |||
| 460502a1f2 | |||
| cdd7a16d18 | |||
| ec29758547 | |||
| c5cbdd97ff | |||
| 05fc5a1829 | |||
| c3de3c6c39 | |||
| 1530e9d13a | |||
| a986b4ae98 | |||
| 0854b7fc6a | |||
| 730199cca4 | |||
| de1dddbb85 | |||
| a612d7dd9f | |||
| 50e722e637 | |||
| e4d5e40a8b | |||
| 479ec25d99 | |||
| 930b6ff77e | |||
| 7d8bd089a2 | |||
|
|
ebdcc5a07d | ||
|
|
0f31a49890 | ||
| 2c566bb21c | |||
| a0bc6c7604 | |||
| a4457664d4 | |||
| b42ae76bdf | |||
| 2eb1ebd263 | |||
| b79885cd21 | |||
| 69dd920fd6 | |||
| 0689ca366d | |||
| af1c268784 | |||
| 1162c436c1 | |||
| 170ce2d51c | |||
| 571a8a0edc | |||
| bdbb83ab85 | |||
| 971789d5cf | |||
| 72815e4b70 | |||
| 44183957b8 | |||
| 434d672d8a | |||
| 5f6cffa08a | |||
| e21ff588ae | |||
| 0383571a9e | |||
| f358e78734 | |||
| 43ef31b93f | |||
| 222dae3c32 | |||
| 08c13b8c98 | |||
| 1bc2500b28 | |||
| f648a9351b | |||
| ffe466a334 | |||
|
|
3978e7c959 | ||
|
|
2eb5c45a4d | ||
| 15393d9da9 | |||
| 695d22adba | |||
|
|
fefe208260 | ||
| bc1a63354c | |||
| c14101714c | |||
| faebb0fe30 | |||
| 8ec5636c57 | |||
| 68d99050bc | |||
| fba7060a91 | |||
| 6894fa7101 | |||
| 41fa1d9ca6 | |||
| f4bca2f410 | |||
| 6198891202 | |||
| c806c06279 | |||
| e04c02055c | |||
| 4fa1bb4341 | |||
| ac5675933d | |||
| e7db71b0f3 | |||
|
|
1967fc4bed | ||
|
|
befd5dac42 | ||
| 186b8847d9 | |||
| 90d0cbc3b1 | |||
| ac3d39b151 | |||
| efb5bd64b4 | |||
| 76a7b019eb | |||
| 739540af64 | |||
| 230d73498e | |||
|
|
a68a43adc0 | ||
|
|
5a75e38f33 | ||
| 1c02eb23fd | |||
| 1ba5df1280 | |||
| 73c4a5d39d | |||
| 0a58c43952 | |||
| a3b823d33f | |||
| de45555c5a | |||
| 0add020e57 | |||
| 84a76d2c76 | |||
| d88207132b | |||
| 932d0e86d9 | |||
| 671f1223b5 | |||
| 1a04d903fc | |||
| 125dd4d980 | |||
| 2ddab027ed | |||
| 1724400d7c | |||
| d1a0934bb1 | |||
| bc90664480 | |||
| 99dc7490cb | |||
| 5ac485e06e | |||
| dc184762d6 | |||
| 86e7b0f007 | |||
| fdafe7c82b | |||
| d285d84068 | |||
| da22532587 | |||
| b83ad77fd8 | |||
| 00ac6aa1b9 | |||
| 318c001904 | |||
| e2d406b97b | |||
|
|
efff496f7a | ||
| fe4eaa92be | |||
| cb17a7e8a5 | |||
| ad4153a07e | |||
| e95093f144 | |||
| 59cdf07c7e | |||
| 292c9380ad | |||
| 701ad17299 | |||
| 7f41f14959 | |||
| fcd5fba13e | |||
| 2c57eab4d2 | |||
| 2cd51eed2e | |||
| 72e306b583 | |||
| 917dd49d07 | |||
| 71ca912749 | |||
| 4620e32b82 | |||
| 0cda5d637d | |||
| 646f39b9ed | |||
|
|
105fe16122 | ||
|
|
4d1a553474 | ||
| 5bfdee0c28 | |||
| ae33392ad0 | |||
| 0e0fe90277 | |||
| 792eafce72 | |||
| 616d01a6c9 | |||
|
|
21edc74ada | ||
| ab23290599 | |||
| 1a2e1eaf2a | |||
| feaee8a0b1 | |||
| 0a26e7f326 | |||
| ebf85d4e4d | |||
| 72cffd7a3d | |||
| 65418b17ce | |||
|
|
8432c215a3 | ||
|
|
87e1f8f077 | ||
|
|
33f393203e | ||
| 6aa1e136b4 | |||
| 10a9b6c909 | |||
| ce912e4405 | |||
| ab11d3e8b3 | |||
|
|
445fe0cee4 | ||
| 7c6c8de456 | |||
| 0378df42b6 | |||
| ad8d40cb1c | |||
| f4516f8369 | |||
| 5b25f82963 | |||
| 8720cc730e | |||
| 44d1535bfb | |||
| 8d663cdee6 | |||
| 7c8b08c3a7 | |||
| 6df570d96c | |||
| 3ce650eea6 | |||
| 6ef7d9b47b | |||
| af3847366b | |||
| d70f8aa712 | |||
| 14463dcd38 | |||
| b9c2d63a53 | |||
| 3fd4c6339a | |||
| 4d76de5f9f | |||
| 0a92ad905b | |||
| 7af7135971 | |||
| c70a4dc664 | |||
| dc0fae7549 | |||
| b38924cc3d | |||
| 58c4e37116 | |||
| 3656825d20 | |||
| 39a7cecd24 | |||
| 6d382f93e8 | |||
| 6e554e74ab | |||
| 4c125865cf | |||
| 12c68a4c9f | |||
| 66ac5c7435 | |||
| e4b46a188c | |||
| 7a78e8a6a7 | |||
| 4496836cb2 | |||
| 88d1fe24b4 | |||
| 0ea1708fe9 | |||
| a9b7cf93e9 | |||
| 5d36e56641 | |||
| f00dfad98e | |||
| 7943c22ae7 | |||
| d365fcea39 | |||
| 9f9f9d7881 | |||
| 20f814766c | |||
| ed00a882af | |||
| 5d7501d36e | |||
| ab5f9923a6 | |||
| 1a5e8b9d7b | |||
| f7f2bb0caa | |||
| bf7fcfa41a | |||
| 9056ea8449 | |||
| f0e349a2b0 | |||
| 2ccc6f1976 | |||
| cf041cf49e | |||
| 72d593e416 | |||
| 287dca07aa | |||
| 910f9a7e8e | |||
| 9457483a6b | |||
| 6d07168529 | |||
| 420f81ea24 | |||
| 416b62fc60 | |||
| ecae7dab44 | |||
| 126bd1a4eb | |||
| 450792e446 | |||
| ec155b1d67 | |||
| 02b2af7d51 | |||
| 0a6a2c968c | |||
| 4b188e2df6 | |||
| d6bf1988f6 | |||
| 94c9505c05 | |||
| 4a5a1440ff | |||
| b31cc460fa | |||
| 48c3432191 | |||
| 7b4405f6fe | |||
| ce3a74326d | |||
| 51ab013bd7 | |||
| 41a6366efe | |||
| c3c2fd30f0 | |||
| 1952e4aa5a | |||
| 1e1311b7c8 | |||
| fc1ed8b71e | |||
| 2144b247b3 | |||
| e4629ed599 | |||
| f27dca6fb5 | |||
| 8c27ec0720 | |||
| 8392e2e6bd | |||
| 963b0b1ed2 | |||
|
|
7513187a6d | ||
|
|
990fc0e484 | ||
| 8fce27a128 | |||
| 55c2c41cea | |||
| 0bd10b6dfa | |||
| 8cd01d4317 | |||
| 71293e3378 | |||
| cb58afa44a | |||
| 7b3e9cb490 | |||
| fb720a382f | |||
| a4bfa1cb16 | |||
| 502f2aceed | |||
|
|
eb9cc0b63f | ||
|
|
7ee554b48d | ||
|
|
2e6d281bfc | ||
|
|
4b1bf7ce23 | ||
|
|
2d574fea2e | ||
| 0e2772336f | |||
| 320d11671a | |||
| 6ef5390a26 | |||
| dec26e2ba4 | |||
| 514d75fa5f | |||
| 0ac51da31a | |||
| 90d43b0bd3 | |||
| 5fe0790912 | |||
| ff66aa5590 | |||
| 8e2d3616b5 | |||
| c046824ea3 | |||
| a9b216b16b | |||
| f866eae581 | |||
|
|
21d4e49fce | ||
| b87f14255d | |||
| 0f2cbbe553 | |||
| 17b887160a | |||
| c7dbaae8d6 | |||
|
|
25ee11e4ff | ||
|
|
df661fc7c4 | ||
|
|
6b78c06dfb | ||
| daff4e4200 | |||
| 53b3f98bba | |||
| 2b47868d88 | |||
| 54c2b92962 | |||
|
|
d087f051f0 | ||
|
|
b3edba3abe | ||
|
|
02d8ceba25 | ||
|
|
741043c177 | ||
| c42f62de4c | |||
| e23ef35b75 | |||
| eccc75aecf | |||
| 7e2fbf93f9 | |||
| 6ab8f95f7d | |||
| ad05b3bf05 | |||
| 1faa9812db | |||
| a786578cbe | |||
| c08bd76e4b | |||
| 20a4950c60 | |||
| cdbae1eade | |||
| 45f3bb00d6 | |||
| 2b9f0e5177 | |||
| fcf2ae364f | |||
| 92788ccdc0 | |||
| 84993ca05b | |||
| 972657b38e | |||
| b26d0905a3 | |||
| 4ab0a28f7d | |||
| 52009bd7c6 | |||
| 7acd6c7fc3 | |||
| f26cba415b | |||
| 8a2e588190 | |||
| d63d9c2f4e | |||
| dcdee1d6e3 | |||
| dd589af1be | |||
|
|
ce594692b3 | ||
|
|
17076024f7 | ||
|
|
61607fee3d | ||
|
|
25ebeebdfb | ||
|
|
343b2a6f2f | ||
|
|
d4efe81dbb | ||
|
|
9d6afc4bb2 | ||
| 2bdf116698 | |||
| 96dc711b4f | |||
| c736c2b5bb | |||
|
|
d1918e4be0 | ||
| b3aca957ff | |||
| 03bd4d1942 | |||
| 256c5688a0 | |||
|
|
040c5f8847 | ||
|
|
9b5990916f | ||
|
|
74e94637b9 | ||
|
|
216c035bac | ||
|
|
16c86daafb | ||
|
|
175fa7bf2f | ||
|
|
9f7f6e33e8 | ||
|
|
3471bdec0d | ||
| 409cd40460 | |||
| 2811e61439 | |||
| 2ff34688bb | |||
| 8133dd7385 | |||
|
|
256dab3739 | ||
| 532a751509 | |||
|
|
f0a7565302 | ||
| 6460007aa1 | |||
| f84e088e7b | |||
| 64c4f1ece2 | |||
|
|
ad983d80d2 | ||
| b8e16d2929 | |||
| 88fc5e94fa | |||
| 4431428c26 | |||
| 724ce8c9af | |||
| 001e2f9622 | |||
| 58ac4b01ef | |||
| 6e4bfd45c6 | |||
| ff0b0678a5 | |||
| 3b56cc818b | |||
| 21d5f974eb | |||
| 59b2b07a21 | |||
| eaf9f72fdd | |||
| 169442decc | |||
| cf8e25e823 | |||
| 96b1f31665 | |||
| 2ad798c0bf | |||
| 7e932e838f | |||
| 41354097f3 | |||
| 9a3f35703b | |||
| 5423de3bd9 | |||
| a31b74e0e5 | |||
| 5e3d421b56 | |||
| 71ca033b08 | |||
|
|
2c774e814e | ||
| 3034ba411f | |||
| ce6e51df87 | |||
|
|
6843b4cb2a | ||
| dcbce270ad | |||
| 3f5a6c6b15 | |||
| d806551477 | |||
| 120ce40dbe | |||
| 22022e5143 | |||
| 47615e2e5d | |||
| 46c6d0e293 | |||
| 20fcaa5428 | |||
| bb0a04b19a | |||
| 8d3ba314e0 | |||
| 9e48a1db0a | |||
| 475585c5e7 | |||
| a2e086be75 | |||
| e6cf1994b0 | |||
| bea0b69858 | |||
| 95547e961e | |||
| c4a859f2d2 | |||
| a39bd79930 | |||
| 424d0533b8 | |||
| 5a7d187a10 | |||
| dc8dd6a423 | |||
| 006e8cdc27 | |||
| 819017112d | |||
| cf4f6f06e9 | |||
| e467820345 | |||
| 416a1c4e4d | |||
| 1febfc11e5 | |||
| d7d7fb5693 | |||
| 650e0d79be | |||
| a288fdf12d | |||
| 6a3f17962b | |||
| 3860adc435 | |||
| 65daf2d0cf | |||
| 0afccd12a9 | |||
| 7abe3e1b2d | |||
| 6c71cb0e80 | |||
| 11d4450244 | |||
| 5a79df0e0a | |||
| c0c2131be0 | |||
| e6ea2674c2 | |||
| 39b5ce0320 | |||
| e0ee817421 | |||
| 8159144f26 | |||
| 630115fd3a | |||
| 87cf8d737e | |||
| ecda740d81 | |||
| c9e3960238 | |||
| 9bf41bbd34 | |||
| de7de22492 | |||
| ea66fb4c37 | |||
| 782e098e31 | |||
| 34ff91979b | |||
| abcc8557ce | |||
| c1232037a9 | |||
| 15342f85d3 | |||
| b679d833da | |||
| f8ca349d9e | |||
| a8978a52b9 | |||
| b1bffd875c | |||
| b23161fa1d | |||
| e540baaa4f | |||
| 9fe744f09f | |||
| 6b1310148f | |||
| 1650f30a59 | |||
| f6386a13ac | |||
| e437705714 | |||
| f79225fc2b | |||
| 7564c2fde1 | |||
| 2c4d06371c | |||
| 8e012982f5 | |||
| ba893e8429 | |||
| b153fc19f6 | |||
| 098c2fbaa0 | |||
| 479e4ffe64 | |||
| 42a14fbd6b | |||
| 46ca74fc70 | |||
| ae931b5869 | |||
| fded08aaaa | |||
| d60938352b | |||
| af6f3043ae | |||
| 8afd1ee275 | |||
| 5a739380cd | |||
| a1ec2b637d | |||
| 584b77bbf4 | |||
| e84182cdac | |||
| 01d51da7e1 | |||
|
|
699dcc85de | ||
| e677c0fe2f | |||
|
|
edeaaf0218 | ||
| afae3b58c2 | |||
| 95027e93c6 | |||
| a3ea28d307 | |||
|
|
921dd639bf | ||
| a40077e91b | |||
| 8de5c8900a | |||
| efc3e3915b | |||
| 98ab3b66ba | |||
| b1cd85971a | |||
| 0a3b50568d | |||
| 69b5c98d2e | |||
| 5c4bef26e8 | |||
| bdf4b71080 | |||
| c60d46c68b | |||
| be4b8a94f0 | |||
| a54cc70fd6 | |||
| 18959f60e2 | |||
| 7d4ca8d149 | |||
| 442e2a1ede | |||
| c32b767d9b | |||
| 140f53b81f | |||
| b9e5734039 | |||
| f5f5d66f3d | |||
| 1e0c62b09d | |||
| 78cf817921 | |||
| 40a457ba69 | |||
| 66aac8908c | |||
| c17fd968be | |||
| 6f561f57a6 | |||
| 4f1540c541 | |||
| 4ef024516c | |||
| ebc6d21ba6 | |||
| d31661ae7a | |||
| f76f7a1641 | |||
|
|
f63afea2ce | ||
|
|
660e45ac59 | ||
|
|
e619e58a6e | ||
| 160d382e07 | |||
| a8fe049ecd | |||
| 3a207b2c5d | |||
|
|
08de360677 | ||
|
|
e2ad590310 | ||
|
|
6ebcd87508 | ||
|
|
06f8014b76 | ||
|
|
52f817bde7 | ||
| af2eca0d03 | |||
|
|
33913867ee | ||
| bcd25fa950 | |||
|
|
acf7142bad | ||
|
|
c8c5af8d14 | ||
|
|
aa6b770bfe | ||
|
|
4d5d5265df | ||
|
|
d19c5c9e41 | ||
|
|
cf588c97c0 | ||
|
|
f3f5cc550c | ||
|
|
c7d00ca937 | ||
|
|
e3c0dca1d1 | ||
|
|
f4c8d0b09a | ||
| 68ea0a1086 | |||
| 5bb5468198 | |||
| 5fead5b467 | |||
|
|
72a15bb823 | ||
| 0edd5667e0 | |||
| 862f9aefb0 | |||
| 45dd21e02a | |||
| 5bf1b9d8bd | |||
| 7bc4ad9779 | |||
| 1576507f7e | |||
| 9ddfd194be | |||
| 8fe94bd117 | |||
| 9d638fe897 | |||
| 478c3b3247 | |||
| dc581fcf57 | |||
| bd909b0061 | |||
| 58c7560a1c | |||
| 9e67d9586d | |||
| 982dd78828 | |||
| 1055fd9398 | |||
| 5089bba4d7 | |||
| 433307020a | |||
| 5a5ff5f54a | |||
| a0b112e8db | |||
| cb88a37885 | |||
| 9647785d8b | |||
| 1ad6a958e2 | |||
| f453dbb543 | |||
| b323ddae05 | |||
| d5d64cdf65 | |||
| 700bb02374 | |||
| bd3919efcb | |||
| f6f0786d38 | |||
| 5cebcfddb7 | |||
| 11824adda4 | |||
| d62893827b | |||
| e972beee11 | |||
|
|
6a0ce72836 | ||
|
|
f93b1935ee | ||
|
|
64ec3e62da | ||
|
|
492d5caaf0 | ||
|
|
2ed3a91d8e | ||
|
|
b55c19cd9e | ||
|
|
70ca203e23 | ||
|
|
58a13d932f | ||
|
|
11c6f6d84a | ||
|
|
3d0be940f0 | ||
|
|
ea839a4b52 | ||
| 793f7724a7 | |||
| 40e7bfef4d | |||
|
|
d692793714 | ||
|
|
01ef9617d6 | ||
|
|
530ad497bc | ||
|
|
e2bc868495 | ||
|
|
b743475761 | ||
|
|
b3823161af | ||
|
|
beeb69c70d | ||
|
|
8401ce2656 | ||
|
|
b7360955f7 | ||
|
|
8c3fb6dfa7 | ||
|
|
c84ba5371d | ||
|
|
4d9c643977 | ||
| f117dcd703 | |||
| 67c1760b51 | |||
| 97792fd85f | |||
| ae43e23ec6 | |||
| 6a4d7fbece | |||
| 1a0dcfa8d0 | |||
| 66f407ab8c | |||
| c7e992fd1a | |||
| 3d16f68f54 | |||
| 36890a2256 | |||
| 395920bd51 | |||
| 773aee5534 | |||
| a6cc6221d6 | |||
| 37ed6b7591 | |||
| cdc335372f | |||
| e0bed186b8 | |||
| d588c36308 | |||
| 06cbe8325c | |||
| 400ce3ac82 | |||
| 14aab637eb | |||
| 6296c7a307 | |||
| b613a2f49b | |||
| 91bee4aad3 | |||
| 45b71b207e | |||
| 751a418c1f | |||
| 8cf08f66d5 | |||
| b7c0548212 | |||
| 408a14926f | |||
| efdd96b69f | |||
| 10ebf0b63a | |||
| d4a5735e15 | |||
| 9453fc2dd5 | |||
| f01b87b348 | |||
| 689f612382 | |||
| 17a81d7e66 | |||
| 6501a0148e | |||
| 44d38bcef5 | |||
| 75dda5b999 | |||
| 46ecab24c2 | |||
| 45c608cd48 | |||
| ecbe30ae53 | |||
| 4e8492db70 | |||
| 48f62a2a17 | |||
| decc74c040 | |||
| de790d11a8 | |||
| 3a9fac08c3 | |||
| f4fe297765 | |||
| 264bd76461 | |||
| 45bcb27b79 | |||
| cf22a49487 | |||
| e71e369f15 | |||
| 1a604ecf65 | |||
| da7bfa8a4e | |||
| d3127bed6d | |||
| 3c1c07dc64 | |||
| 530267a9b0 | |||
| f9dd1c5231 | |||
| f2fd30b690 | |||
| 3d3cc9aeb4 | |||
| 8b2a8544b8 | |||
| be5f54c142 | |||
| 1fbe044729 | |||
| 60032c96f7 | |||
| 976f2fd41a | |||
| 19741530bf | |||
| 6e079fa771 | |||
| 8c14232a91 | |||
| a983b34f0d | |||
| 4970cf000e | |||
| 1422ddeb2a | |||
| 9afc8c64ad | |||
| 200f1749f1 | |||
| 4645ede7d1 | |||
| 6016038813 | |||
| d40b0e88ed | |||
| f26863487b | |||
| 5b531a0529 | |||
| a25123ee38 | |||
| 2524229941 | |||
| 119a9981af | |||
| decc18596b | |||
| eea72c9bcd | |||
| 717b71ff54 | |||
| 64015479b1 | |||
| 18fa4eb586 | |||
| 47574f82aa | |||
| 12309ca1b5 | |||
| 20c95a179d | |||
| d5290e4bdd | |||
| f4396459a0 | |||
| f8071d32c0 | |||
| 3973cdd3f6 | |||
| 4dc490beb7 | |||
| 52a137ee77 | |||
| 985d8f0eae | |||
|
|
f0a8aa6c90 | ||
| 13a1ab380e | |||
| 041655d26e | |||
| 6e412117d3 | |||
|
|
bbebaa9fae | ||
| 5526790d42 | |||
| cc849e279d | |||
|
|
159dba0dc3 | ||
| 550b4775bf | |||
|
|
f2c724726a | ||
| de262bbc28 | |||
| 133e4858dc | |||
| 2bafdd9e62 | |||
| d01eaa8065 | |||
| b3ee745479 | |||
|
|
4a465b8f78 | ||
|
|
eaf7ae6f2f | ||
|
|
b5178c3be3 | ||
|
|
13faf6fe5a | ||
|
|
da12aedb53 | ||
|
|
af87b3f6da | ||
|
|
872090e02a | ||
|
|
4b432c64b0 | ||
|
|
8493a64794 | ||
|
|
82c027fe2a | ||
| fdae6c106a | |||
| 1fff9ef535 | |||
| 20c4d07668 | |||
| 7f2e3ee8e2 | |||
| 7129b3149b | |||
|
|
1e99ca2ca5 | ||
| cc42a4ae51 | |||
| 6c28ff00ab | |||
| d7db8400d2 | |||
| 16b3be322a | |||
| 6e1340be27 | |||
| 118b208f68 | |||
| e21f12d96c | |||
| 4b213dc290 | |||
| 55991a6082 | |||
|
|
898f25c0e4 | ||
| b3929321b6 | |||
| c049a0b78b | |||
| 10aa897899 | |||
| 31f5d97912 | |||
| c6cda437c4 | |||
|
|
7e045e964a | ||
| 133ac67794 | |||
| 8fb4efc16e | |||
| 1823a1b031 | |||
| 683d055088 | |||
| 839fb4a211 | |||
| 329026e36c | |||
| 19a53ada88 | |||
| 4c31100dc7 | |||
| 536a1a46da | |||
| 5ed7572f95 | |||
| f1067661d4 | |||
| 3592434623 | |||
| 94ec165c4c | |||
| 1c3c2be176 | |||
|
|
3eb7ffed1a | ||
| d0c5d0423f | |||
| f2117ea1cd | |||
| c7ee2cc600 | |||
| 57c4f2ee61 | |||
| 95caa998e3 | |||
| edaad844aa | |||
| 2edf36b6c5 | |||
| 95e45a8ad2 | |||
| 97165c8389 | |||
| 1efdade382 | |||
| cf219198ca | |||
| 9004686a13 | |||
| e266fa0e5d | |||
| 75ba56fa09 | |||
| 5a2e6c0969 | |||
| 84f772b42b | |||
| 62b8b3e6b7 | |||
| 5fdbba9ef5 | |||
| 5b321dfb81 | |||
| 12d6829b98 | |||
| 7b5e96771f | |||
| 8a9024de13 | |||
| 9387d37746 | |||
| 24a404964b | |||
| 534a8bb3af | |||
| 21e3da0266 | |||
| 85a1fcca18 | |||
| 793f5116ab | |||
| 10f276e48c | |||
| 8a4748dc2d | |||
| f5ae5443ab | |||
| 5d24bd4d11 | |||
| 9272687ec4 | |||
| 6100176c9f | |||
| 56ab304af1 | |||
| 70ab232149 | |||
| 027c01fc58 | |||
| b888211ef9 | |||
| 0617014e91 | |||
| ce171ec747 | |||
| fdc5127c74 | |||
| 455b225f49 | |||
| fa5001265f | |||
| b8d48f04ae | |||
| f1b1771d6b | |||
| 62dabbe1e7 | |||
| 4101392190 | |||
| 3f1bed0b1c | |||
| 79fbdcdee4 | |||
| 3d8d79323e | |||
| 32178e22fe | |||
| 60a8c20896 | |||
| 9d8011da61 | |||
| 789eeadb40 | |||
| f206fdb08c | |||
| 9d5409d8d9 | |||
| e297d82533 | |||
| 56dd825f39 | |||
| 4e4add3cc1 | |||
| b684bdfa3b | |||
|
|
b683630136 | ||
| e6c60e66fc | |||
| b1b9acc686 | |||
| f6408af543 | |||
| 5b4388eae6 | |||
| 41ecb2351e | |||
| 6cc0f1f98b | |||
| aa68ae0b25 | |||
| ebd817f61e | |||
| 25147704ad | |||
| 2788149db4 | |||
| fabe32371f | |||
| b120e47786 | |||
| 5a61f05faa | |||
| 7c2a283437 | |||
| 2d1e8b2acd | |||
| afb7d4a160 | |||
| 96e5e4a7b2 | |||
| 8e6e92ae89 | |||
| 07f53e6758 | |||
| d2c61a26ea | |||
| bbc5e94033 | |||
| 8e8a8c1e70 | |||
| f10d762e59 | |||
| 9924c3a3b7 | |||
| cea7160d5a | |||
| 5669f62fdc | |||
| 938720be52 | |||
| c4998f4ac1 | |||
|
|
15c7c6ccde | ||
|
|
3c3d63e286 | ||
|
|
74682549c8 | ||
| 51fd81c661 | |||
| 063ceb2c53 | |||
| 6c1a946608 | |||
| 29134f0f11 | |||
| 2d319fcc42 | |||
| 32a7734d30 | |||
|
|
2e4356c3c9 | ||
| 51bbcab878 | |||
| 5645cb0cdd | |||
| 02c93389d8 | |||
| a86ba6faf5 | |||
| e1d4868f51 | |||
| 9244bb2f8d | |||
| 43702ded77 | |||
|
|
611f0a9ca6 | ||
|
|
d2704ad7e6 | ||
| ff751b7f30 | |||
| 23eff9f6d4 | |||
| e053529afb | |||
|
|
8affeb08d9 | ||
|
|
047083812e | ||
| be626079d0 | |||
| af6efdd0ba | |||
| 2245f83631 | |||
| 75eb6414ce | |||
| 5e7445a4fe | |||
| c527b1b3cf | |||
| acacef936c | |||
| f971dc05eb | |||
|
|
49da5fe060 | ||
|
|
bcdddcde9b | ||
|
|
64d3edfc42 | ||
|
|
912f9bacdb | ||
|
|
55e94fbe2a | ||
|
|
c5acfc9bbc | ||
|
|
780b7db8cb | ||
|
|
d71d1beb42 | ||
|
|
3d3ce7814b | ||
|
|
438cb7317a | ||
| 475b40e896 | |||
| 7719d2b073 | |||
| 9d0e1a82e7 | |||
| 9f43c99acc | |||
| de4e83b3fb | |||
| 3404d3669c | |||
| 0710d6572b | |||
| cf442461d6 | |||
|
|
6e521642a4 | ||
|
|
0e88d7c549 | ||
|
|
2993dab3f7 | ||
|
|
d026be3041 | ||
|
|
59a0b692ac | ||
|
|
9fa2e80d81 | ||
|
|
4e56075fdc | ||
|
|
2b01179967 | ||
|
|
847e610362 | ||
|
|
a7af7e7874 | ||
|
|
1bf595334e | ||
|
|
a3333c3302 | ||
|
|
7fe2172f05 | ||
| 9aba4ea8f6 | |||
| bbf6b1412f | |||
| 9f868bff4f | |||
| 1c18ba20fc | |||
|
|
90b256daaf | ||
|
|
226c3eedef |
@@ -18,3 +18,10 @@ max_line_length = 80
|
|||||||
|
|
||||||
[COMMIT_EDITMSG]
|
[COMMIT_EDITMSG]
|
||||||
max_line_length = 0
|
max_line_length = 0
|
||||||
|
<<<<<<< Updated upstream
|
||||||
|
=======
|
||||||
|
|
||||||
|
[*.{js, vue, ts}]
|
||||||
|
indent_size = 2
|
||||||
|
indent_style = space
|
||||||
|
>>>>>>> Stashed changes
|
||||||
|
|||||||
64
.env
64
.env
@@ -1,64 +0,0 @@
|
|||||||
##
|
|
||||||
## Manually dump .env files in .env.local.php with
|
|
||||||
## `$ composer symfony:dump-env prod`
|
|
||||||
##
|
|
||||||
|
|
||||||
## Project environment
|
|
||||||
APP_ENV=dev
|
|
||||||
|
|
||||||
## Enable debug
|
|
||||||
APP_DEBUG=true
|
|
||||||
|
|
||||||
## Locale
|
|
||||||
LOCALE=fr
|
|
||||||
|
|
||||||
## Framework secret
|
|
||||||
APP_SECRET=ThisTokenIsNotSoSecretChangeIt
|
|
||||||
|
|
||||||
## Symfony/swiftmailer
|
|
||||||
MAILER_TRANSPORT=smtp
|
|
||||||
MAILER_HOST=smtp
|
|
||||||
MAILER_PORT=1025
|
|
||||||
MAILER_CRYPT=
|
|
||||||
MAILER_AUTH=
|
|
||||||
MAILER_USER=
|
|
||||||
MAILER_PASSWORD=
|
|
||||||
MAILER_URL=${MAILER_TRANSPORT}://${MAILER_HOST}:${MAILER_PORT}?encryption=${MAILER_CRYPT}&auth_mode=${MAILER_AUTH}&username=${MAILER_USER}&password=${MAILER_PASSWORD}
|
|
||||||
|
|
||||||
## Notifications
|
|
||||||
NOTIFICATION_HOST=localhost:8001
|
|
||||||
NOTIFICATION_FROM_EMAIL=admin@chill.social
|
|
||||||
NOTIFICATION_FROM_NAME=Chill
|
|
||||||
|
|
||||||
## Gelf
|
|
||||||
GELF_HOST=gelf
|
|
||||||
GELF_PORT=12201
|
|
||||||
|
|
||||||
## OVH OpenStack Storage User/Role
|
|
||||||
OS_USERNAME=
|
|
||||||
OS_PASSWORD=
|
|
||||||
OS_TENANT_ID=
|
|
||||||
OS_REGION_NAME=GRA
|
|
||||||
OS_AUTH_URL=https://auth.cloud.ovh.net/v2.0/
|
|
||||||
|
|
||||||
## OVH OpenStack Storage Container
|
|
||||||
ASYNC_UPLOAD_TEMP_URL_KEY=
|
|
||||||
ASYNC_UPLOAD_TEMP_URL_BASE_PATH=
|
|
||||||
ASYNC_UPLOAD_TEMP_URL_CONTAINER=
|
|
||||||
|
|
||||||
## Redis Cache
|
|
||||||
REDIS_HOST=redis
|
|
||||||
REDIS_PORT=6379
|
|
||||||
REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT}
|
|
||||||
|
|
||||||
## Twilio
|
|
||||||
TWILIO_SID=~
|
|
||||||
TWILIO_SECRET=~
|
|
||||||
|
|
||||||
## DOCKER IMAGES REGISTRY
|
|
||||||
#IMAGE_PHP=
|
|
||||||
#IMAGE_NGINX=
|
|
||||||
|
|
||||||
## DOCKER IMAGES VERSION
|
|
||||||
#VERSION=test
|
|
||||||
VERSION=prod
|
|
||||||
@@ -3,4 +3,3 @@
|
|||||||
# Run tests from root to adapt your own environment
|
# Run tests from root to adapt your own environment
|
||||||
KERNEL_CLASS='App\Kernel'
|
KERNEL_CLASS='App\Kernel'
|
||||||
APP_SECRET='$ecretf0rt3st'
|
APP_SECRET='$ecretf0rt3st'
|
||||||
DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres?serverVersion=12&charset=utf8
|
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -22,3 +22,4 @@ docs/build/
|
|||||||
|
|
||||||
/.php-cs-fixer.cache
|
/.php-cs-fixer.cache
|
||||||
/.idea/
|
/.idea/
|
||||||
|
/.psalm/
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ variables:
|
|||||||
# Configure postgres environment variables (https://hub.docker.com/r/_/postgres/)
|
# Configure postgres environment variables (https://hub.docker.com/r/_/postgres/)
|
||||||
POSTGRES_USER: postgres
|
POSTGRES_USER: postgres
|
||||||
POSTGRES_PASSWORD: postgres
|
POSTGRES_PASSWORD: postgres
|
||||||
|
# configure database access
|
||||||
|
DATABASE_URL: postgresql://postgres:postgres@db:5432/postgres?serverVersion=12&charset=utf8
|
||||||
# fetch the chill-app using git submodules
|
# fetch the chill-app using git submodules
|
||||||
GIT_SUBMODULE_STRATEGY: recursive
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
REDIS_HOST: redis
|
REDIS_HOST: redis
|
||||||
@@ -27,6 +29,7 @@ variables:
|
|||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
# change vendor dir to make the app install into tests/apps
|
# change vendor dir to make the app install into tests/apps
|
||||||
COMPOSER_VENDOR_DIR: tests/app/vendor
|
COMPOSER_VENDOR_DIR: tests/app/vendor
|
||||||
|
DEFAULT_CARRIER_CODE: BE
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- Composer install
|
- Composer install
|
||||||
@@ -60,7 +63,7 @@ code_style:
|
|||||||
- bin
|
- bin
|
||||||
- tests/app/vendor/
|
- tests/app/vendor/
|
||||||
|
|
||||||
sa_tests:
|
phpstan_tests:
|
||||||
stage: Tests
|
stage: Tests
|
||||||
image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4
|
image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4
|
||||||
script:
|
script:
|
||||||
@@ -71,6 +74,18 @@ sa_tests:
|
|||||||
- bin
|
- bin
|
||||||
- tests/app/vendor/
|
- tests/app/vendor/
|
||||||
|
|
||||||
|
psalm_tests:
|
||||||
|
stage: Tests
|
||||||
|
image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4
|
||||||
|
script:
|
||||||
|
- bin/grumphp run --tasks=psalm
|
||||||
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
expire_in: 30 min
|
||||||
|
paths:
|
||||||
|
- bin
|
||||||
|
- tests/app/vendor/
|
||||||
|
|
||||||
unit_tests:
|
unit_tests:
|
||||||
stage: Tests
|
stage: Tests
|
||||||
image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4
|
image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4
|
||||||
@@ -79,7 +94,7 @@ unit_tests:
|
|||||||
- php -d memory_limit=2G tests/app/bin/console cache:clear --env=dev
|
- php -d memory_limit=2G tests/app/bin/console cache:clear --env=dev
|
||||||
- php -d memory_limit=3G tests/app/bin/console doctrine:fixtures:load -n
|
- php -d memory_limit=3G tests/app/bin/console doctrine:fixtures:load -n
|
||||||
- php -d memory_limit=2G tests/app/bin/console cache:clear --env=test
|
- php -d memory_limit=2G tests/app/bin/console cache:clear --env=test
|
||||||
- php -d memory_limit=3G bin/phpunit --colors=never
|
- php -d memory_limit=4G bin/phpunit --colors=never
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 30 min
|
expire_in: 30 min
|
||||||
paths:
|
paths:
|
||||||
|
|||||||
440
CHANGELOG.md
440
CHANGELOG.md
@@ -11,11 +11,440 @@ and this project adheres to
|
|||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
<!-- write down unreleased development here -->
|
<!-- write down unreleased development here -->
|
||||||
* [person search] fix bug when using birthdate after and birthdate before
|
* [workflow]: added pagination to workflow list page
|
||||||
* [person search] increase pertinence when lastname begins with search pattern
|
* [homepage_widget]: null error on tasks widget fixed
|
||||||
|
* [person-thirdparty]: fix quick-add of names that consist of multiple parts (eg. De Vlieger) within onthefly modal person/thirdparty
|
||||||
|
* [search]: Order of birthdate fields changed in advanced search to avoid confusion.
|
||||||
|
* [workflow]: Constraint added to workflow (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/675)
|
||||||
|
* [filiation]: Allow the deletion of a relationship in filiations (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/608)
|
||||||
|
* [household]: Reposition and cut button for enfant hors menage have been deleted (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/620)
|
||||||
|
|
||||||
## Test releases
|
## Test releases
|
||||||
|
|
||||||
|
### 2022-05-30
|
||||||
|
|
||||||
|
* fix creating a new AccompanyingPeriodWorkEvaluationDocument when replacing the document (the workflow was lost)
|
||||||
|
|
||||||
|
### 2022-05-27
|
||||||
|
|
||||||
|
* [storedobject] add title field on StoredObject entity + use it in activity documents (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/604)
|
||||||
|
* [main] add a "read more..." on comment embeddable when overflown (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/604)
|
||||||
|
* [person] add closing motive to closed acc course (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/603)
|
||||||
|
* [person] household filiation: fetch person info when unfolding person (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/586)
|
||||||
|
* [admin] repair edit of social action in the admin (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/601)
|
||||||
|
* [admin]: add select2 to Goal form type entity fields (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/702)
|
||||||
|
* [main] allow hide permissions group list menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
|
||||||
|
* [main] allow hide change user password menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
|
||||||
|
* [main] filter user jobs by active jobs (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
|
||||||
|
* [main] add civility to User (entity, migration and form type) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
|
||||||
|
* [admin] refactorisation of the admin section: reorganisation of the menu, translations, form types, new entities (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/592)
|
||||||
|
* [admin] add admin section for languages and countries (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/596)
|
||||||
|
* [activity] activity admin: translations + remove label field for comment on admin activity type (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/587)
|
||||||
|
* [main] admin user_job: improvements (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/588)
|
||||||
|
* [address] can add extra address info even if noAddress (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/576)
|
||||||
|
|
||||||
|
|
||||||
|
### 2022-05-06
|
||||||
|
|
||||||
|
* [person] add civility when creating a person (with the on-the-fly component or in the php form) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/557)
|
||||||
|
* [person] add address when creating a person (with the on-the-fly component or in the php form) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/557)
|
||||||
|
* [person] add household creation API point (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/557)
|
||||||
|
|
||||||
|
### 2021-04-29
|
||||||
|
|
||||||
|
* [person] prevent circular references in PersonDocGenNormalizer (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/527)
|
||||||
|
* [person] add maritalStatusComment to PersonDocGenNormalizer (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/582)
|
||||||
|
* Load relationships without gender in french fixtures
|
||||||
|
* Add command to remove old draft accompanying periods
|
||||||
|
* [parcours]: If users assings him/herself as referrer and job is not null. Update parcours job (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/578)
|
||||||
|
|
||||||
|
### 2021-04-28
|
||||||
|
|
||||||
|
* [address] fix bug when editing address: update location and addressreferenceId + better update of the map in edition (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/593)
|
||||||
|
* [main] avoid address reference search on undefined post code (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/561)
|
||||||
|
* [person] prevent duplicate relationship in filiation/household graph (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/560)
|
||||||
|
* [Documents] Validate storedObject and allow for null data (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/565)
|
||||||
|
* [parcours]: Comments can be unpinned + edit/delete for all users that are allowed to edit parcours (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/566)
|
||||||
|
|
||||||
|
### 2021-04-26
|
||||||
|
|
||||||
|
* [Datepickers] datepickers fixed when using keyboard to enter date (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/545)
|
||||||
|
* [social_action] Display 'agents traitants' in parcours resumé and social action list (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/568)
|
||||||
|
* [Person_search] Closed parcours shown within an accordeon that can be opened/closed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/574)
|
||||||
|
|
||||||
|
### 2021-04-24
|
||||||
|
|
||||||
|
* [notification email on course designation] allow raw string in email content generation
|
||||||
|
* [Accompanying period work] list evaluations associated to a work by startDate, and then by id, from the most recent to older
|
||||||
|
* [Documents] Change wording 'créer' to 'enregistrer' (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/634)
|
||||||
|
* [Parcours]: The number of 'mes parcours' displayed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/572)
|
||||||
|
* [Hompage_widget]: Renaming of tabs and removal of social actions tab (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/570)
|
||||||
|
* [activity]: Ignore thirdparties when creating a social action via an activity (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/573)
|
||||||
|
* [parcours]: change wording of warning message and button when user is not associated to a household yet (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/590#note_918370943)
|
||||||
|
* [Accompanying period work evaluations] list documents associated to a work by creation date, and then by id, from the most recent to older
|
||||||
|
* [Course comment] add validationConstraint NotNull and NotBlank on comment content, to avoid sql error
|
||||||
|
* [Notifications] delay the sending of notificaiton to kernel.terminate
|
||||||
|
* [Notifications / Period user change] fix the sending of notification when user changes
|
||||||
|
* [Activity form] invert 'incoming' and 'receiving' in Activity form
|
||||||
|
* [Activity form] keep the same order for 'attendee' field in new and edit form
|
||||||
|
* [list with period] use "sameas" test operator to introduce requestor in list
|
||||||
|
* [notification email on course designation] allow raw string in email content generation
|
||||||
|
* [Accompanying period work] list evaluations associated to a work by startDate, and then by id, from the most recent to older
|
||||||
|
* [evaluation_document] changing date to datetime in order to display the time at which document was created (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/569)
|
||||||
|
|
||||||
|
|
||||||
|
### 2021-04-13
|
||||||
|
|
||||||
|
* [person] household address: add a form for editing the validFrom date (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/541)
|
||||||
|
* [person] householdmemberseditor: fix composition type bug in select form (vuejs) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/543)
|
||||||
|
* [docgen] add more persons choices in docgen for course: amongst requestor (if person), resources of course (if person), and PersonResource (if person);
|
||||||
|
* [docgen] add a new context with a list of activities in course
|
||||||
|
* [docgen] add a comment in budget lines
|
||||||
|
* [notifications] allow to send a notification to an email address. The address receive an access link
|
||||||
|
* [adresses] add constraints in database to avoid errors later: postcode not null, and validfrom <= validto
|
||||||
|
* [accompanying work editor] add a label on document title input
|
||||||
|
|
||||||
|
### 2021-04-07
|
||||||
|
|
||||||
|
* notification list: move action buttons outside of the toggle
|
||||||
|
* fix detecting of non-read notification
|
||||||
|
* filter users which are disabled in search user api
|
||||||
|
* order query for location and add pagination in list
|
||||||
|
* allow every person which has part for a workflow to see the workflow page
|
||||||
|
* able to see the workflow if the evaluation document has been deleted
|
||||||
|
* hardcode the list of supported mime types for edition with collabora
|
||||||
|
* list of accompanying course: allow to see the pinned comment in list_item
|
||||||
|
|
||||||
|
### 2021-04-06
|
||||||
|
|
||||||
|
* [main] notification toggle read: correct js syntax for compilation in production (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/548)
|
||||||
|
* [parcours] Display of interlocuteurs changed to flex-table in parcours edit page to prevent cut-off of information (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/535)
|
||||||
|
* [activity] espace entre les boutons pour supprimer les documents
|
||||||
|
|
||||||
|
|
||||||
|
### continuous release in February and March
|
||||||
|
|
||||||
|
* Creation of PickCivilityType, and implementation in PersonType and ThirdpartyType
|
||||||
|
* [person] Accompanying course evaluation documents: disable the WOPI edit link if mimetype not supported and if no keyInfos
|
||||||
|
(https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/585)
|
||||||
|
* [activity] display error messages above the form in creating a new location (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/481)
|
||||||
|
* [activity] show required field in activity edit/new by an asterix in the vuejs fields (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/494)
|
||||||
|
* [ACL] fix allow to see the course, event if the scope'course does not contains the scope's user
|
||||||
|
* [search] enforce limit of results for fetching rsults by search api https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/576
|
||||||
|
* [activity] Fix delete button for document (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/554)
|
||||||
|
* [activity] Add return path the document generation (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/553)
|
||||||
|
* [person] add person ressource to person docgen normaliser (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/517)
|
||||||
|
* [person] AccompanyingCourseWorkEdit: fix deleting evaluation documents (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/546)
|
||||||
|
* [person] AccompanyingCourseWorkEdit: download existing documents (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/512)
|
||||||
|
* [person] AccompanyingCourseWorkEdit: replace document by a new one (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/511)
|
||||||
|
* [person] AccompanyingPeriodWork: add referrers to work, add doctrine event listener to add logged user to referrers collection and display a referrers list in work list (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/502)
|
||||||
|
* [person] AccompanyingPeriodWorkEvaluation: fix circular reference when serialising (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/495)
|
||||||
|
* [person] order accompanying period by opening date in search persons, person and household period lists (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/493)
|
||||||
|
* [parcours] autosave of the pinned comment for draft accompanying course (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/477)
|
||||||
|
* [main] filter user job in undispatch acc period to assign (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/472)
|
||||||
|
* [main] filter user job in undispatch acc period to assign (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/472)
|
||||||
|
* [person] Add url in accompanying period work evaluations entity and form (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/476)
|
||||||
|
* [person] Add document generation in admin and in person/{id}/document (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/464)
|
||||||
|
* [activity] do not override location if already exist (when validating new activity) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/470)
|
||||||
|
* [parcours] Toggle emergency/intensity only by referrer (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/442)
|
||||||
|
* [docstore] Add an API entrypoint for StoredObject (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/466)
|
||||||
|
* [person] Add the possibility of uploading existing documents to AccPeriodWorkEvaluationDocument (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/466)
|
||||||
|
* [person] Add title to AccPeriodWorkEvaluationDocument (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/466)
|
||||||
|
* [person] Order social issues by the field "ordering" (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/388)
|
||||||
|
* [Person/Household list] when listing other simultaneous members of an household, exclude the members on person, not on members (avoid to show two membersship with the same person)
|
||||||
|
* [draft periods] add a delete button (if acl granted) on each draft period listed on draft period page (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/463)
|
||||||
|
* [Person] Display suffixText in RenderPerson, PersonText.vue, RenderPersonBox.vue (was made for displaying "enfant confie") (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/441)
|
||||||
|
* [budget]: budget enabled for persons and households (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/469)
|
||||||
|
* [person] residential address: show residential address or info in PersonRenderBox, refactor Residential Address (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/439)
|
||||||
|
* [thirdparty] Add a contact to a thirdparty from within onTheFly (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/345)
|
||||||
|
* [documents] Improve flex-table item-col placement when long buttons and long metadata
|
||||||
|
* [thirdparty] Fix display of multiple contact badges so they wrap onto next line (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/482)
|
||||||
|
* [confidential] Fix position of toggle button so it does not cover text nor fall outside of box (no issue)
|
||||||
|
* [parcours] Fix edit of both thirdparty and contact name (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/474)
|
||||||
|
* [template] do not list inactive templates (for doc generator)
|
||||||
|
* [household] bugfix if position of member is null, renderbox no longer throws an error (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/480)
|
||||||
|
* [parcours] location cannot be removed if linked to a user (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/478)
|
||||||
|
* [person] email added to twig personRenderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/490)
|
||||||
|
* [activity] Only youngest descendant is kept for social issues and actions (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/471)
|
||||||
|
* [person] Add link to current household in person banner (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/484)
|
||||||
|
* [address] person badge in address history changed to open OnTheFly with all person info (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/489)
|
||||||
|
* [person] Change 'personne' with 'usager' and '&' with 'ET' (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/499)
|
||||||
|
* [thirdparty] Add parameter condition to display centers or not (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/500)
|
||||||
|
* [phonenumber] Remove placeholder in phonenumber field (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/496)
|
||||||
|
* [person_resource] separate create page created to avoid confusion (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/504)
|
||||||
|
* [contact] add contact button color changed plus the pipe at the side removed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/506)
|
||||||
|
* [thirdparty] For contacts show current civility/profession in edit form + fix saving of edited information (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/491)
|
||||||
|
* [household] create-edit household composition placed in separate page to avoid confusion (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/505)
|
||||||
|
* [blur] Improved positioning of toggle icon (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/486)
|
||||||
|
* [thirdparty] add firstname field to thirdparty 'child' or 'contact' types (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/508)
|
||||||
|
* [household] create-edit household composition placed in separate page to avoid confusion (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/505)
|
||||||
|
* [blur] Improved positioning of toggle icon (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/486)
|
||||||
|
* [parcours] List of parcours for a specific user so they can be reassigned in case of absence (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/509)
|
||||||
|
* [thirdparty] Thirdparty view page, english text translated (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/534)
|
||||||
|
* [social_action] Translation changed in evaluation section (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/512)
|
||||||
|
* [filiation] Possible to add person (or create onthefly) to add to filiation graph + add relation (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/519)
|
||||||
|
* [household] Within parcours listing page of household add create button (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/560)
|
||||||
|
* [person_resource] bugfix when adding thirdparty or freetext resource + prevent personOwner themselves to be added. (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/526)
|
||||||
|
* [aside_activity] style correction + sticky-form create button (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/529)
|
||||||
|
* [budget] order within the menu adjusted (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/592)
|
||||||
|
* [onthefly] fix create person. Bug was noticed in filiation (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/591)
|
||||||
|
* [parcours] Create document buttons made sticky (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/532)
|
||||||
|
* [person] Trailing guillemet removed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/530)
|
||||||
|
* [notification] Display of social action within workflow notification set to display block (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/537)
|
||||||
|
* [onthefly] trim trailing whitespace in email of person and thirdparty (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/542)
|
||||||
|
|
||||||
|
* [action] Only youngest descendant is kept for social issues and actions (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/471)
|
||||||
|
## Test releases
|
||||||
|
|
||||||
|
### test release 2022-02-21
|
||||||
|
|
||||||
|
* [notifications] Word 'un' changed to number '1' for notifications in user menu (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/483)
|
||||||
|
* [documents] 'gabarit' changed to 'modèle' (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/405)
|
||||||
|
* [person_resources] Menu name and order changed (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/460)
|
||||||
|
* workflow: fix sending notifications
|
||||||
|
* [thirdparty] Extend the thirdparty search to thirdparty children (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/448)
|
||||||
|
* [person]: AddPersons: allow creation of person or thirdparty only (no users) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/422)
|
||||||
|
* [person]: AddPersons: allow creation of person or thirdparty depending on allowed types (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/422)
|
||||||
|
* [person]: AddPersons: add suggestion of name when creating new person or thirdparty (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/422)
|
||||||
|
* [main] Address: fix small bug: when modifying an address without street (isNoAddress), also check errors if street is an empty string as back-end change null value to empty string for street (and streetNumber)
|
||||||
|
* [main] Address: stronger client-side validation of addresses (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/449)
|
||||||
|
* [person] accompanying course: filter suggested entities by open participations (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/415)
|
||||||
|
[activity] can click through the cross icon for removing person in concerned group (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/476)
|
||||||
|
[activity] correct associated persons by considering only open participations (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/476)
|
||||||
|
* [person_resources]: Renderboxes used to display person/thirdparty info (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/465)
|
||||||
|
* [Household]: Add end date in HouseholdMember form for 'enfant hors menage' (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/434)
|
||||||
|
* [homepage_widget]: If no sender then display as 'notification automatique' (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/435)
|
||||||
|
* [parcours]: Order social activities and only display most recent three in parcours resumé (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/481)
|
||||||
|
* [3party]: 3party: redirect to parent when contact (child) is opened in view page
|
||||||
|
* [parcours / addresses]: launch an event when a person change address (either through changing household or because the household is associated to a new address). If the person is localising a course, the course location go back to a temporarily address.
|
||||||
|
* [thirdparty]: address/phonenumber/email/fonction displayed in thirdpartyrenderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/401)
|
||||||
|
* [thirdparty_contact]: in search results the 'qualité' is displayed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/465)
|
||||||
|
* [bug]: fix confidential toggle of address in thirdpartyrenderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/460)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### test release 2022-02-14
|
||||||
|
|
||||||
|
* AddPersons: remove ul-li html tags from AddPersons (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/419)
|
||||||
|
* [doc-generator] do not set required fields for mainPerson, person1, person2 (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement#456)
|
||||||
|
* [doc-generation] add age and obele in the mainPerson, person1 and person2 list + add obele in person renderString if addAge (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/370)
|
||||||
|
* [person] accompanying course work: fix on-the-fly update of thirdParty
|
||||||
|
* fix normalisation of accompanying course requestor api (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/378)
|
||||||
|
* [person] add a returnPath when clicking on some Person or ThirdParty badge (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/427)
|
||||||
|
* [person] accompanying course work: fix on-the-fly update of thirdParty
|
||||||
|
* [on-the-fly] close modal only after validation
|
||||||
|
* [person] correct thirdparty PATCH url + add email and altnames in AddPerson and serializer (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/433)
|
||||||
|
* change order for accompanying course work list
|
||||||
|
* [parcours]: Mes parcours brouillon added to user menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/440)
|
||||||
|
* [Documents]: List view adapted to display more information (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/414)
|
||||||
|
* [person]: style fix in parcours listing per person. (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/432)
|
||||||
|
* [parcours]: Only the referrer can toggle the intensity of the parcours (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/442)
|
||||||
|
* [household]: display address of current household (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/415)
|
||||||
|
* ajoute un ordre dans les localisation (api)
|
||||||
|
* [pick entity]: fix translations in modal (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/419)
|
||||||
|
* [homepage_widget]: fix translation on emergency badge (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/440)
|
||||||
|
* [person]: create person and household added to button dropdown (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/454)
|
||||||
|
* display full address in address.text in normalization. Adapt AddressRenderBox
|
||||||
|
* [address]: Correction residential address 'depuis le' (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/459)
|
||||||
|
* [Documents]: List view adapted to display more information (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/414)
|
||||||
|
* [Thirdparty_contact]: address blurred if confidential in view page (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/450)
|
||||||
|
* [thirdparty] Add a contact to a thirdparty from within onTheFly (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/345)
|
||||||
|
|
||||||
|
|
||||||
|
### test release 2021-02-01
|
||||||
|
|
||||||
|
* renommer "dossier numéro" en "parcours numéro" dans les résultats de recherche
|
||||||
|
* renomme date de début en date d'ouverture dans le formulaire parcours
|
||||||
|
* [homepage widget] improve content tables, improve counter pluralization with style on number
|
||||||
|
* [notification lists] add comments counter information
|
||||||
|
* [workflows] fix popover header with previous transition
|
||||||
|
* [parcours]: validation + message for closing parcours adjusted.
|
||||||
|
* [household]: household composition double edit button replaced by a delete action (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/426)
|
||||||
|
[fast_actions] improve fast-actions buttons override mechanism, fix https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/413
|
||||||
|
[homepage widget] add vue homepage_widget with asynchone loading, give a global view resume of the user concerned actions, notifications, etc.
|
||||||
|
* [person]: Comment on marital status is possible even if marital status is not defined (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/421)
|
||||||
|
* [parcours]: In the list of person results the requestor is not displayed if defined as anonymous (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/424)
|
||||||
|
* [bugfix]: modal closes and newly created person/thirdparty is selected when multiple persons/thirdparties are created through the modal (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/429)
|
||||||
|
* [person_resource]: Onthefly button added to view person/thirdparty and badge differentiation for a contact-thirdparty (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/428)
|
||||||
|
* [workflow][notification] improve how notifications and workflows are 'attached' to entities: contextual list, counter, buttons and vue modal
|
||||||
|
* [AddAddress] disable multiselect search, and rely only on most pertinent Cities and Street computed backend
|
||||||
|
* [fast_actions] improve fast-actions buttons override mechanism, fix https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/413
|
||||||
|
* [homepage widget] add vue homepage_widget with asynchone loading, give a global view resume of the user concerned actions, notifications, etc.
|
||||||
|
* [thirdparty] Add a contact to a thirdparty from within onTheFly (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/345)
|
||||||
|
* [homepage widget] add vue homepage_widget with asynchone loading, give a global view resume of the user concerned actions, notifications, etc.
|
||||||
|
|
||||||
|
|
||||||
|
### test release 2021-01-31
|
||||||
|
|
||||||
|
* [person] accompanying course: optimisation: do not fetch some resources for the banner (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/409)
|
||||||
|
* [person] accompanying course: close modal when edit participation (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/420)
|
||||||
|
* [person] accompanying course: treat validation error when editing on-the-fly entities (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/420)
|
||||||
|
* [activity] show activity attendee (présence) in the activity list (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/412)
|
||||||
|
* [activity] admin: change validation rule for social action visible field (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/413)
|
||||||
|
* [parcours]: component added to change the opening date of a parcours (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/411)
|
||||||
|
* [search]: listing of parcours display changed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/410)
|
||||||
|
* [user]: page with accompanying periods to which is user is referent (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/408)
|
||||||
|
* [person] age added to renderstring + renderbox/ vue component created to display person text (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/389)
|
||||||
|
* [household member editor] allow to push to existing household
|
||||||
|
|
||||||
|
|
||||||
|
### test release 2021-01-28
|
||||||
|
|
||||||
|
* [person] improve filiations vis graph: disable physics, use chill colors for persons-households-course, increase label of relations, remove labels on household arrows and other improvements (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/286, https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/362)
|
||||||
|
* [activity] Order activity by date and by id (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/364)
|
||||||
|
* [main] increase length of 4 Address fields (change to TEXT, no size limits) (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/277)
|
||||||
|
* [main] Add confidential option for address, in edit and view (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/165)
|
||||||
|
* [person] name suggestions within create person form when person is created departing from a search input (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/377)
|
||||||
|
* [person] Add residential address entity, form and list for each person
|
||||||
|
* [aside_activity]: dynamicUserPickerType used (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/399)
|
||||||
|
* dispatching list
|
||||||
|
|
||||||
|
|
||||||
|
### test release 2021-01-26
|
||||||
|
|
||||||
|
* [parcours] comments truncated if too long + link added (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/406)
|
||||||
|
* [person]: possibility to add person resources (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/382)
|
||||||
|
* [person ressources]: module added
|
||||||
|
|
||||||
|
|
||||||
|
### test release 2022-01-24
|
||||||
|
|
||||||
|
* [person] name suggestions within create person form when person is created departing from a search input (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/377)
|
||||||
|
* [notification: formulaire création] descend la box avec la description dans le bas du formulaire
|
||||||
|
* [notification for activity]: fix link to activity
|
||||||
|
* [notification] add "URGENT" before accompanying course with emergency = true
|
||||||
|
* [notification] add a "read more" button on system notification
|
||||||
|
* [notification] add `[Chill]` in the subject of each notification, automatically
|
||||||
|
* [notification] add a counter for notification in activity list and accompanying period list, and search results
|
||||||
|
* [parcours] bugfix if deathdate is not defined (eg. for a thirdparty) parcours is still displayed. Gave error before.
|
||||||
|
* [workflow] add breadcrumb to show steps
|
||||||
|
* [popover] add popover html popup mechanism (used by workflow breadcrumb)
|
||||||
|
* [templates] improve updatedBy macro in item metadatas
|
||||||
|
* [parcours]: bug fix when comment is pinned all other comments remain in the collection (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/385)
|
||||||
|
* [workflow]
|
||||||
|
* add My workflow section with my opened subscriptions
|
||||||
|
* apply workflow on documents, accompanyingCourseWork and Evaluations
|
||||||
|
* [wopi-link] a new vue component allow to open wopi link in a fullscreen chill-themed modal
|
||||||
|
|
||||||
|
### test release 2022-01-19
|
||||||
|
* vuejs: add dead information on all on-the-fly person render boxes, in vis graph and other templates (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/271)
|
||||||
|
* [thirdparty] fix bug in 3rd party view: types was replaced by thirdPartyTypes
|
||||||
|
* [main] location form type: fix unmapped address field (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/246)
|
||||||
|
* [activity] fix wrong import of js assets for adding and viewing documents in activity (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/83 & https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/176)
|
||||||
|
* [person]: space added between deathdate and age in twig renderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/380)
|
||||||
|
* [forms] dynamic picker types for user/person/thirdparty types created (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/386)
|
||||||
|
|
||||||
|
### test release 2022-01-17
|
||||||
|
|
||||||
|
* [main] Add editableByUser field to locationType entity, adapt the admin template and add this condition in the location-type endpoint (see https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/297)
|
||||||
|
* [main] Add mainLocation field to User entity and add it in user form type
|
||||||
|
* rewrite page which allow to select activity
|
||||||
|
* [main] Add mainLocation field to User entity and add it in user form type
|
||||||
|
* [course list in person context] show full username/label for ref
|
||||||
|
* [accompanying period work] remove the possibility to generate document from an accompanying period work
|
||||||
|
* vuejs: add validation on required fields for AddPerson, Address and Location components
|
||||||
|
* vuejs: treat 422 validation errors in locations and AddPerson components
|
||||||
|
* [person]: space added between deathdate and age in twig renderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/380)
|
||||||
|
|
||||||
|
## Test releases
|
||||||
|
* vuejs: add validation on required fields for AddPerson, Address and Location components
|
||||||
|
* vuejs: treat 422 validation errors in locations and AddPerson components
|
||||||
|
* [person]: space added between deathdate and age in twig renderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/380)
|
||||||
|
|
||||||
|
### test release 2022-01-12
|
||||||
|
|
||||||
|
* fix thirdparty normalizer on telephone field: https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/322
|
||||||
|
|
||||||
|
### test release 2022-01-11
|
||||||
|
|
||||||
|
* vuejs: translate in French all multiselect widgets
|
||||||
|
* [address] define address lines according postal standards for France and Belgium (default) and change AddressRender, chill_entity_render_box and AddressRenderBox.vue
|
||||||
|
* [household] change translations (champs-libres/departement-de-la-vendee/accent-suivi-developpement#109)
|
||||||
|
* [household] add address i18n in household component (champs-libres/departement-de-la-vendee/accent-suivi-developpement#158)
|
||||||
|
* [household] add on the fly i18n in household component
|
||||||
|
* [household] redirect to the household page when a household is created from a person (champs-libres/departement-de-la-vendee/accent-suivi-developpement#175)
|
||||||
|
* [household] household member editor: display alert if some members have already an household (champs-libres/departement-de-la-vendee/accent-suivi-developpement#172)
|
||||||
|
* [household] household member editor: do not add in new members if the member is included in the members of household (champs-libres/departement-de-la-vendee/accent-suivi-developpement#123)
|
||||||
|
* [household] household member editor: remove markNoAddress button (champs-libres/departement-de-la-vendee/accent-suivi-developpement#109)
|
||||||
|
* [person]: ordering fields in add person (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/61)
|
||||||
|
* [person]: Add email and alt names in add person (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/61)
|
||||||
|
* [accompanyingCourse] Add a delete action and delete buttons to delete a accompanying course when step = DRAFT (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/64)
|
||||||
|
* [accompanyingCourse] Add a administrative location in the accompanying course, set the user current location as default, allow to select a location in a select field and do not allow to confirm the accompanying course if location is empty.
|
||||||
|
* [accompanyingCourse] Add the administrative location in the available variables for document generation
|
||||||
|
* AddAddress: optimize loading: wait for the user finish typing;
|
||||||
|
* UserPicker: fix bug with deprecated role
|
||||||
|
* docgen: add base context + tests
|
||||||
|
* docgen: add age for person
|
||||||
|
* [household menu] fix filiation order https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/265
|
||||||
|
* [AddAddress]: optimize loading: wait for the user finish typing;
|
||||||
|
* [UserPicker]: fix bug with deprecated role
|
||||||
|
* [docgen]: add base context + tests
|
||||||
|
* [docgen]: add age for person
|
||||||
|
* [task]: fix dropdown menu style + fix bug in singleTaskController (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/338)
|
||||||
|
* Household: fix bug when moving person on the same day (see https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/281)
|
||||||
|
* Household: show date validFrom and validTo when moving
|
||||||
|
* address reference: add index for refid
|
||||||
|
* [accompanyingCourse_work] fix styles conflicts + fix bug with remove goal (remove goals one at a time)
|
||||||
|
* [accompanyingCourse] improve masonry on resume page, add origin
|
||||||
|
* [notification] new notification interface, can be associated to AccompanyingCourse/Period, Activities.
|
||||||
|
* List notifications, show, and comment in User section
|
||||||
|
* Notify button and contextual notification box on associated objects pages
|
||||||
|
* [accompanyingCourse] add a comment for each resource associated. A modal allow to save comment. Comment is displayed in on-the-fly show modal of the accompanyingCourse context (edit page + resume page).
|
||||||
|
|
||||||
|
### test release 2021-12-14
|
||||||
|
|
||||||
|
* [asideactivity] creation of aside activity category fixed (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/262)
|
||||||
|
* [vendee/person] fix typo "situation professionelle" => "situation professionnelle"
|
||||||
|
* [main] add availableForUsers condition from locationType in the location API endpoint (champs-libres/departement-de-la-vendee/accent-suivi-developpement#248)
|
||||||
|
* [main] add the current location of the user as API point + add it in the activity location list (champs-libres/departement-de-la-vendee/accent-suivi-developpement#247)
|
||||||
|
* [activity] improve show/new/edit templates, fix SEE and SEE_DETAILS acl
|
||||||
|
* [badges] create specific badge for TMS, and make person/thirdparty badges clickable with on-the-fly modal in :
|
||||||
|
* concerned groups items (activity, calendar)
|
||||||
|
* accompanyingCourseWork lists
|
||||||
|
* accompanyingCourse lists
|
||||||
|
* [acompanyingCourse] add initial comment on Resume page
|
||||||
|
* [person] create button full width (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/330)
|
||||||
|
|
||||||
|
### test release 2021-12-11
|
||||||
|
|
||||||
|
* [main] add order field to civility
|
||||||
|
* [main] change address format in case the country is France, in Address render box and address normalizer
|
||||||
|
* [person] add validator for accompanying period with a test on social issues (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/76)
|
||||||
|
* [activity] fix visibility for location
|
||||||
|
* [origin] fix origin: use correctly the translatable strings
|
||||||
|
* /!\ everyone must update the origin table. As there is only one row, execute `update chill_person_accompanying_period_origin set label = jsonb_build_object('fr', 'appel téléphonique');`
|
||||||
|
* [person] redirect bug fixed.
|
||||||
|
* [action] add an unrelated issue within action creation.
|
||||||
|
* [origin] fix origin: use correctly the translatable strings
|
||||||
|
* /!\ everyone must update the origin table. As there is only one row, execute `update chill_person_accompanying_period_origin set label = jsonb_build_object('fr', 'appel téléphonique');`
|
||||||
|
* [main] change order of civilities in civility fixtures (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/191)
|
||||||
|
* [person] set min attr in the minimum of children field (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/191)
|
||||||
|
* [person] add marital status date in person view (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/191)
|
||||||
|
* [person] show number of children + allow set number of children to null (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/191)
|
||||||
|
* [person] show acceptSMS option (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/191)
|
||||||
|
* [person] add death information in person render box in twig and vue render boxes (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/191)
|
||||||
|
* [asideactivity] creation of aside activity category fixed (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/262)
|
||||||
|
* [vendee/person] fix typo "situation professionelle" => "situation professionnelle"
|
||||||
|
* [accompanyingcourse_work] Changes in layout/behavior of edit form (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/321)
|
||||||
|
* [badge-entity] design coherency between pills badge-person and 3 kinds of badge-thirdparty
|
||||||
|
* [AddPersons] suggestions row are clickable, not only checkbox
|
||||||
|
|
||||||
|
### test release 2021-12-06
|
||||||
|
|
||||||
|
* [main] address: use search API end points for getting postal code and reference address (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/316)
|
||||||
|
* [main] address: in edit mode, select the encoded values in multiselect for address reference and city (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/316)
|
||||||
|
* [person search] fix bug when using birthdate after and birthdate before
|
||||||
|
* [person search] increase pertinence when lastname begins with search pattern
|
||||||
|
* [activity/actions] Améliore la cohérence du design entre
|
||||||
|
* la page résumé d'un parcours (liste d'actions récentes et liste d'activités récentes)
|
||||||
|
* la page liste des actions
|
||||||
|
* la page liste des activités (contexte personne / contexte parcours)
|
||||||
|
* [household] field to edit wheter person is titulaire of household or not removed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/322)
|
||||||
|
* [activity] create work if a work with same social action is not associated to the activity
|
||||||
|
* [visgraph] improve and fix bugs on vis-network relationship graph
|
||||||
|
* [bugfix] posting of birth- and deathdate through api fixed.
|
||||||
|
* [suggestions] improve suggestions lists
|
||||||
|
|
||||||
### Test release 2021-11-19 - bis
|
### Test release 2021-11-19 - bis
|
||||||
|
|
||||||
* [household] do not allow to create two addresses on the same date
|
* [household] do not allow to create two addresses on the same date
|
||||||
@@ -23,6 +452,7 @@ and this project adheres to
|
|||||||
* [activity] layout for issues / actions
|
* [activity] layout for issues / actions
|
||||||
* [activity][bugfix] in edit mode, the form will now load the social action list
|
* [activity][bugfix] in edit mode, the form will now load the social action list
|
||||||
|
|
||||||
|
|
||||||
### Test release 2021-11-29
|
### Test release 2021-11-29
|
||||||
|
|
||||||
* [person] suggest entities (person | thirdparty) when creating/editing the accompanying course (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/119)
|
* [person] suggest entities (person | thirdparty) when creating/editing the accompanying course (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/119)
|
||||||
@@ -49,6 +479,10 @@ and this project adheres to
|
|||||||
* add an endpoint for checking permissions. See https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/232
|
* add an endpoint for checking permissions. See https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/232
|
||||||
* [activity] for a new activity: suggest and create on-the-fly locations based on the accompanying course location + location of the suggested parties
|
* [activity] for a new activity: suggest and create on-the-fly locations based on the accompanying course location + location of the suggested parties
|
||||||
* [calendar] for a new rdv: suggest and create on-the-fly locations based on the accompanying course location + location of the suggested parties
|
* [calendar] for a new rdv: suggest and create on-the-fly locations based on the accompanying course location + location of the suggested parties
|
||||||
|
* [period] Validation added when period is confidential and confirmed -> user cannot be null.
|
||||||
|
|
||||||
|
|
||||||
|
## Test releases
|
||||||
|
|
||||||
### Test release 2021-11-22
|
### Test release 2021-11-22
|
||||||
|
|
||||||
@@ -164,7 +598,7 @@ and this project adheres to
|
|||||||
* fast creation buttons
|
* fast creation buttons
|
||||||
* add ordering for types
|
* add ordering for types
|
||||||
|
|
||||||
* [AccompanyingCourse Resume page] badge-title for AccompanyingCourseWork and for Activities;
|
* [AccompanyingCourse Resume page] dashboard for AccompanyingCourseWork and for Activities;
|
||||||
* Improve badges behaviour with small screens;
|
* Improve badges behaviour with small screens;
|
||||||
|
|
||||||
* [ThirdParty]:
|
* [ThirdParty]:
|
||||||
|
|||||||
@@ -2,7 +2,14 @@
|
|||||||
|
|
||||||
en cours de rédaction
|
en cours de rédaction
|
||||||
|
|
||||||
|
## Translations
|
||||||
|
|
||||||
|
|
||||||
|
Par bundle, toutes les traductions des pages twig se trouvent dans un seul fichier `translations/messages.fr.yaml`.
|
||||||
|
|
||||||
|
## Emplacement des fichiers
|
||||||
|
|
||||||
|
Les controllers, form type & templates twig sont placés à la racine des dossiers `Controller`, `Form` & `Ressources/views`, respectivement. Pour les pages Admin, on ne les mets plus dans des sous-dossiers Admin.
|
||||||
## Assets: nommage des entrypoints
|
## Assets: nommage des entrypoints
|
||||||
|
|
||||||
Trois types d'entrypoint:
|
Trois types d'entrypoint:
|
||||||
@@ -146,19 +153,20 @@ Ces règles n'ont pas toujours été utilisées par le passé. Elles sont souhai
|
|||||||
|
|
||||||
Les routes sont nommées de cette manière:
|
Les routes sont nommées de cette manière:
|
||||||
|
|
||||||
`chill_bundle_entite_action`
|
`chill_(api|crud)_bundle_(api)_entite_action`
|
||||||
|
|
||||||
1. d'abord chill_ (pour tous les modules chill)
|
1. d'abord chill_ (pour tous les modules chill)
|
||||||
2. ensuite une string qui est identique, par bundle
|
2. ensuite `crud` ou `api`, optionnel, automatiquement ajouté si la route est générée par la configuration
|
||||||
3. si le point est un point d'api (json), alors ajouter la string `api`
|
3. ensuite une string qui indique le bundle (`main`, `person`, `activity`, ...)
|
||||||
4. ensuite une string qui indique sur quelle entité porte la route, voire également les sous-entités
|
4. ensuite, `api`, si la route est une route d'api.
|
||||||
5. ensuite une action (`list`, `view`, `edit`, `new`, ...)
|
5. ensuite une string qui indique sur quelle entité porte la route, voire également les sous-entités
|
||||||
|
6. ensuite une action (`list`, `view`, `edit`, `new`, ...)
|
||||||
|
|
||||||
Le fait d'indiquer `api` en 3 permet de distinguer les routes d'api qui sont générées par la configuration (qui sont toutes préfixées par `chill_api`, de celles générées manuellement. (Exemple: `chill_api_household__index`, et `chill_person_api_household_members_move`)
|
Le fait d'indiquer `api` en quatrième position permet de distinguer les routes d'api qui sont générées par la configuration (qui sont toutes préfixées par `chill_api`, de celles générées manuellement. (Exemple: `chill_api_household__index`, et `chill_person_api_household_members_move`)
|
||||||
|
|
||||||
Si les points 4 et 5 sont inexistants, alors ils sont remplacés par d'autres éléments de manière à garantir l'unicité de la route, et sa bonne compréhension.
|
Si les points 4 et 5 sont inexistants, alors ils sont remplacés par d'autres éléments de manière à garantir l'unicité de la route, et sa bonne compréhension.
|
||||||
|
|
||||||
### URL
|
### Nommage des URL
|
||||||
|
|
||||||
Les URL respectent également une convention:
|
Les URL respectent également une convention:
|
||||||
|
|
||||||
@@ -219,6 +227,14 @@ Les éléments suivants devraient se trouver dans la liste:
|
|||||||
|
|
||||||
Ces éléments peuvent être entrecoupés de l'identifiant d'une entité. Dans ce cas, cet identifiant se place juste après l'entité auquel il se rapporte.
|
Ces éléments peuvent être entrecoupés de l'identifiant d'une entité. Dans ce cas, cet identifiant se place juste après l'entité auquel il se rapporte.
|
||||||
|
|
||||||
|
#### Pour les URL de l'espace Admin
|
||||||
|
|
||||||
|
Même conventions que dans les autres pages html de l'application, **mais `admin` est ajouté en deuxième position**. Soit:
|
||||||
|
|
||||||
|
|
||||||
|
`/{_locale}/admin/bundle/entity/{id}/action`
|
||||||
|
|
||||||
|
|
||||||
## Règles UI chill
|
## Règles UI chill
|
||||||
|
|
||||||
### Titre des pages
|
### Titre des pages
|
||||||
@@ -397,7 +413,6 @@ Créer une liste de suggestions à enlever (avec une croix rouge cliquable, l'an
|
|||||||
<li>
|
<li>
|
||||||
<span>
|
<span>
|
||||||
item
|
item
|
||||||
<a></a>
|
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -405,7 +420,8 @@ Créer une liste de suggestions à enlever (avec une croix rouge cliquable, l'an
|
|||||||
Créer un titre enlevable (avec une croix rouge cliquable, l'ancre a est vide)
|
Créer un titre enlevable (avec une croix rouge cliquable, l'ancre a est vide)
|
||||||
```html
|
```html
|
||||||
<div class="item-title">
|
<div class="item-title">
|
||||||
title
|
<span>title</span>
|
||||||
<a></a>
|
|
||||||
</div>
|
</div>
|
||||||
```
|
```
|
||||||
|
Les classes `cols` ou `inline` peuvent être ajoutées à côté de `list-suggest` pour modifier la disposition de la liste.
|
||||||
|
Dans le dernier exemple, on met une classe `removable` sur le span, si on veut pouvoir enlever l'élément.
|
||||||
|
|||||||
102
composer.json
102
composer.json
@@ -1,79 +1,87 @@
|
|||||||
{
|
{
|
||||||
"name": "chill-project/chill-bundles",
|
"name": "chill-project/chill-bundles",
|
||||||
"type": "library",
|
|
||||||
"description": "Most used bundles for chill-project",
|
"description": "Most used bundles for chill-project",
|
||||||
|
"license": "AGPL-3.0-only",
|
||||||
|
"type": "library",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"chill",
|
"chill",
|
||||||
"social worker"
|
"social worker"
|
||||||
],
|
],
|
||||||
"license": "AGPL-3.0-only",
|
|
||||||
"require": {
|
"require": {
|
||||||
"champs-libres/async-uploader-bundle": "dev-sf4",
|
"php": "^7.4",
|
||||||
"champs-libres/wopi-bundle": "dev-master",
|
"champs-libres/async-uploader-bundle": "dev-sf4#d57134aee8e504a83c902ff0cf9f8d36ac418290",
|
||||||
"composer/package-versions-deprecated": "^1.10",
|
"champs-libres/wopi-bundle": "dev-master#6dd8e0a14e00131eb4b889ecc30270ee4a0e5224",
|
||||||
|
"champs-libres/wopi-lib": "dev-master#8615f4a45a39fc2b6a98765ea835fcfd39618787",
|
||||||
"doctrine/doctrine-bundle": "^2.1",
|
"doctrine/doctrine-bundle": "^2.1",
|
||||||
"doctrine/doctrine-migrations-bundle": "^3.0",
|
"doctrine/doctrine-migrations-bundle": "^3.0",
|
||||||
"doctrine/orm": "^2.7",
|
"doctrine/orm": "^2.7",
|
||||||
"erusev/parsedown": "^1.7",
|
"erusev/parsedown": "^1.7",
|
||||||
"graylog2/gelf-php": "^1.5",
|
"graylog2/gelf-php": "^1.5",
|
||||||
"knplabs/knp-menu": "^3.1",
|
|
||||||
"knplabs/knp-menu-bundle": "^3.0",
|
"knplabs/knp-menu-bundle": "^3.0",
|
||||||
"knplabs/knp-time-bundle": "^1.12",
|
"knplabs/knp-time-bundle": "^1.12",
|
||||||
"league/csv": "^9.7.1",
|
"league/csv": "^9.7.1",
|
||||||
"nyholm/psr7": "^1.4",
|
"nyholm/psr7": "^1.4",
|
||||||
|
"ocramius/package-versions": "^1.10 || ^2",
|
||||||
|
"odolbeau/phone-number-bundle": "^3.6",
|
||||||
"phpoffice/phpspreadsheet": "^1.16",
|
"phpoffice/phpspreadsheet": "^1.16",
|
||||||
"ramsey/uuid-doctrine": "^1.7",
|
"ramsey/uuid-doctrine": "^1.7",
|
||||||
"sensio/framework-extra-bundle": "^5.5",
|
"sensio/framework-extra-bundle": "^5.5",
|
||||||
"symfony/asset": "4.*",
|
"spomky-labs/base64url": "^2.0",
|
||||||
"symfony/browser-kit": "^5.2",
|
"symfony/asset": "^4.4",
|
||||||
"symfony/css-selector": "^5.2",
|
"symfony/browser-kit": "^4.4",
|
||||||
"symfony/expression-language": "4.*",
|
"symfony/css-selector": "^4.4",
|
||||||
"symfony/form": "4.*",
|
"symfony/expression-language": "^4.4",
|
||||||
"symfony/intl": "4.*",
|
"symfony/form": "^4.4",
|
||||||
"symfony/mime": "^4 || ^5",
|
"symfony/framework-bundle": "^4.4",
|
||||||
|
"symfony/http-foundation": "^4.4",
|
||||||
|
"symfony/intl": "^4.4",
|
||||||
|
"symfony/mailer": "^5.4",
|
||||||
|
"symfony/mime": "^5.4",
|
||||||
"symfony/monolog-bundle": "^3.5",
|
"symfony/monolog-bundle": "^3.5",
|
||||||
"symfony/security-bundle": "4.*",
|
"symfony/security-bundle": "^4.4",
|
||||||
"symfony/serializer": "^5.2",
|
"symfony/serializer": "^5.3",
|
||||||
"symfony/swiftmailer-bundle": "^3.5",
|
"symfony/swiftmailer-bundle": "^3.5",
|
||||||
"symfony/templating": "4.*",
|
"symfony/templating": "^4.4",
|
||||||
"symfony/translation": "4.*",
|
"symfony/translation": "^4.4",
|
||||||
"symfony/twig-bundle": "^4.4",
|
"symfony/twig-bundle": "^4.4",
|
||||||
"symfony/validator": "4.*",
|
"symfony/validator": "^4.4",
|
||||||
|
"symfony/web-link": "*",
|
||||||
"symfony/webpack-encore-bundle": "^1.11",
|
"symfony/webpack-encore-bundle": "^1.11",
|
||||||
"symfony/workflow": "4.*",
|
"symfony/workflow": "^4.4",
|
||||||
"symfony/yaml": "4.*",
|
"symfony/yaml": "^4.4",
|
||||||
"twig/extra-bundle": "^2.12 || ^3.0",
|
"twig/extra-bundle": "^3.0",
|
||||||
"twig/intl-extra": "^3.0",
|
"twig/intl-extra": "^3.0",
|
||||||
"twig/markdown-extra": "^3.3",
|
"twig/markdown-extra": "^3.3",
|
||||||
"twig/twig": "^2.12 || ^3.0"
|
"twig/string-extra": "^3.3",
|
||||||
},
|
"twig/twig": "^3.0"
|
||||||
"conflict": {
|
|
||||||
"symfony/symfony": "*"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/doctrine-fixtures-bundle": "^3.3",
|
"doctrine/doctrine-fixtures-bundle": "^3.3",
|
||||||
"drupol/php-conventions": "^5",
|
"drupol/php-conventions": "^5",
|
||||||
"fakerphp/faker": "^1.13",
|
"fakerphp/faker": "^1.13",
|
||||||
"nelmio/alice": "^3.8",
|
"nelmio/alice": "^3.8",
|
||||||
|
"phpspec/prophecy-phpunit": "^2.0",
|
||||||
"phpstan/phpstan-strict-rules": "^1.0",
|
"phpstan/phpstan-strict-rules": "^1.0",
|
||||||
"phpunit/phpunit": "^7.0",
|
"phpunit/phpunit": ">= 7.5",
|
||||||
"symfony/debug-bundle": "^5.1",
|
"symfony/debug-bundle": "^5.1",
|
||||||
"symfony/dotenv": "^5.1",
|
"symfony/dotenv": "^4.4",
|
||||||
"symfony/maker-bundle": "^1.20",
|
"symfony/maker-bundle": "^1.20",
|
||||||
"symfony/phpunit-bridge": "^5.2",
|
"symfony/phpunit-bridge": "^4.4",
|
||||||
"symfony/stopwatch": "^5.1",
|
"symfony/stopwatch": "^4.4",
|
||||||
"symfony/var-dumper": "4.*",
|
"symfony/var-dumper": "^4.4",
|
||||||
"symfony/web-profiler-bundle": "^5.0"
|
"symfony/web-profiler-bundle": "^4.4"
|
||||||
},
|
},
|
||||||
"config": {
|
"conflict": {
|
||||||
"bin-dir": "bin",
|
"symfony/symfony": "*"
|
||||||
"vendor-dir": "tests/app/vendor"
|
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Chill\\ActivityBundle\\": "src/Bundle/ChillActivityBundle",
|
"Chill\\ActivityBundle\\": "src/Bundle/ChillActivityBundle",
|
||||||
|
"Chill\\AsideActivityBundle\\": "src/Bundle/ChillAsideActivityBundle/src",
|
||||||
"Chill\\BudgetBundle\\": "src/Bundle/ChillBudgetBundle",
|
"Chill\\BudgetBundle\\": "src/Bundle/ChillBudgetBundle",
|
||||||
|
"Chill\\CalendarBundle\\": "src/Bundle/ChillCalendarBundle",
|
||||||
"Chill\\CustomFieldsBundle\\": "src/Bundle/ChillCustomFieldsBundle",
|
"Chill\\CustomFieldsBundle\\": "src/Bundle/ChillCustomFieldsBundle",
|
||||||
|
"Chill\\DocGeneratorBundle\\": "src/Bundle/ChillDocGeneratorBundle",
|
||||||
"Chill\\DocStoreBundle\\": "src/Bundle/ChillDocStoreBundle",
|
"Chill\\DocStoreBundle\\": "src/Bundle/ChillDocStoreBundle",
|
||||||
"Chill\\EventBundle\\": "src/Bundle/ChillEventBundle",
|
"Chill\\EventBundle\\": "src/Bundle/ChillEventBundle",
|
||||||
"Chill\\FamilyMemberBundle\\": "src/Bundle/ChillFamilyMemberBundle",
|
"Chill\\FamilyMemberBundle\\": "src/Bundle/ChillFamilyMemberBundle",
|
||||||
@@ -82,24 +90,34 @@
|
|||||||
"Chill\\ReportBundle\\": "src/Bundle/ChillReportBundle",
|
"Chill\\ReportBundle\\": "src/Bundle/ChillReportBundle",
|
||||||
"Chill\\TaskBundle\\": "src/Bundle/ChillTaskBundle",
|
"Chill\\TaskBundle\\": "src/Bundle/ChillTaskBundle",
|
||||||
"Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle",
|
"Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle",
|
||||||
"Chill\\AsideActivityBundle\\": "src/Bundle/ChillAsideActivityBundle/src",
|
|
||||||
"Chill\\DocGeneratorBundle\\": "src/Bundle/ChillDocGeneratorBundle",
|
|
||||||
"Chill\\CalendarBundle\\": "src/Bundle/ChillCalendarBundle",
|
|
||||||
"Chill\\WopiBundle\\": "src/Bundle/ChillWopiBundle/src"
|
"Chill\\WopiBundle\\": "src/Bundle/ChillWopiBundle/src"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"App\\": "tests/app/src/",
|
"App\\": "tests/app/src/",
|
||||||
"Chill\\DocGeneratorBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests"
|
"Chill\\DocGeneratorBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests",
|
||||||
|
"Chill\\WopiBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimum-stability": "dev",
|
"config": {
|
||||||
"prefer-stable": true,
|
"allow-plugins": {
|
||||||
|
"composer/package-versions-deprecated": true,
|
||||||
|
"ergebnis/composer-normalize": true,
|
||||||
|
"ocramius/package-versions": true,
|
||||||
|
"phpro/grumphp": true,
|
||||||
|
"phpstan/extension-installer": true,
|
||||||
|
"roave/you-are-using-it-wrong": true
|
||||||
|
},
|
||||||
|
"bin-dir": "bin",
|
||||||
|
"optimize-autoloader": true,
|
||||||
|
"sort-packages": true,
|
||||||
|
"vendor-dir": "tests/app/vendor"
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"auto-scripts": {
|
"auto-scripts": {
|
||||||
"cache:clear": "symfony-cmd",
|
"assets:install %PUBLIC_DIR%": "symfony-cmd",
|
||||||
"assets:install %PUBLIC_DIR%": "symfony-cmd"
|
"cache:clear": "symfony-cmd"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,9 @@ class CountPerson implements ExportInterface
|
|||||||
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
|
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
|
||||||
{
|
{
|
||||||
// we gather all center the user choose.
|
// we gather all center the user choose.
|
||||||
$centers = array_map(static function ($el) { return $el['center']; }, $acl);
|
$centers = array_map(static function ($el) {
|
||||||
|
return $el['center'];
|
||||||
|
}, $acl);
|
||||||
|
|
||||||
$qb = $this->entityManager->createQueryBuilder();
|
$qb = $this->entityManager->createQueryBuilder();
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ Then, render the pagination using the dedicated twig function.
|
|||||||
|
|
||||||
{% block title 'Item list'|trans %}
|
{% block title 'Item list'|trans %}
|
||||||
|
|
||||||
{% block personcontent %}
|
{% block content %}
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
|
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ This layout extend `ChillMainBundle::layoutWithVerticalMenu.html.twig` add the p
|
|||||||
|
|
||||||
It proposes 1 new block :
|
It proposes 1 new block :
|
||||||
|
|
||||||
* personcontent
|
* content
|
||||||
|
|
||||||
* where to display the information of the person
|
* where to display the information of the person
|
||||||
|
|
||||||
|
|||||||
@@ -11,53 +11,53 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Chill\MainBundle\DependencyInjection;
|
namespace Chill\MainBundle\DependencyInjection;
|
||||||
|
|
||||||
use Chill\MainBundle\DependencyInjection\Widget\AddWidgetConfigurationTrait;
|
use Chill\MainBundle\DependencyInjection\Widget\AddWidgetConfigurationTrait;
|
||||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure the main bundle.
|
* Configure the main bundle.
|
||||||
*/
|
*/
|
||||||
class ChillMainConfiguration implements ConfigurationInterface
|
class ChillMainConfiguration implements ConfigurationInterface
|
||||||
{
|
{
|
||||||
use AddWidgetConfigurationTrait;
|
use AddWidgetConfigurationTrait;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ContainerBuilder
|
* @var ContainerBuilder
|
||||||
*/
|
*/
|
||||||
private $containerBuilder;
|
private $containerBuilder;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
array $widgetFactories,
|
array $widgetFactories,
|
||||||
ContainerBuilder $containerBuilder
|
ContainerBuilder $containerBuilder
|
||||||
) {
|
) {
|
||||||
// we register here widget factories (see below)
|
// we register here widget factories (see below)
|
||||||
$this->setWidgetFactories($widgetFactories);
|
$this->setWidgetFactories($widgetFactories);
|
||||||
// we will need the container builder later...
|
// we will need the container builder later...
|
||||||
$this->containerBuilder = $containerBuilder;
|
$this->containerBuilder = $containerBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getConfigTreeBuilder()
|
public function getConfigTreeBuilder()
|
||||||
{
|
{
|
||||||
$treeBuilder = new TreeBuilder();
|
$treeBuilder = new TreeBuilder();
|
||||||
$rootNode = $treeBuilder->root('chill_main');
|
$rootNode = $treeBuilder->root('chill_main');
|
||||||
|
|
||||||
$rootNode
|
$rootNode
|
||||||
->children()
|
->children()
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
->arrayNode('widgets')
|
->arrayNode('widgets')
|
||||||
->canBeDisabled()
|
->canBeDisabled()
|
||||||
->children()
|
->children()
|
||||||
// we declare here all configuration for homepage place
|
// we declare here all configuration for homepage place
|
||||||
->append($this->addWidgetsConfiguration('homepage', $this->containerBuilder))
|
->append($this->addWidgetsConfiguration('homepage', $this->containerBuilder))
|
||||||
->end() // end of widgets/children
|
->end() // end of widgets/children
|
||||||
->end() // end of widgets
|
->end() // end of widgets
|
||||||
->end() // end of root/children
|
->end() // end of root/children
|
||||||
->end() // end of root
|
->end() // end of root
|
||||||
;
|
;
|
||||||
|
|
||||||
return $treeBuilder;
|
return $treeBuilder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,17 @@ This script will :
|
|||||||
4. build assets
|
4. build assets
|
||||||
|
|
||||||
|
|
||||||
|
.. 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 :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
docker-compose images php
|
||||||
|
docker rmi -f chill_php:prod
|
||||||
|
docker-compose rm php
|
||||||
|
|
||||||
|
|
||||||
4. Start the project
|
4. Start the project
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
|||||||
26
grumphp.yml
26
grumphp.yml
@@ -12,3 +12,29 @@ parameters:
|
|||||||
tasks.phpcsfixer.allow_risky: true
|
tasks.phpcsfixer.allow_risky: true
|
||||||
tasks.phpcsfixer.diff: true
|
tasks.phpcsfixer.diff: true
|
||||||
tasks.phpstan.level: 1
|
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/"
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
add npm/yarn dependency in package.json :
|
|
||||||
|
|
||||||
"select2-bootstrap-theme": "0.1.0-beta.10",
|
|
||||||
@@ -10,16 +10,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php
|
path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Instantiated class PhpOffice\\\\PhpWord\\\\TemplateProcessor not found\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillDocGeneratorBundle/Controller/DocGeneratorController.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Instantiated class PhpOffice\\\\PhpWord\\\\TemplateProcessor not found\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillDocGeneratorBundle/Controller/DocGeneratorTemplateController.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Variable \\$participation might not be defined\\.$#"
|
message: "#^Variable \\$participation might not be defined\\.$#"
|
||||||
count: 3
|
count: 3
|
||||||
@@ -90,11 +80,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php
|
path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Foreach overwrites \\$action with its value variable\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Foreach overwrites \\$action with its value variable\\.$#"
|
message: "#^Foreach overwrites \\$action with its value variable\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
|||||||
@@ -5,11 +5,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php
|
path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$currentHouseholdParticipationAt\\.$#"
|
|
||||||
count: 3
|
|
||||||
path: src/Bundle/ChillPersonBundle/Entity/Person.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$relation\\.$#"
|
message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$relation\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
@@ -25,41 +20,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php
|
path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Household\\\\MembersEditorFactory\\:\\:\\$validator\\.$#"
|
|
||||||
count: 2
|
|
||||||
path: src/Bundle/ChillPersonBundle/Household/MembersEditorFactory.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Parameter \\$action of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkRepository\\:\\:buildQueryBySocialActionWithDescendants\\(\\) has invalid type Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\SocialAction\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Parameter \\$action of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkRepository\\:\\:countBySocialActionWithDescendants\\(\\) has invalid type Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\SocialAction\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Undefined variable\\: \\$action$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Undefined variable\\: \\$limit$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Undefined variable\\: \\$offset$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Undefined variable\\: \\$orderBy$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Variable variables are not allowed\\.$#"
|
message: "#^Variable variables are not allowed\\.$#"
|
||||||
count: 4
|
count: 4
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -25,16 +25,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillActivityBundle/Form/ActivityType.php
|
path: src/Bundle/ChillActivityBundle/Form/ActivityType.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Only booleans are allowed in &&, mixed given on the right side\\.$#"
|
|
||||||
count: 3
|
|
||||||
path: src/Bundle/ChillActivityBundle/Form/ActivityType.php
|
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
|
|
||||||
count: 2
|
|
||||||
path: src/Bundle/ChillActivityBundle/Form/ActivityType.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
|
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
|
||||||
count: 3
|
count: 3
|
||||||
@@ -250,11 +240,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillMainBundle/Entity/Address.php
|
path: src/Bundle/ChillMainBundle/Entity/Address.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillMainBundle/Entity/Embeddable/CommentEmbeddable.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
@@ -295,11 +280,6 @@ parameters:
|
|||||||
count: 3
|
count: 3
|
||||||
path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/DateIntervalTransformer.php
|
path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/DateIntervalTransformer.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Only booleans are allowed in a negated boolean, mixed given\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/ObjectToIdTransformer.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
||||||
count: 2
|
count: 2
|
||||||
@@ -315,11 +295,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillMainBundle/Security/PasswordRecover/TokenManager.php
|
path: src/Bundle/ChillMainBundle/Security/PasswordRecover/TokenManager.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
|
||||||
count: 3
|
|
||||||
path: src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
@@ -330,11 +305,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php
|
path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
@@ -365,11 +335,6 @@ parameters:
|
|||||||
count: 6
|
count: 6
|
||||||
path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php
|
path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
|
||||||
count: 2
|
|
||||||
path: src/Bundle/ChillPersonBundle/Entity/PersonPhone.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
@@ -405,11 +370,6 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillPersonBundle/Form/Type/PersonPhoneType.php
|
path: src/Bundle/ChillPersonBundle/Form/Type/PersonPhoneType.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkRepository\\:\\:buildQueryBySocialActionWithDescendants\\(\\) has invalid return type Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\QueryBuilder\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
||||||
count: 3
|
count: 3
|
||||||
@@ -480,18 +440,8 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php
|
path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartyApiSearch.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Method Chill\\\\ThirdPartyBundle\\\\Search\\\\ThirdPartySearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#"
|
message: "#^Method Chill\\\\ThirdPartyBundle\\\\Search\\\\ThirdPartySearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php
|
path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/Bundle/ChillThirdPartyBundle/Templating/Entity/ThirdPartyRender.php
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ parameters:
|
|||||||
paths:
|
paths:
|
||||||
- src/
|
- src/
|
||||||
excludePaths:
|
excludePaths:
|
||||||
|
- .php_cs*
|
||||||
- docs/
|
- docs/
|
||||||
- src/Bundle/*/Tests/*
|
- src/Bundle/*/Tests/*
|
||||||
- src/Bundle/*/tests/*
|
- src/Bundle/*/tests/*
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
|
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
|
||||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
xsi:noNamespaceSchemaLocation="tests/app/vendor/phpunit/phpunit/phpunit.xsd"
|
||||||
backupGlobals="false"
|
backupGlobals="false"
|
||||||
colors="true"
|
colors="true"
|
||||||
bootstrap="tests/app/tests/bootstrap.php"
|
bootstrap="tests/app/tests/bootstrap.php"
|
||||||
@@ -40,6 +40,9 @@
|
|||||||
<testsuite name="DocGeneratorBundle">
|
<testsuite name="DocGeneratorBundle">
|
||||||
<directory suffix="Test.php">src/Bundle/ChillDocGeneratorBundle/tests/</directory>
|
<directory suffix="Test.php">src/Bundle/ChillDocGeneratorBundle/tests/</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
|
<testsuite name="WopiBundle">
|
||||||
|
<directory suffix="Test.php">src/Bundle/ChillWopiBundle/tests/</directory>
|
||||||
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
|
|
||||||
<listeners>
|
<listeners>
|
||||||
|
|||||||
1523
psalm-baseline.xml
Normal file
1523
psalm-baseline.xml
Normal file
File diff suppressed because it is too large
Load Diff
28
psalm.xml
Normal file
28
psalm.xml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<psalm
|
||||||
|
errorLevel="7"
|
||||||
|
resolveFromConfigFile="true"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns="https://getpsalm.org/schema/config"
|
||||||
|
xsi:schemaLocation="https://getpsalm.org/schema/config tests/app/vendor/vimeo/psalm/config.xsd"
|
||||||
|
errorBaseline="psalm-baseline.xml"
|
||||||
|
cacheDirectory="./.psalm"
|
||||||
|
>
|
||||||
|
<projectFiles>
|
||||||
|
<directory name="src" />
|
||||||
|
<ignoreFiles>
|
||||||
|
<directory name="./tests/" />
|
||||||
|
</ignoreFiles>
|
||||||
|
</projectFiles>
|
||||||
|
|
||||||
|
<!-- suppress error around parameter bags - see https://github.com/symfony/symfony/issues/45609#issuecomment-1056816975 -->
|
||||||
|
<!-- maybe to desactivate with php 8.1 ? -->
|
||||||
|
<issueHandlers>
|
||||||
|
<UndefinedDocblockClass>
|
||||||
|
<errorLevel type="suppress">
|
||||||
|
<referencedClass name="UnitEnum" />
|
||||||
|
</errorLevel>
|
||||||
|
</UndefinedDocblockClass>
|
||||||
|
</issueHandlers>
|
||||||
|
|
||||||
|
</psalm>
|
||||||
@@ -21,6 +21,7 @@ use Chill\ActivityBundle\Repository\ActivityTypeRepository;
|
|||||||
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
||||||
use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable;
|
use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable;
|
||||||
use Chill\MainBundle\Repository\LocationRepository;
|
use Chill\MainBundle\Repository\LocationRepository;
|
||||||
|
use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
|
||||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
use Chill\PersonBundle\Entity\Person;
|
use Chill\PersonBundle\Entity\Person;
|
||||||
use Chill\PersonBundle\Privacy\PrivacyEvent;
|
use Chill\PersonBundle\Privacy\PrivacyEvent;
|
||||||
@@ -31,13 +32,16 @@ use DateTime;
|
|||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
|
use RuntimeException;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||||
use Symfony\Component\Form\FormInterface;
|
use Symfony\Component\Form\FormInterface;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
|
|
||||||
use Symfony\Component\Serializer\SerializerInterface;
|
use Symfony\Component\Serializer\SerializerInterface;
|
||||||
use function array_key_exists;
|
use function array_key_exists;
|
||||||
|
|
||||||
@@ -53,6 +57,8 @@ final class ActivityController extends AbstractController
|
|||||||
|
|
||||||
private ActivityTypeRepository $activityTypeRepository;
|
private ActivityTypeRepository $activityTypeRepository;
|
||||||
|
|
||||||
|
private CenterResolverManagerInterface $centerResolver;
|
||||||
|
|
||||||
private EntityManagerInterface $entityManager;
|
private EntityManagerInterface $entityManager;
|
||||||
|
|
||||||
private EventDispatcherInterface $eventDispatcher;
|
private EventDispatcherInterface $eventDispatcher;
|
||||||
@@ -79,7 +85,8 @@ final class ActivityController extends AbstractController
|
|||||||
EntityManagerInterface $entityManager,
|
EntityManagerInterface $entityManager,
|
||||||
EventDispatcherInterface $eventDispatcher,
|
EventDispatcherInterface $eventDispatcher,
|
||||||
LoggerInterface $logger,
|
LoggerInterface $logger,
|
||||||
SerializerInterface $serializer
|
SerializerInterface $serializer,
|
||||||
|
CenterResolverManagerInterface $centerResolver
|
||||||
) {
|
) {
|
||||||
$this->activityACLAwareRepository = $activityACLAwareRepository;
|
$this->activityACLAwareRepository = $activityACLAwareRepository;
|
||||||
$this->activityTypeRepository = $activityTypeRepository;
|
$this->activityTypeRepository = $activityTypeRepository;
|
||||||
@@ -93,6 +100,7 @@ final class ActivityController extends AbstractController
|
|||||||
$this->eventDispatcher = $eventDispatcher;
|
$this->eventDispatcher = $eventDispatcher;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
$this->serializer = $serializer;
|
$this->serializer = $serializer;
|
||||||
|
$this->centerResolver = $centerResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -176,14 +184,15 @@ final class ActivityController extends AbstractController
|
|||||||
{
|
{
|
||||||
$view = null;
|
$view = null;
|
||||||
|
|
||||||
[$person, $accompanyingPeriod] = $this->getEntity($request);
|
|
||||||
|
|
||||||
$entity = $this->activityRepository->find($id);
|
$entity = $this->activityRepository->find($id);
|
||||||
|
|
||||||
if (null === $entity) {
|
if (null === $entity) {
|
||||||
throw $this->createNotFoundException('Unable to find Activity entity.');
|
throw $this->createNotFoundException('Unable to find Activity entity.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$accompanyingPeriod = $entity->getAccompanyingPeriod();
|
||||||
|
$person = $entity->getPerson();
|
||||||
|
|
||||||
if ($entity->getAccompanyingPeriod() instanceof AccompanyingPeriod) {
|
if ($entity->getAccompanyingPeriod() instanceof AccompanyingPeriod) {
|
||||||
$view = 'ChillActivityBundle:Activity:editAccompanyingCourse.html.twig';
|
$view = 'ChillActivityBundle:Activity:editAccompanyingCourse.html.twig';
|
||||||
$accompanyingPeriod = $entity->getAccompanyingPeriod();
|
$accompanyingPeriod = $entity->getAccompanyingPeriod();
|
||||||
@@ -194,21 +203,46 @@ final class ActivityController extends AbstractController
|
|||||||
// $this->denyAccessUnlessGranted('CHILL_ACTIVITY_UPDATE', $entity);
|
// $this->denyAccessUnlessGranted('CHILL_ACTIVITY_UPDATE', $entity);
|
||||||
|
|
||||||
$form = $this->createForm(ActivityType::class, $entity, [
|
$form = $this->createForm(ActivityType::class, $entity, [
|
||||||
'center' => $entity->getCenter(),
|
'center' => $this->centerResolver->resolveCenters($entity)[0] ?? null,
|
||||||
'role' => new Role('CHILL_ACTIVITY_UPDATE'),
|
'role' => new Role('CHILL_ACTIVITY_UPDATE'),
|
||||||
'activityType' => $entity->getActivityType(),
|
'activityType' => $entity->getActivityType(),
|
||||||
'accompanyingPeriod' => $accompanyingPeriod,
|
'accompanyingPeriod' => $accompanyingPeriod,
|
||||||
])->handleRequest($request);
|
]);
|
||||||
|
|
||||||
|
if ($form->has('documents')) {
|
||||||
|
$form->add('gendocTemplateId', HiddenType::class, [
|
||||||
|
'mapped' => false,
|
||||||
|
'data' => null,
|
||||||
|
'attr' => [
|
||||||
|
// required for js
|
||||||
|
'data-template-id' => 'data-template-id',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
if ($form->isSubmitted() && $form->isValid()) {
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
$this->entityManager->persist($entity);
|
$this->entityManager->persist($entity);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
|
||||||
$this->addFlash('success', $this->get('translator')->trans('Success : activity updated!'));
|
|
||||||
|
|
||||||
$params = $this->buildParamsToUrl($person, $accompanyingPeriod);
|
$params = $this->buildParamsToUrl($person, $accompanyingPeriod);
|
||||||
$params['id'] = $entity->getId();
|
$params['id'] = $entity->getId();
|
||||||
|
|
||||||
|
if ($form->has('gendocTemplateId') && null !== $form['gendocTemplateId']->getData()) {
|
||||||
|
return $this->redirectToRoute(
|
||||||
|
'chill_docgenerator_generate_from_template',
|
||||||
|
[
|
||||||
|
'template' => $form->get('gendocTemplateId')->getData(),
|
||||||
|
'entityClassName' => Activity::class,
|
||||||
|
'entityId' => $entity->getId(),
|
||||||
|
'returnPath' => $this->generateUrl('chill_activity_activity_edit', $params),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->addFlash('success', $this->get('translator')->trans('Success : activity updated!'));
|
||||||
|
|
||||||
return $this->redirectToRoute('chill_activity_activity_show', $params);
|
return $this->redirectToRoute('chill_activity_activity_show', $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +288,7 @@ final class ActivityController extends AbstractController
|
|||||||
if ($person instanceof Person) {
|
if ($person instanceof Person) {
|
||||||
$this->denyAccessUnlessGranted(ActivityVoter::SEE, $person);
|
$this->denyAccessUnlessGranted(ActivityVoter::SEE, $person);
|
||||||
$activities = $this->activityACLAwareRepository
|
$activities = $this->activityACLAwareRepository
|
||||||
->findByPerson($person, ActivityVoter::SEE, 0, null);
|
->findByPerson($person, ActivityVoter::SEE, 0, null, ['date' => 'DESC', 'id' => 'DESC']);
|
||||||
|
|
||||||
$event = new PrivacyEvent($person, [
|
$event = new PrivacyEvent($person, [
|
||||||
'element_class' => Activity::class,
|
'element_class' => Activity::class,
|
||||||
@@ -267,7 +301,7 @@ final class ActivityController extends AbstractController
|
|||||||
$this->denyAccessUnlessGranted(ActivityVoter::SEE, $accompanyingPeriod);
|
$this->denyAccessUnlessGranted(ActivityVoter::SEE, $accompanyingPeriod);
|
||||||
|
|
||||||
$activities = $this->activityACLAwareRepository
|
$activities = $this->activityACLAwareRepository
|
||||||
->findByAccompanyingPeriod($accompanyingPeriod, ActivityVoter::SEE);
|
->findByAccompanyingPeriod($accompanyingPeriod, ActivityVoter::SEE, 0, null, ['date' => 'DESC', 'id' => 'DESC']);
|
||||||
|
|
||||||
$view = 'ChillActivityBundle:Activity:listAccompanyingCourse.html.twig';
|
$view = 'ChillActivityBundle:Activity:listAccompanyingCourse.html.twig';
|
||||||
}
|
}
|
||||||
@@ -307,8 +341,10 @@ final class ActivityController extends AbstractController
|
|||||||
$activityData = $request->query->get('activityData');
|
$activityData = $request->query->get('activityData');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$activityType instanceof \Chill\ActivityBundle\Entity\ActivityType
|
if (
|
||||||
|| !$activityType->isActive()) {
|
!$activityType instanceof \Chill\ActivityBundle\Entity\ActivityType
|
||||||
|
|| !$activityType->isActive()
|
||||||
|
) {
|
||||||
$params = $this->buildParamsToUrl($person, $accompanyingPeriod);
|
$params = $this->buildParamsToUrl($person, $accompanyingPeriod);
|
||||||
|
|
||||||
if (null !== $activityData) {
|
if (null !== $activityData) {
|
||||||
@@ -385,16 +421,43 @@ final class ActivityController extends AbstractController
|
|||||||
$this->denyAccessUnlessGranted(ActivityVoter::CREATE, $entity);
|
$this->denyAccessUnlessGranted(ActivityVoter::CREATE, $entity);
|
||||||
|
|
||||||
$form = $this->createForm(ActivityType::class, $entity, [
|
$form = $this->createForm(ActivityType::class, $entity, [
|
||||||
'center' => $entity->getCenter(),
|
'center' => $this->centerResolver->resolveCenters($entity)[0] ?? null,
|
||||||
'role' => new Role('CHILL_ACTIVITY_CREATE'),
|
'role' => new Role('CHILL_ACTIVITY_CREATE'),
|
||||||
'activityType' => $entity->getActivityType(),
|
'activityType' => $entity->getActivityType(),
|
||||||
'accompanyingPeriod' => $accompanyingPeriod,
|
'accompanyingPeriod' => $accompanyingPeriod,
|
||||||
])->handleRequest($request);
|
]);
|
||||||
|
|
||||||
|
if ($form->has('documents')) {
|
||||||
|
$form->add('gendocTemplateId', HiddenType::class, [
|
||||||
|
'mapped' => false,
|
||||||
|
'data' => null,
|
||||||
|
'attr' => [
|
||||||
|
// required for js
|
||||||
|
'data-template-id' => 'data-template-id',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
if ($form->isSubmitted() && $form->isValid()) {
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
$this->entityManager->persist($entity);
|
$this->entityManager->persist($entity);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
|
||||||
|
if ($form->has('gendocTemplateId') && null !== $form['gendocTemplateId']->getData()) {
|
||||||
|
return $this->redirectToRoute(
|
||||||
|
'chill_docgenerator_generate_from_template',
|
||||||
|
[
|
||||||
|
'template' => $form->get('gendocTemplateId')->getData(),
|
||||||
|
'entityClassName' => Activity::class,
|
||||||
|
'entityId' => $entity->getId(),
|
||||||
|
'returnPath' => $this->generateUrl('chill_activity_activity_edit', [
|
||||||
|
'id' => $entity->getId(),
|
||||||
|
]),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$this->addFlash('success', $this->get('translator')->trans('Success : activity created!'));
|
$this->addFlash('success', $this->get('translator')->trans('Success : activity created!'));
|
||||||
|
|
||||||
$params = $this->buildParamsToUrl($person, $accompanyingPeriod);
|
$params = $this->buildParamsToUrl($person, $accompanyingPeriod);
|
||||||
@@ -468,20 +531,21 @@ final class ActivityController extends AbstractController
|
|||||||
|
|
||||||
public function showAction(Request $request, int $id): Response
|
public function showAction(Request $request, int $id): Response
|
||||||
{
|
{
|
||||||
$view = null;
|
$entity = $this->activityRepository->find($id);
|
||||||
|
|
||||||
[$person, $accompanyingPeriod] = $this->getEntity($request);
|
if (null === $entity) {
|
||||||
|
throw $this->createNotFoundException('Unable to find Activity entity.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$accompanyingPeriod = $entity->getAccompanyingPeriod();
|
||||||
|
$person = $entity->getPerson();
|
||||||
|
|
||||||
if ($accompanyingPeriod instanceof AccompanyingPeriod) {
|
if ($accompanyingPeriod instanceof AccompanyingPeriod) {
|
||||||
$view = 'ChillActivityBundle:Activity:showAccompanyingCourse.html.twig';
|
$view = 'ChillActivityBundle:Activity:showAccompanyingCourse.html.twig';
|
||||||
} elseif ($person instanceof Person) {
|
} elseif ($person instanceof Person) {
|
||||||
$view = 'ChillActivityBundle:Activity:showPerson.html.twig';
|
$view = 'ChillActivityBundle:Activity:showPerson.html.twig';
|
||||||
}
|
} else {
|
||||||
|
throw new RuntimeException('the activity should be linked with a period or person');
|
||||||
$entity = $this->activityRepository->find($id);
|
|
||||||
|
|
||||||
if (null === $entity) {
|
|
||||||
throw $this->createNotFoundException('Unable to find Activity entity.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null !== $accompanyingPeriod) {
|
if (null !== $accompanyingPeriod) {
|
||||||
@@ -490,8 +554,7 @@ final class ActivityController extends AbstractController
|
|||||||
$entity->personsNotAssociated = $entity->getPersonsNotAssociated();
|
$entity->personsNotAssociated = $entity->getPersonsNotAssociated();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO revoir le Voter de Activity pour tenir compte qu'une activité peut appartenir a une période
|
$this->denyAccessUnlessGranted(ActivityVoter::SEE, $entity);
|
||||||
// $this->denyAccessUnlessGranted('CHILL_ACTIVITY_SEE', $entity);
|
|
||||||
|
|
||||||
$deleteForm = $this->createDeleteForm($entity->getId(), $person, $accompanyingPeriod);
|
$deleteForm = $this->createDeleteForm($entity->getId(), $person, $accompanyingPeriod);
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ namespace Chill\ActivityBundle\Controller;
|
|||||||
use Chill\ActivityBundle\Entity\ActivityReasonCategory;
|
use Chill\ActivityBundle\Entity\ActivityReasonCategory;
|
||||||
use Chill\ActivityBundle\Form\ActivityReasonCategoryType;
|
use Chill\ActivityBundle\Form\ActivityReasonCategoryType;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
|
||||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
@@ -55,7 +54,7 @@ class ActivityReasonCategoryController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entity = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->find($id);
|
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->find($id);
|
||||||
|
|
||||||
if (!$entity) {
|
if (!$entity) {
|
||||||
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
|
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
|
||||||
@@ -76,7 +75,7 @@ class ActivityReasonCategoryController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entities = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->findAll();
|
$entities = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->findAll();
|
||||||
|
|
||||||
return $this->render('ChillActivityBundle:ActivityReasonCategory:index.html.twig', [
|
return $this->render('ChillActivityBundle:ActivityReasonCategory:index.html.twig', [
|
||||||
'entities' => $entities,
|
'entities' => $entities,
|
||||||
@@ -106,7 +105,7 @@ class ActivityReasonCategoryController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entity = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->find($id);
|
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->find($id);
|
||||||
|
|
||||||
if (!$entity) {
|
if (!$entity) {
|
||||||
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
|
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
|
||||||
@@ -126,7 +125,7 @@ class ActivityReasonCategoryController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entity = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->find($id);
|
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->find($id);
|
||||||
|
|
||||||
if (!$entity) {
|
if (!$entity) {
|
||||||
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
|
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ namespace Chill\ActivityBundle\Controller;
|
|||||||
use Chill\ActivityBundle\Entity\ActivityReason;
|
use Chill\ActivityBundle\Entity\ActivityReason;
|
||||||
use Chill\ActivityBundle\Form\ActivityReasonType;
|
use Chill\ActivityBundle\Form\ActivityReasonType;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
|
||||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
@@ -55,7 +54,7 @@ class ActivityReasonController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entity = $em->getRepository('ChillActivityBundle:ActivityReason')->find($id);
|
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->find($id);
|
||||||
|
|
||||||
if (!$entity) {
|
if (!$entity) {
|
||||||
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
|
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
|
||||||
@@ -76,7 +75,7 @@ class ActivityReasonController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entities = $em->getRepository('ChillActivityBundle:ActivityReason')->findAll();
|
$entities = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->findAll();
|
||||||
|
|
||||||
return $this->render('ChillActivityBundle:ActivityReason:index.html.twig', [
|
return $this->render('ChillActivityBundle:ActivityReason:index.html.twig', [
|
||||||
'entities' => $entities,
|
'entities' => $entities,
|
||||||
@@ -106,7 +105,7 @@ class ActivityReasonController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entity = $em->getRepository('ChillActivityBundle:ActivityReason')->find($id);
|
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->find($id);
|
||||||
|
|
||||||
if (!$entity) {
|
if (!$entity) {
|
||||||
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
|
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
|
||||||
@@ -126,7 +125,7 @@ class ActivityReasonController extends AbstractController
|
|||||||
{
|
{
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
$entity = $em->getRepository('ChillActivityBundle:ActivityReason')->find($id);
|
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->find($id);
|
||||||
|
|
||||||
if (!$entity) {
|
if (!$entity) {
|
||||||
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
|
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ use Chill\MainBundle\Entity\RoleScope;
|
|||||||
use Doctrine\Common\DataFixtures\AbstractFixture;
|
use Doctrine\Common\DataFixtures\AbstractFixture;
|
||||||
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
|
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
|
||||||
use Doctrine\Persistence\ObjectManager;
|
use Doctrine\Persistence\ObjectManager;
|
||||||
|
|
||||||
use function in_array;
|
use function in_array;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf
|
|||||||
$loader->load('services/form.yaml');
|
$loader->load('services/form.yaml');
|
||||||
$loader->load('services/templating.yaml');
|
$loader->load('services/templating.yaml');
|
||||||
$loader->load('services/accompanyingPeriodConsistency.yaml');
|
$loader->load('services/accompanyingPeriodConsistency.yaml');
|
||||||
|
$loader->load('services/doctrine.entitylistener.yaml');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function prepend(ContainerBuilder $container)
|
public function prepend(ContainerBuilder $container)
|
||||||
@@ -60,8 +61,6 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf
|
|||||||
ActivityVoter::DELETE => [ActivityVoter::SEE_DETAILS],
|
ActivityVoter::DELETE => [ActivityVoter::SEE_DETAILS],
|
||||||
ActivityVoter::SEE_DETAILS => [ActivityVoter::SEE],
|
ActivityVoter::SEE_DETAILS => [ActivityVoter::SEE],
|
||||||
ActivityVoter::FULL => [
|
ActivityVoter::FULL => [
|
||||||
ActivityVoter::CREATE_PERSON,
|
|
||||||
ActivityVoter::CREATE_ACCOMPANYING_COURSE,
|
|
||||||
ActivityVoter::DELETE,
|
ActivityVoter::DELETE,
|
||||||
ActivityVoter::UPDATE,
|
ActivityVoter::UPDATE,
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ namespace Chill\ActivityBundle\DependencyInjection;
|
|||||||
|
|
||||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||||
|
|
||||||
use function is_int;
|
use function is_int;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -12,11 +12,12 @@ declare(strict_types=1);
|
|||||||
namespace Chill\ActivityBundle\Entity;
|
namespace Chill\ActivityBundle\Entity;
|
||||||
|
|
||||||
use Chill\ActivityBundle\Validator\Constraints as ActivityValidator;
|
use Chill\ActivityBundle\Validator\Constraints as ActivityValidator;
|
||||||
use Chill\DocStoreBundle\Entity\Document;
|
use Chill\DocStoreBundle\Entity\StoredObject;
|
||||||
use Chill\MainBundle\Entity\Center;
|
use Chill\MainBundle\Entity\Center;
|
||||||
use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable;
|
use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable;
|
||||||
use Chill\MainBundle\Entity\HasCenterInterface;
|
use Chill\MainBundle\Entity\Embeddable\PrivateCommentEmbeddable;
|
||||||
use Chill\MainBundle\Entity\HasScopeInterface;
|
use Chill\MainBundle\Entity\HasCentersInterface;
|
||||||
|
use Chill\MainBundle\Entity\HasScopesInterface;
|
||||||
use Chill\MainBundle\Entity\Location;
|
use Chill\MainBundle\Entity\Location;
|
||||||
use Chill\MainBundle\Entity\Scope;
|
use Chill\MainBundle\Entity\Scope;
|
||||||
use Chill\MainBundle\Entity\User;
|
use Chill\MainBundle\Entity\User;
|
||||||
@@ -35,6 +36,7 @@ use Symfony\Component\Security\Core\User\UserInterface;
|
|||||||
use Symfony\Component\Serializer\Annotation\DiscriminatorMap;
|
use Symfony\Component\Serializer\Annotation\DiscriminatorMap;
|
||||||
use Symfony\Component\Serializer\Annotation\Groups;
|
use Symfony\Component\Serializer\Annotation\Groups;
|
||||||
use Symfony\Component\Serializer\Annotation\SerializedName;
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
||||||
|
use Symfony\Component\Validator\Constraints as Assert;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Activity.
|
* Class Activity.
|
||||||
@@ -47,12 +49,13 @@ use Symfony\Component\Serializer\Annotation\SerializedName;
|
|||||||
* })
|
* })
|
||||||
* @ActivityValidator\ActivityValidity
|
* @ActivityValidator\ActivityValidity
|
||||||
*
|
*
|
||||||
* @UserCircleConsistency(
|
* TODO see if necessary
|
||||||
|
* UserCircleConsistency(
|
||||||
* "CHILL_ACTIVITY_SEE_DETAILS",
|
* "CHILL_ACTIVITY_SEE_DETAILS",
|
||||||
* getUserFunction="getUser",
|
* getUserFunction="getUser",
|
||||||
* path="scope")
|
* path="scope")
|
||||||
*/
|
*/
|
||||||
class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterface, HasCenterInterface, HasScopeInterface
|
class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterface, HasCentersInterface, HasScopesInterface
|
||||||
{
|
{
|
||||||
public const SENTRECEIVED_RECEIVED = 'received';
|
public const SENTRECEIVED_RECEIVED = 'received';
|
||||||
|
|
||||||
@@ -66,7 +69,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Chill\ActivityBundle\Entity\ActivityType")
|
* @ORM\ManyToOne(targetEntity="Chill\ActivityBundle\Entity\ActivityType")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
* @SerializedName("activityType")
|
* @SerializedName("activityType")
|
||||||
* @ORM\JoinColumn(name="type_id")
|
* @ORM\JoinColumn(name="type_id")
|
||||||
*/
|
*/
|
||||||
@@ -74,21 +77,25 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Chill\ActivityBundle\Entity\ActivityPresence")
|
* @ORM\ManyToOne(targetEntity="Chill\ActivityBundle\Entity\ActivityPresence")
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?ActivityPresence $attendee = null;
|
private ?ActivityPresence $attendee = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Embedded(class="Chill\MainBundle\Entity\Embeddable\CommentEmbeddable", columnPrefix="comment_")
|
* @ORM\Embedded(class="Chill\MainBundle\Entity\Embeddable\CommentEmbeddable", columnPrefix="comment_")
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private CommentEmbeddable $comment;
|
private CommentEmbeddable $comment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="datetime")
|
* @ORM\Column(type="datetime")
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private DateTime $date;
|
private DateTime $date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\DocStoreBundle\Entity\StoredObject", cascade={"persist"})
|
* @ORM\ManyToMany(targetEntity="Chill\DocStoreBundle\Entity\StoredObject", cascade={"persist"})
|
||||||
|
* @Assert\Valid(traverse=true)
|
||||||
*/
|
*/
|
||||||
private Collection $documents;
|
private Collection $documents;
|
||||||
|
|
||||||
@@ -99,6 +106,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="boolean", options={"default": false})
|
* @ORM\Column(type="boolean", options={"default": false})
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private bool $emergency = false;
|
private bool $emergency = false;
|
||||||
|
|
||||||
@@ -106,13 +114,13 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\Column(name="id", type="integer")
|
* @ORM\Column(name="id", type="integer")
|
||||||
* @ORM\GeneratedValue(strategy="AUTO")
|
* @ORM\GeneratedValue(strategy="AUTO")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?int $id = null;
|
private ?int $id = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\Location")
|
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\Location")
|
||||||
* @groups({"read"})
|
* @groups({"read", "docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?Location $location = null;
|
private ?Location $location = null;
|
||||||
|
|
||||||
@@ -123,42 +131,50 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\PersonBundle\Entity\Person")
|
* @ORM\ManyToMany(targetEntity="Chill\PersonBundle\Entity\Person")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?Collection $persons = null;
|
private ?Collection $persons = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Embedded(class="Chill\MainBundle\Entity\Embeddable\PrivateCommentEmbeddable", columnPrefix="privateComment_")
|
||||||
|
*/
|
||||||
|
private PrivateCommentEmbeddable $privateComment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\ActivityBundle\Entity\ActivityReason")
|
* @ORM\ManyToMany(targetEntity="Chill\ActivityBundle\Entity\ActivityReason")
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private Collection $reasons;
|
private Collection $reasons;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\Scope")
|
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\Scope")
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?Scope $scope = null;
|
private ?Scope $scope = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", options={"default": ""})
|
* @ORM\Column(type="string", options={"default": ""})
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private string $sentReceived = '';
|
private string $sentReceived = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\PersonBundle\Entity\SocialWork\SocialAction")
|
* @ORM\ManyToMany(targetEntity="Chill\PersonBundle\Entity\SocialWork\SocialAction")
|
||||||
* @ORM\JoinTable(name="chill_activity_activity_chill_person_socialaction")
|
* @ORM\JoinTable(name="chill_activity_activity_chill_person_socialaction")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
*/
|
*/
|
||||||
private Collection $socialActions;
|
private Collection $socialActions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\PersonBundle\Entity\SocialWork\SocialIssue")
|
* @ORM\ManyToMany(targetEntity="Chill\PersonBundle\Entity\SocialWork\SocialIssue")
|
||||||
* @ORM\JoinTable(name="chill_activity_activity_chill_person_socialissue")
|
* @ORM\JoinTable(name="chill_activity_activity_chill_person_socialissue")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
*/
|
*/
|
||||||
private Collection $socialIssues;
|
private Collection $socialIssues;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty")
|
* @ORM\ManyToMany(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?Collection $thirdParties = null;
|
private ?Collection $thirdParties = null;
|
||||||
|
|
||||||
@@ -169,12 +185,13 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User")
|
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User")
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private User $user;
|
private User $user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\MainBundle\Entity\User")
|
* @ORM\ManyToMany(targetEntity="Chill\MainBundle\Entity\User")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?Collection $users = null;
|
private ?Collection $users = null;
|
||||||
|
|
||||||
@@ -182,6 +199,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
{
|
{
|
||||||
$this->reasons = new ArrayCollection();
|
$this->reasons = new ArrayCollection();
|
||||||
$this->comment = new CommentEmbeddable();
|
$this->comment = new CommentEmbeddable();
|
||||||
|
$this->privateComment = new PrivateCommentEmbeddable();
|
||||||
$this->persons = new ArrayCollection();
|
$this->persons = new ArrayCollection();
|
||||||
$this->thirdParties = new ArrayCollection();
|
$this->thirdParties = new ArrayCollection();
|
||||||
$this->documents = new ArrayCollection();
|
$this->documents = new ArrayCollection();
|
||||||
@@ -190,7 +208,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
$this->socialActions = new ArrayCollection();
|
$this->socialActions = new ArrayCollection();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addDocument(Document $document): self
|
public function addDocument(StoredObject $document): self
|
||||||
{
|
{
|
||||||
$this->documents[] = $document;
|
$this->documents[] = $document;
|
||||||
|
|
||||||
@@ -222,11 +240,22 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
{
|
{
|
||||||
if (!$this->socialActions->contains($socialAction)) {
|
if (!$this->socialActions->contains($socialAction)) {
|
||||||
$this->socialActions[] = $socialAction;
|
$this->socialActions[] = $socialAction;
|
||||||
|
$this->ensureSocialActionConsistency();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a social issue.
|
||||||
|
*
|
||||||
|
* Note: the social issue consistency (the fact that only yougest social issues
|
||||||
|
* are kept) is processed by an entity listener:
|
||||||
|
*
|
||||||
|
* @see{\Chill\PersonBundle\AccompanyingPeriod\SocialIssueConsistency\AccompanyingPeriodSocialIssueConsistencyEntityListener}
|
||||||
|
*
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
public function addSocialIssue(SocialIssue $socialIssue): self
|
public function addSocialIssue(SocialIssue $socialIssue): self
|
||||||
{
|
{
|
||||||
if (!$this->socialIssues->contains($socialIssue)) {
|
if (!$this->socialIssues->contains($socialIssue)) {
|
||||||
@@ -277,13 +306,17 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
* get the center
|
* get the center
|
||||||
* center is extracted from person.
|
* center is extracted from person.
|
||||||
*/
|
*/
|
||||||
public function getCenter(): ?Center
|
public function getCenters(): iterable
|
||||||
{
|
{
|
||||||
if ($this->person instanceof Person) {
|
if ($this->person instanceof Person) {
|
||||||
return $this->person->getCenter();
|
return [$this->person->getCenter()];
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
if ($this->getAccompanyingPeriod() instanceof AccompanyingPeriod) {
|
||||||
|
return $this->getAccompanyingPeriod()->getCenters() ?? [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getComment(): CommentEmbeddable
|
public function getComment(): CommentEmbeddable
|
||||||
@@ -301,6 +334,18 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return $this->documents;
|
return $this->documents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
|
*/
|
||||||
|
public function getDurationMinute(): int
|
||||||
|
{
|
||||||
|
if (null === $this->durationTime) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) round(($this->durationTime->getTimestamp() + $this->durationTime->getOffset()) / 60.0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
public function getDurationTime(): ?DateTime
|
public function getDurationTime(): ?DateTime
|
||||||
{
|
{
|
||||||
return $this->durationTime;
|
return $this->durationTime;
|
||||||
@@ -336,7 +381,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
if (null !== $this->accompanyingPeriod) {
|
if (null !== $this->accompanyingPeriod) {
|
||||||
$personsAssociated = [];
|
$personsAssociated = [];
|
||||||
|
|
||||||
foreach ($this->accompanyingPeriod->getParticipations() as $participation) {
|
foreach ($this->accompanyingPeriod->getOpenParticipations() as $participation) {
|
||||||
if ($this->persons->contains($participation->getPerson())) {
|
if ($this->persons->contains($participation->getPerson())) {
|
||||||
$personsAssociated[] = $participation->getPerson();
|
$personsAssociated[] = $participation->getPerson();
|
||||||
}
|
}
|
||||||
@@ -366,6 +411,11 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getPrivateComment(): PrivateCommentEmbeddable
|
||||||
|
{
|
||||||
|
return $this->privateComment;
|
||||||
|
}
|
||||||
|
|
||||||
public function getReasons(): Collection
|
public function getReasons(): Collection
|
||||||
{
|
{
|
||||||
return $this->reasons;
|
return $this->reasons;
|
||||||
@@ -376,6 +426,19 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return $this->scope;
|
return $this->scope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getScopes(): iterable
|
||||||
|
{
|
||||||
|
if (null !== $this->getAccompanyingPeriod()) {
|
||||||
|
return $this->getAccompanyingPeriod()->getScopes();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $this->getPerson()) {
|
||||||
|
return [$this->scope];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
public function getSentReceived(): string
|
public function getSentReceived(): string
|
||||||
{
|
{
|
||||||
return $this->sentReceived;
|
return $this->sentReceived;
|
||||||
@@ -401,6 +464,18 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return $this->travelTime;
|
return $this->travelTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
|
*/
|
||||||
|
public function getTravelTimeMinute(): int
|
||||||
|
{
|
||||||
|
if (null === $this->travelTime) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) round(($this->travelTime->getTimestamp() + $this->travelTime->getOffset()) / 60.0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
@@ -424,7 +499,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return $this->getEmergency();
|
return $this->getEmergency();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function removeDocument(Document $document): void
|
public function removeDocument(StoredObject $document): void
|
||||||
{
|
{
|
||||||
$this->documents->removeElement($document);
|
$this->documents->removeElement($document);
|
||||||
}
|
}
|
||||||
@@ -540,6 +615,13 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setPrivateComment(PrivateCommentEmbeddable $privateComment): self
|
||||||
|
{
|
||||||
|
$this->privateComment = $privateComment;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function setReasons(?ArrayCollection $reasons): self
|
public function setReasons(?ArrayCollection $reasons): self
|
||||||
{
|
{
|
||||||
$this->reasons = $reasons;
|
$this->reasons = $reasons;
|
||||||
@@ -598,4 +680,13 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function ensureSocialActionConsistency(): void
|
||||||
|
{
|
||||||
|
$ancestors = SocialAction::findAncestorSocialActions($this->getSocialActions());
|
||||||
|
|
||||||
|
foreach ($ancestors as $ancestor) {
|
||||||
|
$this->removeSocialAction($ancestor);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ declare(strict_types=1);
|
|||||||
namespace Chill\ActivityBundle\Entity;
|
namespace Chill\ActivityBundle\Entity;
|
||||||
|
|
||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
use Symfony\Component\Serializer\Annotation as Serializer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ActivityPresence.
|
* Class ActivityPresence.
|
||||||
@@ -31,11 +32,14 @@ class ActivityPresence
|
|||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\Column(name="id", type="integer")
|
* @ORM\Column(name="id", type="integer")
|
||||||
* @ORM\GeneratedValue(strategy="AUTO")
|
* @ORM\GeneratedValue(strategy="AUTO")
|
||||||
|
* @Serializer\Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?int $id;
|
private ?int $id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="json")
|
* @ORM\Column(type="json")
|
||||||
|
* @Serializer\Groups({"docgen:read"})
|
||||||
|
* @Serializer\Context({"is-translatable": true}, groups={"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private array $name = [];
|
private array $name = [];
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ namespace Chill\ActivityBundle\Entity;
|
|||||||
|
|
||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
|
use Symfony\Component\Serializer\Annotation as Serializer;
|
||||||
use Symfony\Component\Serializer\Annotation\Groups;
|
use Symfony\Component\Serializer\Annotation\Groups;
|
||||||
use Symfony\Component\Validator\Constraints as Assert;
|
use Symfony\Component\Validator\Constraints as Assert;
|
||||||
|
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ActivityType.
|
* Class ActivityType.
|
||||||
@@ -118,6 +120,7 @@ class ActivityType
|
|||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\Column(name="id", type="integer")
|
* @ORM\Column(name="id", type="integer")
|
||||||
* @ORM\GeneratedValue(strategy="AUTO")
|
* @ORM\GeneratedValue(strategy="AUTO")
|
||||||
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private ?int $id;
|
private ?int $id;
|
||||||
|
|
||||||
@@ -133,7 +136,8 @@ class ActivityType
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="json")
|
* @ORM\Column(type="json")
|
||||||
* @Groups({"read"})
|
* @Groups({"read", "docgen:read"})
|
||||||
|
* @Serializer\Context({"is-translatable": true}, groups={"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private array $name = [];
|
private array $name = [];
|
||||||
|
|
||||||
@@ -166,12 +170,12 @@ class ActivityType
|
|||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", nullable=false, options={"default": ""})
|
* @ORM\Column(type="string", nullable=false, options={"default": ""})
|
||||||
*/
|
*/
|
||||||
private string $placeLabel = '';
|
private string $privateCommentLabel = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="smallint", nullable=false, options={"default": 1})
|
* @ORM\Column(type="smallint", nullable=false, options={"default": 1})
|
||||||
*/
|
*/
|
||||||
private int $placeVisible = self::FIELD_OPTIONAL;
|
private int $privateCommentVisible = self::FIELD_OPTIONAL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", nullable=false, options={"default": ""})
|
* @ORM\Column(type="string", nullable=false, options={"default": ""})
|
||||||
@@ -200,7 +204,6 @@ class ActivityType
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="smallint", nullable=false, options={"default": 1})
|
* @ORM\Column(type="smallint", nullable=false, options={"default": 1})
|
||||||
* @Assert\EqualTo(propertyPath="socialIssuesVisible", message="This parameter must be equal to social issue parameter")
|
|
||||||
*/
|
*/
|
||||||
private int $socialActionsVisible = self::FIELD_INVISIBLE;
|
private int $socialActionsVisible = self::FIELD_INVISIBLE;
|
||||||
|
|
||||||
@@ -270,6 +273,23 @@ class ActivityType
|
|||||||
*/
|
*/
|
||||||
private int $userVisible = self::FIELD_REQUIRED;
|
private int $userVisible = self::FIELD_REQUIRED;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Assert\Callback
|
||||||
|
*
|
||||||
|
* @param mixed $payload
|
||||||
|
*/
|
||||||
|
public function checkSocialActionsVisibility(ExecutionContextInterface $context, $payload)
|
||||||
|
{
|
||||||
|
if ($this->socialIssuesVisible !== $this->socialActionsVisible) {
|
||||||
|
if (!(2 === $this->socialIssuesVisible && 1 === $this->socialActionsVisible)) {
|
||||||
|
$context
|
||||||
|
->buildViolation('The socialActionsVisible value is not compatible with the socialIssuesVisible value')
|
||||||
|
->atPath('socialActionsVisible')
|
||||||
|
->addViolation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get active
|
* Get active
|
||||||
* return true if the type is active.
|
* return true if the type is active.
|
||||||
@@ -406,14 +426,14 @@ class ActivityType
|
|||||||
return $this->personVisible;
|
return $this->personVisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPlaceLabel(): string
|
public function getPrivateCommentLabel(): string
|
||||||
{
|
{
|
||||||
return $this->placeLabel;
|
return $this->privateCommentLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPlaceVisible(): int
|
public function getPrivateCommentVisible(): int
|
||||||
{
|
{
|
||||||
return $this->placeVisible;
|
return $this->privateCommentVisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getReasonsLabel(): string
|
public function getReasonsLabel(): string
|
||||||
@@ -688,16 +708,16 @@ class ActivityType
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setPlaceLabel(string $placeLabel): self
|
public function setPrivateCommentLabel(string $privateCommentLabel): self
|
||||||
{
|
{
|
||||||
$this->placeLabel = $placeLabel;
|
$this->privateCommentLabel = $privateCommentLabel;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setPlaceVisible(int $placeVisible): self
|
public function setPrivateCommentVisible(int $privateCommentVisible): self
|
||||||
{
|
{
|
||||||
$this->placeVisible = $placeVisible;
|
$this->privateCommentVisible = $privateCommentVisible;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Chill\ActivityBundle\EntityListener;
|
||||||
|
|
||||||
|
use Chill\ActivityBundle\Entity\Activity;
|
||||||
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
|
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
|
||||||
|
use Chill\PersonBundle\Repository\AccompanyingPeriod\AccompanyingPeriodWorkRepository;
|
||||||
|
use DateTimeImmutable;
|
||||||
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
|
|
||||||
|
use function in_array;
|
||||||
|
|
||||||
|
class ActivityEntityListener
|
||||||
|
{
|
||||||
|
private EntityManagerInterface $em;
|
||||||
|
|
||||||
|
private AccompanyingPeriodWorkRepository $workRepository;
|
||||||
|
|
||||||
|
public function __construct(EntityManagerInterface $em, AccompanyingPeriodWorkRepository $workRepository)
|
||||||
|
{
|
||||||
|
$this->em = $em;
|
||||||
|
$this->workRepository = $workRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function persistActionToCourse(Activity $activity)
|
||||||
|
{
|
||||||
|
if ($activity->getAccompanyingPeriod() instanceof AccompanyingPeriod) {
|
||||||
|
$period = $activity->getAccompanyingPeriod();
|
||||||
|
|
||||||
|
$accompanyingCourseWorks = $this->workRepository->findByAccompanyingPeriod($period);
|
||||||
|
$periodActions = [];
|
||||||
|
$now = new DateTimeImmutable();
|
||||||
|
|
||||||
|
foreach ($accompanyingCourseWorks as $key => $work) {
|
||||||
|
// take only the actions which are still opened
|
||||||
|
if ($work->getEndDate() === null || $work->getEndDate() > ($activity->getDate() ?? $now)) {
|
||||||
|
$periodActions[$key] = spl_object_hash($work->getSocialAction());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$associatedPersons = $activity->getPersonsAssociated();
|
||||||
|
$associatedThirdparties = $activity->getThirdParties();
|
||||||
|
|
||||||
|
foreach ($activity->getSocialActions() as $action) {
|
||||||
|
if (in_array(spl_object_hash($action), $periodActions, true)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$newAction = new AccompanyingPeriodWork();
|
||||||
|
$newAction->setSocialAction($action);
|
||||||
|
$period->addWork($newAction);
|
||||||
|
|
||||||
|
$date = DateTimeImmutable::createFromMutable($activity->getDate());
|
||||||
|
$newAction->setStartDate($date);
|
||||||
|
|
||||||
|
foreach ($associatedPersons as $person) {
|
||||||
|
$newAction->addPerson($person);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->em->persist($newAction);
|
||||||
|
$this->em->flush();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@ use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
|||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
|
|
||||||
use function array_key_exists;
|
use function array_key_exists;
|
||||||
use function count;
|
use function count;
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,10 @@ use Doctrine\ORM\Query;
|
|||||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
use Symfony\Component\Translation\TranslatorInterface;
|
|
||||||
use Symfony\Component\Validator\Constraints\Callback;
|
use Symfony\Component\Validator\Constraints\Callback;
|
||||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
use function array_key_exists;
|
use function array_key_exists;
|
||||||
use function count;
|
use function count;
|
||||||
use function in_array;
|
use function in_array;
|
||||||
@@ -189,7 +190,9 @@ class ListActivity implements ListInterface
|
|||||||
|
|
||||||
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
|
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
|
||||||
{
|
{
|
||||||
$centers = array_map(static function ($el) { return $el['center']; }, $acl);
|
$centers = array_map(static function ($el) {
|
||||||
|
return $el['center'];
|
||||||
|
}, $acl);
|
||||||
|
|
||||||
// throw an error if any fields are present
|
// throw an error if any fields are present
|
||||||
if (!array_key_exists('fields', $data)) {
|
if (!array_key_exists('fields', $data)) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ use Symfony\Component\Form\FormBuilderInterface;
|
|||||||
use Symfony\Component\Form\FormError;
|
use Symfony\Component\Form\FormError;
|
||||||
use Symfony\Component\Form\FormEvent;
|
use Symfony\Component\Form\FormEvent;
|
||||||
use Symfony\Component\Form\FormEvents;
|
use Symfony\Component\Form\FormEvents;
|
||||||
use Symfony\Component\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
class ActivityDateFilter implements FilterInterface
|
class ActivityDateFilter implements FilterInterface
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
|||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
|
|
||||||
use function array_key_exists;
|
use function array_key_exists;
|
||||||
use function count;
|
use function count;
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
|||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
|
|
||||||
use function count;
|
use function count;
|
||||||
|
|
||||||
class ActivityTypeFilter implements ExportElementValidatedInterface, FilterInterface
|
class ActivityTypeFilter implements ExportElementValidatedInterface, FilterInterface
|
||||||
|
|||||||
@@ -29,8 +29,9 @@ use Symfony\Component\Form\FormError;
|
|||||||
use Symfony\Component\Form\FormEvent;
|
use Symfony\Component\Form\FormEvent;
|
||||||
use Symfony\Component\Form\FormEvents;
|
use Symfony\Component\Form\FormEvents;
|
||||||
use Symfony\Component\Form\FormInterface;
|
use Symfony\Component\Form\FormInterface;
|
||||||
use Symfony\Component\Translation\TranslatorInterface;
|
|
||||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
use function count;
|
use function count;
|
||||||
|
|
||||||
class PersonHavingActivityBetweenDateFilter implements ExportElementValidatedInterface, FilterInterface
|
class PersonHavingActivityBetweenDateFilter implements ExportElementValidatedInterface, FilterInterface
|
||||||
|
|||||||
@@ -14,16 +14,20 @@ namespace Chill\ActivityBundle\Form;
|
|||||||
use Chill\ActivityBundle\Entity\Activity;
|
use Chill\ActivityBundle\Entity\Activity;
|
||||||
use Chill\ActivityBundle\Entity\ActivityPresence;
|
use Chill\ActivityBundle\Entity\ActivityPresence;
|
||||||
use Chill\ActivityBundle\Entity\ActivityReason;
|
use Chill\ActivityBundle\Entity\ActivityReason;
|
||||||
|
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
||||||
use Chill\DocStoreBundle\Form\StoredObjectType;
|
use Chill\DocStoreBundle\Form\StoredObjectType;
|
||||||
|
use Chill\MainBundle\Entity\Center;
|
||||||
use Chill\MainBundle\Entity\Location;
|
use Chill\MainBundle\Entity\Location;
|
||||||
use Chill\MainBundle\Entity\User;
|
use Chill\MainBundle\Entity\User;
|
||||||
use Chill\MainBundle\Form\Type\ChillCollectionType;
|
use Chill\MainBundle\Form\Type\ChillCollectionType;
|
||||||
use Chill\MainBundle\Form\Type\ChillDateType;
|
use Chill\MainBundle\Form\Type\ChillDateType;
|
||||||
use Chill\MainBundle\Form\Type\CommentType;
|
use Chill\MainBundle\Form\Type\CommentType;
|
||||||
|
use Chill\MainBundle\Form\Type\PickUserDynamicType;
|
||||||
|
use Chill\MainBundle\Form\Type\PrivateCommentType;
|
||||||
use Chill\MainBundle\Form\Type\ScopePickerType;
|
use Chill\MainBundle\Form\Type\ScopePickerType;
|
||||||
use Chill\MainBundle\Form\Type\UserPickerType;
|
|
||||||
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
|
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
|
||||||
use Chill\MainBundle\Templating\TranslatableStringHelper;
|
use Chill\MainBundle\Templating\TranslatableStringHelper;
|
||||||
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
use Chill\PersonBundle\Entity\Person;
|
use Chill\PersonBundle\Entity\Person;
|
||||||
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
|
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
|
||||||
use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
|
use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
|
||||||
@@ -48,6 +52,8 @@ use Symfony\Component\Form\FormEvent;
|
|||||||
use Symfony\Component\Form\FormEvents;
|
use Symfony\Component\Form\FormEvents;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||||
|
|
||||||
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
use function in_array;
|
use function in_array;
|
||||||
|
|
||||||
class ActivityType extends AbstractType
|
class ActivityType extends AbstractType
|
||||||
@@ -107,24 +113,25 @@ class ActivityType extends AbstractType
|
|||||||
$activityType = $options['activityType'];
|
$activityType = $options['activityType'];
|
||||||
|
|
||||||
// TODO revoir la gestion des center au niveau du form des activité.
|
// TODO revoir la gestion des center au niveau du form des activité.
|
||||||
if ($options['center']) {
|
if ($options['center'] instanceof Center && null !== $options['data']->getPerson()) {
|
||||||
$builder->add('scope', ScopePickerType::class, [
|
$builder->add('scope', ScopePickerType::class, [
|
||||||
'center' => $options['center'],
|
'center' => $options['center'],
|
||||||
'role' => $options['role'],
|
'role' => ActivityVoter::CREATE === (string) $options['role'] ? ActivityVoter::CREATE_PERSON : (string) $options['role'],
|
||||||
// TODO make required again once scope and rights are fixed
|
'required' => true,
|
||||||
'required' => false,
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var ? \Chill\PersonBundle\Entity\AccompanyingPeriod $accompanyingPeriod */
|
/** @var ? \Chill\PersonBundle\Entity\AccompanyingPeriod $accompanyingPeriod */
|
||||||
$accompanyingPeriod = null;
|
$accompanyingPeriod = null;
|
||||||
|
|
||||||
if ($options['accompanyingPeriod']) {
|
if ($options['accompanyingPeriod'] instanceof AccompanyingPeriod) {
|
||||||
$accompanyingPeriod = $options['accompanyingPeriod'];
|
$accompanyingPeriod = $options['accompanyingPeriod'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('socialIssues') && $accompanyingPeriod) {
|
if ($activityType->isVisible('socialIssues') && $accompanyingPeriod) {
|
||||||
$builder->add('socialIssues', HiddenType::class);
|
$builder->add('socialIssues', HiddenType::class, [
|
||||||
|
'required' => $activityType->getSocialIssuesVisible() === 2,
|
||||||
|
]);
|
||||||
$builder->get('socialIssues')
|
$builder->get('socialIssues')
|
||||||
->addModelTransformer(new CallbackTransformer(
|
->addModelTransformer(new CallbackTransformer(
|
||||||
static function (iterable $socialIssuesAsIterable): string {
|
static function (iterable $socialIssuesAsIterable): string {
|
||||||
@@ -150,7 +157,9 @@ class ActivityType extends AbstractType
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('socialActions') && $accompanyingPeriod) {
|
if ($activityType->isVisible('socialActions') && $accompanyingPeriod) {
|
||||||
$builder->add('socialActions', HiddenType::class);
|
$builder->add('socialActions', HiddenType::class, [
|
||||||
|
'required' => $activityType->getSocialActionsVisible() === 2,
|
||||||
|
]);
|
||||||
$builder->get('socialActions')
|
$builder->get('socialActions')
|
||||||
->addModelTransformer(new CallbackTransformer(
|
->addModelTransformer(new CallbackTransformer(
|
||||||
static function (iterable $socialActionsAsIterable): string {
|
static function (iterable $socialActionsAsIterable): string {
|
||||||
@@ -212,12 +221,10 @@ class ActivityType extends AbstractType
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('user') && $options['center']) {
|
if ($activityType->isVisible('user') && $options['center'] instanceof Center) {
|
||||||
$builder->add('user', UserPickerType::class, [
|
$builder->add('user', PickUserDynamicType::class, [
|
||||||
'label' => $activityType->getLabel('user'),
|
'label' => $activityType->getLabel('user'),
|
||||||
'required' => $activityType->isRequired('user'),
|
'required' => $activityType->isRequired('user'),
|
||||||
'center' => $options['center'],
|
|
||||||
'role' => $options['role'],
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -246,6 +253,13 @@ class ActivityType extends AbstractType
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($activityType->isVisible('privateComment')) {
|
||||||
|
$builder->add('privateComment', PrivateCommentType::class, [
|
||||||
|
'label' => '' === $activityType->getLabel('privateComment') ? 'private comment' : $activityType->getPrivateCommentLabel(),
|
||||||
|
'required' => false,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('persons')) {
|
if ($activityType->isVisible('persons')) {
|
||||||
$builder->add('persons', HiddenType::class);
|
$builder->add('persons', HiddenType::class);
|
||||||
$builder->get('persons')
|
$builder->get('persons')
|
||||||
@@ -260,6 +274,10 @@ class ActivityType extends AbstractType
|
|||||||
return implode(',', $personIds);
|
return implode(',', $personIds);
|
||||||
},
|
},
|
||||||
function (?string $personsAsString): array {
|
function (?string $personsAsString): array {
|
||||||
|
if (null === $personsAsString) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
return array_map(
|
return array_map(
|
||||||
fn (string $id): ?Person => $this->om->getRepository(Person::class)->findOneBy(['id' => (int) $id]),
|
fn (string $id): ?Person => $this->om->getRepository(Person::class)->findOneBy(['id' => (int) $id]),
|
||||||
explode(',', $personsAsString)
|
explode(',', $personsAsString)
|
||||||
@@ -282,6 +300,10 @@ class ActivityType extends AbstractType
|
|||||||
return implode(',', $thirdpartyIds);
|
return implode(',', $thirdpartyIds);
|
||||||
},
|
},
|
||||||
function (?string $thirdpartyAsString): array {
|
function (?string $thirdpartyAsString): array {
|
||||||
|
if (null === $thirdpartyAsString) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
return array_map(
|
return array_map(
|
||||||
fn (string $id): ?ThirdParty => $this->om->getRepository(ThirdParty::class)->findOneBy(['id' => (int) $id]),
|
fn (string $id): ?ThirdParty => $this->om->getRepository(ThirdParty::class)->findOneBy(['id' => (int) $id]),
|
||||||
explode(',', $thirdpartyAsString)
|
explode(',', $thirdpartyAsString)
|
||||||
@@ -296,8 +318,11 @@ class ActivityType extends AbstractType
|
|||||||
'label' => $activityType->getLabel('documents'),
|
'label' => $activityType->getLabel('documents'),
|
||||||
'required' => $activityType->isRequired('documents'),
|
'required' => $activityType->isRequired('documents'),
|
||||||
'allow_add' => true,
|
'allow_add' => true,
|
||||||
|
'allow_delete' => true,
|
||||||
'button_add_label' => 'activity.Insert a document',
|
'button_add_label' => 'activity.Insert a document',
|
||||||
'button_remove_label' => 'activity.Remove a document',
|
'button_remove_label' => 'activity.Remove a document',
|
||||||
|
'empty_collection_explain' => 'No documents',
|
||||||
|
'entry_options' => ['has_title' => true],
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,6 +340,10 @@ class ActivityType extends AbstractType
|
|||||||
return implode(',', $userIds);
|
return implode(',', $userIds);
|
||||||
},
|
},
|
||||||
function (?string $usersAsString): array {
|
function (?string $usersAsString): array {
|
||||||
|
if (null === $usersAsString) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
return array_map(
|
return array_map(
|
||||||
fn (string $id): ?User => $this->om->getRepository(User::class)->findOneBy(['id' => (int) $id]),
|
fn (string $id): ?User => $this->om->getRepository(User::class)->findOneBy(['id' => (int) $id]),
|
||||||
explode(',', $usersAsString)
|
explode(',', $usersAsString)
|
||||||
@@ -324,7 +353,9 @@ class ActivityType extends AbstractType
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('location')) {
|
if ($activityType->isVisible('location')) {
|
||||||
$builder->add('location', HiddenType::class)
|
$builder->add('location', HiddenType::class, [
|
||||||
|
'required' => $activityType->getLocationVisible() === 2,
|
||||||
|
])
|
||||||
->get('location')
|
->get('location')
|
||||||
->addModelTransformer(new CallbackTransformer(
|
->addModelTransformer(new CallbackTransformer(
|
||||||
static function (?Location $location): string {
|
static function (?Location $location): string {
|
||||||
@@ -332,7 +363,7 @@ class ActivityType extends AbstractType
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $location->getId();
|
return (string) $location->getId();
|
||||||
},
|
},
|
||||||
function (?string $id): ?Location {
|
function (?string $id): ?Location {
|
||||||
return $this->om->getRepository(Location::class)->findOneBy(['id' => (int) $id]);
|
return $this->om->getRepository(Location::class)->findOneBy(['id' => (int) $id]);
|
||||||
@@ -352,8 +383,8 @@ class ActivityType extends AbstractType
|
|||||||
'label' => $activityType->getLabel('sentReceived'),
|
'label' => $activityType->getLabel('sentReceived'),
|
||||||
'required' => $activityType->isRequired('sentReceived'),
|
'required' => $activityType->isRequired('sentReceived'),
|
||||||
'choices' => [
|
'choices' => [
|
||||||
'Sent' => Activity::SENTRECEIVED_SENT,
|
|
||||||
'Received' => Activity::SENTRECEIVED_RECEIVED,
|
'Received' => Activity::SENTRECEIVED_RECEIVED,
|
||||||
|
'Sent' => Activity::SENTRECEIVED_SENT,
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@@ -379,7 +410,7 @@ class ActivityType extends AbstractType
|
|||||||
$timezoneUTC = new DateTimeZone('GMT');
|
$timezoneUTC = new DateTimeZone('GMT');
|
||||||
/** @var DateTime $data */
|
/** @var DateTime $data */
|
||||||
$data = $formEvent->getData() === null ?
|
$data = $formEvent->getData() === null ?
|
||||||
DateTime::createFromFormat('U', 300) :
|
DateTime::createFromFormat('U', '300') :
|
||||||
$formEvent->getData();
|
$formEvent->getData();
|
||||||
$seconds = $data->getTimezone()->getOffset($data);
|
$seconds = $data->getTimezone()->getOffset($data);
|
||||||
$data->setTimeZone($timezoneUTC);
|
$data->setTimeZone($timezoneUTC);
|
||||||
@@ -412,8 +443,8 @@ class ActivityType extends AbstractType
|
|||||||
|
|
||||||
$resolver
|
$resolver
|
||||||
->setRequired(['center', 'role', 'activityType', 'accompanyingPeriod'])
|
->setRequired(['center', 'role', 'activityType', 'accompanyingPeriod'])
|
||||||
->setAllowedTypes('center', ['null', 'Chill\MainBundle\Entity\Center'])
|
->setAllowedTypes('center', ['null', Center::class])
|
||||||
->setAllowedTypes('role', 'Symfony\Component\Security\Core\Role\Role')
|
->setAllowedTypes('role', [Role::class, 'string'])
|
||||||
->setAllowedTypes('activityType', \Chill\ActivityBundle\Entity\ActivityType::class)
|
->setAllowedTypes('activityType', \Chill\ActivityBundle\Entity\ActivityType::class)
|
||||||
->setAllowedTypes('accompanyingPeriod', [\Chill\PersonBundle\Entity\AccompanyingPeriod::class, 'null']);
|
->setAllowedTypes('accompanyingPeriod', [\Chill\PersonBundle\Entity\AccompanyingPeriod::class, 'null']);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,9 +55,9 @@ class ActivityTypeType extends AbstractType
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$fields = [
|
$fields = [
|
||||||
'persons', 'user', 'date', 'place', 'persons',
|
'persons', 'user', 'date', 'location', 'persons',
|
||||||
'thirdParties', 'durationTime', 'travelTime', 'attendee',
|
'thirdParties', 'durationTime', 'travelTime', 'attendee',
|
||||||
'reasons', 'comment', 'sentReceived', 'documents',
|
'reasons', 'comment', 'privateComment', 'sentReceived', 'documents',
|
||||||
'emergency', 'socialIssues', 'socialActions', 'users',
|
'emergency', 'socialIssues', 'socialActions', 'users',
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -69,6 +69,9 @@ class ActivityTypeType extends AbstractType
|
|||||||
'empty_data' => '',
|
'empty_data' => '',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$builder
|
||||||
|
->add('commentVisible', ActivityFieldPresence::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver)
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
|||||||
@@ -36,8 +36,10 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
{
|
{
|
||||||
$period = $parameters['accompanyingCourse'];
|
$period = $parameters['accompanyingCourse'];
|
||||||
|
|
||||||
if (AccompanyingPeriod::STEP_DRAFT !== $period->getStep()
|
if (
|
||||||
&& $this->security->isGranted(ActivityVoter::SEE, $period)) {
|
AccompanyingPeriod::STEP_DRAFT !== $period->getStep()
|
||||||
|
&& $this->security->isGranted(ActivityVoter::SEE, $period)
|
||||||
|
) {
|
||||||
$menu->addChild($this->translator->trans('Activity'), [
|
$menu->addChild($this->translator->trans('Activity'), [
|
||||||
'route' => 'chill_activity_activity_list',
|
'route' => 'chill_activity_activity_list',
|
||||||
'routeParameters' => [
|
'routeParameters' => [
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ namespace Chill\ActivityBundle\Menu;
|
|||||||
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
||||||
use Knp\Menu\MenuItem;
|
use Knp\Menu\MenuItem;
|
||||||
use Symfony\Component\Security\Core\Security;
|
use Symfony\Component\Security\Core\Security;
|
||||||
use function in_array;
|
|
||||||
|
|
||||||
final class AdminMenuBuilder implements LocalMenuBuilderInterface
|
final class AdminMenuBuilder implements LocalMenuBuilderInterface
|
||||||
{
|
{
|
||||||
@@ -31,27 +30,38 @@ final class AdminMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($menuId, ['admin_index', 'admin_section'], true)) {
|
$menu->addChild('Activities', [
|
||||||
$menu->addChild('Activities', [
|
'route' => 'chill_activity_admin_index',
|
||||||
'route' => 'chill_admin_activity_index',
|
])
|
||||||
])
|
->setAttribute('class', 'list-group-item-header')
|
||||||
->setExtras([
|
->setExtras([
|
||||||
'order' => 2000,
|
'order' => 5000,
|
||||||
'explain' => 'Activity configuration',
|
'icons' => ['exchange'],
|
||||||
]);
|
]);
|
||||||
} else {
|
|
||||||
$menu
|
$menu->addChild('Activity Reasons', [
|
||||||
->addChild('Activities', [
|
'route' => 'chill_activity_activityreason',
|
||||||
'route' => 'chill_admin_activity_index',
|
])->setExtras(['order' => 5010]);
|
||||||
])
|
|
||||||
->setExtras([
|
$menu->addChild('Activity Reasons Category', [
|
||||||
'order' => '60',
|
'route' => 'chill_activity_activityreasoncategory',
|
||||||
]);
|
])->setExtras(['order' => 5020]);
|
||||||
}
|
|
||||||
|
$menu->addChild('Activity type', [
|
||||||
|
'route' => 'chill_activity_type_admin',
|
||||||
|
])->setExtras(['order' => 5030]);
|
||||||
|
|
||||||
|
$menu->addChild('Activity Presences', [
|
||||||
|
'route' => 'chill_crud_activity_presence_index',
|
||||||
|
])->setExtras(['order' => 5040]);
|
||||||
|
|
||||||
|
$menu->addChild('Activity Types Categories', [
|
||||||
|
'route' => 'chill_activity_type_category_admin',
|
||||||
|
])->setExtras(['order' => 5050]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getMenuIds(): array
|
public static function getMenuIds(): array
|
||||||
{
|
{
|
||||||
return ['admin_index', 'admin_section', 'admin_activity'];
|
return ['admin_section', 'admin_activity'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
|||||||
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
||||||
use Knp\Menu\MenuItem;
|
use Knp\Menu\MenuItem;
|
||||||
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
|
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
|
||||||
use Symfony\Component\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
class PersonMenuBuilder implements LocalMenuBuilderInterface
|
class PersonMenuBuilder implements LocalMenuBuilderInterface
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Chill\ActivityBundle\Notification;
|
||||||
|
|
||||||
|
use Chill\ActivityBundle\Entity\Activity;
|
||||||
|
use Chill\ActivityBundle\Repository\ActivityRepository;
|
||||||
|
use Chill\MainBundle\Entity\Notification;
|
||||||
|
use Chill\MainBundle\Notification\NotificationHandlerInterface;
|
||||||
|
|
||||||
|
final class ActivityNotificationHandler implements NotificationHandlerInterface
|
||||||
|
{
|
||||||
|
private ActivityRepository $activityRepository;
|
||||||
|
|
||||||
|
public function __construct(ActivityRepository $activityRepository)
|
||||||
|
{
|
||||||
|
$this->activityRepository = $activityRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTemplate(Notification $notification, array $options = []): string
|
||||||
|
{
|
||||||
|
return '@ChillActivity/Activity/showInNotification.html.twig';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTemplateData(Notification $notification, array $options = []): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'notification' => $notification,
|
||||||
|
'activity' => $this->activityRepository->find($notification->getRelatedEntityId()),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function supports(Notification $notification, array $options = []): bool
|
||||||
|
{
|
||||||
|
return $notification->getRelatedEntityClass() === Activity::class;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace Chill\ActivityBundle\Notification;
|
|
||||||
|
|
||||||
use Chill\ActivityBundle\Entity\Activity;
|
|
||||||
use Chill\MainBundle\Entity\Notification;
|
|
||||||
|
|
||||||
final class ActivityNotificationRenderer
|
|
||||||
{
|
|
||||||
public function getTemplate()
|
|
||||||
{
|
|
||||||
return '@ChillActivity/Activity/showInNotification.html.twig';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getTemplateData(Notification $notification)
|
|
||||||
{
|
|
||||||
return ['notification' => $notification];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function supports(Notification $notification, array $options = []): bool
|
|
||||||
{
|
|
||||||
return $notification->getRelatedEntityClass() === Activity::class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -12,16 +12,24 @@ declare(strict_types=1);
|
|||||||
namespace Chill\ActivityBundle\Repository;
|
namespace Chill\ActivityBundle\Repository;
|
||||||
|
|
||||||
use Chill\ActivityBundle\Entity\Activity;
|
use Chill\ActivityBundle\Entity\Activity;
|
||||||
|
use Chill\ActivityBundle\Entity\ActivityPresence;
|
||||||
|
use Chill\ActivityBundle\Entity\ActivityType;
|
||||||
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
|
||||||
|
use Chill\MainBundle\Entity\Location;
|
||||||
|
use Chill\MainBundle\Entity\LocationType;
|
||||||
use Chill\MainBundle\Entity\Scope;
|
use Chill\MainBundle\Entity\Scope;
|
||||||
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
|
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
|
||||||
use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface;
|
use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface;
|
||||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
use Chill\PersonBundle\Entity\Person;
|
use Chill\PersonBundle\Entity\Person;
|
||||||
|
use Doctrine\DBAL\Types\Types;
|
||||||
|
use Doctrine\ORM\AbstractQuery;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
|
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
use Symfony\Component\Security\Core\Security;
|
use Symfony\Component\Security\Core\Security;
|
||||||
|
|
||||||
use function count;
|
use function count;
|
||||||
use function in_array;
|
use function in_array;
|
||||||
|
|
||||||
@@ -71,6 +79,86 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte
|
|||||||
->findByAccompanyingPeriod($period, $scopes, true, $limit, $start, $orderBy);
|
->findByAccompanyingPeriod($period, $scopes, true, $limit, $start, $orderBy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function findByAccompanyingPeriodSimplified(AccompanyingPeriod $period, ?int $limit = 1000): array
|
||||||
|
{
|
||||||
|
$rsm = new ResultSetMappingBuilder($this->em);
|
||||||
|
|
||||||
|
$sql = '
|
||||||
|
SELECT
|
||||||
|
a.id AS activity_id,
|
||||||
|
date,
|
||||||
|
CASE WHEN durationtime IS NOT NULL THEN (EXTRACT(EPOCH from durationtime) / 60)::int ELSE 0 END AS durationtimeminute,
|
||||||
|
attendee_id,
|
||||||
|
comment_comment,
|
||||||
|
emergency,
|
||||||
|
sentreceived,
|
||||||
|
CASE WHEN traveltime IS NOT NULL THEN (EXTRACT(EPOCH from traveltime) / 60)::int ELSE 0 END AS traveltimeminute,
|
||||||
|
t.id AS type_id, t.name as type_name,
|
||||||
|
p.id AS presence_id, p.name AS presence_name,
|
||||||
|
location.id AS location_id, location.address_id, location.name AS location_name, location.phonenumber1, location.phonenumber2, location.email,
|
||||||
|
location.locationtype_id, locationtype.title AS locationtype_title,
|
||||||
|
users.userids AS userids,
|
||||||
|
thirdparties.thirdpartyids,
|
||||||
|
persons.personids,
|
||||||
|
actions.socialactionids,
|
||||||
|
issues.socialissueids
|
||||||
|
|
||||||
|
FROM activity a
|
||||||
|
LEFT JOIN chill_main_location location ON a.location_id = location.id
|
||||||
|
LEFT JOIN chill_main_location_type locationtype ON location.locationtype_id = locationtype.id
|
||||||
|
LEFT JOIN activitytpresence p ON a.attendee_id = p.id
|
||||||
|
LEFT JOIN activitytype t ON a.type_id = t.id
|
||||||
|
LEFT JOIN LATERAL (SELECT jsonb_agg(user_id) userids, activity_id FROM activity_user AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS users ON TRUE
|
||||||
|
LEFT JOIN LATERAL (SELECT jsonb_agg(thirdparty_id) thirdpartyids, activity_id FROM activity_thirdparty AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS thirdparties ON TRUE
|
||||||
|
LEFT JOIN LATERAL (SELECT jsonb_agg(person_id) personids, activity_id FROM activity_person AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS persons ON TRUE
|
||||||
|
LEFT JOIN LATERAL (SELECT jsonb_agg(socialaction_id) socialactionids, activity_id FROM chill_activity_activity_chill_person_socialaction AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS actions ON TRUE
|
||||||
|
LEFT JOIN LATERAL (SELECT jsonb_agg(socialissue_id) socialissueids, activity_id FROM chill_activity_activity_chill_person_socialissue AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS issues ON TRUE
|
||||||
|
|
||||||
|
WHERE accompanyingperiod_id = ?
|
||||||
|
ORDER BY a.date DESC, a.id DESC
|
||||||
|
LIMIT ?
|
||||||
|
';
|
||||||
|
|
||||||
|
$rsm
|
||||||
|
->addEntityResult(Activity::class, 'a')
|
||||||
|
->addFieldResult('a', 'activity_id', 'id')
|
||||||
|
->addFieldResult('a', 'date', 'date')
|
||||||
|
->addFieldResult('a', 'comment', 'comment')
|
||||||
|
->addFieldResult('a', 'sentreceived', 'sentReceived')
|
||||||
|
->addFieldResult('a', 'emergency', 'emergency')
|
||||||
|
->addJoinedEntityResult(Location::class, 'location', 'a', 'location')
|
||||||
|
->addFieldResult('location', 'location_id', 'id')
|
||||||
|
->addFieldResult('location', 'location_name', 'name')
|
||||||
|
->addFieldResult('location', 'phonenumber1', 'phonenumber1')
|
||||||
|
->addFieldResult('location', 'phonenumber2', 'phonenumber2')
|
||||||
|
->addFieldResult('location', 'email', 'email')
|
||||||
|
->addJoinedEntityResult(LocationType::class, 'locationType', 'location', 'locationType')
|
||||||
|
->addFieldResult('locationType', 'locationtype_id', 'id')
|
||||||
|
->addFieldResult('locationType', 'locationtype_title', 'title')
|
||||||
|
->addJoinedEntityResult(ActivityType::class, 'activityType', 'a', 'activityType')
|
||||||
|
->addFieldResult('activityType', 'type_id', 'id')
|
||||||
|
->addFieldResult('activityType', 'type_name', 'name')
|
||||||
|
->addJoinedEntityResult(ActivityPresence::class, 'activityPresence', 'a', 'attendee')
|
||||||
|
->addFieldResult('activityPresence', 'presence_id', 'id')
|
||||||
|
->addFieldResult('activityPresence', 'presence_name', 'name')
|
||||||
|
|
||||||
|
// results which cannot be mapped into entity
|
||||||
|
->addScalarResult('comment_comment', 'comment', Types::TEXT)
|
||||||
|
->addScalarResult('userids', 'userIds', Types::JSON)
|
||||||
|
->addScalarResult('thirdpartyids', 'thirdPartyIds', Types::JSON)
|
||||||
|
->addScalarResult('personids', 'personIds', Types::JSON)
|
||||||
|
->addScalarResult('socialactionids', 'socialActionIds', Types::JSON)
|
||||||
|
->addScalarResult('socialissueids', 'socialIssueIds', Types::JSON)
|
||||||
|
->addScalarResult('durationtimeminute', 'durationTimeMinute', Types::INTEGER)
|
||||||
|
->addScalarResult('traveltimeminute', 'travelTimeMinute', Types::INTEGER);
|
||||||
|
|
||||||
|
$nq = $this->em->createNativeQuery($sql, $rsm);
|
||||||
|
|
||||||
|
$nq->setParameter(0, $period->getId())->setParameter(1, $limit);
|
||||||
|
|
||||||
|
return $nq->getResult(AbstractQuery::HYDRATE_ARRAY);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $orderBy
|
* @param array $orderBy
|
||||||
*
|
*
|
||||||
@@ -167,7 +255,9 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte
|
|||||||
$reachableScopes = $this->authorizationHelper->getReachableScopes($this->tokenStorage->getToken()->getUser(), $role, $center);
|
$reachableScopes = $this->authorizationHelper->getReachableScopes($this->tokenStorage->getToken()->getUser(), $role, $center);
|
||||||
// we get the ids for those scopes
|
// we get the ids for those scopes
|
||||||
$reachablesScopesId = array_map(
|
$reachablesScopesId = array_map(
|
||||||
static function (Scope $scope) { return $scope->getId(); },
|
static function (Scope $scope) {
|
||||||
|
return $scope->getId();
|
||||||
|
},
|
||||||
$reachableScopes
|
$reachableScopes
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,15 @@ interface ActivityACLAwareRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function findByAccompanyingPeriod(AccompanyingPeriod $period, string $role, ?int $start = 0, ?int $limit = 1000, ?array $orderBy = []): array;
|
public function findByAccompanyingPeriod(AccompanyingPeriod $period, string $role, ?int $start = 0, ?int $limit = 1000, ?array $orderBy = []): array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a list of activities, simplified as array (not object).
|
||||||
|
*
|
||||||
|
* The aim of this method is to get a long list of activities and keep performance.
|
||||||
|
*
|
||||||
|
* @return array an array of array, each item representing an activity
|
||||||
|
*/
|
||||||
|
public function findByAccompanyingPeriodSimplified(AccompanyingPeriod $period, ?int $limit = 1000): array;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Activity[]|array
|
* @return Activity[]|array
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ class ActivityRepository extends ServiceEntityRepository
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @deprecated use @see{ActivityACLAwareRepositoryInterface::findByAccompanyingPeriod}
|
||||||
|
*
|
||||||
* @return Activity[]
|
* @return Activity[]
|
||||||
*/
|
*/
|
||||||
public function findByAccompanyingPeriod(AccompanyingPeriod $period, array $scopes, ?bool $allowNullScope = false, ?int $limit = 100, ?int $offset = 0, array $orderBy = ['date' => 'desc']): array
|
public function findByAccompanyingPeriod(AccompanyingPeriod $period, array $scopes, ?bool $allowNullScope = false, ?int $limit = 100, ?int $offset = 0, array $orderBy = ['date' => 'desc']): array
|
||||||
|
|||||||
@@ -9,8 +9,9 @@ div.new-activity-select-type {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
justify-content: flex-start;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
|
||||||
div.bloc {
|
div.bloc {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
@@ -24,30 +25,31 @@ div.new-activity-select-type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//// ACTIVITY LIST PAGE
|
//// ACTIVITY LIST PAGE
|
||||||
// precise badge-title specific details
|
// precise dashboard specific details
|
||||||
|
|
||||||
h2.badge-title {
|
p.date-label {
|
||||||
div.duration {
|
display: inline-block;
|
||||||
font-size: smaller;
|
margin: 0 0.5em 0 0;
|
||||||
padding-left: 1em;
|
font-weight: 700;
|
||||||
margin-top: 1em;
|
font-size: 18pt;
|
||||||
}
|
|
||||||
ul.list-content {
|
|
||||||
font-size: 70%;
|
|
||||||
list-style-type: none;
|
|
||||||
padding-left: 0;
|
|
||||||
margin: 0;
|
|
||||||
li {
|
|
||||||
margin-bottom: 0.2em;
|
|
||||||
// exception: change bg color for action badges above badge-title
|
|
||||||
.bg-light {
|
|
||||||
background-color: $chill-light-gray !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
div.main {
|
div.dashboard,
|
||||||
padding: 1em;
|
h4.badge-title,
|
||||||
|
h3.badge-title,
|
||||||
|
h2.badge-title {
|
||||||
|
ul.list-content {
|
||||||
|
font-size: 70%;
|
||||||
|
list-style-type: none;
|
||||||
|
padding-left: 0;
|
||||||
|
margin: 0;
|
||||||
|
li {
|
||||||
|
margin-bottom: 0.2em;
|
||||||
|
// exception: change bg color for action badges above dashboard
|
||||||
|
.bg-light {
|
||||||
|
background-color: $chill-light-gray !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//// ACTIVITY SHOW AND FORM PAGES
|
//// ACTIVITY SHOW AND FORM PAGES
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
div.chill-dropzone__below-zone {
|
||||||
|
a.btn-delete {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul[data-collection-name="documents"] {
|
||||||
|
button.remove-entry {
|
||||||
|
margin: 0.5rem 0!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// do it in js does not work
|
||||||
|
// document.addEventListener('DOMContentLoaded', e => {
|
||||||
|
// const dropzoneBelow = document.querySelectorAll('div.chill-dropzone__below-zone');
|
||||||
|
// dropzoneBelow.forEach(
|
||||||
|
// d => {
|
||||||
|
// const a = d.querySelector('a.btn-delete');
|
||||||
|
// d.removeChild(a);
|
||||||
|
// }
|
||||||
|
// )
|
||||||
|
// });
|
||||||
@@ -11,7 +11,7 @@ import Location from './components/Location.vue';
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "App",
|
name: "App",
|
||||||
props: ['hasSocialIssues', 'hasLocation', 'hasPerson'],
|
props: ['hasSocialIssues', 'hasLocation', 'hasPerson'],
|
||||||
components: {
|
components: {
|
||||||
ConcernedGroups,
|
ConcernedGroups,
|
||||||
SocialIssuesAcc,
|
SocialIssuesAcc,
|
||||||
|
|||||||
@@ -17,6 +17,14 @@ const getLocations = () => fetchResults('/api/1.0/main/location.json');
|
|||||||
|
|
||||||
const getLocationTypes = () => fetchResults('/api/1.0/main/location-type.json');
|
const getLocationTypes = () => fetchResults('/api/1.0/main/location-type.json');
|
||||||
|
|
||||||
|
const getUserCurrentLocation =
|
||||||
|
() => fetch('/api/1.0/main/user-current-location.json')
|
||||||
|
.then(response => {
|
||||||
|
if (response.ok) { return response.json(); }
|
||||||
|
throw Error('Error with request resource response');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Load Location Type by defaultFor
|
* Load Location Type by defaultFor
|
||||||
* @param {string} entity - can be "person" or "thirdparty"
|
* @param {string} entity - can be "person" or "thirdparty"
|
||||||
@@ -48,5 +56,6 @@ export {
|
|||||||
getLocations,
|
getLocations,
|
||||||
getLocationTypes,
|
getLocationTypes,
|
||||||
getLocationTypeByDefaultFor,
|
getLocationTypeByDefaultFor,
|
||||||
postLocation
|
postLocation,
|
||||||
|
getUserCurrentLocation
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,45 +1,52 @@
|
|||||||
<template>
|
<template>
|
||||||
<teleport to="#add-persons" v-if="isComponentVisible">
|
<teleport to="#add-persons" v-if="isComponentVisible">
|
||||||
|
|
||||||
<div class="flex-bloc concerned-groups" :class="getContext">
|
<div class="flex-bloc concerned-groups" :class="getContext">
|
||||||
<persons-bloc
|
<persons-bloc
|
||||||
v-for="bloc in contextPersonsBlocs"
|
v-for="bloc in contextPersonsBlocs"
|
||||||
v-bind:key="bloc.key"
|
v-bind:key="bloc.key"
|
||||||
v-bind:bloc="bloc"
|
v-bind:bloc="bloc"
|
||||||
v-bind:blocWidth="getBlocWidth"
|
v-bind:blocWidth="getBlocWidth"
|
||||||
v-bind:setPersonsInBloc="setPersonsInBloc">
|
v-bind:setPersonsInBloc="setPersonsInBloc">
|
||||||
</persons-bloc>
|
</persons-bloc>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="getContext === 'accompanyingCourse' && suggestedEntities.length > 0">
|
<div v-if="getContext === 'accompanyingCourse' && suggestedEntities.length > 0">
|
||||||
<ul class="list-suggest add-items">
|
<ul class="list-suggest add-items inline">
|
||||||
<li v-for="p in suggestedEntities" @click="addSuggestedEntity(p)">
|
<li v-for="(p, i) in suggestedEntities" @click="addSuggestedEntity(p)" :key="`suggestedEntities-${i}`">
|
||||||
<span>{{ p.text }}</span>
|
<person-text v-if="p.type === 'person'" :person="p"></person-text>
|
||||||
</li>
|
<span v-else>{{ p.text }}</span>
|
||||||
</ul>
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<add-persons
|
<ul class="record_actions">
|
||||||
buttonTitle="activity.add_persons"
|
<li class="add-persons">
|
||||||
modalTitle="activity.add_persons"
|
<add-persons
|
||||||
v-bind:key="addPersons.key"
|
buttonTitle="activity.add_persons"
|
||||||
v-bind:options="addPersonsOptions"
|
modalTitle="activity.add_persons"
|
||||||
@addNewPersons="addNewPersons"
|
v-bind:key="addPersons.key"
|
||||||
ref="addPersons">
|
v-bind:options="addPersonsOptions"
|
||||||
</add-persons>
|
@addNewPersons="addNewPersons"
|
||||||
|
ref="addPersons">
|
||||||
|
</add-persons>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
</teleport>
|
</teleport>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapState, mapGetters } from 'vuex';
|
import { mapState, mapGetters } from 'vuex';
|
||||||
import AddPersons from 'ChillPersonAssets/vuejs/_components/AddPersons.vue';
|
import AddPersons from 'ChillPersonAssets/vuejs/_components/AddPersons.vue';
|
||||||
import PersonsBloc from './ConcernedGroups/PersonsBloc.vue';
|
import PersonsBloc from './ConcernedGroups/PersonsBloc.vue';
|
||||||
|
import PersonText from 'ChillPersonAssets/vuejs/_components/Entity/PersonText.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ConcernedGroups",
|
name: "ConcernedGroups",
|
||||||
components: {
|
components: {
|
||||||
AddPersons,
|
AddPersons,
|
||||||
PersonsBloc
|
PersonsBloc,
|
||||||
|
PersonText
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,22 +1,29 @@
|
|||||||
<template>
|
<template>
|
||||||
<li>
|
<li>
|
||||||
<span :title="person.text">
|
<span :title="person.text" @click.prevent="$emit('remove', person)">
|
||||||
<span class="chill_denomination">{{ textCutted }}</span>
|
<span class="chill_denomination">
|
||||||
<a @click.prevent="$emit('remove', person)"></a>
|
<person-text :person="person" :isCut="true"></person-text>
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import PersonText from 'ChillPersonAssets/vuejs/_components/Entity/PersonText.vue';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "PersonBadge",
|
name: "PersonBadge",
|
||||||
props: ['person'],
|
props: ['person'],
|
||||||
computed: {
|
components: {
|
||||||
textCutted() {
|
PersonText
|
||||||
let more = (this.person.text.length > 15) ?'…' : '';
|
|
||||||
return this.person.text.slice(0,15) + more;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
// computed: {
|
||||||
|
// textCutted() {
|
||||||
|
// let more = (this.person.text.length > 15) ?'…' : '';
|
||||||
|
// return this.person.text.slice(0,15) + more;
|
||||||
|
// }
|
||||||
|
// },
|
||||||
emits: ['remove'],
|
emits: ['remove'],
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<teleport to="#location">
|
<teleport to="#location">
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label class="col-form-label col-sm-4">
|
<label :class="locationClassList">
|
||||||
{{ $t("activity.location") }}
|
{{ $t("activity.location") }}
|
||||||
</label>
|
</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
@@ -15,14 +15,16 @@
|
|||||||
:searchable="true"
|
:searchable="true"
|
||||||
:placeholder="$t('activity.choose_location')"
|
:placeholder="$t('activity.choose_location')"
|
||||||
:custom-label="customLabel"
|
:custom-label="customLabel"
|
||||||
:options="locations"
|
:select-label="$t('multiselect.select_label')"
|
||||||
|
:deselect-label="$t('multiselect.deselect_label')"
|
||||||
|
:selected-label="$t('multiselect.selected_label')"
|
||||||
|
:options="availableLocations"
|
||||||
group-values="locations"
|
group-values="locations"
|
||||||
group-label="locationGroup"
|
group-label="locationGroup"
|
||||||
v-model="location"
|
v-model="location"
|
||||||
>
|
>
|
||||||
</VueMultiselect>
|
</VueMultiselect>
|
||||||
|
<new-location v-bind:availableLocations="availableLocations"></new-location>
|
||||||
<new-location v-bind:locations="locations"></new-location>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</teleport>
|
</teleport>
|
||||||
@@ -32,7 +34,6 @@
|
|||||||
import { mapState, mapGetters } from "vuex";
|
import { mapState, mapGetters } from "vuex";
|
||||||
import VueMultiselect from "vue-multiselect";
|
import VueMultiselect from "vue-multiselect";
|
||||||
import NewLocation from "./Location/NewLocation.vue";
|
import NewLocation from "./Location/NewLocation.vue";
|
||||||
import { getLocations, getLocationTypeByDefaultFor } from "../api.js";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Location",
|
name: "Location",
|
||||||
@@ -42,11 +43,12 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
locations: [],
|
locationClassList:
|
||||||
};
|
`col-form-label col-sm-4 ${document.querySelector('input#chill_activitybundle_activity_location').getAttribute('required') ? 'required' : ''}`,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["activity"]),
|
...mapState(["activity", "availableLocations"]),
|
||||||
...mapGetters(["suggestedEntities"]),
|
...mapGetters(["suggestedEntities"]),
|
||||||
location: {
|
location: {
|
||||||
get() {
|
get() {
|
||||||
@@ -57,53 +59,6 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
|
||||||
getLocations().then(
|
|
||||||
(results) => {
|
|
||||||
getLocationTypeByDefaultFor('person').then(
|
|
||||||
(personLocationType) => {
|
|
||||||
if (personLocationType) {
|
|
||||||
const personLocation = this.makeAccompanyingPeriodLocation(personLocationType);
|
|
||||||
const concernedPersonsLocation =
|
|
||||||
this.makeConcernedPersonsLocation(personLocationType);
|
|
||||||
getLocationTypeByDefaultFor('thirdparty').then(
|
|
||||||
thirdpartyLocationType => {
|
|
||||||
const concernedThirdPartiesLocation =
|
|
||||||
this.makeConcernedThirdPartiesLocation(thirdpartyLocationType);
|
|
||||||
this.locations = [
|
|
||||||
{
|
|
||||||
locationGroup: 'Localisation du parcours',
|
|
||||||
locations: [personLocation]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
locationGroup: 'Parties concernées',
|
|
||||||
locations: [...concernedPersonsLocation, ...concernedThirdPartiesLocation]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
locationGroup: 'Autres localisations',
|
|
||||||
locations: results
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
this.locations = [
|
|
||||||
{
|
|
||||||
locationGroup: 'Localisations',
|
|
||||||
locations: response.results
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
if (window.default_location_id) {
|
|
||||||
let location = this.locations.filter(
|
|
||||||
(l) => l.id === window.default_location_id
|
|
||||||
);
|
|
||||||
this.$store.dispatch("updateLocation", location);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
labelAccompanyingCourseLocation(value) {
|
labelAccompanyingCourseLocation(value) {
|
||||||
return `${value.address.text} (${value.locationType.title.fr})`
|
return `${value.address.text} (${value.locationType.title.fr})`
|
||||||
@@ -117,58 +72,6 @@ export default {
|
|||||||
: value.locationType.title.fr
|
: value.locationType.title.fr
|
||||||
: '';
|
: '';
|
||||||
},
|
},
|
||||||
makeConcernedPersonsLocation(locationType) {
|
|
||||||
let locations = [];
|
|
||||||
this.suggestedEntities.forEach(
|
|
||||||
(e) => {
|
|
||||||
if (e.type === 'person' && e.current_household_address !== null){
|
|
||||||
locations.push({
|
|
||||||
type: 'location',
|
|
||||||
id: -this.suggestedEntities.indexOf(e)*10,
|
|
||||||
onthefly: true,
|
|
||||||
name: e.text,
|
|
||||||
address: {
|
|
||||||
id: e.current_household_address.address_id,
|
|
||||||
},
|
|
||||||
locationType: locationType
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return locations;
|
|
||||||
},
|
|
||||||
makeConcernedThirdPartiesLocation(locationType) {
|
|
||||||
let locations = [];
|
|
||||||
this.suggestedEntities.forEach(
|
|
||||||
(e) => {
|
|
||||||
if (e.type === 'thirdparty' && e.address !== null){
|
|
||||||
locations.push({
|
|
||||||
type: 'location',
|
|
||||||
id: -this.suggestedEntities.indexOf(e)*10,
|
|
||||||
onthefly: true,
|
|
||||||
name: e.text,
|
|
||||||
address: { id: e.address.address_id },
|
|
||||||
locationType: locationType
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return locations;
|
|
||||||
},
|
|
||||||
makeAccompanyingPeriodLocation(locationType) {
|
|
||||||
const accPeriodLocation = this.activity.accompanyingPeriod.location;
|
|
||||||
return {
|
|
||||||
type: 'location',
|
|
||||||
id: -1,
|
|
||||||
onthefly: true,
|
|
||||||
name: '__AccompanyingCourseLocation__',
|
|
||||||
address: {
|
|
||||||
id: accPeriodLocation.address_id,
|
|
||||||
text: `${accPeriodLocation.text} - ${accPeriodLocation.postcode.code} ${accPeriodLocation.postcode.name}`
|
|
||||||
},
|
|
||||||
locationType: locationType
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -18,13 +18,10 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-slot:body>
|
<template v-slot:body>
|
||||||
<form>
|
<form>
|
||||||
<div class="form-floating mb-3">
|
<div class="alert alert-warning" v-if="errors.length">
|
||||||
<p v-if="errors.length">
|
<ul>
|
||||||
<b>{{ $t('activity.errors') }}</b>
|
<li v-for="(e, i) in errors" :key="i">{{ e }}</li>
|
||||||
<ul>
|
</ul>
|
||||||
<li v-for="error in errors" :key="error">{{ error }}</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
@@ -62,6 +59,7 @@
|
|||||||
<input class="form-control form-control-lg" id="email" v-model="inputEmail" placeholder />
|
<input class="form-control form-control-lg" id="email" v-model="inputEmail" placeholder />
|
||||||
<label for="email">{{ $t('activity.location_fields.email') }}</label>
|
<label for="email">{{ $t('activity.location_fields.email') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:footer>
|
<template v-slot:footer>
|
||||||
@@ -81,7 +79,8 @@
|
|||||||
import Modal from 'ChillMainAssets/vuejs/_components/Modal.vue';
|
import Modal from 'ChillMainAssets/vuejs/_components/Modal.vue';
|
||||||
import AddAddress from "ChillMainAssets/vuejs/Address/components/AddAddress.vue";
|
import AddAddress from "ChillMainAssets/vuejs/Address/components/AddAddress.vue";
|
||||||
import { mapState } from "vuex";
|
import { mapState } from "vuex";
|
||||||
import { getLocationTypes, postLocation } from "../../api";
|
import { getLocationTypes } from "../../api";
|
||||||
|
import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "NewLocation",
|
name: "NewLocation",
|
||||||
@@ -89,7 +88,7 @@ export default {
|
|||||||
Modal,
|
Modal,
|
||||||
AddAddress,
|
AddAddress,
|
||||||
},
|
},
|
||||||
props: ['locations'],
|
props: ['availableLocations'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
errors: [],
|
errors: [],
|
||||||
@@ -223,7 +222,6 @@ export default {
|
|||||||
},
|
},
|
||||||
saveNewLocation() {
|
saveNewLocation() {
|
||||||
if (this.checkForm()) {
|
if (this.checkForm()) {
|
||||||
console.log('saveNewLocation', this.selected);
|
|
||||||
let body = {
|
let body = {
|
||||||
type: 'location',
|
type: 'location',
|
||||||
name: this.selected.name,
|
name: this.selected.name,
|
||||||
@@ -242,23 +240,28 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
postLocation(body)
|
|
||||||
.then(
|
makeFetch('POST', '/api/1.0/main/location.json', body)
|
||||||
location => new Promise(resolve => {
|
.then(response => {
|
||||||
this.locations.push(location);
|
this.$store.dispatch('addAvailableLocationGroup', {
|
||||||
this.$store.dispatch('updateLocation', location);
|
locationGroup: 'Localisations nouvellement créées',
|
||||||
resolve();
|
locations: [response]
|
||||||
this.modal.showModal = false;
|
});
|
||||||
})
|
this.$store.dispatch('updateLocation', response);
|
||||||
).catch(
|
this.modal.showModal = false;
|
||||||
err => {
|
})
|
||||||
this.errors.push(err.message);
|
.catch((error) => {
|
||||||
|
if (error.name === 'ValidationException') {
|
||||||
|
for (let v of error.violations) {
|
||||||
|
this.errors.push(v);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.errors.push('An error occurred');
|
||||||
}
|
}
|
||||||
);
|
})
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
submitNewAddress(payload) {
|
submitNewAddress(payload) {
|
||||||
console.log('submitNewAddress', payload);
|
|
||||||
this.selected.addressId = payload.addressId;
|
this.selected.addressId = payload.addressId;
|
||||||
this.addAddress.context.addressId = payload.addressId;
|
this.addAddress.context.addressId = payload.addressId;
|
||||||
this.addAddress.context.edit = true;
|
this.addAddress.context.edit = true;
|
||||||
|
|||||||
@@ -3,15 +3,15 @@
|
|||||||
|
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<label class="col-form-label">{{ $t('activity.social_issues') }}</label>
|
<label :class="socialIssuesClassList">{{ $t('activity.social_issues') }}</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
|
|
||||||
<check-social-issue
|
<check-social-issue
|
||||||
v-for="issue in socialIssuesList"
|
v-for="issue in socialIssuesList"
|
||||||
v-bind:key="issue.id"
|
:key="issue.id"
|
||||||
v-bind:issue="issue"
|
:issue="issue"
|
||||||
v-bind:selection="socialIssuesSelected"
|
:selection="socialIssuesSelected"
|
||||||
@updateSelected="updateIssuesSelected">
|
@updateSelected="updateIssuesSelected">
|
||||||
</check-social-issue>
|
</check-social-issue>
|
||||||
|
|
||||||
@@ -21,18 +21,18 @@
|
|||||||
label="text"
|
label="text"
|
||||||
track-by="id"
|
track-by="id"
|
||||||
open-direction="bottom"
|
open-direction="bottom"
|
||||||
v-bind:close-on-select="true"
|
:close-on-select="true"
|
||||||
v-bind:preserve-search="false"
|
:preserve-search="false"
|
||||||
v-bind:reset-after="true"
|
:reset-after="true"
|
||||||
v-bind:hide-selected="true"
|
:hide-selected="true"
|
||||||
v-bind:taggable="false"
|
:taggable="false"
|
||||||
v-bind:multiple="false"
|
:multiple="false"
|
||||||
v-bind:searchable="true"
|
:searchable="true"
|
||||||
v-bind:allow-empty="true"
|
:allow-empty="true"
|
||||||
v-bind:show-labels="false"
|
:show-labels="false"
|
||||||
v-bind:loading="issueIsLoading"
|
:loading="issueIsLoading"
|
||||||
v-bind:placeholder="$t('activity.choose_other_social_issue')"
|
:placeholder="$t('activity.choose_other_social_issue')"
|
||||||
v-bind:options="socialIssuesOther"
|
:options="socialIssuesOther"
|
||||||
@select="addIssueInList">
|
@select="addIssueInList">
|
||||||
</VueMultiselect>
|
</VueMultiselect>
|
||||||
</div>
|
</div>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<label class="col-form-label">{{ $t('activity.social_actions') }}</label>
|
<label :class="socialActionsClassList">{{ $t('activity.social_actions') }}</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
|
|
||||||
@@ -54,19 +54,19 @@
|
|||||||
{{ $t('activity.select_first_a_social_issue') }}
|
{{ $t('activity.select_first_a_social_issue') }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<template v-else-if="socialActionsList.length > 0">
|
<template v-else-if="socialActionsList.length > 0">
|
||||||
<check-social-action
|
<check-social-action
|
||||||
v-if="socialIssuesSelected.length || socialActionsSelected.length"
|
v-if="socialIssuesSelected.length || socialActionsSelected.length"
|
||||||
v-for="action in socialActionsList"
|
v-for="action in socialActionsList"
|
||||||
v-bind:key="action.id"
|
:key="action.id"
|
||||||
v-bind:action="action"
|
:action="action"
|
||||||
v-bind:selection="socialActionsSelected"
|
:selection="socialActionsSelected"
|
||||||
@updateSelected="updateActionsSelected">
|
@updateSelected="updateActionsSelected">
|
||||||
</check-social-action>
|
</check-social-action>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<span v-else-if="actionAreLoaded && socialActionsList.length === 0" class="inline-choice chill-no-data-statement mt-3">
|
<span v-else-if="actionAreLoaded && socialActionsList.length === 0" class="inline-choice chill-no-data-statement mt-3">
|
||||||
{{ $t('activity.social_action_list_empty') }}
|
{{ $t('activity.social_action_list_empty') }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
||||||
@@ -94,6 +94,10 @@ export default {
|
|||||||
issueIsLoading: false,
|
issueIsLoading: false,
|
||||||
actionIsLoading: false,
|
actionIsLoading: false,
|
||||||
actionAreLoaded: false,
|
actionAreLoaded: false,
|
||||||
|
socialIssuesClassList:
|
||||||
|
`col-form-label ${document.querySelector('input#chill_activitybundle_activity_socialIssues').getAttribute('required') ? 'required' : ''}`,
|
||||||
|
socialActionsClassList:
|
||||||
|
`col-form-label ${document.querySelector('input#chill_activitybundle_activity_socialActions').getAttribute('required') ? 'required' : ''}`,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -107,7 +111,7 @@ export default {
|
|||||||
return this.$store.state.socialIssuesOther;
|
return this.$store.state.socialIssuesOther;
|
||||||
},
|
},
|
||||||
socialActionsList() {
|
socialActionsList() {
|
||||||
return this.$store.state.socialActionsList;
|
return this.$store.getters.socialActionsListSorted;
|
||||||
},
|
},
|
||||||
socialActionsSelected() {
|
socialActionsSelected() {
|
||||||
return this.$store.state.activity.socialActions;
|
return this.$store.state.activity.socialActions;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { personMessages } from 'ChillPersonAssets/vuejs/_js/i18n'
|
import { personMessages } from 'ChillPersonAssets/vuejs/_js/i18n'
|
||||||
|
import { multiSelectMessages } from 'ChillMainAssets/vuejs/_js/i18n'
|
||||||
|
|
||||||
const activityMessages = {
|
const activityMessages = {
|
||||||
fr: {
|
fr: {
|
||||||
@@ -33,12 +34,11 @@ const activityMessages = {
|
|||||||
},
|
},
|
||||||
create_address: 'Créer une adresse',
|
create_address: 'Créer une adresse',
|
||||||
edit_address: "Modifier l'adresse"
|
edit_address: "Modifier l'adresse"
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.assign(activityMessages.fr, personMessages.fr);
|
Object.assign(activityMessages.fr, personMessages.fr, multiSelectMessages.fr);
|
||||||
|
|
||||||
export {
|
export {
|
||||||
activityMessages
|
activityMessages
|
||||||
|
|||||||
@@ -2,17 +2,25 @@ import { createApp } from 'vue';
|
|||||||
import { _createI18n } from 'ChillMainAssets/vuejs/_js/i18n'
|
import { _createI18n } from 'ChillMainAssets/vuejs/_js/i18n'
|
||||||
import { activityMessages } from './i18n'
|
import { activityMessages } from './i18n'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
|
import PickTemplate from 'ChillDocGeneratorAssets/vuejs/_components/PickTemplate.vue';
|
||||||
|
import {fetchTemplates} from 'ChillDocGeneratorAssets/api/pickTemplate.js';
|
||||||
|
|
||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
|
|
||||||
const i18n = _createI18n(activityMessages);
|
const i18n = _createI18n(activityMessages);
|
||||||
|
|
||||||
|
// app for activity
|
||||||
|
|
||||||
const hasSocialIssues = document.querySelector('#social-issues-acc') !== null;
|
const hasSocialIssues = document.querySelector('#social-issues-acc') !== null;
|
||||||
const hasLocation = document.querySelector('#location') !== null;
|
const hasLocation = document.querySelector('#location') !== null;
|
||||||
const hasPerson = document.querySelector('#add-persons') !== null;
|
const hasPerson = document.querySelector('#add-persons') !== null;
|
||||||
|
|
||||||
const app = createApp({
|
const app = createApp({
|
||||||
template: `<app :hasSocialIssues="hasSocialIssues", :hasLocation="hasLocation", :hasPerson="hasPerson"></app>`,
|
template: `<app
|
||||||
|
:hasSocialIssues="hasSocialIssues"
|
||||||
|
:hasLocation="hasLocation"
|
||||||
|
:hasPerson="hasPerson"
|
||||||
|
></app>`,
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
hasSocialIssues,
|
hasSocialIssues,
|
||||||
@@ -25,3 +33,54 @@ const app = createApp({
|
|||||||
.use(i18n)
|
.use(i18n)
|
||||||
.component('app', App)
|
.component('app', App)
|
||||||
.mount('#activity');
|
.mount('#activity');
|
||||||
|
|
||||||
|
|
||||||
|
// app for picking template
|
||||||
|
|
||||||
|
const i18nGendoc = _createI18n({});
|
||||||
|
|
||||||
|
document.querySelectorAll('div[data-docgen-template-picker]').forEach(el => {
|
||||||
|
fetchTemplates(el.dataset.entityClass).then(templates => {
|
||||||
|
const picker = {
|
||||||
|
template:
|
||||||
|
'<pick-template :templates="this.templates" :preventDefaultMoveToGenerate="true" ' +
|
||||||
|
':entityClass="faked" @go-to-generate-document="generateDoc"></pick-template>',
|
||||||
|
components: {
|
||||||
|
PickTemplate,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
templates: templates,
|
||||||
|
entityId: el.dataset.entityId,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
generateDoc({event, link, template}) {
|
||||||
|
console.log('generateDoc');
|
||||||
|
console.log('link', link);
|
||||||
|
console.log('template', template);
|
||||||
|
|
||||||
|
let hiddenInput = document.querySelector("input[data-template-id]");
|
||||||
|
|
||||||
|
if (hiddenInput === null) {
|
||||||
|
console.error('hidden input not found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
hiddenInput.value = template;
|
||||||
|
|
||||||
|
let form = document.querySelector('form[name="chill_activitybundle_activity"');
|
||||||
|
|
||||||
|
if (form === null) {
|
||||||
|
console.error('form not found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
createApp(picker).use(i18nGendoc).mount(el);
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
|
|||||||
@@ -1,22 +1,23 @@
|
|||||||
import 'es6-promise/auto';
|
import 'es6-promise/auto';
|
||||||
import { createStore } from 'vuex';
|
import { createStore } from 'vuex';
|
||||||
import { postLocation } from './api';
|
import { postLocation } from './api';
|
||||||
|
import prepareLocations from './store.locations.js';
|
||||||
|
|
||||||
const debug = process.env.NODE_ENV !== 'production';
|
const debug = process.env.NODE_ENV !== 'production';
|
||||||
//console.log('window.activity', window.activity);
|
//console.log('window.activity', window.activity);
|
||||||
|
|
||||||
const addIdToValue = (string, id) => {
|
const addIdToValue = (string, id) => {
|
||||||
let array = string ? string.split(',') : [];
|
let array = string ? string.split(',') : [];
|
||||||
array.push(id.toString());
|
array.push(id.toString());
|
||||||
let str = array.join();
|
let str = array.join();
|
||||||
return str;
|
return str;
|
||||||
};
|
};
|
||||||
|
|
||||||
const removeIdFromValue = (string, id) => {
|
const removeIdFromValue = (string, id) => {
|
||||||
let array = string.split(',');
|
let array = string.split(',');
|
||||||
array = array.filter(el => el !== id.toString());
|
array = array.filter(el => el !== id.toString());
|
||||||
let str = array.join();
|
let str = array.join();
|
||||||
return str;
|
return str;
|
||||||
};
|
};
|
||||||
|
|
||||||
const store = createStore({
|
const store = createStore({
|
||||||
@@ -25,6 +26,7 @@ const store = createStore({
|
|||||||
activity: window.activity,
|
activity: window.activity,
|
||||||
socialIssuesOther: [],
|
socialIssuesOther: [],
|
||||||
socialActionsList: [],
|
socialActionsList: [],
|
||||||
|
availableLocations: [],
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
suggestedEntities(state) {
|
suggestedEntities(state) {
|
||||||
@@ -50,9 +52,9 @@ const store = createStore({
|
|||||||
return state.activity.activityType.personsVisible === 0
|
return state.activity.activityType.personsVisible === 0
|
||||||
? []
|
? []
|
||||||
: state.activity.accompanyingPeriod.participations
|
: state.activity.accompanyingPeriod.participations
|
||||||
.filter((p) => p.endDate === null)
|
.filter((p) => p.endDate === null)
|
||||||
.map((p) => p.person)
|
.map((p) => p.person)
|
||||||
.filter((p) => !existingPersonIds.includes(p.id));
|
.filter((p) => !existingPersonIds.includes(p.id));
|
||||||
},
|
},
|
||||||
suggestedRequestor(state) {
|
suggestedRequestor(state) {
|
||||||
if (state.activity.accompanyingPeriod.requestor === null) {
|
if (state.activity.accompanyingPeriod.requestor === null) {
|
||||||
@@ -78,8 +80,8 @@ const store = createStore({
|
|||||||
return state.activity.activityType.usersVisible === 0
|
return state.activity.activityType.usersVisible === 0
|
||||||
? []
|
? []
|
||||||
: [state.activity.accompanyingPeriod.user].filter(
|
: [state.activity.accompanyingPeriod.user].filter(
|
||||||
(u) => u !== null && !existingUserIds.includes(u.id)
|
(u) => u !== null && !existingUserIds.includes(u.id)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
suggestedResources(state) {
|
suggestedResources(state) {
|
||||||
const resources = state.activity.accompanyingPeriod.resources;
|
const resources = state.activity.accompanyingPeriod.resources;
|
||||||
@@ -99,6 +101,9 @@ const store = createStore({
|
|||||||
state.activity.activityType.thirdPartiesVisible !== 0)
|
state.activity.activityType.thirdPartiesVisible !== 0)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
socialActionsListSorted(state) {
|
||||||
|
return [ ...state.socialActionsList].sort((a, b) => a.ordering - b.ordering);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
// SocialIssueAcc
|
// SocialIssueAcc
|
||||||
@@ -129,7 +134,6 @@ const store = createStore({
|
|||||||
state.socialActionsList = [];
|
state.socialActionsList = [];
|
||||||
},
|
},
|
||||||
addActionInList(state, action) {
|
addActionInList(state, action) {
|
||||||
//console.log('add action list', action.id);
|
|
||||||
state.socialActionsList.push(action);
|
state.socialActionsList.push(action);
|
||||||
},
|
},
|
||||||
updateActionsSelected(state, actions) {
|
updateActionsSelected(state, actions) {
|
||||||
@@ -200,6 +204,9 @@ const store = createStore({
|
|||||||
console.log("### mutation: updateLocation", value);
|
console.log("### mutation: updateLocation", value);
|
||||||
state.activity.location = value;
|
state.activity.location = value;
|
||||||
},
|
},
|
||||||
|
addAvailableLocationGroup(state, group) {
|
||||||
|
state.availableLocations.push(group);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
addIssueSelected({ commit }, issue) {
|
addIssueSelected({ commit }, issue) {
|
||||||
@@ -235,6 +242,9 @@ const store = createStore({
|
|||||||
});
|
});
|
||||||
commit("updateActionsSelected", payload);
|
commit("updateActionsSelected", payload);
|
||||||
},
|
},
|
||||||
|
addAvailableLocationGroup({ commit }, payload) {
|
||||||
|
commit("addAvailableLocationGroup", payload);
|
||||||
|
},
|
||||||
addPersonsInvolved({ commit }, payload) {
|
addPersonsInvolved({ commit }, payload) {
|
||||||
//console.log('### action addPersonsInvolved', payload.result.type);
|
//console.log('### action addPersonsInvolved', payload.result.type);
|
||||||
switch (payload.result.type) {
|
switch (payload.result.type) {
|
||||||
@@ -335,4 +345,6 @@ const store = createStore({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
prepareLocations(store);
|
||||||
|
|
||||||
export default store;
|
export default store;
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
import {getLocations, getLocationTypeByDefaultFor, getUserCurrentLocation} from "./api";
|
||||||
|
|
||||||
|
const makeConcernedPersonsLocation = (locationType, store) => {
|
||||||
|
let locations = [];
|
||||||
|
store.getters.suggestedEntities.forEach(
|
||||||
|
(e) => {
|
||||||
|
if (e.type === 'person' && e.current_household_address !== null){
|
||||||
|
locations.push({
|
||||||
|
type: 'location',
|
||||||
|
id: -store.getters.suggestedEntities.indexOf(e)*10,
|
||||||
|
onthefly: true,
|
||||||
|
name: e.text,
|
||||||
|
address: {
|
||||||
|
id: e.current_household_address.address_id,
|
||||||
|
},
|
||||||
|
locationType: locationType
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return locations;
|
||||||
|
};
|
||||||
|
const makeConcernedThirdPartiesLocation = (locationType, store) => {
|
||||||
|
let locations = [];
|
||||||
|
store.getters.suggestedEntities.forEach(
|
||||||
|
(e) => {
|
||||||
|
if (e.type === 'thirdparty' && e.address !== null){
|
||||||
|
locations.push({
|
||||||
|
type: 'location',
|
||||||
|
id: -store.getters.suggestedEntities.indexOf(e)*10,
|
||||||
|
onthefly: true,
|
||||||
|
name: e.text,
|
||||||
|
address: { id: e.address.address_id },
|
||||||
|
locationType: locationType
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return locations;
|
||||||
|
};
|
||||||
|
const makeAccompanyingPeriodLocation = (locationType, store) => {
|
||||||
|
const accPeriodLocation = store.state.activity.accompanyingPeriod.location;
|
||||||
|
return {
|
||||||
|
type: 'location',
|
||||||
|
id: -1,
|
||||||
|
onthefly: true,
|
||||||
|
name: '__AccompanyingCourseLocation__',
|
||||||
|
address: {
|
||||||
|
id: accPeriodLocation.address_id,
|
||||||
|
text: `${accPeriodLocation.text} - ${accPeriodLocation.postcode.code} ${accPeriodLocation.postcode.name}`
|
||||||
|
},
|
||||||
|
locationType: locationType
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function prepareLocations(store) {
|
||||||
|
|
||||||
|
// find the locations
|
||||||
|
let allLocations = getLocations().then(
|
||||||
|
(results) => {
|
||||||
|
store.commit('addAvailableLocationGroup', {
|
||||||
|
locationGroup: 'Autres localisations',
|
||||||
|
locations: results
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
let currentLocation = getUserCurrentLocation().then(
|
||||||
|
userCurrentLocation => {
|
||||||
|
if (null !== userCurrentLocation) {
|
||||||
|
store.commit('addAvailableLocationGroup', {
|
||||||
|
locationGroup: 'Ma localisation',
|
||||||
|
locations: [userCurrentLocation]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
let partiesLocations = [], partyPromise;
|
||||||
|
['person', 'thirdparty'].forEach(kind => {
|
||||||
|
partyPromise = getLocationTypeByDefaultFor(kind).then(
|
||||||
|
(kindLocationType) => {
|
||||||
|
if (kindLocationType) {
|
||||||
|
let concernedKindLocations;
|
||||||
|
if (kind === 'person') {
|
||||||
|
concernedKindLocations = makeConcernedPersonsLocation(kindLocationType, store);
|
||||||
|
// add location for the parcours into suggestions
|
||||||
|
const personLocation = makeAccompanyingPeriodLocation(kindLocationType, store);
|
||||||
|
store.commit('addAvailableLocationGroup', {
|
||||||
|
locationGroup: 'Localisation du parcours',
|
||||||
|
locations: [personLocation]
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
concernedKindLocations = makeConcernedThirdPartiesLocation(kindLocationType, store);
|
||||||
|
}
|
||||||
|
|
||||||
|
store.commit('addAvailableLocationGroup', {
|
||||||
|
locationGroup: kind === 'person' ? 'Usagers concernés' : 'Tiers concernés',
|
||||||
|
locations: concernedKindLocations,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
partiesLocations.push(partyPromise);
|
||||||
|
});
|
||||||
|
|
||||||
|
// when all location are loaded
|
||||||
|
Promise.all([allLocations, currentLocation, ...partiesLocations]).then(() => {
|
||||||
|
console.log('current location in activity', store.state.activity.location);
|
||||||
|
console.log('default loation id', window.default_location_id);
|
||||||
|
if (window.default_location_id) {
|
||||||
|
for (let group of store.state.availableLocations) {
|
||||||
|
let location = group.locations.find((l) => l.id === window.default_location_id);
|
||||||
|
if (location !== undefined & store.state.activity.location === null) {
|
||||||
|
store.dispatch('updateLocation', location);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
|
||||||
use Symfony\Component\HttpKernel\Kernel;
|
|
||||||
|
|
||||||
class AppKernel extends Kernel
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getCacheDir()
|
|
||||||
{
|
|
||||||
return sys_get_temp_dir() . '/ActivityBundle/cache';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getLogDir()
|
|
||||||
{
|
|
||||||
return sys_get_temp_dir() . '/ActivityBundle/logs';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function registerBundles()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
|
||||||
new Chill\CustomFieldsBundle\ChillCustomFieldsBundle(),
|
|
||||||
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
|
|
||||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
|
||||||
new \Symfony\Bundle\AsseticBundle\AsseticBundle(),
|
|
||||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
|
||||||
new Chill\PersonBundle\ChillPersonBundle(),
|
|
||||||
new Chill\MainBundle\ChillMainBundle(),
|
|
||||||
new Chill\ActivityBundle\ChillActivityBundle(),
|
|
||||||
new \Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
|
|
||||||
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
|
||||||
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
|
||||||
//add here all the required bundle (some bundle are not required)
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function registerContainerConfiguration(LoaderInterface $loader)
|
|
||||||
{
|
|
||||||
$loader->load($this->getRootDir() . '/config/config_' . $this->getEnvironment() . '.yml');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
use Composer\Autoload\ClassLoader;
|
|
||||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
|
||||||
|
|
||||||
/** @var ClassLoader $loader */
|
|
||||||
$loader = require __DIR__ . '/../../../../../vendor/autoload.php';
|
|
||||||
|
|
||||||
AnnotationRegistry::registerLoader([$loader, 'loadClass']);
|
|
||||||
|
|
||||||
return $loader;
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -1,438 +0,0 @@
|
|||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "assets._default_package" (parent: assets.path_package).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.chain_provider" (parent: security.user.provider.chain).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.in_memory" (parent: security.user.provider.in_memory).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.in_memory_admin" (parent: security.user.provider.in_memory.user).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.users" (parent: doctrine.orm.security.user.provider).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.dev" (parent: security.firewall.context).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.context_listener.0" (parent: security.context_listener).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.logout_listener.default" (parent: security.logout_listener).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.logout.success_handler.default" (parent: security.logout.success_handler).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.provider.dao.default" (parent: security.authentication.provider.dao).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.success_handler.default.form_login" (parent: security.authentication.success_handler).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.failure_handler.default.form_login" (parent: security.authentication.failure_handler).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.form" (parent: security.authentication.listener.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.form.default" (parent: security.authentication.listener.form).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.form_entry_point.default" (parent: security.authentication.form_entry_point).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.anonymous.default" (parent: security.authentication.listener.anonymous).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.provider.anonymous.default" (parent: security.authentication.provider.anonymous).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.exception_listener.default" (parent: security.exception_listener).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.default" (parent: security.firewall.context).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.eventdispatcher" (parent: swiftmailer.transport.eventdispatcher.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.authhandler" (parent: swiftmailer.transport.authhandler.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.buffer" (parent: swiftmailer.transport.buffer.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.smtp" (parent: swiftmailer.transport.smtp.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default" (parent: swiftmailer.mailer.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.plugin.messagelogger" (parent: swiftmailer.plugin.messagelogger.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.default_connection.configuration" (parent: doctrine.dbal.connection.configuration).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.logger.profiling.default" (parent: doctrine.dbal.logger.profiling).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.logger.chain.default" (parent: doctrine.dbal.logger.chain).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.default_connection.event_manager" (parent: doctrine.dbal.connection.event_manager).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.default_connection" (parent: doctrine.dbal.connection).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.orm.default_configuration" (parent: doctrine.orm.configuration).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine_cache.providers.doctrine.orm.default_metadata_cache" (parent: doctrine_cache.abstract.array).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine_cache.providers.doctrine.orm.default_result_cache" (parent: doctrine_cache.abstract.array).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine_cache.providers.doctrine.orm.default_query_cache" (parent: doctrine_cache.abstract.array).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.orm.default_manager_configurator" (parent: doctrine.orm.manager_configurator.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.orm.default_entity_manager" (parent: doctrine.orm.entity_manager.abstract).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.request" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.translation" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.security" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.templating" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.profiler" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.router" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.php" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.event" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.assetic" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.doctrine" (parent: monolog.logger_prototype).
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "validator.mapping.class_metadata_factory"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "assetic.value_supplier"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.dbal.event_manager"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.metadata.annotation_reader"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_entity_manager.event_manager"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "sensio_framework_extra.security.expression_language"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "translator.logging.inner"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "translator.data_collector.inner"; reason: private alias
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assets.path_package"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assets.url_package"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assets.static_version_strategy"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.context"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory.user"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.chain"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout_listener"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.handler.cookie_clearing"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.success_handler"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.form_entry_point"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_success_handler"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.success_handler"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_failure_handler"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.failure_handler"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.form"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.simple_form"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.simple_success_failure_handler"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.simple_preauth"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.x509"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.remote_user"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.basic"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.digest"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.dao"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.simple"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.pre_authenticated"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.exception_listener"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.switchuser_listener"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.rememberme"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.rememberme"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.persistent"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.simplehash"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.logger_prototype"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.mailer.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.sendmail.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.mail.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.null.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.buffer.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.authhandler.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.eventdispatcher.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.redirecting.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.antiflood.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.impersonate.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.messagelogger.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.smtp.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.spool.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.spool.file.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.spool.memory.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assetic.worker.ensure_filter"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.apc"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.array"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.file_system"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.php_file"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.memcache"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.memcached"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.redis"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.wincache"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.xcache"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.zenddata"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.mongodb"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.riak"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.couchbase"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.logger.chain"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.logger.profiling"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.event_manager"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.configuration"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.configuration"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.entity_manager.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.manager_configurator.abstract"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.security.user.provider"; reason: abstract
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "session" previously pointing to "session.storage.mock_file" to "session.storage.filesystem".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "session.storage.native" previously pointing to "session.handler.native_file" to "session.handler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "session.storage.php_bridge" previously pointing to "session.handler.native_file" to "session.handler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "assetic.twig_directory_resource.kernel" previously pointing to "templating.loader.filesystem" to "templating.loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.text" previously pointing to "templating.engine.twig" to "templating".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.choice" previously pointing to "templating.engine.twig" to "templating".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.title" previously pointing to "templating.engine.twig" to "templating".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "translator_listener" previously pointing to "translator.data_collector" to "translator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "validator.builder" previously pointing to "translator.data_collector" to "translator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "data_collector.translation" previously pointing to "translator.data_collector" to "translator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "twig.extension.trans" previously pointing to "translator.data_collector" to "translator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.custom_fields_group_type" previously pointing to "translator.data_collector" to "translator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "locale_listener" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "templating.helper.router" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "router.cache_warmer" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "router_listener" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.logout_url_generator" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "twig.extension.routing" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "web_profiler.controller.profiler" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "web_profiler.controller.router" previously pointing to "router.default" to "router".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "sensio_framework_extra.controller.listener" previously pointing to "annotations.file_cache_reader" to "annotation_reader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "sensio_framework_extra.routing.loader.annot_class" previously pointing to "annotations.file_cache_reader" to "annotation_reader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.user_password_encoder.generic" previously pointing to "security.encoder_factory.generic" to "security.encoder_factory".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.validator.user_password" previously pointing to "security.encoder_factory.generic" to "security.encoder_factory".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.provider.dao.default" previously pointing to "security.encoder_factory.generic" to "security.encoder_factory".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "twig" previously pointing to "twig.loader.filesystem" to "twig.loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "swiftmailer.email_sender.listener" previously pointing to "monolog.logger" to "logger".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "swiftmailer.mailer.default" previously pointing to "swiftmailer.mailer.default.transport.smtp" to "swiftmailer.mailer.default.transport".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "templating.cache_warmer.template_paths" to "cache_warmer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.asset_manager_cache_warmer" to "cache_warmer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "translation.warmer" to "cache_warmer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "router.cache_warmer" to "cache_warmer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.proxy_cache_warmer" to "cache_warmer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "translator.selector" to "translator.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "test.client.history" to "test.client".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "test.client.cookiejar" to "test.client".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "session.attribute_bag" to "session".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "session.flash_bag" to "session".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "16f9ce82abe2adc8b44c9c8d29afbc93d322e7fad5e23fae42fb16c689658c58_1" to "form.resolved_type_factory".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.extension" to "form.registry".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.type_extension.form.request_handler" to "form.type_extension.form.http_foundation".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.server_params" to "form.type_extension.form.request_handler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.csrf.token_generator" to "security.csrf.token_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.csrf.token_storage" to "security.csrf.token_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assets._default_package" to "assets.packages".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.validator_factory" to "validator.builder".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "profiler.storage" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.config" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.ajax" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.exception" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.events" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.logger" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.time" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.memory" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.twig" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.security" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.data_collector" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.doctrine" to "profiler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.xml" to "routing.resolver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.yml" to "routing.resolver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.php" to "routing.resolver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_dir" to "routing.resolver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_file" to "routing.resolver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.resolver" to "routing.loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.event_dispatcher.parent" to "debug.event_dispatcher".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "controller_resolver" to "debug.controller_resolver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.provider.dao.default" to "security.authentication.manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.provider.anonymous.default" to "security.authentication.manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.expression_voter" to "security.access.decision_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.role_hierarchy_voter" to "security.access.decision_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.authenticated_voter" to "security.access.decision_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.expression_language" to "security.access.expression_voter".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map" to "security.firewall".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.request_matcher.5314eeb91110adf24b9b678372bb11bbe00e8858c519c088bfb65f525181ad3bf573fd1d" to "security.firewall.map".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.retry_entry_point" to "security.channel_listener".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user.provider.concrete.in_memory_admin" to "security.user.provider.concrete.in_memory".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout.success_handler.default" to "security.logout_listener.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout.handler.session" to "security.logout_listener.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user_checker" to "security.authentication.provider.dao.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.session_strategy" to "security.authentication.listener.form.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.success_handler.default.form_login" to "security.authentication.listener.form.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.failure_handler.default.form_login" to "security.authentication.listener.form.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.form_entry_point.default" to "security.exception_listener.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.channel_listener" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.context_listener.0" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout_listener.default" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.listener.form.default" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.listener.anonymous.default" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_listener" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.exception_listener.default" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.logout_url" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.security" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.profiler" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.trans" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.assets" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.actions" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.code" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.routing" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.yaml" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.debug.stopwatch" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.expression" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.httpkernel" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.form" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.debug" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_extension" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.twig.doctrine_extension" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.dump" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.webprofiler" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.app_variable" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.configurator.environment" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.form.renderer" to "twig.extension.form".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.form.engine" to "twig.form.renderer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_1" to "swiftmailer.mailer.default.transport.authhandler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_2" to "swiftmailer.mailer.default.transport.authhandler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_3" to "swiftmailer.mailer.default.transport.authhandler".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.transport.replacementfactory" to "swiftmailer.mailer.default.transport.buffer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_formula_loader" to "assetic.asset_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.chillpersonbundle" to "assetic.asset_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.chillmainbundle" to "assetic.asset_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.kernel" to "assetic.asset_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.parameter_bag" to "assetic.asset_factory".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.value_supplier.default" to "assetic.twig_extension".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_formula_loader.real" to "assetic.twig_formula_loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.config_cache" to "assetic.twig_formula_loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.logger.chain.default" to "doctrine.dbal.default_connection.configuration".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.logger" to "doctrine.dbal.logger.chain.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.configuration" to "doctrine.dbal.default_connection".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.event_manager" to "doctrine.dbal.default_connection".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_metadata_driver" to "doctrine.orm.default_configuration".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.naming_strategy.default" to "doctrine.orm.default_configuration".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.quote_strategy.default" to "doctrine.orm.default_configuration".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_configuration" to "doctrine.orm.default_entity_manager".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.security.expression_language.default" to "sensio_framework_extra.security.listener".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_distribution.webconfigurator.doctrine_step" to "sensio_distribution.webconfigurator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_distribution.webconfigurator.secret_step" to "sensio_distribution.webconfigurator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "translator.logging" to "translator".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.mailer.default.transport.buffer" to "swiftmailer.mailer.default.transport".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.mailer.default.transport.authhandler" to "swiftmailer.mailer.default.transport".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.mailer.default.transport.eventdispatcher" to "swiftmailer.mailer.default.transport".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "controller_resolver"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "translator.logging"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "translator.selector"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "translation.warmer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.flash_bag"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.attribute_bag"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.handler.write_check"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.extension"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.type_extension.form.request_handler"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.server_params"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.csrf.token_generator"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.csrf.token_storage"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assets.empty_package"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assets._default_package"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.engine.delegating"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.cache_warmer.template_paths"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.loader.cache"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.loader.chain"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.cache.apc"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.validator_factory"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "profiler.storage"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.config"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.ajax"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.exception"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.events"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.logger"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.time"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.memory"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "16f9ce82abe2adc8b44c9c8d29afbc93d322e7fad5e23fae42fb16c689658c58_1"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.resolver"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.xml"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.yml"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.php"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "router.cache_warmer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "annotations.cached_reader"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "debug.event_dispatcher.parent"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.session_strategy"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.expression_language"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.authenticated_voter"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.role_hierarchy_voter"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.expression_voter"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.firewall.map"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.anonymous"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.anonymous"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.retry_entry_point"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.basic_entry_point"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.digest_entry_point"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.channel_listener"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout.handler.session"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_listener"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.rememberme.token.provider.in_memory"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.logout_url"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.security"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.security"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user.provider.concrete.in_memory_admin"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.request_matcher.5314eeb91110adf24b9b678372bb11bbe00e8858c519c088bfb65f525181ad3bf573fd1d"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener.0"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout_listener.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout.success_handler.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.dao.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.success_handler.default.form_login"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.failure_handler.default.form_login"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.form.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.form_entry_point.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.anonymous.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.anonymous.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.exception_listener.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.app_variable"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.cache_warmer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.loader.native_filesystem"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.loader.chain"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.profiler"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.twig"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.trans"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.assets"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.actions"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.code"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.routing"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.yaml"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.debug.stopwatch"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.expression"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.httpkernel"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.form"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.debug"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.form.engine"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.form.renderer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.configurator.environment"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.chrome_php"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.gelf_message"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.html"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.json"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.line"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.loggly"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.normalizer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.scalar"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.wildfire"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_3"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_2"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_1"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.failover"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.mailinvoker"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.replacementfactory"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.data_collector"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.mailer.default.transport.eventdispatcher"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.mailer.default.transport.authhandler"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.mailer.default.transport.buffer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.config_cache"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.asset_manager_cache_warmer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.worker.cache_busting"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.parameter_bag"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.value_supplier.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_extension"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_formula_loader"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_formula_loader.real"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.logger"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.doctrine"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.twig.doctrine_extension"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.default_connection.configuration"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.logger.chain.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.default_connection.event_manager"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.proxy_cache_warmer"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.listeners.resolve_target_entity"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.underscore"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.quote_strategy.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.quote_strategy.ansi"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_configuration"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_yml_metadata_driver"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_metadata_driver"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.routing.loader.annot_dir"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.routing.loader.annot_file"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.security.expression_language.default"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.dump"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.webprofiler"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_distribution.webconfigurator.doctrine_step"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_distribution.webconfigurator.secret_step"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.chillpersonbundle"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.chillmainbundle"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.kernel"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "templating.finder" to "cache_warmer".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assets.empty_version_strategy" to "assets.packages".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_class" to "routing.loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_class" to "routing.loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_class" to "routing.loader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_map" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_map" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.httpfoundation" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.httpfoundation" to "twig".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "annotations.reader" to "annotation_reader".
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assets.empty_version_strategy"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.finder"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "annotations.reader"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.http_utils"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_map"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.httpfoundation"; reason: unused
|
|
||||||
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.routing.loader.annot_class"; reason: unused
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
<?php return array (
|
|
||||||
0 => 'Symfony\\Bundle\\FrameworkBundle\\EventListener\\SessionListener',
|
|
||||||
1 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage',
|
|
||||||
2 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage',
|
|
||||||
3 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler',
|
|
||||||
4 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy',
|
|
||||||
5 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy',
|
|
||||||
6 => 'Symfony\\Component\\HttpFoundation\\Session\\Session',
|
|
||||||
7 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\GlobalVariables',
|
|
||||||
8 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateReference',
|
|
||||||
9 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser',
|
|
||||||
10 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\TemplateLocator',
|
|
||||||
11 => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
|
|
||||||
12 => 'Symfony\\Component\\Routing\\RequestContext',
|
|
||||||
13 => 'Symfony\\Component\\Routing\\Router',
|
|
||||||
14 => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableUrlMatcher',
|
|
||||||
15 => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\Router',
|
|
||||||
16 => 'Symfony\\Component\\Config\\FileLocator',
|
|
||||||
17 => 'Symfony\\Component\\Debug\\ErrorHandler',
|
|
||||||
18 => 'Symfony\\Component\\EventDispatcher\\Event',
|
|
||||||
19 => 'Symfony\\Component\\EventDispatcher\\ContainerAwareEventDispatcher',
|
|
||||||
20 => 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener',
|
|
||||||
21 => 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener',
|
|
||||||
22 => 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver',
|
|
||||||
23 => 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent',
|
|
||||||
24 => 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent',
|
|
||||||
25 => 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent',
|
|
||||||
26 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent',
|
|
||||||
27 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForControllerResultEvent',
|
|
||||||
28 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent',
|
|
||||||
29 => 'Symfony\\Component\\HttpKernel\\KernelEvents',
|
|
||||||
30 => 'Symfony\\Component\\HttpKernel\\Config\\FileLocator',
|
|
||||||
31 => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerNameParser',
|
|
||||||
32 => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerResolver',
|
|
||||||
33 => 'Symfony\\Component\\Security\\Http\\Firewall',
|
|
||||||
34 => 'Symfony\\Component\\Security\\Core\\User\\UserProviderInterface',
|
|
||||||
35 => 'Symfony\\Component\\Security\\Core\\Authentication\\AuthenticationProviderManager',
|
|
||||||
36 => 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\Storage\\TokenStorage',
|
|
||||||
37 => 'Symfony\\Component\\Security\\Core\\Authorization\\AccessDecisionManager',
|
|
||||||
38 => 'Symfony\\Component\\Security\\Core\\Authorization\\AuthorizationChecker',
|
|
||||||
39 => 'Symfony\\Component\\Security\\Core\\Authorization\\Voter\\VoterInterface',
|
|
||||||
40 => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallMap',
|
|
||||||
41 => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallContext',
|
|
||||||
42 => 'Symfony\\Component\\HttpFoundation\\RequestMatcher',
|
|
||||||
43 => 'Twig_Environment',
|
|
||||||
44 => 'Twig_Extension',
|
|
||||||
45 => 'Twig_Extension_Core',
|
|
||||||
46 => 'Twig_Extension_Escaper',
|
|
||||||
47 => 'Twig_Extension_Optimizer',
|
|
||||||
48 => 'Twig_LoaderInterface',
|
|
||||||
49 => 'Twig_Markup',
|
|
||||||
50 => 'Twig_Template',
|
|
||||||
51 => 'Monolog\\Formatter\\FormatterInterface',
|
|
||||||
52 => 'Monolog\\Formatter\\LineFormatter',
|
|
||||||
53 => 'Monolog\\Handler\\HandlerInterface',
|
|
||||||
54 => 'Monolog\\Handler\\AbstractHandler',
|
|
||||||
55 => 'Monolog\\Handler\\AbstractProcessingHandler',
|
|
||||||
56 => 'Monolog\\Handler\\StreamHandler',
|
|
||||||
57 => 'Monolog\\Handler\\FingersCrossedHandler',
|
|
||||||
58 => 'Monolog\\Handler\\FilterHandler',
|
|
||||||
59 => 'Monolog\\Handler\\TestHandler',
|
|
||||||
60 => 'Monolog\\Logger',
|
|
||||||
61 => 'Symfony\\Bridge\\Monolog\\Logger',
|
|
||||||
62 => 'Symfony\\Bridge\\Monolog\\Handler\\DebugHandler',
|
|
||||||
63 => 'Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface',
|
|
||||||
64 => 'Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy',
|
|
||||||
65 => 'Symfony\\Bundle\\AsseticBundle\\DefaultValueSupplier',
|
|
||||||
66 => 'Symfony\\Bundle\\AsseticBundle\\Factory\\AssetFactory',
|
|
||||||
67 => 'Doctrine\\Common\\Annotations\\DocLexer',
|
|
||||||
68 => 'Doctrine\\Common\\Annotations\\FileCacheReader',
|
|
||||||
69 => 'Doctrine\\Common\\Annotations\\PhpParser',
|
|
||||||
70 => 'Doctrine\\Common\\Annotations\\Reader',
|
|
||||||
71 => 'Doctrine\\Common\\Lexer',
|
|
||||||
72 => 'Doctrine\\Common\\Persistence\\ConnectionRegistry',
|
|
||||||
73 => 'Doctrine\\Common\\Persistence\\Proxy',
|
|
||||||
74 => 'Doctrine\\Common\\Util\\ClassUtils',
|
|
||||||
75 => 'Doctrine\\Bundle\\DoctrineBundle\\Registry',
|
|
||||||
76 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ControllerListener',
|
|
||||||
77 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ParamConverterListener',
|
|
||||||
78 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\DateTimeParamConverter',
|
|
||||||
79 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\DoctrineParamConverter',
|
|
||||||
80 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\ParamConverterInterface',
|
|
||||||
81 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\ParamConverterManager',
|
|
||||||
82 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\TemplateListener',
|
|
||||||
83 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\HttpCacheListener',
|
|
||||||
84 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\SecurityListener',
|
|
||||||
85 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\ConfigurationAnnotation',
|
|
||||||
);
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
imports:
|
|
||||||
- { resource: parameters.yml }
|
|
||||||
|
|
||||||
framework:
|
|
||||||
secret: Not very secret
|
|
||||||
router: { resource: "%kernel.root_dir%/config/routing.yml" }
|
|
||||||
form: true
|
|
||||||
csrf_protection: true
|
|
||||||
session: ~
|
|
||||||
default_locale: fr
|
|
||||||
translator: { fallback: fr }
|
|
||||||
profiler: { only_exceptions: false }
|
|
||||||
templating:
|
|
||||||
engines: ['twig']
|
|
||||||
|
|
||||||
doctrine:
|
|
||||||
dbal:
|
|
||||||
driver: pdo_pgsql
|
|
||||||
host: "%database_host%"
|
|
||||||
port: "%database_port%"
|
|
||||||
dbname: "%database_name%"
|
|
||||||
user: "%database_user%"
|
|
||||||
password: "%database_password%"
|
|
||||||
charset: UTF8
|
|
||||||
mapping_types:
|
|
||||||
jsonb: json_array
|
|
||||||
orm:
|
|
||||||
auto_generate_proxy_classes: "%kernel.debug%"
|
|
||||||
auto_mapping: true
|
|
||||||
|
|
||||||
# Assetic Configuration
|
|
||||||
assetic:
|
|
||||||
debug: "%kernel.debug%"
|
|
||||||
use_controller: false
|
|
||||||
bundles: [ ]
|
|
||||||
#java: /usr/bin/java
|
|
||||||
filters:
|
|
||||||
cssrewrite: ~
|
|
||||||
|
|
||||||
|
|
||||||
security:
|
|
||||||
providers:
|
|
||||||
chain_provider:
|
|
||||||
chain :
|
|
||||||
providers: [in_memory, users]
|
|
||||||
in_memory:
|
|
||||||
memory:
|
|
||||||
users:
|
|
||||||
admin: { password: olala, roles: 'ROLE_ADMIN' }
|
|
||||||
users:
|
|
||||||
entity:
|
|
||||||
class: Chill\MainBundle\Entity\User
|
|
||||||
property: username
|
|
||||||
|
|
||||||
encoders:
|
|
||||||
Chill\MainBundle\Entity\User:
|
|
||||||
algorithm: bcrypt
|
|
||||||
Symfony\Component\Security\Core\User\User: plaintext
|
|
||||||
|
|
||||||
firewalls:
|
|
||||||
dev:
|
|
||||||
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
|
||||||
security: false
|
|
||||||
|
|
||||||
default:
|
|
||||||
anonymous: ~
|
|
||||||
form_login:
|
|
||||||
csrf_parameter: _csrf_token
|
|
||||||
csrf_token_id: authenticate
|
|
||||||
csrf_provider: form.csrf_provider
|
|
||||||
logout: ~
|
|
||||||
http_basic:
|
|
||||||
access_control:
|
|
||||||
#disable authentication for tests
|
|
||||||
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
|
||||||
#- { path: ^/admin, roles: ROLE_ADMIN }
|
|
||||||
#- { path: ^/, roles: ROLE_USER }
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
imports:
|
|
||||||
- { resource: config.yml } #here we import a config.yml file, this is not required
|
|
||||||
|
|
||||||
framework:
|
|
||||||
test: ~
|
|
||||||
session:
|
|
||||||
storage_id: session.storage.filesystem
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# config/config_test.yml
|
|
||||||
imports:
|
|
||||||
- { resource: config.yml } #here we import a config.yml file, this is not required
|
|
||||||
|
|
||||||
framework:
|
|
||||||
test: ~
|
|
||||||
session:
|
|
||||||
storage_id: session.storage.filesystem
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
|
|
||||||
#required by ConfigCustomizablesEntitiesTest::testNotEmptyConfig
|
|
||||||
|
|
||||||
imports:
|
|
||||||
- { resource: config_test.yml }
|
|
||||||
|
|
||||||
chill_custom_fields:
|
|
||||||
customizables_entities:
|
|
||||||
- { class: Test\With\A\Dummy\Entity, name: test }
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
parameters:
|
|
||||||
database_host: chill__database
|
|
||||||
database_port: 5432
|
|
||||||
database_name: postgres
|
|
||||||
database_user: postgres
|
|
||||||
database_password: postgres
|
|
||||||
locale: fr
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
parameters:
|
|
||||||
database_host: 127.0.0.1
|
|
||||||
database_port: 5432
|
|
||||||
database_name: test0
|
|
||||||
database_user: postgres
|
|
||||||
database_password: postgres
|
|
||||||
locale: fr
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
parameters:
|
|
||||||
database_host: 127.0.0.1
|
|
||||||
database_port: 5434
|
|
||||||
database_name: symfony
|
|
||||||
database_user: symfony
|
|
||||||
database_password: symfony
|
|
||||||
locale: fr
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
cl_custom_fields:
|
|
||||||
resource: .
|
|
||||||
type: chill_routes
|
|
||||||
|
|
||||||
chill_main:
|
|
||||||
resource: "@ChillMainBundle/Resources/config/routing.yml"
|
|
||||||
|
|
||||||
test_custom_field_form_render:
|
|
||||||
path: /customfieldsgroup/test/render/{id}
|
|
||||||
defaults: { _controller: ChillCustomFieldsBundle:CustomFieldsGroup:renderForm }
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
#!/usr/bin/env php
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
|
||||||
use Symfony\Component\Console\Input\ArgvInput;
|
|
||||||
use Symfony\Component\Debug\Debug;
|
|
||||||
|
|
||||||
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
|
|
||||||
// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
|
|
||||||
// for more information
|
|
||||||
//umask(0000);
|
|
||||||
|
|
||||||
set_time_limit(0);
|
|
||||||
|
|
||||||
/** @var \Composer\Autoload\ClassLoader $loader */
|
|
||||||
$loader = require __DIR__.'/autoload.php';
|
|
||||||
|
|
||||||
$input = new ArgvInput();
|
|
||||||
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
|
|
||||||
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
|
|
||||||
|
|
||||||
if ($debug) {
|
|
||||||
Debug::enable();
|
|
||||||
}
|
|
||||||
|
|
||||||
$kernel = new AppKernel($env, $debug);
|
|
||||||
$application = new Application($kernel);
|
|
||||||
$application->run($input);
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
use Symfony\Component\Debug\Debug;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
|
||||||
|
|
||||||
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
|
|
||||||
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
|
|
||||||
//umask(0000);
|
|
||||||
|
|
||||||
// This check prevents access to debug front controllers that are deployed by accident to production servers.
|
|
||||||
// Feel free to remove this, extend it, or make something more sophisticated.
|
|
||||||
if (isset($_SERVER['HTTP_CLIENT_IP'])
|
|
||||||
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|
|
||||||
|| !(in_array($_SERVER['REMOTE_ADDR'], ['127.0.0.1', 'fe80::1', '::1'], true) || \PHP_SAPI === 'cli-server')
|
|
||||||
) {
|
|
||||||
header('HTTP/1.0 403 Forbidden');
|
|
||||||
|
|
||||||
exit('You are not allowed to access this file. Check ' . basename(__FILE__) . ' for more information.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$loader = require_once __DIR__ . '/../app/bootstrap.php.cache';
|
|
||||||
Debug::enable();
|
|
||||||
|
|
||||||
require_once __DIR__ . '/../app/AppKernel.php';
|
|
||||||
|
|
||||||
$kernel = new AppKernel('dev', true);
|
|
||||||
$kernel->loadClassCache();
|
|
||||||
$request = Request::createFromGlobals();
|
|
||||||
$response = $kernel->handle($request);
|
|
||||||
$response->send();
|
|
||||||
$kernel->terminate($request, $response);
|
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
{% set t = activity.type %}
|
||||||
|
<div class="item-bloc activity-item{% if itemBlocClass is defined %} {{ itemBlocClass }}{% endif %}">
|
||||||
|
|
||||||
|
<div class="item-row">
|
||||||
|
<div class="wrap-list">
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title">
|
||||||
|
{% if activity.date %}
|
||||||
|
<p class="date-label">
|
||||||
|
{{ activity.date|format_date('short') }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
<h2 class="badge-title">
|
||||||
|
<span class="title_label"></span>
|
||||||
|
<span class="title_action">
|
||||||
|
{{ activity.type.name | localize_translatable_string }}
|
||||||
|
|
||||||
|
{% if activity.emergency %}
|
||||||
|
<span class="badge bg-danger rounded-pill fs-6 float-end">{{ 'Emergency'|trans|upper }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</span>
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="item-row column separator">
|
||||||
|
<div class="wrap-list">
|
||||||
|
{% if activity.location and t.locationVisible %}
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title"><h3>{{ 'location'|trans }}</h3></div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
<p class="wl-item">
|
||||||
|
{{ activity.location.name }}
|
||||||
|
<span>({{ activity.location.locationType.title|localize_translatable_string }})</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if activity.attendee and t.attendeeVisible %}
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title"><h3>{{ 'Attendee'|trans }}</h3></div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
<p class="wl-item">
|
||||||
|
{{ activity.attendee.name|localize_translatable_string }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if activity.sentReceived is not empty and t.sentReceivedVisible %}
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title"><h3>{{ 'Sent received'|trans }}</h3></div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
<p class="wl-item">
|
||||||
|
{{ activity.sentReceived|capitalize|trans }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if activity.user and t.userVisible %}
|
||||||
|
<div class="wl-row">
|
||||||
|
<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 }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% include 'ChillActivityBundle:Activity:concernedGroups.html.twig' with {
|
||||||
|
'context': context,
|
||||||
|
'render': 'wrap-list',
|
||||||
|
'entity': activity,
|
||||||
|
'badge_person': true
|
||||||
|
} %}
|
||||||
|
|
||||||
|
<div class="wrap-list">
|
||||||
|
{%- if activity.reasons is not empty and t.reasonsVisible -%}
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title">
|
||||||
|
<h3>{{ 'Reasons'|trans }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
{% for r in activity.reasons %}
|
||||||
|
<p class="wl-item reasons">
|
||||||
|
{{ r|chill_entity_render_box }}
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{%- if activity.socialIssues is not empty and t.socialIssuesVisible -%}
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title">
|
||||||
|
<h3>{{ 'Social issues'|trans }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
{% for r in activity.socialIssues %}
|
||||||
|
<p class="wl-item social-issues">
|
||||||
|
{{ r|chill_entity_render_box }}
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{%- if activity.socialActions is not empty and t.socialActionsVisible -%}
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title">
|
||||||
|
<h3>{{ 'Social actions'|trans }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
{% for r in activity.socialActions %}
|
||||||
|
<p class="wl-item social-actions">
|
||||||
|
{{ r|chill_entity_render_box }}
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if activity.comment.comment is not empty and is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) %}
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title">
|
||||||
|
<h3>{{ 'Comment'|trans }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
{{ activity.comment|chill_entity_render_box({
|
||||||
|
'disable_markdown': false,
|
||||||
|
'limit_lines': 3,
|
||||||
|
'metadata': false
|
||||||
|
}) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{# Only if ACL SEE_DETAILS AND/OR only on template SHOW ??
|
||||||
|
durationTime
|
||||||
|
travelTime
|
||||||
|
comment
|
||||||
|
documents
|
||||||
|
attendee
|
||||||
|
#}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="item-row separator">
|
||||||
|
<div class="item-col item-meta">
|
||||||
|
{% set notif_counter = chill_count_notifications('Chill\\ActivityBundle\\Entity\\Activity', activity.id) %}
|
||||||
|
{% if notif_counter.total > 0 %}
|
||||||
|
{{ chill_counter_notifications('Chill\\ActivityBundle\\Entity\\Activity', activity.id) }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="item-col">
|
||||||
|
<ul class="record_actions">
|
||||||
|
{{ recordAction }}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
<h2 class="badge-title">
|
|
||||||
<span class="title_label">
|
|
||||||
|
|
||||||
{% if activity.date %}
|
|
||||||
<h3>{{ activity.date|format_date('short') }}</h3>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="duration">
|
|
||||||
{% if activity.durationTime and t.durationTimeVisible %}
|
|
||||||
<p>
|
|
||||||
<abbr class="fa fa-fw fa-hourglass-end" title="{{ 'Duration Time'|trans }}"></abbr>
|
|
||||||
{{ activity.durationTime|date('H:i') }}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if activity.travelTime and t.travelTimeVisible %}
|
|
||||||
<p>
|
|
||||||
<abbr class="fa fa-fw fa-car" title="{{ 'Travel time'|trans }}"></abbr>
|
|
||||||
{{ activity.travelTime|date('H:i') }}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</span>
|
|
||||||
<span class="title_action">
|
|
||||||
|
|
||||||
{{ activity.type.name | localize_translatable_string }}
|
|
||||||
|
|
||||||
{% if activity.emergency %}
|
|
||||||
<span class="badge bg-danger rounded-pill fs-6">{{ 'Emergency'|trans|upper }}</span>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<ul class="small_in_title mt-3">
|
|
||||||
|
|
||||||
{% if activity.sentReceived is not empty and t.sentReceivedVisible %}
|
|
||||||
<li>
|
|
||||||
<span class="item-key">{{ 'Sent received'|trans ~ ' : ' }}</span>
|
|
||||||
<b>{{ activity.sentReceived|capitalize|trans }}</b>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if activity.location and t.locationVisible %}
|
|
||||||
<li>
|
|
||||||
<span class="item-key">{{ 'location'|trans ~ ': ' }}</span>
|
|
||||||
<b>
|
|
||||||
<span>{{ activity.location.locationType.title|localize_translatable_string }}</span>
|
|
||||||
{{ activity.location.name }}
|
|
||||||
</b>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if activity.user and t.userVisible %}
|
|
||||||
<li>
|
|
||||||
<span class="item-key">{{ 'Referrer'|trans ~ ': ' }}</span>
|
|
||||||
<b>{{ activity.user.usernameCanonical }}</b>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<li class="associated-persons">
|
|
||||||
<span class="item-key">{{ 'Participants'|trans ~ ' : ' }}</span>
|
|
||||||
{% for p in activity.personsAssociated %}
|
|
||||||
<span class="badge-person">{{ p|chill_entity_render_box }}</span>
|
|
||||||
{% endfor %}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="list-content my-3">
|
|
||||||
{%- if t.reasonsVisible -%}
|
|
||||||
{%- if activity.reasons is not empty -%}
|
|
||||||
<li class="reasons">
|
|
||||||
{% for r in activity.reasons %}
|
|
||||||
{{ r|chill_entity_render_box }}
|
|
||||||
{% endfor %}
|
|
||||||
</li>
|
|
||||||
{%- endif -%}
|
|
||||||
{% endif %}
|
|
||||||
{%- if t.socialIssuesVisible %}
|
|
||||||
{%- if activity.socialIssues is not empty -%}
|
|
||||||
<li class="social-issues">
|
|
||||||
{% for r in activity.socialIssues %}
|
|
||||||
{{ r|chill_entity_render_box }}
|
|
||||||
{% endfor %}
|
|
||||||
</li>
|
|
||||||
{%- endif -%}
|
|
||||||
{% endif %}
|
|
||||||
{%- if t.socialActionsVisible -%}
|
|
||||||
{%- if activity.socialActions is not empty -%}
|
|
||||||
<li class="social-actions">
|
|
||||||
{% for r in activity.socialActions %}
|
|
||||||
{{ r|chill_entity_render_box }}
|
|
||||||
{% endfor %}
|
|
||||||
</li>
|
|
||||||
{%- endif -%}
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</span>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
{% if context == 'person' and activity.accompanyingPeriod is not empty %}
|
|
||||||
<div class="mt-3">
|
|
||||||
<a class="btn btn-sm btn-outline-primary"
|
|
||||||
title="{{ 'Period number %number%'|trans({'%number%': activity.accompanyingPeriod.id}) }}"
|
|
||||||
href="{{ chill_path_add_return_path(
|
|
||||||
"chill_person_accompanying_course_index",
|
|
||||||
{ 'accompanying_period_id': activity.accompanyingPeriod.id }
|
|
||||||
) }}"><i class="fa fa-random"></i>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
@@ -3,6 +3,16 @@
|
|||||||
{{ path(pathname, parms) }}
|
{{ path(pathname, parms) }}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro insert_onthefly(type, entity, parent = null) %}
|
||||||
|
{% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with {
|
||||||
|
action: 'show', displayBadge: true,
|
||||||
|
targetEntity: { name: type, id: entity.id },
|
||||||
|
buttonText: entity|chill_entity_render_string,
|
||||||
|
isDead: entity.deathdate is defined and entity.deathdate is not null,
|
||||||
|
parent: parent
|
||||||
|
} %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro computeWidth(nbBlocks) %}
|
{% macro computeWidth(nbBlocks) %}
|
||||||
{{ 'flex-basis: ' ~ (100 / nbBlocks)|round(1) ~ '%;' }}
|
{{ 'flex-basis: ' ~ (100 / nbBlocks)|round(1) ~ '%;' }}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
@@ -13,6 +23,7 @@
|
|||||||
{% set blocks = blocks|merge([{
|
{% set blocks = blocks|merge([{
|
||||||
'title': 'Others persons'|trans,
|
'title': 'Others persons'|trans,
|
||||||
'items': entity.persons,
|
'items': entity.persons,
|
||||||
|
'type': 'person',
|
||||||
'path' : 'chill_person_view',
|
'path' : 'chill_person_view',
|
||||||
'key' : 'person_id'
|
'key' : 'person_id'
|
||||||
}]) %}
|
}]) %}
|
||||||
@@ -20,11 +31,13 @@
|
|||||||
{% set blocks = blocks|merge([{
|
{% set blocks = blocks|merge([{
|
||||||
'title': 'Persons in accompanying course'|trans,
|
'title': 'Persons in accompanying course'|trans,
|
||||||
'items': entity.personsAssociated,
|
'items': entity.personsAssociated,
|
||||||
|
'type': 'person',
|
||||||
'path' : 'chill_person_view',
|
'path' : 'chill_person_view',
|
||||||
'key' : 'person_id'
|
'key' : 'person_id'
|
||||||
},{
|
},{
|
||||||
'title': 'Third persons'|trans,
|
'title': 'Third persons'|trans,
|
||||||
'items': entity.personsNotAssociated,
|
'items': entity.personsNotAssociated,
|
||||||
|
'type': 'person',
|
||||||
'path' : 'chill_person_view',
|
'path' : 'chill_person_view',
|
||||||
'key' : 'person_id',
|
'key' : 'person_id',
|
||||||
}]) %}
|
}]) %}
|
||||||
@@ -34,6 +47,7 @@
|
|||||||
{% set blocks = blocks|merge([{
|
{% set blocks = blocks|merge([{
|
||||||
'title': 'Third parties'|trans,
|
'title': 'Third parties'|trans,
|
||||||
'items': entity.thirdParties,
|
'items': entity.thirdParties,
|
||||||
|
'type': 'thirdparty',
|
||||||
'path' : 'chill_crud_3party_3party_view',
|
'path' : 'chill_crud_3party_3party_view',
|
||||||
'key' : 'id',
|
'key' : 'id',
|
||||||
}]) %}
|
}]) %}
|
||||||
@@ -42,11 +56,12 @@
|
|||||||
{% set blocks = blocks|merge([{
|
{% set blocks = blocks|merge([{
|
||||||
'title': 'Users concerned'|trans,
|
'title': 'Users concerned'|trans,
|
||||||
'items': entity.users,
|
'items': entity.users,
|
||||||
|
'type': 'user',
|
||||||
'key' : 'id',
|
'key' : 'id',
|
||||||
}]) %}
|
}]) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if (with_display == 'bloc') %}
|
{% if (render == 'bloc') %}
|
||||||
<div class="{{ context }} flex-bloc concerned-groups">
|
<div class="{{ context }} flex-bloc concerned-groups">
|
||||||
{% for bloc in blocks %}
|
{% for bloc in blocks %}
|
||||||
|
|
||||||
@@ -59,22 +74,12 @@
|
|||||||
<ul class="list-content">
|
<ul class="list-content">
|
||||||
{% for item in bloc.items %}
|
{% for item in bloc.items %}
|
||||||
<li>
|
<li>
|
||||||
{% if bloc.path is defined %}
|
{% if bloc.type == 'user' %}
|
||||||
<a href="{{ _self.href(bloc.path, bloc.key, item.id) }}">
|
<span class="badge-user">
|
||||||
<span class="{% if (badge_person is defined and badge_person == true) %}badge-person{% else %}badge bg-primary{% endif %}">
|
{{ item|chill_entity_render_box({'render': 'raw', 'addAltNames': false }) }}
|
||||||
{{ item|chill_entity_render_box({
|
|
||||||
'render': 'raw',
|
|
||||||
'addAltNames': false
|
|
||||||
}) }}
|
|
||||||
</span>
|
</span>
|
||||||
</a>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="{% if (badge_person is defined and badge_person == true) %}badge-person{% else %}badge bg-primary{% endif %}">
|
{{ _self.insert_onthefly(bloc.type, item) }}
|
||||||
{{ item|chill_entity_render_box({
|
|
||||||
'render': 'raw',
|
|
||||||
'addAltNames': false
|
|
||||||
}) }}
|
|
||||||
</span>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -87,7 +92,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if (with_display == 'row') %}
|
{% if (render == 'row') %}
|
||||||
<div class="concerned-groups">
|
<div class="concerned-groups">
|
||||||
{% for bloc in blocks %}
|
{% for bloc in blocks %}
|
||||||
<div class="group">
|
<div class="group">
|
||||||
@@ -96,20 +101,12 @@
|
|||||||
<ul class="list-content">
|
<ul class="list-content">
|
||||||
{% for item in bloc.items %}
|
{% for item in bloc.items %}
|
||||||
<li>
|
<li>
|
||||||
{% if bloc.path is defined %}
|
{% if bloc.type == 'user' %}
|
||||||
<a href="{{ _self.href(bloc.path, bloc.key, item.id) }}">
|
<span class="badge-user">
|
||||||
<span class="{% if (badge_person is defined and badge_person == true) %}badge-person{% else %}badge bg-primary{% endif %}">
|
{{ item|chill_entity_render_box({'render': 'raw', 'addAltNames': false }) }}
|
||||||
{{ item|chill_entity_render_box({
|
|
||||||
'render': 'raw',
|
|
||||||
'addAltNames': false
|
|
||||||
}) }}
|
|
||||||
</span>
|
</span>
|
||||||
</a>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ item|chill_entity_render_box({
|
{{ _self.insert_onthefly(bloc.type, item) }}
|
||||||
'render': 'raw',
|
|
||||||
'addAltNames': false
|
|
||||||
}) }}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -120,30 +117,24 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if (with_display == 'wrap-list') %}
|
{% if (render == 'wrap-list') %}
|
||||||
<div class="concerned-groups wrap-list">
|
<div class="concerned-groups wrap-list">
|
||||||
{% for bloc in blocks %}
|
{% for bloc in blocks %}
|
||||||
<div class="wl-row">
|
<div class="wl-row">
|
||||||
{% if bloc.items|length > 0 %}
|
{% if bloc.items|length > 0 %}
|
||||||
<div class="wl-col title">
|
<div class="wl-col title">
|
||||||
<h4>{{ bloc.title }}</h4>
|
<h3>{{ bloc.title }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="wl-col list">
|
<div class="wl-col list">
|
||||||
{% for item in bloc.items %}
|
{% for item in bloc.items %}
|
||||||
|
|
||||||
<span class="wl-item {% if (badge_person is defined and badge_person == true) %}badge-person{% else %}badge bg-primary{% endif %}">
|
<span class="wl-item">
|
||||||
{% if bloc.path is defined %}
|
{% if bloc.type == 'user' %}
|
||||||
<a href="{{ _self.href(bloc.path, bloc.key, item.id) }}">
|
<span class="badge-user">
|
||||||
{{ item|chill_entity_render_box({
|
{{ item|chill_entity_render_box({'render': 'raw', 'addAltNames': false }) }}
|
||||||
'render': 'raw',
|
</span>
|
||||||
'addAltNames': false
|
|
||||||
}) }}
|
|
||||||
</a>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ item|chill_entity_render_box({
|
{{ _self.insert_onthefly(bloc.type, item) }}
|
||||||
'render': 'raw',
|
|
||||||
'addAltNames': false
|
|
||||||
}) }}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% block title 'Remove activity'|trans %}
|
{% block title 'Remove activity'|trans %}
|
||||||
|
|
||||||
{% block personcontent %}
|
{% block content %}
|
||||||
{{ include('@ChillMain/Util/confirmation_template.html.twig',
|
{{ include('@ChillMain/Util/confirmation_template.html.twig',
|
||||||
{
|
{
|
||||||
'title' : 'Remove activity'|trans,
|
'title' : 'Remove activity'|trans,
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
<h1>{{ "Update activity"|trans }}</h1>
|
<h1>
|
||||||
<h2 class="chill-green mb-4">{{ entity.type.name|localize_translatable_string }}</h2>
|
{{ "Update activity"|trans }}
|
||||||
|
</h1>
|
||||||
|
<h2 class="badge-title mb-5">
|
||||||
|
<span class="title_label"></span>
|
||||||
|
<span class="title_action">
|
||||||
|
{{ entity.type.name | localize_translatable_string }}
|
||||||
|
</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
{{ form_start(edit_form) }}
|
{{ form_start(edit_form) }}
|
||||||
{{ form_errors(edit_form) }}
|
{{ form_errors(edit_form) }}
|
||||||
@@ -28,7 +35,7 @@
|
|||||||
{{ form_row(edit_form.socialActions) }}
|
{{ form_row(edit_form.socialActions) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if edit_form.socialIssues is defined or edit_form.socialIssues is defined -%}
|
{%- if edit_form.socialIssues is defined or edit_form.socialActions is defined -%}
|
||||||
<div id="social-issues-acc"></div>
|
<div id="social-issues-acc"></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@@ -37,7 +44,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if edit_form.persons is defined or edit_form.thirdParties is defined or edit_form.users is defined -%}
|
{%- if edit_form.persons is defined or edit_form.thirdParties is defined or edit_form.users is defined -%}
|
||||||
<h2 class="chill-red">{{ 'Concerned groups'|trans }}</h2>
|
<h2 class="chill-blue">{{ 'Concerned groups'|trans }}</h2>
|
||||||
|
|
||||||
{%- if edit_form.persons is defined -%}
|
{%- if edit_form.persons is defined -%}
|
||||||
{{ form_widget(edit_form.persons) }}
|
{{ form_widget(edit_form.persons) }}
|
||||||
@@ -53,7 +60,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
<h2 class="chill-red">{{ 'Activity data'|trans }}</h2>
|
<h2 class="chill-blue">{{ 'Activity data'|trans }}</h2>
|
||||||
|
|
||||||
{%- if edit_form.date is defined -%}
|
{%- if edit_form.date is defined -%}
|
||||||
{{ form_row(edit_form.date) }}
|
{{ form_row(edit_form.date) }}
|
||||||
@@ -73,19 +80,22 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if edit_form.comment is defined -%}
|
{%- if edit_form.comment is defined -%}
|
||||||
{# TODO .. public and private #}
|
|
||||||
{{ form_row(edit_form.comment) }}
|
{{ form_row(edit_form.comment) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if edit_form.documents is defined -%}
|
{%- if edit_form.privateComment is defined -%}
|
||||||
{{ form_row(edit_form.documents) }}
|
{{ form_row(edit_form.privateComment) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if edit_form.attendee is defined -%}
|
{%- if edit_form.attendee is defined -%}
|
||||||
{{ form_row(edit_form.attendee) }}
|
{{ form_row(edit_form.attendee) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{# TODO .. status #}
|
{%- if edit_form.documents is defined -%}
|
||||||
|
{{ form_row(edit_form.documents) }}
|
||||||
|
<div data-docgen-template-picker="data-docgen-template-picker" data-entity-class="Chill\ActivityBundle\Entity\Activity" data-entity-id="{{ entity.id }}"></div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% set person_id = null %}
|
{% set person_id = null %}
|
||||||
{% if entity.person %}
|
{% if entity.person %}
|
||||||
@@ -97,16 +107,24 @@
|
|||||||
{% set accompanying_course_id = accompanyingCourse.id %}
|
{% set accompanying_course_id = accompanyingCourse.id %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<ul class="record_actions sticky-form-buttons">
|
<ul class="record_actions sticky-form-buttons">
|
||||||
<li class="cancel">
|
<li class="cancel">
|
||||||
<a href="{{ path('chill_activity_activity_show', { 'id': entity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id } ) }}" class="btn btn-cancel">
|
<a href="{{ path('chill_activity_activity_show', { 'id': entity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id } ) }}" class="btn btn-cancel">
|
||||||
{{ 'Cancel'|trans }}
|
{{ 'Cancel'|trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<button class="btn btn-update" type="submit">{{ 'Save'|trans }}</button>
|
<button class="btn btn-update" type="submit">{{ 'Save'|trans }}</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
{{ form_end(edit_form) }}
|
|
||||||
|
|
||||||
|
{{ form_end(edit_form) }}
|
||||||
{# {{ form(delete_form) }} #}
|
{# {{ form(delete_form) }} #}
|
||||||
|
|
||||||
|
{% block js %}
|
||||||
|
{{ encore_entry_script_tags('mod_pickentity_type') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
{{ encore_entry_link_tags('mod_pickentity_type') }}
|
||||||
|
{% endblock %}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
{{ encore_entry_link_tags('mod_async_upload') }}
|
{{ encore_entry_script_tags('mod_async_upload') }}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.addEventListener('DOMContentLoaded', function (e) {
|
window.addEventListener('DOMContentLoaded', function (e) {
|
||||||
chill.displayAlertWhenLeavingModifiedForm('form[name="{{ edit_form.vars.form.vars.name }}"]',
|
chill.displayAlertWhenLeavingModifiedForm('form[name="{{ edit_form.vars.form.vars.name }}"]',
|
||||||
@@ -30,4 +30,5 @@
|
|||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
{{ encore_entry_link_tags('mod_async_upload') }}
|
{{ encore_entry_link_tags('mod_async_upload') }}
|
||||||
{{ encore_entry_link_tags('vue_activity') }}
|
{{ encore_entry_link_tags('vue_activity') }}
|
||||||
|
{{ encore_entry_link_tags('page_edit_activity') }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
{% block title 'Update activity'|trans %}
|
{% block title 'Update activity'|trans %}
|
||||||
|
|
||||||
{% block personcontent %}
|
{% block content %}
|
||||||
<div class="activity-edit">
|
<div class="activity-edit">
|
||||||
|
|
||||||
<div id="activity"></div> {# <=== vue component #}
|
<div id="activity"></div> {# <=== vue component #}
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ encore_entry_link_tags('mod_async_upload') }}
|
{{ encore_entry_script_tags('mod_async_upload') }}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.addEventListener('DOMContentLoaded', function (e) {
|
window.addEventListener('DOMContentLoaded', function (e) {
|
||||||
chill.displayAlertWhenLeavingModifiedForm('form[name="{{ edit_form.vars.form.vars.name }}"]',
|
chill.displayAlertWhenLeavingModifiedForm('form[name="{{ edit_form.vars.form.vars.name }}"]',
|
||||||
|
|||||||
@@ -1,3 +1,83 @@
|
|||||||
|
{% macro recordAction(activity, context = null, person_id = null, accompanying_course_id = null) %}
|
||||||
|
{% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) %}
|
||||||
|
{% if no_action is not defined or no_action == false %}
|
||||||
|
<li>
|
||||||
|
{% set showGroup = activity.accompanyingPeriod is not null and activity.accompanyingPeriod.hasUser and activity.accompanyingPeriod.user is not same as(app.user) %}
|
||||||
|
<div class="{% if showGroup %}btn-group{% endif %}" {% if showGroup %}role="group"{% endif %}>
|
||||||
|
{% if showGroup %}
|
||||||
|
<button id="btnGroupNotifyButtons" type="button" class="btn btn-notify dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
{{ 'notification.Notify'|trans }}
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="btnGroupNotifyButtons">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': activity.id, 'tos': [activity.accompanyingPeriod.user.id]}) }}">
|
||||||
|
{{ 'notification.Notify referrer'|trans }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': activity.id}) }}">
|
||||||
|
{{ 'notification.Notify any'|trans }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
<a class="btn btn-notify" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': activity.id}) }}">
|
||||||
|
{{ 'notification.Notify'|trans }}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if context == 'person' and activity.accompanyingPeriod is not empty %}
|
||||||
|
{#
|
||||||
|
Disable person_id in following links, for redirect to accompanyingCourse context
|
||||||
|
#}
|
||||||
|
{% set person_id = null %}
|
||||||
|
{% set accompanying_course_id = activity.accompanyingPeriod.id %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ chill_path_add_return_path('chill_activity_activity_list',{
|
||||||
|
'accompanying_period_id': accompanying_course_id
|
||||||
|
}) }}"
|
||||||
|
class="btn btn-primary"
|
||||||
|
title="{{ 'See activity in accompanying course context'|trans }}">
|
||||||
|
<i class="fa fa-random fa-fw"></i>
|
||||||
|
{{ 'Period number %number%'|trans({'%number%': accompanying_course_id}) }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('chill_activity_activity_show', {'id': activity.id,
|
||||||
|
'person_id': person_id,
|
||||||
|
'accompanying_period_id': accompanying_course_id
|
||||||
|
}) }}"
|
||||||
|
class="btn btn-show"
|
||||||
|
title="{{ 'Show'|trans }}"></a>
|
||||||
|
</li>
|
||||||
|
{% if no_action is not defined or no_action == false %}
|
||||||
|
{% if is_granted('CHILL_ACTIVITY_UPDATE', activity) %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('chill_activity_activity_edit', {'id': activity.id,
|
||||||
|
'person_id': person_id,
|
||||||
|
'accompanying_period_id': accompanying_course_id
|
||||||
|
}) }}"
|
||||||
|
class="btn btn-update"
|
||||||
|
title="{{ 'Edit'|trans }}"></a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if is_granted('CHILL_ACTIVITY_DELETE', activity) %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('chill_activity_activity_delete', {'id': activity.id,
|
||||||
|
'person_id': person_id,
|
||||||
|
'accompanying_period_id': accompanying_course_id
|
||||||
|
}) }}"
|
||||||
|
class="btn btn-delete"
|
||||||
|
title="{{ 'Delete'|trans }}"></a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
<div class="context-{{ context }}">
|
<div class="context-{{ context }}">
|
||||||
|
|
||||||
{% if activities|length == 0 %}
|
{% if activities|length == 0 %}
|
||||||
@@ -8,56 +88,10 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<div class="flex-table activity-list">
|
<div class="flex-table activity-list">
|
||||||
{% for activity in activities %}
|
{% for activity in activities %}
|
||||||
{% set t = activity.type %}
|
{% include 'ChillActivityBundle:Activity:_list_item.html.twig' with {
|
||||||
<div class="item-bloc">
|
'context': context,
|
||||||
<div class="item-row">
|
'recordAction': _self.recordAction(activity, context, person_id, accompanying_course_id)
|
||||||
{% include '@ChillActivity/Activity/activity-badge-title.html.twig' %}
|
} %}
|
||||||
</div>
|
|
||||||
|
|
||||||
{% if activity.comment.comment is not empty
|
|
||||||
or activity.persons|length > 0
|
|
||||||
or activity.thirdParties|length > 0
|
|
||||||
or activity.users|length > 0
|
|
||||||
%}
|
|
||||||
<div class="main">
|
|
||||||
{% if activity.comment.comment is not empty %}
|
|
||||||
{{ activity.comment|chill_entity_render_box({
|
|
||||||
'disable_markdown': false,
|
|
||||||
'limit_lines': 3,
|
|
||||||
'metadata': false,
|
|
||||||
}) }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% include 'ChillActivityBundle:Activity:concernedGroups.html.twig' with {
|
|
||||||
'context': context,
|
|
||||||
'with_display': 'row',
|
|
||||||
'entity': activity,
|
|
||||||
'badge_person': true
|
|
||||||
} %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="item-row separator">
|
|
||||||
<div class="updatedBy"></div>
|
|
||||||
<ul class="record_actions">
|
|
||||||
<li>
|
|
||||||
<a href="{{ path('chill_activity_activity_show', { 'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}"
|
|
||||||
class="btn btn-sm btn-show "></a>
|
|
||||||
</li>
|
|
||||||
{% if no_action is not defined or no_action == false %}
|
|
||||||
<li>
|
|
||||||
<a href="{{ path('chill_activity_activity_edit', { 'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}"
|
|
||||||
class="btn btn-sm btn-update "></a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="{{ path('chill_activity_activity_delete', { 'id': activity.id, 'person_id' : person_id, 'accompanying_period_id': accompanying_course_id } ) }}"
|
|
||||||
class="btn btn-sm btn-delete "></a>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -4,6 +4,17 @@
|
|||||||
|
|
||||||
{% block title %}{{ 'Activity list' |trans }}{% endblock title %}
|
{% block title %}{{ 'Activity list' |trans }}{% endblock title %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block js %}
|
||||||
|
{{ parent() }}
|
||||||
|
{{ encore_entry_script_tags('mod_notification_toggle_read_status') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
{{ parent() }}
|
||||||
|
{{ encore_entry_link_tags('mod_notification_toggle_read_status') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{% set person_id = null %}
|
{% set person_id = null %}
|
||||||
@@ -23,8 +34,8 @@
|
|||||||
{% if is_granted('CHILL_ACTIVITY_CREATE', accompanyingCourse) %}
|
{% if is_granted('CHILL_ACTIVITY_CREATE', accompanyingCourse) %}
|
||||||
<ul class="record_actions sticky-form-buttons">
|
<ul class="record_actions sticky-form-buttons">
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ path('chill_activity_activity_new', {'person_id': person_id, 'accompanying_period_id': accompanying_course_id}) }}" class="btn btn-create">
|
<a href="{{ path('chill_activity_activity_new', {'person_id': person_id, 'accompanying_period_id': accompanying_course_id}) }}"
|
||||||
{{ 'Create'|trans }}
|
class="btn btn-create">{{ 'Create'|trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -20,7 +20,17 @@
|
|||||||
|
|
||||||
{% block title %}{{ 'Activity list' |trans }}{% endblock title %}
|
{% block title %}{{ 'Activity list' |trans }}{% endblock title %}
|
||||||
|
|
||||||
{% block personcontent %}
|
{% block js %}
|
||||||
|
{{ parent() }}
|
||||||
|
{{ encore_entry_script_tags('mod_notification_toggle_read_status') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
{{ parent() }}
|
||||||
|
{{ encore_entry_link_tags('mod_notification_toggle_read_status') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
{% set person_id = null %}
|
{% set person_id = null %}
|
||||||
{% if person %}
|
{% if person %}
|
||||||
|
|||||||
@@ -3,10 +3,88 @@
|
|||||||
{% set t = activity.type %}
|
{% set t = activity.type %}
|
||||||
|
|
||||||
<a href="{{ path('chill_activity_activity_show', { 'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}"
|
<a href="{{ path('chill_activity_activity_show', { 'id': activity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}"
|
||||||
class="badge-link" title="{{ 'Show the activity'|trans }}">
|
class="dashboard-link" title="{{ 'Show the activity'|trans }}">
|
||||||
|
|
||||||
{% include '@ChillActivity/Activity/activity-badge-title.html.twig' %}
|
<div class="dashboard">
|
||||||
|
<span class="title_label"></span>
|
||||||
|
<span class="title_action">
|
||||||
|
|
||||||
|
{%- if activity.date -%}
|
||||||
|
<p class="date-label">{{ activity.date|format_date('short') }}</p>
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
<span class="like-h3">{{ activity.type.name|localize_translatable_string }}</span>
|
||||||
|
|
||||||
|
{% if activity.emergency %}
|
||||||
|
<span class="badge bg-danger rounded-pill fs-6">{{ 'Emergency'|trans|upper }}</span>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<ul class="small_in_title mt-3">
|
||||||
|
|
||||||
|
{% if activity.sentReceived is not empty and t.sentReceivedVisible %}
|
||||||
|
<li>
|
||||||
|
<span class="item-key">{{ 'Sent received'|trans ~ ' : ' }}</span>
|
||||||
|
<b>{{ activity.sentReceived|capitalize|trans }}</b>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if activity.location and t.locationVisible %}
|
||||||
|
<li>
|
||||||
|
<span class="item-key">{{ 'location'|trans ~ ': ' }}</span>
|
||||||
|
<b>
|
||||||
|
<span>{{ activity.location.locationType.title|localize_translatable_string }}</span>
|
||||||
|
{{ activity.location.name }}
|
||||||
|
</b>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if activity.user and t.userVisible %}
|
||||||
|
<li>
|
||||||
|
<span class="item-key">{{ 'Referrer'|trans ~ ': ' }}</span>
|
||||||
|
<b>{{ activity.user|chill_entity_render_box}}</b>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<li class="associated-persons">
|
||||||
|
<span class="item-key">{{ 'Participants'|trans ~ ' : ' }}</span>
|
||||||
|
{% for p in activity.personsAssociated %}
|
||||||
|
<span class="badge-person">{{ p|chill_entity_render_box({'addAgeBadge': true}) }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="list-content my-3">
|
||||||
|
{%- if t.reasonsVisible -%}
|
||||||
|
{%- if activity.reasons is not empty -%}
|
||||||
|
<li class="reasons">
|
||||||
|
{% for r in activity.reasons %}
|
||||||
|
{{ r|chill_entity_render_box }}
|
||||||
|
{% endfor %}
|
||||||
|
</li>
|
||||||
|
{%- endif -%}
|
||||||
|
{% endif %}
|
||||||
|
{%- if t.socialIssuesVisible %}
|
||||||
|
{%- if activity.socialIssues is not empty -%}
|
||||||
|
<li class="social-issues">
|
||||||
|
{% for r in activity.socialIssues %}
|
||||||
|
{{ r|chill_entity_render_box }}
|
||||||
|
{% endfor %}
|
||||||
|
</li>
|
||||||
|
{%- endif -%}
|
||||||
|
{% endif %}
|
||||||
|
{%- if t.socialActionsVisible -%}
|
||||||
|
{%- if activity.socialActions is not empty -%}
|
||||||
|
<li class="social-actions">
|
||||||
|
{% for r in activity.socialActions %}
|
||||||
|
{{ r|chill_entity_render_box }}
|
||||||
|
{% endfor %}
|
||||||
|
</li>
|
||||||
|
{%- endif -%}
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,10 +1,16 @@
|
|||||||
<h1>{{ "Activity creation"|trans ~ ' :' }}</h1>
|
<h1>
|
||||||
<h2 class="chill-green mb-4">{{ entity.type.name|localize_translatable_string }}</h2>
|
{{ "Activity creation"|trans }}
|
||||||
|
</h1>
|
||||||
|
<h2 class="badge-title mb-5">
|
||||||
|
<span class="title_label"></span>
|
||||||
|
<span class="title_action">
|
||||||
|
{{ entity.type.name | localize_translatable_string }}
|
||||||
|
</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
{{ form_errors(form) }}
|
{{ form_errors(form) }}
|
||||||
|
|
||||||
|
|
||||||
{%- if form.emergency is defined -%}
|
{%- if form.emergency is defined -%}
|
||||||
{{ form_row(form.emergency) }}
|
{{ form_row(form.emergency) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -29,7 +35,7 @@
|
|||||||
{{ form_row(form.socialActions) }}
|
{{ form_row(form.socialActions) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if form.socialIssues is defined or form.socialIssues is defined -%}
|
{%- if form.socialIssues is defined or form.socialActions is defined -%}
|
||||||
<div id="social-issues-acc"></div>
|
<div id="social-issues-acc"></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@@ -39,7 +45,7 @@
|
|||||||
|
|
||||||
{%- if form.persons is defined or form.thirdParties is defined or form.users is defined -%}
|
{%- if form.persons is defined or form.thirdParties is defined or form.users is defined -%}
|
||||||
|
|
||||||
<h2 class="chill-red">{{ 'Concerned groups'|trans }}</h2>
|
<h2 class="chill-blue">{{ 'Concerned groups'|trans }}</h2>
|
||||||
|
|
||||||
{%- if form.persons is defined -%}
|
{%- if form.persons is defined -%}
|
||||||
{{ form_widget(form.persons) }}
|
{{ form_widget(form.persons) }}
|
||||||
@@ -55,7 +61,7 @@
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<h2 class="chill-red">{{ 'Activity data'|trans }}</h2>
|
<h2 class="chill-blue">{{ 'Activity data'|trans }}</h2>
|
||||||
|
|
||||||
{%- if form.date is defined -%}
|
{%- if form.date is defined -%}
|
||||||
{{ form_row(form.date) }}
|
{{ form_row(form.date) }}
|
||||||
@@ -75,18 +81,22 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if form.comment is defined -%}
|
{%- if form.comment is defined -%}
|
||||||
{# TODO .. public and private #}
|
|
||||||
{{ form_row(form.comment) }}
|
{{ form_row(form.comment) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if form.documents is defined -%}
|
{%- if form.privateComment is defined -%}
|
||||||
{{ form_row(form.documents) }}
|
{{ form_row(form.privateComment) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{%- if form.attendee is defined -%}
|
{%- if form.attendee is defined -%}
|
||||||
{{ form_row(form.attendee) }}
|
{{ form_row(form.attendee) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{%- if form.documents is defined -%}
|
||||||
|
{{ form_row(form.documents) }}
|
||||||
|
<div data-docgen-template-picker="data-docgen-template-picker" data-entity-class="Chill\ActivityBundle\Entity\Activity" data-entity-id="{{ entity.id }}"></div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{# TODO .. status #}
|
{# TODO .. status #}
|
||||||
|
|
||||||
<ul class="record_actions sticky-form-buttons">
|
<ul class="record_actions sticky-form-buttons">
|
||||||
@@ -103,9 +113,17 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<button class="btn btn-create" type="submit">
|
<button class="btn btn-save" type="submit">
|
||||||
{{ 'Create'|trans }}
|
{{ 'Create'|trans }}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
{{ form_end(form) }}
|
{{ form_end(form) }}
|
||||||
|
|
||||||
|
{% block js %}
|
||||||
|
{{ encore_entry_script_tags('mod_pickentity_type') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
{{ encore_entry_link_tags('mod_pickentity_type') }}
|
||||||
|
{% endblock %}
|
||||||
@@ -17,10 +17,6 @@
|
|||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
{{ encore_entry_script_tags('mod_async_upload') }}
|
{{ encore_entry_script_tags('mod_async_upload') }}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.addEventListener('DOMContentLoaded', function (e) {
|
|
||||||
chill.displayAlertWhenLeavingUnsubmittedForm('form[name="{{ form.vars.form.vars.name }}"]',
|
|
||||||
'{{ "You are going to leave a page with unsubmitted data. Are you sure you want to leave ?"|trans }}');
|
|
||||||
});
|
|
||||||
window.activity = {{ activity_json|json_encode|raw }};
|
window.activity = {{ activity_json|json_encode|raw }};
|
||||||
{% if default_location is not null %}window.default_location_id = {{ default_location.id }}{% endif %};
|
{% if default_location is not null %}window.default_location_id = {{ default_location.id }}{% endif %};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
{% block title 'Activity creation' |trans %}
|
{% block title 'Activity creation' |trans %}
|
||||||
|
|
||||||
{% block personcontent %}
|
{% block content %}
|
||||||
<div class="activity-new">
|
<div class="activity-new">
|
||||||
|
|
||||||
<div id="activity"></div> {# <=== vue component #}
|
<div id="activity"></div> {# <=== vue component #}
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ encore_entry_link_tags('mod_async_upload') }}
|
{{ encore_entry_script_tags('mod_async_upload') }}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.addEventListener('DOMContentLoaded', function (e) {
|
window.addEventListener('DOMContentLoaded', function (e) {
|
||||||
chill.displayAlertWhenLeavingUnsubmittedForm('form[name="{{ form.vars.form.vars.name }}"]',
|
chill.displayAlertWhenLeavingUnsubmittedForm('form[name="{{ form.vars.form.vars.name }}"]',
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
'activityData': activityData
|
'activityData': activityData
|
||||||
}) }}">
|
}) }}">
|
||||||
|
|
||||||
<div class="bloc btn btn-primary btn-lg btn-block">
|
<div class="btn btn-primary">
|
||||||
{{ activityType.name|localize_translatable_string }}
|
{{ activityType.name|localize_translatable_string }}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
|
|
||||||
{% block title 'Activity creation'|trans %}
|
{% block title 'Activity creation'|trans %}
|
||||||
|
|
||||||
{% block personcontent %}
|
{% block content %}
|
||||||
{% include 'ChillActivityBundle:Activity:selectType.html.twig' %}
|
{% include 'ChillActivityBundle:Activity:selectType.html.twig' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,128 +1,204 @@
|
|||||||
{%- set t = entity.type -%}
|
{%- set t = entity.type -%}
|
||||||
|
{% set userId = app.user.id %}
|
||||||
{%- import "@ChillDocStore/Macro/macro.html.twig" as m -%}
|
{%- import "@ChillDocStore/Macro/macro.html.twig" as m -%}
|
||||||
|
|
||||||
<h1>
|
<h1>{{ "Activity"|trans }}</h1>
|
||||||
{{ "Activity"|trans }}
|
|
||||||
{%- if t.emergencyVisible and entity.emergency -%}
|
|
||||||
<span class="badge bg-secondary">
|
|
||||||
{{- 'Emergency'|trans -}}
|
|
||||||
</span>
|
|
||||||
{%- endif -%}
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<dl class="chill_view_data">
|
<div class="flex-table">
|
||||||
|
<div class="item-bloc">
|
||||||
|
|
||||||
<dt class="inline">{{ 'by'|trans|capitalize }}</dt>
|
<div class="item-row">
|
||||||
<dd>{{ entity.user }}</dd>
|
<div class="wrap-list">
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title">
|
||||||
|
{% if entity.date %}
|
||||||
|
<p class="date-label">
|
||||||
|
{{ entity.date|format_date('short') }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="wl-col list">
|
||||||
|
<h2 class="badge-title">
|
||||||
|
<span class="title_label"></span>
|
||||||
|
<span class="title_action">
|
||||||
|
{{ entity.type.name | localize_translatable_string }}
|
||||||
|
{% if entity.emergency %}
|
||||||
|
<span class="badge bg-danger rounded-pill fs-6 float-end">{{ 'Emergency'|trans|upper }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</span>
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<dt class="inline">{{ 'Type'|trans }}</dt>
|
<div class="item-row separator">
|
||||||
<dd>{{ entity.type.name | localize_translatable_string }}</dd>
|
<dl class="chill_view_data">
|
||||||
|
<dt class="inline">{{ 'Referrer'|trans|capitalize }}</dt>
|
||||||
|
<dd>{{ entity.user|chill_entity_render_box }}</dd>
|
||||||
|
|
||||||
{%- if entity.scope -%}
|
{%- if entity.scope -%}
|
||||||
<dt class="inline">{{ 'Scope'|trans }}</dt>
|
<dt class="inline">{{ 'Scope'|trans }}</dt>
|
||||||
<dd><span class="scope">{{ entity.scope.name|localize_translatable_string }}</span></dd>
|
<dd>
|
||||||
{% endif %}
|
<span class="scope">{{ entity.scope.name|localize_translatable_string }}</span>
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if t.socialIssuesVisible %}
|
{% if t.socialIssuesVisible %}
|
||||||
<dt class="inline">{{ 'Social issues'|trans }}</dt>
|
<dt class="inline">{{ 'Social issues'|trans }}</dt>
|
||||||
<dd>
|
<dd>
|
||||||
{% if entity.socialIssues|length == 0 %}
|
{% if entity.socialIssues|length == 0 %}
|
||||||
<p class="chill-no-data-statement">{{ 'No social issues associated'|trans }}</p>
|
<p class="chill-no-data-statement">{{ 'No social issues associated'|trans }}</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for si in entity.socialIssues %}{{ si|chill_entity_render_box }}{% endfor %}
|
{% for si in entity.socialIssues %}{{ si|chill_entity_render_box }}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</dd>
|
</dd>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if t.socialActionsVisible %}
|
{% if t.socialActionsVisible %}
|
||||||
<dt class="inline">{{ 'Social actions'|trans }}</dt>
|
<dt class="inline">{{ 'Social actions'|trans }}</dt>
|
||||||
<dd>
|
<dd>
|
||||||
{% if entity.socialActions|length == 0 %}
|
{% if entity.socialActions|length == 0 %}
|
||||||
<p class="chill-no-data-statement">{{ 'No social actions associated'|trans }}</p>
|
<span class="chill-no-data-statement">{{ 'No social actions associated'|trans }}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for sa in entity.socialActions %}{{ sa|chill_entity_render_box }}{% endfor %}
|
{% for sa in entity.socialActions %}{{ sa|chill_entity_render_box }}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</dd>
|
</dd>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if t.reasonsVisible %}
|
{% if t.reasonsVisible %}
|
||||||
<dt class="inline">{{ 'Reasons'|trans }}</dt>
|
<dt class="inline">{{ 'Reasons'|trans }}</dt>
|
||||||
{%- if entity.reasons is empty -%}
|
<dd>
|
||||||
<dd><span class="chill-no-data-statement">{{ 'No reason associated'|trans }}</span></dd>
|
{%- if entity.reasons is empty -%}
|
||||||
{%- else -%}
|
<span class="chill-no-data-statement">{{ 'No reason associated'|trans }}</span>
|
||||||
<dd>{% for r in entity.reasons %}{{ r|chill_entity_render_box }} {% endfor %}</dd>
|
{%- else -%}
|
||||||
{%- endif -%}
|
{% for r in entity.reasons %}{{ r|chill_entity_render_box }}{% endfor %}
|
||||||
{% endif %}
|
{%- endif -%}
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h2 class="chill-red">{{ 'Concerned groups'|trans }}</h2>
|
</div>
|
||||||
{% include 'ChillActivityBundle:Activity:concernedGroups.html.twig' with {'context': context, 'with_display': 'bloc', 'badge_person': 'true' } %}
|
</div>
|
||||||
|
|
||||||
<h2 class="chill-red">{{ 'Activity data'|trans }}</h2>
|
<h2 class="chill-blue">{{ 'Concerned groups'|trans }}</h2>
|
||||||
|
|
||||||
<dt class="inline">{{ 'Date'|trans }}</dt>
|
{% include 'ChillActivityBundle:Activity:concernedGroups.html.twig' with {
|
||||||
<dd>{{ entity.date|format_date('long') }}</dd>
|
'context': context,
|
||||||
|
'render': 'bloc',
|
||||||
|
'badge_person': true
|
||||||
|
} %}
|
||||||
|
|
||||||
{% if t.locationVisible %}
|
<h2 class="chill-blue">{{ 'Activity data'|trans }}</h2>
|
||||||
<dt class="inline">{{ 'Activity location'|trans }}</dt>
|
|
||||||
<dd>
|
<div class="flex-table">
|
||||||
{% if entity.location is not null %}
|
<div class="item-bloc">
|
||||||
<p>
|
|
||||||
{{ entity.location.name }}
|
<dl class="chill_view_data">
|
||||||
<span> ({{ entity.location.locationType.title|localize_translatable_string }})</span>
|
<dt class="inline">{{ 'Date'|trans }}</dt>
|
||||||
</p>
|
<dd>{{ entity.date|format_date('long') }}</dd>
|
||||||
{{ entity.location.address|chill_entity_render_box }}
|
|
||||||
{% else %}
|
{% if t.locationVisible %}
|
||||||
<span class="chill-no-data-statement">{{ 'No address given'|trans }}</span>
|
<dt class="inline">{{ 'Activity location'|trans }}</dt>
|
||||||
|
<dd>
|
||||||
|
{% if entity.location is not null %}
|
||||||
|
<p>
|
||||||
|
{{ entity.location.name }}
|
||||||
|
<span>({{ entity.location.locationType.title|localize_translatable_string }})</span>
|
||||||
|
</p>
|
||||||
|
<div class="ms-3">{{ entity.location.address|chill_entity_render_box }}</div>
|
||||||
|
{% else %}
|
||||||
|
<span class="chill-no-data-statement">{{ 'No address given'|trans }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</dd>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</dd>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if t.durationTimeVisible %}
|
{% if t.durationTimeVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) %}
|
||||||
<dt class="inline">{{ 'Duration Time'|trans }}</dt>
|
<dt class="inline">{{ 'Duration Time'|trans }}</dt>
|
||||||
<dd>{% if entity.durationTime is not null %}
|
<dd>
|
||||||
{{ entity.durationTime|date('H:i') }}
|
{% if entity.durationTime is not null %}
|
||||||
{% else %}
|
{{ entity.durationTime|date('H:i') }}
|
||||||
{{ 'None'|trans|capitalize }}
|
{% else %}
|
||||||
{% endif %}
|
<span class="chill-no-data-statement">{{ 'None'|trans|capitalize }}</span>
|
||||||
</dd>
|
{% endif %}
|
||||||
{% endif %}
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if t.travelTimeVisible %}
|
{% if t.travelTimeVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) %}
|
||||||
<dt class="inline">{{ 'Travel time'|trans }}</dt>
|
<dt class="inline">{{ 'Travel time'|trans }}</dt>
|
||||||
<dd>{% if entity.travelTime is not null %}
|
<dd>
|
||||||
{{ entity.travelTime|date('H:i') }}
|
{% if entity.travelTime is not null %}
|
||||||
{% else %}
|
{{ entity.travelTime|date('H:i') }}
|
||||||
{{ 'None'|trans|capitalize }}
|
{% else %}
|
||||||
{% endif %}
|
<span class="chill-no-data-statement">{{ 'None'|trans|capitalize }}</span>
|
||||||
</dd>
|
{% endif %}
|
||||||
{% endif %}
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if t.commentVisible %}
|
{% if t.commentVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) %}
|
||||||
<dt class="inline">{{ 'activity.comment'|trans }}</dt>
|
<dt class="inline">{{ 'activity.comment'|trans }}</dt>
|
||||||
{%- if entity.comment.empty -%}
|
<dd>
|
||||||
<dd><span class="chill-no-data-statement">{{ 'No comment associated'|trans }}</span></dd>
|
{%- if entity.comment.empty -%}
|
||||||
{%- else -%}
|
<span class="chill-no-data-statement">{{ 'No comment associated'|trans }}</span>
|
||||||
<dd>{{ entity.comment|chill_entity_render_box }}</dd>
|
{%- else -%}
|
||||||
{%- endif -%}
|
{{ entity.comment|chill_entity_render_box }}
|
||||||
{% endif %}
|
{%- endif -%}
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if t.documentsVisible and entity.documents|length > 0 %}
|
{% if t.privateCommentVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) and entity.privateComment.hasCommentForUser(app.user) %}
|
||||||
<dt>{{ 'Documents'|trans }}</dt>
|
{% if t.privateCommentLabel is not empty %}
|
||||||
<dd>
|
<dt class="inline">{{ t.privateCommentLabel }}</dt>
|
||||||
<ul>
|
{% else %}
|
||||||
{% for d in entity.documents %}
|
<dt class="inline">{{ 'Private comment'|trans }}</dt>
|
||||||
<li>{{ m.download_button(d) }}</li>
|
{% endif %}
|
||||||
{% endfor %}
|
<dd>
|
||||||
</ul>
|
<section class="chill-entity entity-comment-embeddable">
|
||||||
</dd>
|
<blockquote class="chill-user-quote private-quote">
|
||||||
{% endif %}
|
{{ entity.privateComment.comments[userId] }}
|
||||||
|
</blockquote>
|
||||||
|
</section>
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if t.attendeeVisible %}
|
{% if t.documentsVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) %}
|
||||||
<dt class="inline">{{ 'Attendee'|trans }}</dt>
|
<dt class="inline">{{ 'Documents'|trans }}</dt>
|
||||||
<dd>{% if entity.attendee is not null %}{% if entity.attendee %}{{ 'present'|trans|capitalize }} {% else %} {{ 'not present'|trans|capitalize }}{% endif %}{% else %}{{ 'None'|trans|capitalize }}{% endif %}</dd>
|
<dd>
|
||||||
{% endif %}
|
{% if entity.documents|length > 0 %}
|
||||||
|
<ul>
|
||||||
|
{% for d in entity.documents %}
|
||||||
|
<li>{{ d.title }}{{ m.download_button(d) }}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
<span class="chill-no-data-statement">{{ 'Any document found'|trans }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
</dl>
|
{% if t.attendeeVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) %}
|
||||||
|
<dt class="inline">{{ 'Attendee'|trans }}</dt>
|
||||||
|
<dd>
|
||||||
|
{% if entity.attendee is not null %}
|
||||||
|
{{ entity.attendee.name|localize_translatable_string }}
|
||||||
|
{% else %}
|
||||||
|
<span class="chill-no-data-statement">{{ 'None'|trans|capitalize }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="notification notification-list">
|
||||||
|
{% set notifications = chill_list_notifications('Chill\\ActivityBundle\\Entity\\Activity', entity.id) %}
|
||||||
|
{% if notifications is not empty %}
|
||||||
|
{{ notifications|raw }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
{% set person_id = null %}
|
{% set person_id = null %}
|
||||||
{% if person %}
|
{% if person %}
|
||||||
@@ -141,22 +217,41 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="btn btn-update" href="{{ path('chill_activity_activity_edit', { 'id': entity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}">
|
{% set showGroup = entity.accompanyingPeriod is not null and entity.accompanyingPeriod.hasUser and entity.accompanyingPeriod.user is not same as(app.user) %}
|
||||||
{{ 'Edit'|trans }}
|
<div class="{% if showGroup %}btn-group{% endif %}" {% if showGroup %}role="group"{% endif %}>
|
||||||
</a>
|
{% if showGroup %}
|
||||||
|
<button id="btnGroupNotifyButtons" type="button" class="btn btn-notify dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
{{ 'notification.Notify'|trans }}
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="btnGroupNotifyButtons">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': entity.id, 'tos': [entity.accompanyingPeriod.user.id]}) }}">
|
||||||
|
{{ 'notification.Notify referrer'|trans }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': entity.id}) }}">
|
||||||
|
{{ 'notification.Notify any'|trans }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
<a class="btn btn-notify" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': entity.id}) }}">
|
||||||
|
{{ 'notification.Notify'|trans }}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{% if is_granted('CHILL_ACTIVITY_UPDATE', entity) %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('chill_activity_activity_edit', { 'id': entity.id, 'person_id': person_id, 'accompanying_period_id': accompanying_course_id }) }}"
|
||||||
|
class="btn btn-update">{{ 'Edit'|trans }}</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if is_granted('CHILL_ACTIVITY_DELETE', entity) %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('chill_activity_activity_delete', { 'id': entity.id, 'person_id' : person_id, 'accompanying_period_id': accompanying_course_id } ) }}"
|
||||||
|
class="btn btn-delete" title="{{ 'Delete'|trans }}"></a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{# TODO
|
|
||||||
{% if is_granted('CHILL_ACTIVITY_DELETE', entity) %}
|
|
||||||
#}
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="{{ path('chill_activity_activity_delete', { 'id': entity.id, 'person_id' : person_id, 'accompanying_period_id': accompanying_course_id } ) }}" class="btn btn-delete">
|
|
||||||
{{ 'Delete'|trans }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
{#
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
#}
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -4,12 +4,26 @@
|
|||||||
|
|
||||||
{% block title 'Show the activity'|trans %}
|
{% block title 'Show the activity'|trans %}
|
||||||
|
|
||||||
|
{% block js %}
|
||||||
|
{{ parent() }}
|
||||||
|
{{ encore_entry_script_tags('mod_notification_toggle_read_status') }}
|
||||||
|
{{ encore_entry_script_tags('mod_async_upload') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
{{ parent() }}
|
||||||
|
{{ encore_entry_link_tags('mod_notification_toggle_read_status') }}
|
||||||
|
{{ encore_entry_link_tags('mod_async_upload') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% import 'ChillActivityBundle:ActivityReason:macro.html.twig' as m %}
|
{% import 'ChillActivityBundle:ActivityReason:macro.html.twig' as m %}
|
||||||
|
|
||||||
{% block content -%}
|
{% block content -%}
|
||||||
<div class="activity-show">
|
<div class="activity-show">
|
||||||
|
|
||||||
{% include 'ChillActivityBundle:Activity:show.html.twig' with {'context': 'accompanyingCourse'} %}
|
{% include 'ChillActivityBundle:Activity:show.html.twig' with {'context': 'accompanyingCourse'} %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
|
{% block block_post_menu %}
|
||||||
|
<div class="post-menu pt-4"></div>
|
||||||
|
{% endblock %}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user