mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-12-30 14:05:41 +00:00
Compare commits
727 Commits
fix-admin-
...
migrate_to
| Author | SHA1 | Date | |
|---|---|---|---|
|
55c11c7f04
|
|||
|
35d91762d3
|
|||
|
43d6a86627
|
|||
|
14a0c2b4fd
|
|||
|
22c3952c00
|
|||
|
c94cb741c6
|
|||
|
d714a61a6d
|
|||
|
a199f5983e
|
|||
|
1b5c3dfc33
|
|||
|
ed3fd429a4
|
|||
|
ef89f37ec3
|
|||
|
f3486e851a
|
|||
|
741f655cfc
|
|||
|
0d42ed9262
|
|||
|
4042cdd59c
|
|||
|
5b71d1b522
|
|||
|
2b1f337a28
|
|||
|
b1f7b83fdc
|
|||
|
e1cda00a98
|
|||
|
46b1399c3c
|
|||
|
022c0aaebf
|
|||
|
766a9292e0
|
|||
| cb677b8212 | |||
|
|
b630c940d4 | ||
|
dae040ebfb
|
|||
|
ba4e445110
|
|||
|
0f1ff9baf4
|
|||
| e4365ad058 | |||
| a16d659f69 | |||
| c4a069ba2e | |||
| 2600c6fa2a | |||
| 09ef95d13e | |||
| c19b2e18ad | |||
| 27853c594d | |||
|
|
b7df78bc55 | ||
|
|
24927069a4 | ||
|
|
10052cc5e1 | ||
| 7714b07a9d | |||
|
|
723beb3c02 | ||
|
6e1c9b6f29
|
|||
|
d80661e479
|
|||
|
473c5a9fa3
|
|||
|
74d133e739
|
|||
|
|
c92467b284 | ||
|
|
d3d2c06348 | ||
|
|
fc66d0e070 | ||
| acceeeaa2a | |||
| 53b02a0ced | |||
| 985761ff00 | |||
| 6d93b2b1b6 | |||
| 387bf55b11 | |||
| 9261bbadc3 | |||
|
|
df15c2fee7 | ||
|
e82cee2ce1
|
|||
|
d16de04d27
|
|||
|
14b891b33d
|
|||
| 7d4f541b7d | |||
| 4919c03660 | |||
| e345170968 | |||
| 98e0f51603 | |||
| 56965562ff | |||
| 2f1445a3f3 | |||
| 16c32ed4a9 | |||
| e47c23c903 | |||
|
2ef789a794
|
|||
| a29232410d | |||
| 4cbb4c3ae3 | |||
| 9d398f2cb5 | |||
| 7186fd9fb8 | |||
| fb8cacb534 | |||
| 92d5fe154e | |||
| bcbf18addc | |||
| ec93034802 | |||
| 284e737482 | |||
| 4c1690313b | |||
| f32877b5cd | |||
| 3aa4c49d00 | |||
| f13d064a27 | |||
| 08eb9ff439 | |||
| 77e0911fc9 | |||
| 1bed352a37 | |||
| 7ad24bef8a | |||
| 0ba5cd849c | |||
| 0caad2b7cd | |||
| 7a80307de9 | |||
| 035028c81c | |||
| 0d32810d0d | |||
| b221ad1621 | |||
| a96e9d5377 | |||
| 54b73128c3 | |||
| 5c0cb01fdc | |||
| 26d9b55c6d | |||
| add9249502 | |||
| 380d48c43a | |||
| d21d03d407 | |||
| 2f930ac138 | |||
| c7d7c3ac6f | |||
| 7eb895c0e1 | |||
|
e1b91ebbfd
|
|||
| 2139b53fb0 | |||
| a43181d60d | |||
| 04bc1c5de8 | |||
| 0a07d68b6d | |||
| fccd29e3c7 | |||
| 274ee94196 | |||
| 799d04142e | |||
| dfe8d8b0bf | |||
| 82f347b93a | |||
| 635efd6f1d | |||
| 869880d8f3 | |||
| f7ea7e4dbf | |||
| 0a58e05230 | |||
| 68c83223dd | |||
| c28bd22560 | |||
| a5ef2475fb | |||
| 86dd9bfb80 | |||
| 65bbdc283d | |||
|
|
f0b3e63d66 | ||
| c28670f0fd | |||
| 9e2c030224 | |||
| 41a31944b3 | |||
| 51607572de | |||
| a706c6f337 | |||
| bc63b489ee | |||
| a4cfc6a178 | |||
| f75d1da3b1 | |||
|
b8b68e5e5a
|
|||
|
ae5ba67064
|
|||
|
bfe4dd3aec
|
|||
| 1fc5530707 | |||
|
|
b31778c068 | ||
|
305c6deb24
|
|||
|
d691098a21
|
|||
| 3a4c20b53d | |||
| b0c86e238d | |||
| d7614aeab2 | |||
| 671ed21d59 | |||
| 4b9db6ceb6 | |||
| c79c39b562 | |||
| bf768b8e99 | |||
| 2df01833ad | |||
| ffb8183d4d | |||
| 5d45339bf7 | |||
| e87e5cbbaf | |||
| fa8e92ebf5 | |||
| b7a92bf656 | |||
| 3dbbda7b64 | |||
| 769d76a0cc | |||
|
8f20570f3b
|
|||
|
a113360ccf
|
|||
| 722b37fbcc | |||
|
6999919d9f
|
|||
|
2ca88d786c
|
|||
|
662e962549
|
|||
|
7654db4e39
|
|||
|
adab2ffe63
|
|||
|
590f7c1055
|
|||
|
843ae0a36a
|
|||
|
9554d21f82
|
|||
|
58c1e7bfaa
|
|||
|
9093dceea4
|
|||
|
cdc489f01e
|
|||
|
d6f5ef4bb1
|
|||
|
1c17e218a5
|
|||
|
7fd219d517
|
|||
| bf38ec22c9 | |||
|
f8571f22a6
|
|||
|
fabbb0c091
|
|||
|
14d65fa931
|
|||
|
7a790d43ec
|
|||
|
0d536cc8ce
|
|||
|
5634d72d6f
|
|||
|
d74179f1e1
|
|||
| 3d99c0f561 | |||
| 2221d17930 | |||
| 9c2abb2dfa | |||
| 94744b9542 | |||
| f42bb498e4 | |||
| 01889ac671 | |||
| 62e5842311 | |||
| 426d0dc193 | |||
| a22cbe0239 | |||
| 98902bdeb8 | |||
| 4765d4fe28 | |||
|
|
30bcb85549 | ||
|
8ad6f397a8
|
|||
| d713704633 | |||
| b1fa9242a0 | |||
| 6ac554f93a | |||
| 372d8e5825 | |||
| 10f05e5559 | |||
| ddb2a65419 | |||
| 8d40a8089f | |||
| e1bf4a24d2 | |||
| b132956ddc | |||
| 03fa79c93b | |||
| 373caeb3e3 | |||
| 208a378185 | |||
| 9089c8959b | |||
|
1b9b581c31
|
|||
| aa1abe4c88 | |||
| d82c9cc9a7 | |||
| a7e3b1c5d2 | |||
| 84cf11933d | |||
| bc2fbee5c6 | |||
| 1152be4d45 | |||
| ebd10ca522 | |||
|
d3a31be412
|
|||
|
d159a82f88
|
|||
|
c2d9c73fd4
|
|||
| 0d6d15fcf7 | |||
|
f9ad96c78b
|
|||
|
fcc9529a20
|
|||
|
955cb817c4
|
|||
|
6d2e78ce55
|
|||
| 823f9546b9 | |||
| be39fa16e7 | |||
| 34f15378c5 | |||
| 9a11e12669 | |||
| 7fceef03f7 | |||
| 3aa2666646 | |||
| 8fc19d5c28 | |||
| 4a08de09b8 | |||
| f2922018ce | |||
| 86422a5946 | |||
| aa0db40224 | |||
| 37b8297567 | |||
| 32d2bb002b | |||
| d8528dceab | |||
| 067a36d90e | |||
| c2294e08a5 | |||
| eac5a7f853 | |||
| f17ed7a4f8 | |||
| d4379cef6a | |||
| 119d870ac8 | |||
| 74c9eb5585 | |||
| 61ca700bbe | |||
|
|
b43aeebc3c | ||
| f93c7e014f | |||
| e6a799abc4 | |||
| 68a0ef7115 | |||
| 1675c56f3d | |||
| 056e2dcc5f | |||
| e57d1ac696 | |||
| 675e8450fc | |||
| 4ffd7034d0 | |||
| 0eff1d2e79 | |||
| 3928b2cc7a | |||
|
4f51ef81ad
|
|||
|
4637dc692c
|
|||
| 38935edb93 | |||
|
|
e1ef65d4ca | ||
| c8bb7575e7 | |||
|
|
80a3734171 | ||
| ec9d0be70b | |||
|
|
0ba2cbc1e8 | ||
| e87429933a | |||
|
8e2e676e3d
|
|||
|
ab98f3a102
|
|||
| 7516e68d77 | |||
| 7b60b7a8af | |||
|
d984dec7db
|
|||
| 46a4dedab8 | |||
| db98519e65 | |||
| 69b59d2ae2 | |||
| 90f86bf566 | |||
|
c39637180a
|
|||
| 15f9409bc8 | |||
| 5b90d23367 | |||
| b363bd3425 | |||
| 6ceb1b9544 | |||
| 94b5c06d10 | |||
| 895e1be9ef | |||
| 94a0eb1a0a | |||
| cc8151546a | |||
| c48625d1cd | |||
| 1195b54a68 | |||
| 4bd9e2ba7d | |||
| 509b2c2590 | |||
| 3480495be1 | |||
| 4123aa6550 | |||
| 835d79a809 | |||
| 2a280b814f | |||
| ffeba3818b | |||
| f88718e263 | |||
| 2433737df0 | |||
| af7d635714 | |||
| 34213ac093 | |||
| e12ad563a3 | |||
|
|
711aa8db9b | ||
| 8d6f76a8b7 | |||
| 941acea4d9 | |||
| e78d44953f | |||
| 18f67801c7 | |||
|
c815e6bc69
|
|||
| 230c758255 | |||
| eafda987ae | |||
| 7db8a371fc | |||
| 0d0649dd31 | |||
| 807f2711fe | |||
|
|
cd594cd580 | ||
| ac12b8cdcf | |||
| 9c1611d052 | |||
|
fb6b26bfb5
|
|||
|
c5cedb8bd6
|
|||
|
2665e43a61
|
|||
| 90e3043c3d | |||
| af13bf9088 | |||
| 4aa65d69c7 | |||
| 9e33aec594 | |||
| f88bc7e9f0 | |||
|
8e78c41549
|
|||
|
6e36771349
|
|||
|
7a82cae155
|
|||
| dfab223391 | |||
| 539752485c | |||
| d204df0316 | |||
|
|
82c02f442b | ||
|
25561cdf63
|
|||
| 10b73e06e1 | |||
|
|
e7c04e34a9 | ||
| f32a9dc7bc | |||
| ea06a96f91 | |||
| 76433e2512 | |||
| 1fa464b87a | |||
| 77bccd5c4e | |||
| 5ffa945a84 | |||
| 3a85d940e9 | |||
| d2e7640652 | |||
| 979b2955f6 | |||
| da240f5ce5 | |||
| f91ab63b3a | |||
| 2ea8a03698 | |||
| 3b75f43e80 | |||
| a40eb95c43 | |||
| 8429c6e693 | |||
| 6db7f6827c | |||
| 3c60c57985 | |||
| 10aa36aae0 | |||
| eed9913a49 | |||
| 1a847d36a0 | |||
| d916962d9b | |||
| 1092fc64ae | |||
| 4e99b6ecbd | |||
| 60d107b541 | |||
| 4c3befe489 | |||
| e176319775 | |||
| 5d810b4230 | |||
| 52b8eea069 | |||
| 4bebeaeaaa | |||
| 3969e12633 | |||
| d60312d4a2 | |||
| d2454ae134 | |||
| 17c2cb1fdc | |||
| 94d7a2a0bb | |||
| aef1efc6cd | |||
| dd0c662c9e | |||
| 6b1696b62e | |||
| c4b760c452 | |||
| 69fe2a8256 | |||
| 8c98242896 | |||
| 7eecfd3882 | |||
| 6713658569 | |||
| 342b786106 | |||
| 80a7437769 | |||
| 8a38ce1a5c | |||
| 5d94bf0556 | |||
| bb71e084b8 | |||
| 27f0bf28e9 | |||
| 383f588795 | |||
| e7a1ff1ac8 | |||
| adc9c47d0a | |||
| e594b65d1e | |||
| c0826bc65c | |||
| 904f4e5ed9 | |||
| 481f82b4c7 | |||
| f5668592ca | |||
| 164beee7c6 | |||
|
|
4d96eb9457 | ||
| aa085a1562 | |||
| 2754251fdc | |||
| 2f6cef4238 | |||
| 2309636eae | |||
| 56ec8fb516 | |||
| 21e965449c | |||
| 88697ae83f | |||
| 10ba2aaea5 | |||
| 4b484bd16c | |||
| 4c28a4c358 | |||
| 490d546e7a | |||
| 7a4416109e | |||
| 0e1a47a49b | |||
| fe6e6e54c1 | |||
| 2a09594b4a | |||
| 7c798e1f63 | |||
| ab8da4ab7a | |||
| 5bdb2df929 | |||
| e3a6b60fa2 | |||
| fe2eba3b29 | |||
|
|
61d1232e31 | ||
| 6594d4f6a6 | |||
| 1a66a9e864 | |||
| 1b74c119dc | |||
| 14d88810f3 | |||
| 445a2c9358 | |||
| c8baf0a8aa | |||
| faed443a96 | |||
| bbf387d96f | |||
|
|
b7c9b60744 | ||
| 5f01673404 | |||
| 63d0a52ea1 | |||
|
2bd303bbbe
|
|||
|
c5e6122d2c
|
|||
| 088b876e20 | |||
| 3400656d7c | |||
| 837089ff5d | |||
|
568c8be7fd
|
|||
|
538ecc42ea
|
|||
|
15d26d4b06
|
|||
|
d8bd9bd7cd
|
|||
|
dcdfba5ccd
|
|||
|
0204bdd38d
|
|||
| f383fab578 | |||
| f3cc4a89af | |||
| 703f5dc32d | |||
| b870e71f77 | |||
|
392fd01b56
|
|||
|
a7e278204f
|
|||
|
4cfdcb2f02
|
|||
|
3b82ab0e7f
|
|||
| ccfae1dc75 | |||
| 8bc16dadb0 | |||
| 35844f3b73 | |||
| 7506b918d7 | |||
| c4cc0baa8e | |||
| aed114c75c | |||
| cfba291f2c | |||
|
|
04438c09d3 | ||
| 2a54d1b909 | |||
|
|
628eeac5e0 | ||
| a2263b3fa1 | |||
| 74796d0fb0 | |||
|
c19481e40a
|
|||
|
|
6eeb717b1a | ||
|
beb7c462da
|
|||
|
|
dbf363a9e8 | ||
|
64a2f7c9ed
|
|||
| e592b89c94 | |||
| f26d9739c8 | |||
|
afa5edc1d8
|
|||
|
42d6c9e672
|
|||
|
2b22d4cb7c
|
|||
|
c8e5d0eb37
|
|||
| 2bf8ad5d6c | |||
| 11698a52e3 | |||
| 70955573e8 | |||
|
|
3df4043eb9 | ||
|
06e8264dde
|
|||
| 70e75adb7d | |||
| 6f7015b152 | |||
| 65dde1e6a0 | |||
| d193c50922 | |||
| 840ef6eed8 | |||
| 26298c48fd | |||
| b4bbb1a456 | |||
| 606435a6b3 | |||
| b451d2c4a3 | |||
| 4f93150874 | |||
| 404143f8a6 | |||
| ec957a2fe3 | |||
| 8ed5e35f1a | |||
|
ec37676dab
|
|||
|
2d8cda30b9
|
|||
|
27d344c97d
|
|||
| 088e5692e2 | |||
| 298044bc82 | |||
| ee4e223043 | |||
| c53377ce8d | |||
|
0b580658de
|
|||
|
786c60a50d
|
|||
|
456f00566d
|
|||
| 0566ab0910 | |||
|
|
f4eeee1598 | ||
| 33cf16fc13 | |||
| 0a331aab37 | |||
| d43b739654 | |||
| c72432efae | |||
|
95975fae55
|
|||
|
95a7efa138
|
|||
|
a38116cca4
|
|||
|
45e193ff6d
|
|||
|
dfc146ff3f
|
|||
|
|
9158e33854 | ||
|
|
af74f7860b | ||
| c2842148c6 | |||
| 10e4c7da23 | |||
|
bdf1cf71ba
|
|||
| b41fcf66a9 | |||
|
|
a8dd1b3548 | ||
| 4d4bcb44bc | |||
| 51777f7365 | |||
| b9a9983b88 | |||
| e51a3c7525 | |||
| 9875f49374 | |||
| 52c3c0a565 | |||
| 640a7bcd0a | |||
| 13a9e14450 | |||
| abb786495a | |||
| 8ec18a6fb8 | |||
| f282ffbfd4 | |||
| 27a2d8fdc8 | |||
| 1cb63bfe1d | |||
| 9daa7f7c09 | |||
| b6e780d573 | |||
| 7e3618a9be | |||
| 61b187e340 | |||
| abfdf2ec6d | |||
| cc20e8896f | |||
| 59fe9a469a | |||
| 228b4f0b3d | |||
| b5bbf929f6 | |||
| d9ce4e3ec6 | |||
| c08c909545 | |||
| 6cd17a8e36 | |||
| e3b2b7c6d1 | |||
| 0337bca273 | |||
| 8bb2e2dc37 | |||
| cdd0372d3e | |||
| 1ee16d3446 | |||
| bdbcb9ca4a | |||
| e639289130 | |||
| 3d3347e547 | |||
| 3f27d9e8fc | |||
| ce98b9ae48 | |||
| d2bd17632f | |||
| 7cef5e3a76 | |||
| 9726844a26 | |||
| f7ce3996ef | |||
| 6e21f2688f | |||
| 17db59d221 | |||
| 053b92b77c | |||
| eab5a8be7b | |||
|
fca10ada71
|
|||
|
a35d456308
|
|||
| 36fd6f10b2 | |||
| 23227add12 | |||
| 8cbd800fb9 | |||
|
2b99a480ac
|
|||
|
7633e587bb
|
|||
|
fc61dfdf3a
|
|||
|
f1a5b5c49e
|
|||
|
ec685dcd47
|
|||
|
631ae3eedd
|
|||
|
440a7837ac
|
|||
|
e0abf34784
|
|||
|
377ae9a9dc
|
|||
|
034dc30e30
|
|||
|
d615111a0f
|
|||
|
ffb756c712
|
|||
|
69daccb860
|
|||
| 1f79985193 | |||
| f4ed7e4254 | |||
| 382f20c6ad | |||
| 220110a403 | |||
| 3fdf494f1c | |||
| 793dcbfa9a | |||
| f96ed1f5eb | |||
| 8b9b427a1e | |||
| 2f3caafd10 | |||
| fde10ebe71 | |||
| b7fc85a2c9 | |||
| 72b79f9af5 | |||
| ab15ec8a4c | |||
| c8f1e67fc7 | |||
| d5c09c853f | |||
| a79b0b85dd | |||
|
16435423cf
|
|||
|
697b4ab436
|
|||
| 47c1282044 | |||
| ce63506a1a | |||
| 8ab03473b7 | |||
| ebaff8d170 | |||
| 46f9e4968b | |||
| 344c5a1c3c | |||
| 50b590ae34 | |||
| 74fbd6feac | |||
| aa69a7ad62 | |||
| bc0fae5c2e | |||
|
67d804e28e
|
|||
|
cf41fa9574
|
|||
|
b8b325f7d7
|
|||
|
e97bd8c4ef
|
|||
|
e28d7df533
|
|||
|
4b20b1bc01
|
|||
|
b15733076c
|
|||
|
25be5c9ea3
|
|||
|
b035020c6f
|
|||
|
128101dc46
|
|||
|
5f2711023e
|
|||
|
bdf2ed4bbd
|
|||
| 1321f5c734 | |||
| 262b7c5db3 | |||
| 5283eddb15 | |||
| f7b0c49124 | |||
| 5e32375dfe | |||
| 5cdfee40fb | |||
| 6e5dbe4e58 | |||
| d884d78617 | |||
| a5049ddefb | |||
| 9fcc1634f5 | |||
| d9a47fdee9 | |||
| 1e5d676aa5 | |||
|
1df542603e
|
|||
|
80bcc68ce5
|
|||
|
154fc3e2f6
|
|||
|
e45af94c78
|
|||
|
166a6fde20
|
|||
|
631f047338
|
|||
|
a777588bb8
|
|||
|
ca78d112c2
|
|||
|
bcfd317d83
|
|||
|
348740f073
|
|||
|
0d74f0980f
|
|||
|
be19dc00db
|
|||
|
643028ffd6
|
|||
|
ac4e2e5bf2
|
|||
|
498572b96e
|
|||
|
d2a61ce69b
|
|||
|
a9c0567ee1
|
|||
|
76cec5b5a8
|
|||
|
efe8a67697
|
|||
|
26dfa9b028
|
|||
|
50025044d3
|
|||
|
e6202a2e34
|
|||
|
b863bd967d
|
|||
|
e65bcf7275
|
|||
|
e00ece4200
|
|||
|
640fd71402
|
|||
|
aae50ca290
|
|||
|
1fa483598b
|
|||
|
e4b6a468f8
|
|||
|
|
66c7758023 | ||
|
|
4750d2c24e | ||
|
|
ca05e3d979 | ||
|
|
a20f9b4f86 | ||
|
|
c73c1eb8d5 | ||
|
|
8778bb0731 | ||
|
|
c7d20eebc5 | ||
|
|
b9e130c159 | ||
|
|
3e8bc94af3 | ||
|
|
0c914c9f9f | ||
|
|
580a60c939 | ||
|
|
4996ac3b7c | ||
|
|
2a23bf19cb | ||
|
|
650d2596d9 | ||
|
|
2bdd5a329e | ||
|
78d1776733
|
|||
|
66dc603c85
|
|||
|
3a8154ecce
|
|||
|
c81828e04f
|
|||
|
|
ec17dd7de2 | ||
| 76c076a5f3 | |||
|
|
f0045edd6c | ||
|
|
d00b76ffcd | ||
|
|
8991f0ef3f | ||
|
|
d6f5eae0c9 | ||
|
|
821fce3dd8 | ||
|
|
1d33ae1e39 | ||
|
|
19af0feb57 | ||
|
|
1c09e9a692 | ||
|
|
d72e748388 | ||
|
|
ab850b7b70 | ||
|
|
3f9745d8cf | ||
|
|
473765366a | ||
|
|
6500c24a7f | ||
|
|
1d00457141 | ||
|
|
eb0bf56cff | ||
|
|
7b8cd90cf1 | ||
|
|
a27d92aba0 | ||
|
|
85bdfb9e21 | ||
|
|
4cffcf4de1 | ||
|
|
b2587a688f | ||
|
|
c9f0e9843b | ||
|
|
b40ad9e445 | ||
|
|
3e10e47e29 | ||
|
|
2a1963e993 | ||
| 34c171659b | |||
|
2d8b960d9e
|
|||
| 831ae03431 | |||
|
45828174d1
|
|||
|
ed45f14a45
|
|||
|
fa67835690
|
|||
|
b434d38091
|
|||
|
|
800a952532 | ||
|
9f355032a8
|
|||
|
0bc6e62d4d
|
|||
|
46fb1c04b5
|
|||
| 3b2c3d1464 | |||
|
|
0bd6038160 | ||
|
|
baab8e94ce | ||
|
e2deb55fdb
|
|||
|
|
2cdfb50058 | ||
|
39d701feb2
|
|||
|
613ee8b186
|
|||
|
56a1a488de
|
|||
| 3f789ad0f4 | |||
|
467bea7cde
|
|||
|
670b8eb82b
|
|||
|
a9760b323f
|
|||
|
71a3a1924a
|
|||
|
ecdc1e25bf
|
|||
|
dd37427be1
|
|||
|
c8467df1b1
|
|||
|
4c89a954fa
|
|||
|
7c1f3b114d
|
|||
|
36bc4dab24
|
|||
|
4b30d92282
|
|||
|
75fbec5489
|
|||
|
912fdd6349
|
|||
|
5832542978
|
|||
|
5c3585a1ed
|
|||
|
a2f1e20ddf
|
|||
|
4d67702a76
|
|||
| 18e442db29 | |||
|
|
deb3d92189 | ||
|
a59ea7db31
|
|||
|
a738b0cac9
|
@@ -1,6 +0,0 @@
|
||||
kind: DX
|
||||
body: Remove dead code for wopi-link module
|
||||
time: 2025-04-30T14:45:50.406111606+02:00
|
||||
custom:
|
||||
Issue: "352"
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: DX
|
||||
body: Replace library node-sass by sass, and upgrade bootstrap to version 5.3 (yarn upgrade / install is required)
|
||||
time: 2025-05-28T16:58:13.226870341+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
||||
6
.changes/unreleased/Feature-20240530-160003.yaml
Normal file
6
.changes/unreleased/Feature-20240530-160003.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: |
|
||||
Upgrade import of address list to the last version of compiled addresses of belgian-best-address
|
||||
time: 2024-05-30T16:00:03.440767606+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
6
.changes/unreleased/Feature-20240531-190242.yaml
Normal file
6
.changes/unreleased/Feature-20240531-190242.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: |
|
||||
Upgrade CKEditor and refactor configuration with use of typescript
|
||||
time: 2024-05-31T19:02:42.776662753+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Feature
|
||||
body: Add the document file name to the document title when a user upload a document,
|
||||
unless there is already a document title.
|
||||
time: 2025-04-24T14:22:11.800975422+02:00
|
||||
custom:
|
||||
Issue: "377"
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Feature
|
||||
body: Add desactivation date for social action and issue csv export
|
||||
time: 2025-05-20T09:56:28.108941934+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Feature
|
||||
body: Add Emoji and Fullscreen feature to ckeditor configuration
|
||||
time: 2025-05-23T13:33:41.645095128+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Feature
|
||||
body: Create editor which allow us to toggle between rich and simple text editor
|
||||
time: 2025-05-23T13:34:34.56795603+02:00
|
||||
custom:
|
||||
Issue: "321"
|
||||
SchemaChange: No schema change
|
||||
6
.changes/unreleased/Feature-20250808-120802.yaml
Normal file
6
.changes/unreleased/Feature-20250808-120802.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: Create invitation list in user menu
|
||||
time: 2025-08-08T12:08:02.446361367+02:00
|
||||
custom:
|
||||
Issue: "385"
|
||||
SchemaChange: No schema change
|
||||
6
.changes/unreleased/Feature-20251007-155945.yaml
Normal file
6
.changes/unreleased/Feature-20251007-155945.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: Admin interface for Motive entity
|
||||
time: 2025-10-07T15:59:45.597029709+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
||||
6
.changes/unreleased/Feature-20251022-111552.yaml
Normal file
6
.changes/unreleased/Feature-20251022-111552.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Feature
|
||||
body: Add an admin interface for Motive entity
|
||||
time: 2025-10-22T11:15:52.13937955+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: Add columns or tables
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Fixed
|
||||
body: trying to prevent bug of typeerror in doc-history + improved display of document
|
||||
history
|
||||
time: 2025-04-24T13:39:43.878468232+02:00
|
||||
custom:
|
||||
Issue: "376"
|
||||
SchemaChange: No schema change
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Fixed
|
||||
body: Display previous participation in acc course work even if the person has left
|
||||
the acc course
|
||||
time: 2025-04-24T16:37:46.970203594+02:00
|
||||
custom:
|
||||
Issue: "381"
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixed
|
||||
body: Fix display of text in calendar events
|
||||
time: 2025-05-05T10:27:15.461493066+02:00
|
||||
custom:
|
||||
Issue: "372"
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixed
|
||||
body: Add missing translation for user_group.no_user_groups
|
||||
time: 2025-05-14T14:53:39.53927329+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixed
|
||||
body: Fix admin entity edit actions for event admin entities and activity reason (category) entities
|
||||
time: 2025-06-11T16:46:23.113506434+02:00
|
||||
custom:
|
||||
Issue: ""
|
||||
SchemaChange: No schema change
|
||||
6
.changes/unreleased/Fixed-20251106-161605.yaml
Normal file
6
.changes/unreleased/Fixed-20251106-161605.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Fixed
|
||||
body: Fix suggestion of referrer when creating notification for accompanyingPeriodWorkDocument
|
||||
time: 2025-11-06T16:16:05.861813041+01:00
|
||||
custom:
|
||||
Issue: "428"
|
||||
SchemaChange: No schema change
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: UX
|
||||
body: Remove default filter in_progress for the page 'my tasks'; Allows for new tasks to be displayed upon opening of the page
|
||||
time: 2025-04-23T17:26:24.45777387+02:00
|
||||
custom:
|
||||
Issue: "374"
|
||||
SchemaChange: No schema change
|
||||
22
.changes/v3.12.0.md
Normal file
22
.changes/v3.12.0.md
Normal file
@@ -0,0 +1,22 @@
|
||||
## v3.12.0 - 2025-06-30
|
||||
### Feature
|
||||
* ([#377](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/377)) Add the document file name to the document title when a user upload a document, unless there is already a document title.
|
||||
* Add desactivation date for social action and issue csv export
|
||||
* Add Emoji and Fullscreen feature to ckeditor configuration
|
||||
* ([#321](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/321)) Create editor which allow us to toggle between rich and simple text editor
|
||||
* Do not remove workflow which are automatically canceled after staling for more than 30 days
|
||||
### Fixed
|
||||
* ([#376](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/376)) trying to prevent bug of typeerror in doc-history + improved display of document history
|
||||
* ([#381](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/381)) Display previous participation in acc course work even if the person has left the acc course
|
||||
* ([#372](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/372)) Fix display of text in calendar events
|
||||
* Add missing translation for user_group.no_user_groups
|
||||
* Fix admin entity edit actions for event admin entities and activity reason (category) entities
|
||||
* ([#392](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/392)) Allow null and cast as string to setContent method for NewsItem
|
||||
|
||||
* ([#393](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/393)) Doc Generation: the "dump only" method send the document as an email attachment.
|
||||
### DX
|
||||
* ([#352](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/352)) Remove dead code for wopi-link module
|
||||
* Replace library node-sass by sass, and upgrade bootstrap to version 5.3 (yarn upgrade / install is required)
|
||||
### UX
|
||||
* ([#374](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/374)) Remove default filter in_progress for the page 'my tasks'; Allows for new tasks to be displayed upon opening of the page
|
||||
* Improve labeling of fields in person resource creation form
|
||||
3
.changes/v3.12.1.md
Normal file
3
.changes/v3.12.1.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## v3.12.1 - 2025-06-30
|
||||
### Fixed
|
||||
* Fix loading of the list of documents
|
||||
74
.changes/v4.0.0.md
Normal file
74
.changes/v4.0.0.md
Normal file
@@ -0,0 +1,74 @@
|
||||
## v4.0.0 - 2025-07-08
|
||||
### Feature
|
||||
* ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works
|
||||
### Fixed
|
||||
* ([#390](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/390)) Display the list of participant in the results, even if there is only one participant and that the search result display the requestor
|
||||
* Fix admin entity edit actions for event admin entities and activity reason (category) entities
|
||||
* Fix translations for social action fields in admin form: results, goals, evaluations
|
||||
### DX
|
||||
* Rewrite exports to run them asynchronously
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
* Allow TranslatableMessage in flash messages
|
||||
### UX
|
||||
* Improve labeling of fields in person resource creation form
|
||||
|
||||
|
||||
**Release notes**
|
||||
|
||||
- Add new methods to serialize data using the rector rule
|
||||
- Remove all references to the Request in filters, aggregators, filters. Actually, the most frequent occurence is `$security->getUser()`.
|
||||
- Refactor manually the initializeQuery method
|
||||
- Remove the injection of ExportManager into the constructor of each export element:
|
||||
|
||||
```diff
|
||||
|
||||
- class MyFormatter implements FormatterInterface
|
||||
+ class MyFormatter implements FormatterInterface, \Chill\MainBundle\Export\ExportManagerAwareInterface
|
||||
{
|
||||
+ use \Chill\MainBundle\Export\Helper\ExportManagerAwareTrait;
|
||||
|
||||
- public function __construct(private ExportManager $exportmanager) {}
|
||||
|
||||
public function MyMethod(): void
|
||||
{
|
||||
- $this->exportManager->getFilter('alias');
|
||||
+ $this->getExportManager()->getFilter('alias');
|
||||
}
|
||||
}
|
||||
```
|
||||
- configure messenger to handle export in a queue:
|
||||
|
||||
```diff
|
||||
# config/packages/messenger.yaml
|
||||
framework:
|
||||
messenger:
|
||||
routing:
|
||||
+ 'Chill\MainBundle\Export\Messenger\ExportRequestGenerationMessage': priority
|
||||
```
|
||||
|
||||
- add missing methods to exports, aggregators, filters, formatter:
|
||||
|
||||
```php
|
||||
public function normalizeFormData(array $formData): array;
|
||||
|
||||
public function denormalizeFormData(array $formData, int $fromVersion): array;
|
||||
```
|
||||
|
||||
There are rector rules to generate those methods:
|
||||
|
||||
- `Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector`
|
||||
|
||||
See:
|
||||
|
||||
```php
|
||||
// upgrade chill exports
|
||||
$rectorConfig->rules([\Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector::class]);
|
||||
```
|
||||
|
||||
This rule will create most of the work necessary, but some manuals changes are still necessary:
|
||||
|
||||
- we must set manually the correct repository for method `denormalizeDoctrineEntity`;
|
||||
- when the form data contains some entities, and the form type is not one of EntityType::class, PickUserDynamicType::class, PickUserLocationType::class, PickThirdpartyDynamicType::class, Select2CountryType::class, then we must handle the normalization manually (using the `\Chill\MainBundle\Export\ExportDataNormalizerTrait`)
|
||||
|
||||
|
||||
4
.changes/v4.0.1.md
Normal file
4
.changes/v4.0.1.md
Normal file
@@ -0,0 +1,4 @@
|
||||
## v4.0.1 - 2025-07-08
|
||||
### Fixed
|
||||
* Fix package.json for compilation
|
||||
|
||||
4
.changes/v4.0.2.md
Normal file
4
.changes/v4.0.2.md
Normal file
@@ -0,0 +1,4 @@
|
||||
## v4.0.2 - 2025-07-09
|
||||
### Fixed
|
||||
* Fix add missing translation
|
||||
* Fix the transfer of evaluations and documents during of accompanyingperiodwork
|
||||
12
.changes/v4.1.0.md
Normal file
12
.changes/v4.1.0.md
Normal file
@@ -0,0 +1,12 @@
|
||||
## v4.1.0 - 2025-08-26
|
||||
### Feature
|
||||
* ([#400](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/400)) Add filter to social actions list to filter out actions where current user intervenes
|
||||
* ([#399](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/399)) Show filters on list pages unfolded by default
|
||||
* Expansion of event module with new fields in the creation form: thematic, internal/external animator, responsable, and budget elements. Filtering options in the event list + adapted exports
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
### Fixed
|
||||
* ([#382](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/382)) adjust display logic for accompanying period dates, include closing date if period is closed.
|
||||
* ([#384](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/384)) add min and step attributes to integer field in DateIntervalType
|
||||
### UX
|
||||
* Limit display of participations in event list
|
||||
6
.changes/v4.10.0.md
Normal file
6
.changes/v4.10.0.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## v4.10.0 - 2025-12-09
|
||||
### Feature
|
||||
* [MR 928](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/928) [#462](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/462) Add the future appointments for the person in search results
|
||||
### Fixed
|
||||
* Remove dependency to package @symfony/ux-translator
|
||||
|
||||
6
.changes/v4.10.1.md
Normal file
6
.changes/v4.10.1.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## v4.10.1 - 2025-12-11
|
||||
### Fixed
|
||||
* Fix missing translation variable in NewLocation component
|
||||
* ([#476](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/476)) Fix display of header for ByActivityNumberAggregator
|
||||
* Fix use of ByActivityNumberAggregator in combination with activity count exports
|
||||
* ([#483](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/483)) Tentatively fix usage of CTRL+C in collabora editor with chrome / edge browser
|
||||
10
.changes/v4.2.0.md
Normal file
10
.changes/v4.2.0.md
Normal file
@@ -0,0 +1,10 @@
|
||||
## v4.2.0 - 2025-09-02
|
||||
### Feature
|
||||
* ([#64](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/64)) Add external identifier for a Person
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
* ([#330](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/330) Allow users to choose for which notifications they want to receive an email
|
||||
### Fixed
|
||||
* ([#422](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/422)) Fixed html layout of pages for recovering password
|
||||
* Fix typo in 'uncheckAll' script for centers selection
|
||||
* Fix incorrect parameter name in event details link
|
||||
6
.changes/v4.2.1.md
Normal file
6
.changes/v4.2.1.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## v4.2.1 - 2025-09-03
|
||||
### Fixed
|
||||
* Fix exports to work with DirectExportInterface
|
||||
### DX
|
||||
* Improve error message when a stored object cannot be written on local disk
|
||||
|
||||
10
.changes/v4.3.0.md
Normal file
10
.changes/v4.3.0.md
Normal file
@@ -0,0 +1,10 @@
|
||||
## v4.3.0 - 2025-09-08
|
||||
### Feature
|
||||
* ([#409](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/409)) Add 45 and 60 min calendar ranges
|
||||
* Add a command to generate a list of permissions
|
||||
* ([#412](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/412)) Add an absence end date
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
### Fixed
|
||||
* fix date formatting in calendar range display
|
||||
* Change route URL to avoid clash with person duplicate controller method
|
||||
8
.changes/v4.4.0.md
Normal file
8
.changes/v4.4.0.md
Normal file
@@ -0,0 +1,8 @@
|
||||
## v4.4.0 - 2025-09-11
|
||||
### Feature
|
||||
* ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works
|
||||
* ([#369](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/369)) Duplication of a document to another accompanying period work evaluation
|
||||
* ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Fusion of two accompanying period works
|
||||
### Fixed
|
||||
* Fix display of 'duplicate' and 'merge' buttons in CRUD templates
|
||||
* Fix saving notification preferences in user's profile
|
||||
3
.changes/v4.4.1.md
Normal file
3
.changes/v4.4.1.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## v4.4.1 - 2025-09-11
|
||||
### Fixed
|
||||
* fix translations in duplicate evaluation document modal and realign close modal button
|
||||
3
.changes/v4.4.2.md
Normal file
3
.changes/v4.4.2.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## v4.4.2 - 2025-09-12
|
||||
### Fixed
|
||||
* Fix document generation and workflow generation do not work on accompanying period work documents
|
||||
13
.changes/v4.5.0.md
Normal file
13
.changes/v4.5.0.md
Normal file
@@ -0,0 +1,13 @@
|
||||
## v4.5.0 - 2025-10-03
|
||||
### Feature
|
||||
* Only allow delete of attachment on workflows that are not final
|
||||
* Move up signature buttons on index workflow page for easier access
|
||||
* Filter out document from attachment list if it is the same as the workflow document
|
||||
* Block edition on attached document on workflow, if the workflow is finalized or sent external
|
||||
* Convert workflow's attached document to pdf while sending them external
|
||||
* After a signature is canceled or rejected, going to a waiting page until the post-process routines apply a workflow transition
|
||||
### Fixed
|
||||
* ([#426](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/426)) Increased the number of required characters when setting a new password in Chill from 9 to 14 - GDPR compliance
|
||||
* Fix permissions on storedObject which are subject by a workflow
|
||||
### DX
|
||||
* Introduce a WaitingScreen component to display a waiting screen
|
||||
4
.changes/v4.5.1.md
Normal file
4
.changes/v4.5.1.md
Normal file
@@ -0,0 +1,4 @@
|
||||
## v4.5.1 - 2025-10-03
|
||||
### Fixed
|
||||
* Add missing javascript dependency
|
||||
* Add exception handling for conversion of attachment on sending external, when documens are already in pdf
|
||||
14
.changes/v4.6.0.md
Normal file
14
.changes/v4.6.0.md
Normal file
@@ -0,0 +1,14 @@
|
||||
## v4.6.0 - 2025-10-15
|
||||
### Feature
|
||||
* ([#423](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/423)) Create environment banner that can be activated and configured depending on the image deployed
|
||||
* ([#394](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/394)) Only show active workflow on the page "my tracked workflow"
|
||||
### Fixed
|
||||
* Fix loading of classLists in SocialIssuesAcc.vue, ensure elements are present
|
||||
* Fix the rendering of list of StoredObjectVersions, where there are kept version (before converting to pdf) and intermediate versions deleted
|
||||
* ([#434](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/434)) Notification: fix editing of sent notification by removing form.addressesEmails, a field that no longer exists
|
||||
* Fix loading of social issues and social actions within vue component
|
||||
* ([#446](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/446)) Add unique condition on stored object filename, with cleaning step on existing duplicate filenames
|
||||
|
||||
**Schema Change**: Drop or rename table or columns, or enforce new constraint that must be manually fixed
|
||||
* [workflow] take permissions into account to delete the workflow attachment
|
||||
* ([#448](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/448)) Fix the execution of daily cronjob notification, when the previous last execution storage was invalid
|
||||
3
.changes/v4.6.1.md
Normal file
3
.changes/v4.6.1.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## v4.6.1 - 2025-10-27
|
||||
### Fixed
|
||||
* Fix export case where no 'reason' is picked within the PersonHavingActivityBetweenDateFilter.php
|
||||
21
.changes/v4.7.0.md
Normal file
21
.changes/v4.7.0.md
Normal file
@@ -0,0 +1,21 @@
|
||||
## v4.7.0 - 2025-11-10
|
||||
### Feature
|
||||
* ([#385](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/385)) Create invitation list in user menu
|
||||
* ([#404](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/404)) Add columns for comments linked to an activity in the activity list export
|
||||
### Fixed
|
||||
* ([#451](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/451)) Fix: display also social actions linked to parents of the selected social issue
|
||||
* ([#453](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/453)) Fix: export actions and their results in csv even when action does not have any goals attached to it.
|
||||
* Fix the possibility to delete a workflow
|
||||
|
||||
**Schema Change**: Drop or rename table or columns, or enforce new constraint that must be manually fixed
|
||||
* ([#457](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/457)) Fix the fusion of thirdparty properties that are located in another schema than public for TO_ONE relations + add extra loop for MANY_TO_MANY relations where thirdparty is the source instead of the target
|
||||
* ([#428](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/428)) Fix suggestion of referrer when creating notification for accompanyingPeriodWorkDocument
|
||||
### DX
|
||||
* Send notifications log to dedicated channel, if it exists
|
||||
|
||||
### UX
|
||||
* ([#425](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/425)) Change the terms 'cercle' and 'centre' to 'service', and 'territoire' respectively.
|
||||
* ([#542](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/542)) Improve the ux for selecting whether user wants to be notified of the final step of a workflow or all steps
|
||||
* Expand timeSpent choices for evaluation document and translate them to user locale or fallback 'fr'
|
||||
* ([#455](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/455)) Change the order of display for results and objectives in the social work/action form
|
||||
* Wrap text when it is too long within badges
|
||||
9
.changes/v4.8.0.md
Normal file
9
.changes/v4.8.0.md
Normal file
@@ -0,0 +1,9 @@
|
||||
## v4.8.0 - 2025-11-17
|
||||
### Feature
|
||||
* ([#461](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/461)) Make a calendar item on the 'mes rendez-vous' page clickable. Clicking will navigate to the edit page of the calendar item.
|
||||
### Fixed
|
||||
* ([#463](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/463)) Display calendar items for which an invite was accepted on the mes rendez-vous page
|
||||
* Improve accessibility on login page
|
||||
|
||||
### UX
|
||||
* ([#449](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/449)) Remove the label if there is only one scope and no scope picking field is displayed.
|
||||
6
.changes/v4.8.1.md
Normal file
6
.changes/v4.8.1.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## v4.8.1 - 2025-11-20
|
||||
### Fixed
|
||||
* Insert name of file as the document title when uploading
|
||||
* Add missing path paramater 'id' for editing multiple participations
|
||||
* ([#471](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/471)) Hide the display of inactive user groups in the api
|
||||
|
||||
10
.changes/v4.8.2.md
Normal file
10
.changes/v4.8.2.md
Normal file
@@ -0,0 +1,10 @@
|
||||
## v4.8.2 - 2025-11-26
|
||||
### Fixed
|
||||
* ([#466](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/466)) Associate activity's creator as a participant by default, and retro-actively append the creator to each activity
|
||||
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
* Fix template parameter for update_multiple route on event participations
|
||||
### UX
|
||||
* ([#470](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/470)) Alphabetically order userJobs and mainLocations within user creation form
|
||||
* ([#437](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/437)) Change position and color of confirm parcours button
|
||||
14
.changes/v4.9.0.md
Normal file
14
.changes/v4.9.0.md
Normal file
@@ -0,0 +1,14 @@
|
||||
## v4.9.0 - 2025-12-05
|
||||
### Feature
|
||||
* ([#459](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/459)) Add a counter for invitations awaiting reply
|
||||
### Fixed
|
||||
* ([#475](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/475)) Do not suggest a user that is no longer active in the activity form.
|
||||
* ([#441](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/441)) Remove double display of person id in the banner when there is a deathdate
|
||||
### DX
|
||||
* ([#280](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/280)) Add missing fixtures for proper loading of AccompanyingPeriods
|
||||
* ([#386](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/386)) Use mkdocs with mkdocs-material instead of sphinx to build chill developer documentation
|
||||
### UX
|
||||
* ([#456](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/456)) Display whether doc generation template is active or not in admin and order templates alphabetically
|
||||
* ([#460](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/460)) Display calendar item info on cancel page
|
||||
* ([#424](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/424)) Display entire comment for activity item within list
|
||||
* ([#474](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/474)) Improve accessibility of event form
|
||||
@@ -19,11 +19,11 @@ max_line_length = 80
|
||||
[COMMIT_EDITMSG]
|
||||
max_line_length = 0
|
||||
|
||||
[*.{js, vue, ts}]
|
||||
[*.{js,vue,ts}]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[.rst]
|
||||
ident_size = 3
|
||||
ident_style = space
|
||||
[*.rst]
|
||||
indent_size = 3
|
||||
indent_style = space
|
||||
|
||||
|
||||
6
.env
6
.env
@@ -86,9 +86,13 @@ ADD_ADDRESS_MAP_CENTER_Z=15
|
||||
## Redis Cache & redis database
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT}
|
||||
REDIS_URL="redis://${REDIS_HOST}:${REDIS_PORT}"
|
||||
###< chill-project/chill-bundles ###
|
||||
|
||||
###> symfony/ovh-cloud-notifier ###
|
||||
# OVHCLOUD_DSN=ovhcloud://APPLICATION_KEY:APPLICATION_SECRET@default?consumer_key=CONSUMER_KEY&service_name=SERVICE_NAME
|
||||
###< symfony/ovh-cloud-notifier ###
|
||||
|
||||
###> symfony/loco-translation-provider ###
|
||||
#LOCO_DSN=loco://API_KEY@default
|
||||
###< symfony/loco-translation-provider ###
|
||||
|
||||
4
.env.dev
Normal file
4
.env.dev
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
APP_SECRET=72759e571285ef25677c88f967a73386
|
||||
###< symfony/framework-bundle ###
|
||||
40
.env.test
40
.env.test
@@ -1,39 +1,5 @@
|
||||
# variables for .env environement
|
||||
# those variables suits for gitlab-ci
|
||||
# Run tests from root to adapt your own environment
|
||||
# define your env variables for the test env here
|
||||
KERNEL_CLASS='App\Kernel'
|
||||
APP_SECRET='$ecretf0rt3st'
|
||||
|
||||
ADMIN_PASSWORD=password
|
||||
|
||||
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
|
||||
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
|
||||
JWT_PASSPHRASE=2a30f6ba26521a2613821da35f28386e
|
||||
|
||||
TWILIO_SID=~
|
||||
TWILIO_SECRET=~
|
||||
DEFAULT_CARRIER_CODE=BE
|
||||
|
||||
ADD_ADDRESS_DEFAULT_COUNTRY=BE
|
||||
ADD_ADDRESS_MAP_CENTER_X=50.8443
|
||||
ADD_ADDRESS_MAP_CENTER_Y=4.3523
|
||||
ADD_ADDRESS_MAP_CENTER_Z=15
|
||||
|
||||
SHORT_MESSAGE_DSN=null://null
|
||||
MESSENGER_TRANSPORT_DSN=sync://
|
||||
|
||||
###> doctrine/doctrine-bundle ###
|
||||
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
|
||||
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
|
||||
#
|
||||
DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5454/test?serverVersion=14&charset=utf8"
|
||||
###< doctrine/doctrine-bundle ###
|
||||
|
||||
ASYNC_UPLOAD_TEMP_URL_KEY=
|
||||
ASYNC_UPLOAD_TEMP_URL_BASE_PATH=
|
||||
ASYNC_UPLOAD_TEMP_URL_CONTAINER=
|
||||
|
||||
MAILER_DSN=null://null
|
||||
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PORT=6363
|
||||
SYMFONY_DEPRECATIONS_HELPER=999999
|
||||
DEFAULT_CARRIER_CODE=TEST
|
||||
|
||||
@@ -7,14 +7,6 @@
|
||||
"message": "'app' is assigned a value but never used.",
|
||||
"hash": "f8c2979921289906e3baabae31ba101ead91504f"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/index.js",
|
||||
"line": 57,
|
||||
"column": 23,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'event' is defined but never used.",
|
||||
"hash": "cf0cf378f71403f62a6425f384ccbbdec433d1f2"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillCalendarBundle/Resources/public/module/Invite/answer.js",
|
||||
"line": 7,
|
||||
@@ -127,46 +119,6 @@
|
||||
"message": "'payload' is defined but never used.",
|
||||
"hash": "66c545917093ba30f1d6ca10ddaa676140e749bd"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue",
|
||||
"line": 224,
|
||||
"column": 10,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reactive' is defined but never used.",
|
||||
"hash": "96ed76a9828138fb125fc36c4b55e900bbfe87c2"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue",
|
||||
"line": 230,
|
||||
"column": 5,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'DropArg' is defined but never used.",
|
||||
"hash": "bd405399a4091d65e8391404bfb0c4611816c8e0"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue",
|
||||
"line": 251,
|
||||
"column": 9,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'t' is assigned a value but never used.",
|
||||
"hash": "bc09207a496405f7a71c178e522b89aeb1f7ebd3"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue",
|
||||
"line": 356,
|
||||
"column": 32,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'arg' is defined but never used.",
|
||||
"hash": "aeae152f0669b946a1ad681dd52b0ef03393ae79"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue",
|
||||
"line": 434,
|
||||
"column": 11,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'changedEvent' is assigned a value but never used.",
|
||||
"hash": "a7a81a6bf09d00c0364e3aa8207ffad853f0547b"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/Components/EditLocation.vue",
|
||||
"line": 77,
|
||||
@@ -399,14 +351,6 @@
|
||||
"message": "'error' is defined but never used.",
|
||||
"hash": "e26e5e101e90d2b7ee84d6f5de8c819e52129c17"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/index.ts",
|
||||
"line": 29,
|
||||
"column": 14,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'vm' is defined but never used.",
|
||||
"hash": "8e7f5e89dd72c54459cf82156389b88988f97d63"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/uploader.js",
|
||||
"line": 39,
|
||||
@@ -615,14 +559,6 @@
|
||||
"message": "'ref' is defined but never used.",
|
||||
"hash": "2a27cd6d06a26e1326654c929068e3704137e24b"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/HistoryButton/HistoryButtonList.vue",
|
||||
"line": 57,
|
||||
"column": 17,
|
||||
"ruleId": "vue/valid-v-for",
|
||||
"message": "Custom elements in iteration require 'v-bind:key' directives.",
|
||||
"hash": "cce787939524e83dd135869e13738ef332d7156c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/WopiEditButton.vue",
|
||||
"line": 15,
|
||||
@@ -983,22 +919,6 @@
|
||||
"message": "'_e' is defined but never used.",
|
||||
"hash": "1d6448401778e8c56554020fe5abd47851ed33f3"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/module/wopi-link/index.js",
|
||||
"line": 21,
|
||||
"column": 55,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'e' is defined but never used.",
|
||||
"hash": "eae499e4f6e9f43a9d17f9cd917cb6d3d97be25c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/page/export/download-export.js",
|
||||
"line": 3,
|
||||
"column": 55,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'e' is defined but never used.",
|
||||
"hash": "088fd383e7807e484aefc9825209bc7c8942bd22"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/page/homepage_widget/index.js",
|
||||
"line": 9,
|
||||
@@ -1089,115 +1009,19 @@
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 247,
|
||||
"column": 5,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'postAddressToPerson' is defined but never used.",
|
||||
"hash": "8a41c437cf2b5554cbbe1704cd51f3102b3d5994"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 248,
|
||||
"column": 5,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'postAddressToHousehold' is defined but never used.",
|
||||
"hash": "66dec84b2ece299daf21308e5e60d497ba442b27"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 490,
|
||||
"line": 516,
|
||||
"column": 21,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"context\" prop.",
|
||||
"hash": "0d3f40c47974a4371072b3b9ee04b197c830162d"
|
||||
"hash": "984c4203f2ac1e1bb65f9ce76ecd03b763cfaa83"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 491,
|
||||
"line": 517,
|
||||
"column": 21,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"context\" prop.",
|
||||
"hash": "8e877b7e588c30e182f7b572bdb9685360f9cf99"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 508,
|
||||
"column": 47,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "5a3e3401bc3c765d91faaf4cfde57697af1262b7"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 525,
|
||||
"column": 47,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "35a741d90379574b9323279f5802193d0c98a9dc"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 553,
|
||||
"column": 47,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "c23d1ddf6c0d10ae97948e74aee9c14b9320b86c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 572,
|
||||
"column": 47,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "4322e81c6ea9d9734c680633a724d5bd4fabacb2"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 803,
|
||||
"column": 47,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "7928a6461b9d394c7d97f048933553936f7d8963"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue",
|
||||
"line": 852,
|
||||
"column": 47,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "e5afdb8efccb5470a08dde48f755b1268fa947b5"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 93,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "68f5e1cf5c03f9ada59c9e0afca0b74c7f3fca4b"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 101,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "50d730f6109092baff2db66adc44dc1315e2bda2"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 109,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "573e4c041ce663f28b933d7a675c2a525aba644c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 117,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "293f845eeab515b1df4649d136c2d8219ed59c4d"
|
||||
"hash": "c9fb019bc21bfa77d989ed596913b99dd653c594"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
@@ -1224,204 +1048,180 @@
|
||||
"hash": "2d5a5e680ff207ad97c7e7b7d999064b561dfd8a"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 106,
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 149,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "d52356f2af31d0167c02330ec22d09fbfa6b2b9f"
|
||||
"hash": "e4c1ecd7ae77d46ac3625c5bbe92a24d6a964db9"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 114,
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 157,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "c8e8e06f370f93bf05867e93b5f037dfa46937b1"
|
||||
"hash": "4dece2db87c6ce1c04ae06c088ddfe916c1c0c61"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 165,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "facc7a0f17bdf19396fae3d0de3da82e60503c0d"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMore.vue",
|
||||
"line": 173,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "19de32c76518387218264d7c4dab914d143a9cca"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 128,
|
||||
"column": 13,
|
||||
"line": 130,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "9abaf71ca4b4f292b3b01e724d0a7733365e71f1"
|
||||
"hash": "239ac02a02694d5b20ab30d4c7ce5838c51d1515"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 129,
|
||||
"column": 13,
|
||||
"line": 138,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "0b0743959778a9e3d93089b132608816ee4e6646"
|
||||
"hash": "a54f9bc6d1edfa4df93c7dd7d409cfef3fccf99e"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 132,
|
||||
"line": 152,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "9759da7b7859b8ee8efaf74876430658ac6b6fe2"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 133,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "dba8be9a27ab74ec743b7d9e07c05d857b407dd3"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 134,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "9b1f5bce779aafc46b19d7a5d266eaa29f8f9be9"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 139,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "fe6fc4aea0994ba9da15b7c09d308842b67958cb"
|
||||
"hash": "74a5f664d18f3916ea908897fcd0291cb0128f29"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 153,
|
||||
"column": 55,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "bd0e024fcad2e3f4566f15293e3c25c840f6dd3e"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 154,
|
||||
"column": 37,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "596c4b180b926b7829f987384328bf5636cd367a"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 171,
|
||||
"column": 59,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "5b41d5f9b45da074fb7bbbbd45e0da501da72071"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 172,
|
||||
"column": 41,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "d92b92a25043244cca809bd129633b7e024e26b4"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 190,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "dd9a85ea740742d620e864796f67c5bff834486d"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 191,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "e3e59960d0d50709a57b336f66b586710b774892"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 192,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "fe11b0e54396511e7b3b08615a78d22fc27e2fad"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 222,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "63c14c2150c33ec701bc4a0ff94efde69537d490"
|
||||
"hash": "740ea5d793c7a34c9f352d8b333f3aa04cc80ee8"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 156,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "af8aca18f0226a5988ed90d44d95e2d607bfb5e6"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 157,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "7bc2453017793ae20cd6c10005f941d384b59d84"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 158,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "571b4ee5f22358dd165ec59696bb3439b7c9ff6c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 163,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "cfcb5946c86e289fc61623a794284a5a272d02e8"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 178,
|
||||
"column": 37,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "0ec402e43cb08bf129e0737c0d2c4f6d0c7af8bd"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 196,
|
||||
"column": 41,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "ec178d33e067aac892e015002afb6f3a2ff98762"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 214,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "c0f4e5454e672b6064eb9cf6c235c6810f7bfa80"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 215,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "e3dd840d2474f9865a45822872bf9ecfb15961d7"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 216,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "a32a60382b145cc7a4a7ebe01ec435b8e3103320"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue",
|
||||
"line": 246,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "082447e5c731012f3acc282943502775dfd24797"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 96,
|
||||
"line": 118,
|
||||
"column": 20,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "d2a9fdaeef0e2810f480022d4c6f99e4f76a818e"
|
||||
"hash": "d4fba4fe09af3c0937c0dd164928c8930c1591b5"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 96,
|
||||
"line": 118,
|
||||
"column": 20,
|
||||
"ruleId": "vue/no-side-effects-in-computed-properties",
|
||||
"message": "Unexpected side effect in \"cities\" computed property.",
|
||||
"hash": "dd92a60a9b1ebefeb9a90941d45326fbfa483733"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 102,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "04be01ab638ce01f568fb0216929e65e1175ca23"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 110,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "8619c8e0b63e87d09268832f90e4fba06b87e41f"
|
||||
"hash": "1113a114d5aaf9f32f442916d25458541c5af35c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 124,
|
||||
"column": 13,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "281f918da00635079501418b1e6b2c05b62eb4a7"
|
||||
"hash": "fa56a7c93583f0a9d0c2ecac10228c4f4fc1bc3a"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 125,
|
||||
"column": 13,
|
||||
"line": 132,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "c131b09fa67ab1d069f1d04a54582d6b0f206153"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 126,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "3d3a2a4add64c291b8f5f1cddd90a173cd6a819d"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 131,
|
||||
"column": 21,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "ed48f4988914d7897018a2e06830a97e6740b3e8"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 145,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "744f3a7610d4d6015e50e25149bceffd6c6e2763"
|
||||
"hash": "9fe87937ea67d1dae95fb3d44d4be0da2eba0905"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
@@ -1441,115 +1241,139 @@
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 149,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "1e7b1ad55866f708baaca72dfa4ff26d6f8e5d21"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 152,
|
||||
"line": 148,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "84779331536ffceec8d4a8c5ca4307310b882549"
|
||||
"hash": "ab4f478fbfbc954b8dff75176dcd432f9ff28cfc"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 161,
|
||||
"line": 153,
|
||||
"column": 21,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "1d907d149f9ddb62e32140a90efe9a74b3e71fef"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 167,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "0789999841be671a4d8ab080d6fdb679f843eb52"
|
||||
"hash": "8aa37d2d4f011773e68838a2c88017875de563b5"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 170,
|
||||
"column": 51,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "bbb17afa114f016e2058d90aa32d2a625804f0d1"
|
||||
"line": 168,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "a4827a357e52a51fa9262319114d81a130296acf"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 169,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "a4c9715664202949e3242b8d4aa4098288b46dc4"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 171,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "f3e9e21e433e90ec7b615b8940d43c4177372b66"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 174,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "770b7a24cc24b380e88db47d62422c8e1ece2571"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 183,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "2aef3c519a9ec6abcfe7573989d3de19d5c4c752"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 193,
|
||||
"column": 33,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "5fbe407ceceb37bff2ac800ceddd7942540132f1"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 190,
|
||||
"column": 55,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'reject' is defined but never used.",
|
||||
"hash": "e2af91def877befbabef8e93deba4c58a3ee2ded"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 191,
|
||||
"column": 37,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "ee8544ee45681a650ed7d4918ae979685cdd8f0f"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 210,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "5d9d2217c8c7e6571bc9f72a98ea5b370edb4968"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 211,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "6e04619b373c23c91f6c36c2aad314ac16cdb697"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 212,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "39df045639a62f64ccdb03a80e286bc3ad772587"
|
||||
"hash": "5d1f97e4d7d9f47399d312e8b9f95ef9e3843b8c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 213,
|
||||
"column": 17,
|
||||
"column": 37,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "c399a43fa797a8ce61c9d96a644a39cc84a387b7"
|
||||
"hash": "c1df874f790ef0c036bf58ae8a8db1ee173685d4"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 245,
|
||||
"line": 232,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "476e6588a28ac9382e8b9d2e63a8babecd23bad8"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 233,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "6a0c82ba72d6d87217bf33a6ad8e40a4b81bc802"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 234,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "741d5af6c7d90041c0dc1c1df2e8699b80fca69a"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 235,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "c3ffd141f58d532663875cc5c7d338ed00db2a6d"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue",
|
||||
"line": 267,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "04337a07944caaa4819cfebcf29e1a7cbfdf248b"
|
||||
"hash": "2700f258396516a2fe971618fafbcdf72cdda3ab"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue",
|
||||
"line": 76,
|
||||
"line": 94,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "373a2e31f110d138c66d77f1faf5dc61545c55af"
|
||||
"hash": "4be1b0592efa775092a91a1d744e16ce98bd216e"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue",
|
||||
"line": 81,
|
||||
"line": 99,
|
||||
"column": 13,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "421eb6a63224b4b1d81b216677a710c5c99ddee3"
|
||||
"hash": "19b54b6d76c30249d520a296f826eda9d6eb0668"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/DatePane.vue",
|
||||
@@ -1569,19 +1393,19 @@
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/EditPane.vue",
|
||||
"line": 155,
|
||||
"line": 169,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "b3a822914fcb5e2fcf28efc331a45b9205002eeb"
|
||||
"hash": "dcb7b34098062760ddbb849655a5bb3ca65c36d3"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/EditPane.vue",
|
||||
"line": 164,
|
||||
"line": 178,
|
||||
"column": 17,
|
||||
"ruleId": "vue/no-mutating-props",
|
||||
"message": "Unexpected mutation of \"entity\" prop.",
|
||||
"hash": "72c7d850f6cdeaf65b373a33234222f9766ee30b"
|
||||
"hash": "86b3ecf201025cac36878c5e4bf8850fb9d58cb5"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/index.js",
|
||||
@@ -1631,14 +1455,6 @@
|
||||
"message": "'app' is assigned a value but never used.",
|
||||
"hash": "9e6125f4fc387dc362c69cc6e3ce360eb2851f1b"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/PickEntity/PickEntity.vue",
|
||||
"line": 60,
|
||||
"column": 22,
|
||||
"ruleId": "vue/require-valid-default-prop",
|
||||
"message": "Type of the default value for 'suggested' prop must be a function.",
|
||||
"hash": "d30212820bc2e97fa02d75dbc3a014558693f169"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsMap.vue",
|
||||
"line": 24,
|
||||
@@ -1727,14 +1543,6 @@
|
||||
"message": "'tags' is assigned a value but never used.",
|
||||
"hash": "ae9bb2e0651c118ed9efd227e88b86cc83f5d80d"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/StickyNav.vue",
|
||||
"line": 116,
|
||||
"column": 18,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'event' is defined but never used.",
|
||||
"hash": "201f182769c6dfb87148b841e7d9b592be429669"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/index.js",
|
||||
"line": 19,
|
||||
@@ -1767,14 +1575,6 @@
|
||||
"message": "'app' is assigned a value but never used.",
|
||||
"hash": "aaaaa63e7a60443b8cbf8191feb9142852ebdf1c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue",
|
||||
"line": 79,
|
||||
"column": 13,
|
||||
"ruleId": "vue/require-v-for-key",
|
||||
"message": "Elements in iteration expect to have 'v-bind:key' directives.",
|
||||
"hash": "422f53925922e59655d0f71624c19af75d41628c"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/index.js",
|
||||
"line": 12,
|
||||
@@ -1815,22 +1615,6 @@
|
||||
"message": "'evalFQDN' is assigned a value but never used.",
|
||||
"hash": "7fc32caafa23addddf44f3acbc5045b4523a0271"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/store.js",
|
||||
"line": 611,
|
||||
"column": 9,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'errors' is assigned a value but never used.",
|
||||
"hash": "c41cf979fc1626c38328dbf1028800c3395496bd"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/ExportFormActionGoalResult/App.vue",
|
||||
"line": 282,
|
||||
"column": 7,
|
||||
"ruleId": "@typescript-eslint/no-unused-expressions",
|
||||
"message": "Expected an assignment or function call and instead saw an expression.",
|
||||
"hash": "de3a6e2bb10a80a2bacba665be74266c7efc7d64"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/ExportFormActionGoalResult/index.js",
|
||||
"line": 16,
|
||||
@@ -1847,38 +1631,6 @@
|
||||
"message": "'app' is assigned a value but never used.",
|
||||
"hash": "2f161e663689e3e4dfe2c53b0d64c91a4d2b1a60"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/VisGraph/App.vue",
|
||||
"line": 263,
|
||||
"column": 19,
|
||||
"ruleId": "vue/return-in-computed-property",
|
||||
"message": "Expected to return a value in \"refreshNetwork\" computed property.",
|
||||
"hash": "2c1b08a49098c83b09058cedc0a962126e91e544"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/VisGraph/App.vue",
|
||||
"line": 270,
|
||||
"column": 7,
|
||||
"ruleId": "vue/no-side-effects-in-computed-properties",
|
||||
"message": "Unexpected side effect in \"legendLayers\" computed property.",
|
||||
"hash": "760948d2187c853f17ac9a1bd7107e883092d4f4"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/VisGraph/App.vue",
|
||||
"line": 281,
|
||||
"column": 5,
|
||||
"ruleId": "vue/no-dupe-keys",
|
||||
"message": "Duplicate key 'checkedLayers'. May cause name collision in script or template tag.",
|
||||
"hash": "447edb461e15e3ff5c60c8ecba88131e442539aa"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/VisGraph/App.vue",
|
||||
"line": 353,
|
||||
"column": 7,
|
||||
"ruleId": "@typescript-eslint/no-unused-expressions",
|
||||
"message": "Expected an assignment or function call and instead saw an expression.",
|
||||
"hash": "9cf656cbf1eb3d7cc0082e63adcd320b6093d14f"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/VisGraph/index.js",
|
||||
"line": 20,
|
||||
@@ -1887,22 +1639,6 @@
|
||||
"message": "'app' is assigned a value but never used.",
|
||||
"hash": "9e94e6412b8a44e47bfe8e66218cad09cff5bed4"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AccompanyingPeriod/SetReferrer.vue",
|
||||
"line": 42,
|
||||
"column": 16,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'response' is defined but never used.",
|
||||
"hash": "62de07b13c662e32332bb062038acee23978ea70"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AddPersons.vue",
|
||||
"line": 356,
|
||||
"column": 28,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'_response' is defined but never used.",
|
||||
"hash": "097e7788a2b5dea500b80b8a3cf968e57063a66a"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AddPersons/TypeUserGroup.vue",
|
||||
"line": 6,
|
||||
@@ -1918,45 +1654,5 @@
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'UserRenderBoxBadge' is defined but never used.",
|
||||
"hash": "99eba0d8633b2c9497417f4f61ec4194dbb2a96b"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillWopiBundle/src/Resources/public/module/pending/index.ts",
|
||||
"line": 4,
|
||||
"column": 3,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'StoredObjectStatus' is defined but never used.",
|
||||
"hash": "63f8c4572293916850d6165647774b27d4b732c6"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillWopiBundle/src/Resources/public/module/pending/index.ts",
|
||||
"line": 5,
|
||||
"column": 3,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'StoredObjectStatusChange' is defined but never used.",
|
||||
"hash": "a87c178e3eb5999bf0f46b3fa1c6da77e1be08b9"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillWopiBundle/src/Resources/public/module/pending/index.ts",
|
||||
"line": 30,
|
||||
"column": 61,
|
||||
"ruleId": "@typescript-eslint/no-unused-vars",
|
||||
"message": "'e' is defined but never used.",
|
||||
"hash": "02953121583f4f73742a19adab099ab63df9076e"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillWopiBundle/src/Resources/public/module/pending/index.ts",
|
||||
"line": 31,
|
||||
"column": 32,
|
||||
"ruleId": "@typescript-eslint/no-explicit-any",
|
||||
"message": "Unexpected any. Specify a different type.",
|
||||
"hash": "af48e21a1651b6017ede882dab249c00a818a44d"
|
||||
},
|
||||
{
|
||||
"path": "src/Bundle/ChillWopiBundle/src/Resources/public/module/pending/index.ts",
|
||||
"line": 37,
|
||||
"column": 16,
|
||||
"ruleId": "@typescript-eslint/no-explicit-any",
|
||||
"message": "Unexpected any. Specify a different type.",
|
||||
"hash": "7513ea552a0a649ce4ab93b6cf9d40bfef4f68d9"
|
||||
}
|
||||
]
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -18,6 +18,9 @@ migrations/*
|
||||
templates/*
|
||||
translations/*
|
||||
|
||||
# we allow developers to add customization on their installation, without commiting it
|
||||
config/packages/dev/*
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
/.env.local
|
||||
/.env.local.php
|
||||
@@ -30,7 +33,7 @@ translations/*
|
||||
|
||||
###> phpunit/phpunit ###
|
||||
/phpunit.xml
|
||||
.phpunit.result.cache
|
||||
/.phpunit.cache/
|
||||
###< phpunit/phpunit ###
|
||||
|
||||
/.php-cs-fixer.cache
|
||||
@@ -59,3 +62,4 @@ yarn-error.log
|
||||
/.php-cs-fixer.php
|
||||
/.php-cs-fixer.cache
|
||||
###< friendsofphp/php-cs-fixer ###
|
||||
/config/reference.php
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Select what we should cache between builds
|
||||
cache:
|
||||
paths:
|
||||
- /vendor/
|
||||
- vendor/
|
||||
- .cache
|
||||
- node_modules/
|
||||
|
||||
@@ -38,15 +38,67 @@ variables:
|
||||
TZ: Europe/Brussels
|
||||
# avoid direct deprecations (using symfony phpunit bridge: https://symfony.com/doc/4.x/components/phpunit_bridge.html#internal-deprecations
|
||||
SYMFONY_DEPRECATIONS_HELPER: max[total]=99999999&max[self]=0&max[direct]=45&verbose=0
|
||||
# consider the root package at the dev-master version
|
||||
# this is required to work with packages
|
||||
# see https://getcomposer.org/doc/articles/troubleshooting.md#dependencies-on-the-root-package
|
||||
COMPOSER_ROOT_VERSION: dev-master
|
||||
MAILER_DSN: 'null://null'
|
||||
|
||||
stages:
|
||||
- mirror
|
||||
- Composer install
|
||||
- Tests
|
||||
- Deploy
|
||||
|
||||
mirror_chill_zimbra_bundle:
|
||||
stage: mirror
|
||||
image: alpine:latest
|
||||
|
||||
variables:
|
||||
GIT_DEPTH: 0 # <-- access to the full git history
|
||||
|
||||
rules:
|
||||
# 1) Allow manual run from GitLab UI, whatever the branch
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
|
||||
# 2) Auto-run on commits to master or 472-zimbra-connector
|
||||
# but only if relevant files changed
|
||||
- if: '$CI_COMMIT_BRANCH == "master" || $CI_COMMIT_BRANCH == "472-zimbra-connector"'
|
||||
changes:
|
||||
- packages/ChillZimbraBundle/**/*
|
||||
- .gitlab-ci.yml
|
||||
|
||||
# 3) Otherwise: never run
|
||||
- when: never
|
||||
|
||||
|
||||
before_script:
|
||||
- apk add --no-cache git git-subtree openssh
|
||||
# Config git
|
||||
- git config --global user.email "ci@gitlab.com"
|
||||
- git config --global user.name "GitLab CI"
|
||||
# Préparation SSH
|
||||
- mkdir -p ~/.ssh
|
||||
- cp "$DEPLOY_KEY" ~/.ssh/id_ed25519
|
||||
- printf '\n' >> ~/.ssh/id_ed25519
|
||||
- chmod 600 ~/.ssh/id_ed25519
|
||||
- ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
|
||||
# Ajout du remote vers le repo dédié
|
||||
- git remote add chill-zimbra-connector git@gitlab.com:Chill-Projet/chill-zimbra-connector.git || true
|
||||
|
||||
script:
|
||||
# On s'assure d'être sur la bonne branche (celle qui a déclenché le job, master)
|
||||
- git checkout "$CI_COMMIT_REF_NAME"
|
||||
|
||||
# Crée une branche temporaire qui contient uniquement l'historique de packages/ChillZimbraBundle
|
||||
- git subtree split --prefix=packages/ChillZimbraBundle -b chill_zimbra_temp
|
||||
|
||||
# Push vers le repo cible, branche master du repo chill-zimbra-connector
|
||||
- git push chill-zimbra-connector chill_zimbra_temp:main
|
||||
|
||||
build:
|
||||
stage: Composer install
|
||||
image: chill/base-image:8.3-edge
|
||||
image: chill/base-image:8.4-edge
|
||||
before_script:
|
||||
- composer config -g cache-dir "$(pwd)/.cache"
|
||||
script:
|
||||
@@ -61,7 +113,7 @@ build:
|
||||
|
||||
code_style:
|
||||
stage: Tests
|
||||
image: chill/base-image:8.3-edge
|
||||
image: chill/base-image:8.4-edge
|
||||
script:
|
||||
- php-cs-fixer fix --dry-run -v --show-progress=none
|
||||
cache:
|
||||
@@ -74,35 +126,25 @@ code_style:
|
||||
|
||||
phpstan_tests:
|
||||
stage: Tests
|
||||
image: chill/base-image:8.3-edge
|
||||
image: chill/base-image:8.4-edge
|
||||
dependencies:
|
||||
- build
|
||||
variables:
|
||||
COMPOSER_MEMORY_LIMIT: 3G
|
||||
before_script:
|
||||
- bin/console cache:clear --env=dev
|
||||
script:
|
||||
- composer exec phpstan -- analyze --memory-limit=3G
|
||||
cache:
|
||||
paths:
|
||||
- .cache/
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- vendor/
|
||||
|
||||
rector_tests:
|
||||
stage: Tests
|
||||
image: chill/base-image:8.3-edge
|
||||
image: chill/base-image:8.4-edge
|
||||
dependencies:
|
||||
- build
|
||||
before_script:
|
||||
- bin/console cache:clear --env=dev
|
||||
script:
|
||||
- composer exec rector -- process --dry-run
|
||||
cache:
|
||||
paths:
|
||||
- .cache/
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- vendor/
|
||||
|
||||
lint:
|
||||
stage: Tests
|
||||
@@ -132,7 +174,9 @@ lint:
|
||||
|
||||
unit_tests:
|
||||
stage: Tests
|
||||
image: chill/base-image:8.3-edge
|
||||
image: chill/base-image:8.4-edge
|
||||
dependencies:
|
||||
- build
|
||||
variables:
|
||||
COMPOSER_MEMORY_LIMIT: 3G
|
||||
before_script:
|
||||
|
||||
@@ -22,16 +22,16 @@ Chill is a comprehensive web application built as a set of Symfony bundles. It i
|
||||
- **Backend**: PHP 8.3+, Symfony 5.4
|
||||
- **Frontend**: JavaScript/TypeScript, Vue.js 3, Bootstrap 5
|
||||
- **Build Tools**: Webpack Encore, Yarn
|
||||
- **Database**: PostgreSQL with materialized views
|
||||
- **Database**: PostgreSQL with materialized views. We do not support other databases.
|
||||
- **Other Services**: Redis, AMQP (RabbitMQ), SMTP
|
||||
|
||||
## Project Structure
|
||||
|
||||
Note: This is a project which exists from a long time ago, and we found multiple structure inside each bundle. When having the choice, the developers should choose the new structure.
|
||||
Note: This is a project that's existed for a long time, and throughout the years we've used multiple structures inside each bundle. When having the choice, the developers should choose the new structure.
|
||||
|
||||
The project follows a standard Symfony bundle structure:
|
||||
- `/src/Bundle/`: Contains all the Chill bundles. The code is either at the root of the bundle directory, or within a `src/` directory (preferred). See psr4 mapping at the root's `composer.json`.
|
||||
- each bundle come with his own tests, either in the `Tests` directory (when the code is directly within the bundle directory (for instance `src/Bundle/ChillMainBundle/Tests`, `src/Bundle/ChillPersonBundle/Tests`)), or inside the `tests` directory, alongside to the `src/` sub-directory (example: `src/Bundle/ChillWopiBundle/tests`) (this is the preferred way).
|
||||
- each bundle comes with its own tests, either in the `Tests` directory (when the code is directly within the bundle directory (for instance `src/Bundle/ChillMainBundle/Tests`, `src/Bundle/ChillPersonBundle/Tests`)), or inside the `tests` directory, alongside the `src/` sub-directory (example: `src/Bundle/ChillWopiBundle/tests`) (this is the preferred way).
|
||||
- `/docs/`: Contains project documentation
|
||||
|
||||
Each bundle typically has the following structure:
|
||||
@@ -46,13 +46,13 @@ Each bundle typically has the following structure:
|
||||
|
||||
### A special word about TicketBundle
|
||||
|
||||
The ticket bundle is developed using a kind of "Command" pattern. The controller fill a "Command", and a "CommandHandler" handle this command. They are savec in the `src/Bundle/ChillTicketBundle/src/Action` directory.
|
||||
The ticket bundle is developed using a kind of "Command" pattern. The controller fills a "Command," and a "CommandHandler" handles this command. They are saved in the `src/Bundle/ChillTicketBundle/src/Action` directory.
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
### Building and Configuration Instructions
|
||||
|
||||
All the command should be run through the `symfony` command, which will configure the required variables.
|
||||
All the commands should be run through the `symfony` command, which will configure the required variables.
|
||||
|
||||
For assets, we must ensure that we use node at version `^20.0.0`. This is done using `nvm use 20`.
|
||||
|
||||
@@ -87,7 +87,7 @@ For assets, we must ensure that we use node at version `^20.0.0`. This is done u
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
5. **Set Up the Database**:
|
||||
6. **Set Up the Database**:
|
||||
```bash
|
||||
# Create the database
|
||||
symfony console doctrine:database:create
|
||||
@@ -99,20 +99,20 @@ For assets, we must ensure that we use node at version `^20.0.0`. This is done u
|
||||
symfony console doctrine:fixtures:load
|
||||
```
|
||||
|
||||
6. **Build Assets**:
|
||||
7. **Build Assets**:
|
||||
```bash
|
||||
nvm use 20
|
||||
yarn run encore dev
|
||||
```
|
||||
|
||||
7. **Start the Development Server**:
|
||||
8. **Start the Development Server**:
|
||||
```bash
|
||||
symfony server:start -d
|
||||
```
|
||||
|
||||
#### Docker Setup
|
||||
|
||||
The project includes Docker configuration for easier development:
|
||||
The project includes a Docker configuration for easier development:
|
||||
|
||||
1. **Start Docker Services**:
|
||||
```bash
|
||||
@@ -149,28 +149,107 @@ Key configuration files:
|
||||
- `package.json`: JavaScript dependencies and scripts
|
||||
- `.env`: Default environment variables. Must usually not be updated: use `.env.local` instead.
|
||||
|
||||
### Database migrations
|
||||
|
||||
Each time a doctrine entity is created, we generate migration to adapt the database.
|
||||
|
||||
The migration is created using the command `symfony console doctrine:migrations:diff --no-interaction --namespace <namespace>`, where the namespace is the relevant namespace for migration. As this is a bash script, remember to quote the `\` (`\` must become `\\` in your command).
|
||||
|
||||
Each bundle has his own namespace for migration (always ask me to confirm that command with a list of updated / created entities so that I can confirm to you that it is ok):
|
||||
|
||||
- `Chill\Bundle\ActivityBundle` writes migrations to `Chill\Migrations\Activity`;
|
||||
- `Chill\Bundle\BudgetBundle` writes migrations to `Chill\Migrations\Budget`;
|
||||
- `Chill\Bundle\CustomFieldsBundle` writes migrations to `Chill\Migrations\CustomFields`;
|
||||
- `Chill\Bundle\DocGeneratorBundle` writes migrations to `Chill\Migrations\DocGenerator`;
|
||||
- `Chill\Bundle\DocStoreBundle` writes migrations to `Chill\Migrations\DocStore`;
|
||||
- `Chill\Bundle\EventBundle` writes migrations to `Chill\Migrations\Event`;
|
||||
- `Chill\Bundle\CalendarBundle` writes migrations to `Chill\Migrations\Calendar`;
|
||||
- `Chill\Bundle\FamilyMembersBundle` writes migrations to `Chill\Migrations\FamilyMembers`;
|
||||
- `Chill\Bundle\FranceTravailApiBundle` writes migrations to `Chill\Migrations\FranceTravailApi`;
|
||||
- `Chill\Bundle\JobBundle` writes migrations to `Chill\Migrations\Job`;
|
||||
- `Chill\Bundle\MainBundle` writes migrations to `Chill\Migrations\Main`;
|
||||
- `Chill\Bundle\PersonBundle` writes migrations to `Chill\Migrations\Person`;
|
||||
- `Chill\Bundle\ReportBundle` writes migrations to `Chill\Migrations\Report`;
|
||||
- `Chill\Bundle\TaskBundle` writes migrations to `Chill\Migrations\Task`;
|
||||
- `Chill\Bundle\ThirdPartyBundle` writes migrations to `Chill\Migrations\ThirdParty`;
|
||||
- `Chill\Bundle\TicketBundle` writes migrations to `Chill\Migrations\Ticket`;
|
||||
- `Chill\Bundle\WopiBundle` writes migrations to `Chill\Migrations\Wopi`;
|
||||
|
||||
Once created the, comment's classes should be removed and a description of the changes made to the entities should be added to the migrations, using the `getDescription` method. The migration should not be cleaned by any artificial intelligence, as modifying this migration is error prone.
|
||||
|
||||
### Guidelines related to code structure and requirements
|
||||
|
||||
#### Usage of clock
|
||||
|
||||
When we need to use a DateTime or DateTimeImmutable that need to express "now", we prefer the usage of
|
||||
`Symfony\Component\Clock\ClockInterface`, where possible. This is usually not possible in doctrine entities,
|
||||
where injection does not work when restoring an entity from a database, but usually possible in services.
|
||||
|
||||
In test, we use `\Symfony\Component\Clock\MockClock` which is an implementation of `Symfony\Component\Clock\ClockInterface`
|
||||
where we have full and easy control of the date.
|
||||
|
||||
### Testing Information
|
||||
|
||||
The project uses PHPUnit for testing. Each bundle has its own test suite, and there's also a global test suite at the root level.
|
||||
|
||||
#### Use of mock in tests
|
||||
|
||||
##### General mocking
|
||||
|
||||
For creating mock, we prefer using prophecy (library phpspec/prophecy).
|
||||
|
||||
##### Useful helpers and tips that avoid creating a mock
|
||||
|
||||
Some notable implementations that are test helpers and avoid creating a mock:
|
||||
|
||||
- `\Psr\Log\NullLogger`, an implementation of `\Psr\Log\LoggerInterface`;
|
||||
- `\Symfony\Component\Clock\MockClock`, an implementation of `Symfony\Component\Clock\ClockInterface` (already mentioned above);
|
||||
- `\Symfony\Component\HttpClient\MockHttpClient`, an implementation of `\Symfony\Contracts\HttpClient\HttpClientInterface`;
|
||||
- When using `\Symfony\Component\Mailer\MailerInterface`, we can create the mock with "InMemoryTransport":
|
||||
|
||||
```php
|
||||
use Symfony\Component\Mailer\Transport\InMemoryTransport;
|
||||
use \Symfony\Component\Mailer\Mailer;
|
||||
|
||||
$transport = new InMemoryTransport();
|
||||
$mailer = new Mailer($transport);
|
||||
|
||||
// After sending:
|
||||
$messages = $transport->getSent(); // array of SentMessage
|
||||
```
|
||||
- When using `\Symfony\Contracts\EventDispatcher\EventDispatcherInterface`, we can use directly an instance of `\Symfony\Component\EventDispatcher\EventDispatcher`;
|
||||
|
||||
##### When we prefer not creating a mock
|
||||
|
||||
- When we use Doctrine Entities related to the project, we prefer not to use a mock: we instantiate them directly (unless it requires too much code to write);
|
||||
|
||||
##### Mocking final and readonly classes
|
||||
|
||||
Classes marked as final can't be mocked. To avoid that, either:
|
||||
|
||||
- we remove the `final` keyword from the class;
|
||||
- we extract an interface from the final class.
|
||||
|
||||
This must be a decision made by a human, not by an AI. Every AI task must abort with an explicit message in that case.
|
||||
|
||||
#### Running Tests
|
||||
|
||||
```bash
|
||||
# Run all tests
|
||||
vendor/bin/phpunit
|
||||
The tests are run from the project's root (not from the bundle's root: so, do not change the directory to any bundle directory before running tests).
|
||||
|
||||
# Run tests for a specific bundle
|
||||
vendor/bin/phpunit --testsuite NameBundle
|
||||
Tests must be run using the `symfony` command:
|
||||
|
||||
```bash
|
||||
|
||||
# Run a specific test file
|
||||
vendor/bin/phpunit path/to/TestFile.php
|
||||
symfony composer exec phpunit -- path/to/TestFile.php
|
||||
|
||||
# Run a specific test method
|
||||
vendor/bin/phpunit --filter methodName path/to/TestFile.php
|
||||
symfony composer exec phpunit -- --filter methodName path/to/TestFile.php
|
||||
```
|
||||
|
||||
When writing tests, only test specific files. Do not run all tests or the full
|
||||
test suite.
|
||||
|
||||
#### Test Structure
|
||||
|
||||
Tests are organized by bundle and follow the same structure as the bundle itself:
|
||||
@@ -218,7 +297,7 @@ class TicketTest extends TestCase
|
||||
|
||||
#### Test Database
|
||||
|
||||
For tests that require a database, the project uses an in-memory SQLite database by default. You can configure a different database for testing in the `.env.test` file.
|
||||
For tests that require a database, the project uses a postgresql database filled with fixtures (usage of doctrine-fixtures). You can configure a different database for testing in the `.env.test` file.
|
||||
|
||||
### Code Quality Tools
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ $finder = PhpCsFixer\Finder::create();
|
||||
$finder
|
||||
->in(__DIR__.'/src')
|
||||
->in(__DIR__.'/utils')
|
||||
->in(__DIR__.'/packages')
|
||||
->append([__FILE__])
|
||||
->exclude(['docs/', 'tests/app'])
|
||||
->notPath('tests/app')
|
||||
|
||||
4
.prettierrc
Normal file
4
.prettierrc
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"tabWidth": 2,
|
||||
"useTabs": false
|
||||
}
|
||||
@@ -4,11 +4,11 @@ version: 2
|
||||
build:
|
||||
os: ubuntu-22.04
|
||||
tools:
|
||||
python: "3.7"
|
||||
python: "3.11"
|
||||
|
||||
sphinx:
|
||||
configuration: docs/source/conf.py
|
||||
mkdocs:
|
||||
configuration: docs/mkdocs.yml
|
||||
|
||||
python:
|
||||
install:
|
||||
- requirements: docs/requirements.txt
|
||||
- requirements: docs/requirements.txt
|
||||
|
||||
30
.vscode/launch.json
vendored
Normal file
30
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Chill Debug",
|
||||
"type": "php",
|
||||
"request": "launch",
|
||||
"port": 9000,
|
||||
"pathMappings": {
|
||||
"/var/www/html": "${workspaceFolder}"
|
||||
},
|
||||
"preLaunchTask": "symfony"
|
||||
},
|
||||
{
|
||||
"name": "Yarn Encore Dev (Watch)",
|
||||
"type": "node-terminal",
|
||||
"request": "launch",
|
||||
"command": "yarn encore dev --watch",
|
||||
"cwd": "${workspaceFolder}"
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Chill Debug + Yarn Encore Dev (Watch)",
|
||||
"configurations": ["Chill Debug", "Yarn Encore Dev (Watch)"]
|
||||
}
|
||||
]
|
||||
}
|
||||
23
.vscode/tasks.json
vendored
Normal file
23
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"tasks": [
|
||||
{
|
||||
"type": "shell",
|
||||
"command": "symfony",
|
||||
"args": [
|
||||
"server:start",
|
||||
"--allow-http",
|
||||
"--no-tls",
|
||||
"--port=8000",
|
||||
"--allow-all-ip",
|
||||
"-d"
|
||||
],
|
||||
"label": "symfony"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"command": "yarn",
|
||||
"args": ["encore", "dev", "--watch"],
|
||||
"label": "webpack"
|
||||
}
|
||||
]
|
||||
}
|
||||
308
CHANGELOG.md
308
CHANGELOG.md
@@ -6,6 +6,314 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
||||
and is generated by [Changie](https://github.com/miniscruff/changie).
|
||||
|
||||
|
||||
## v4.10.1 - 2025-12-11
|
||||
### Fixed
|
||||
* Fix missing translation variable in NewLocation component
|
||||
* ([#476](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/476)) Fix display of header for ByActivityNumberAggregator
|
||||
* Fix use of ByActivityNumberAggregator in combination with activity count exports
|
||||
* ([#483](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/483)) Tentatively fix usage of CTRL+C in collabora editor with chrome / edge browser
|
||||
|
||||
## v4.10.0 - 2025-12-09
|
||||
### Feature
|
||||
* [MR 928](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/928) [#462](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/462) Add the future appointments for the person in search results
|
||||
### Fixed
|
||||
* Remove dependency to package @symfony/ux-translator
|
||||
|
||||
|
||||
## v4.9.0 - 2025-12-05
|
||||
### Feature
|
||||
* ([#459](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/459)) Add a counter for invitations awaiting reply
|
||||
### Fixed
|
||||
* ([#475](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/475)) Do not suggest a user that is no longer active in the activity form.
|
||||
* ([#441](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/441)) Remove double display of person id in the banner when there is a deathdate
|
||||
### DX
|
||||
* ([#280](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/280)) Add missing fixtures for proper loading of AccompanyingPeriods
|
||||
* ([#386](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/386)) Use mkdocs with mkdocs-material instead of sphinx to build chill developer documentation
|
||||
### UX
|
||||
* ([#456](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/456)) Display whether doc generation template is active or not in admin and order templates alphabetically
|
||||
* ([#460](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/460)) Display calendar item info on cancel page
|
||||
* ([#424](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/424)) Display entire comment for activity item within list
|
||||
* ([#474](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/474)) Improve accessibility of event form
|
||||
|
||||
## v4.8.2 - 2025-11-26
|
||||
### Fixed
|
||||
* ([#466](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/466)) Associate activity's creator as a participant by default, and retro-actively append the creator to each activity
|
||||
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
* Fix template parameter for update_multiple route on event participations
|
||||
### UX
|
||||
* ([#470](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/470)) Alphabetically order userJobs and mainLocations within user creation form
|
||||
* ([#437](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/437)) Change position and color of confirm parcours button
|
||||
|
||||
## v4.8.1 - 2025-11-20
|
||||
### Fixed
|
||||
* Insert name of file as the document title when uploading
|
||||
* Add missing path paramater 'id' for editing multiple participations
|
||||
* ([#471](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/471)) Hide the display of inactive user groups in the api
|
||||
|
||||
|
||||
## v4.8.0 - 2025-11-17
|
||||
### Feature
|
||||
* ([#461](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/461)) Make a calendar item on the 'mes rendez-vous' page clickable. Clicking will navigate to the edit page of the calendar item.
|
||||
### Fixed
|
||||
* ([#463](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/463)) Display calendar items for which an invite was accepted on the mes rendez-vous page
|
||||
* Improve accessibility on login page
|
||||
|
||||
### UX
|
||||
* ([#449](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/449)) Remove the label if there is only one scope and no scope picking field is displayed.
|
||||
|
||||
## v4.7.0 - 2025-11-10
|
||||
### Feature
|
||||
* ([#385](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/385)) Create invitation list in user menu
|
||||
* ([#404](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/404)) Add columns for comments linked to an activity in the activity list export
|
||||
### Fixed
|
||||
* ([#451](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/451)) Fix: display also social actions linked to parents of the selected social issue
|
||||
* ([#453](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/453)) Fix: export actions and their results in csv even when action does not have any goals attached to it.
|
||||
* Fix the possibility to delete a workflow
|
||||
|
||||
**Schema Change**: Drop or rename table or columns, or enforce new constraint that must be manually fixed
|
||||
* ([#457](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/457)) Fix the fusion of thirdparty properties that are located in another schema than public for TO_ONE relations + add extra loop for MANY_TO_MANY relations where thirdparty is the source instead of the target
|
||||
* ([#428](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/428)) Fix suggestion of referrer when creating notification for accompanyingPeriodWorkDocument
|
||||
### DX
|
||||
* Send notifications log to dedicated channel, if it exists
|
||||
|
||||
### UX
|
||||
* ([#425](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/425)) Change the terms 'cercle' and 'centre' to 'service', and 'territoire' respectively.
|
||||
* ([#542](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/542)) Improve the ux for selecting whether user wants to be notified of the final step of a workflow or all steps
|
||||
* Expand timeSpent choices for evaluation document and translate them to user locale or fallback 'fr'
|
||||
* ([#455](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/455)) Change the order of display for results and objectives in the social work/action form
|
||||
* Wrap text when it is too long within badges
|
||||
|
||||
## v4.6.1 - 2025-10-27
|
||||
### Fixed
|
||||
* Fix export case where no 'reason' is picked within the PersonHavingActivityBetweenDateFilter.php
|
||||
|
||||
## v4.6.0 - 2025-10-15
|
||||
### Feature
|
||||
* ([#423](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/423)) Create environment banner that can be activated and configured depending on the image deployed
|
||||
* ([#394](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/394)) Only show active workflow on the page "my tracked workflow"
|
||||
### Fixed
|
||||
* Fix loading of classLists in SocialIssuesAcc.vue, ensure elements are present
|
||||
* Fix the rendering of list of StoredObjectVersions, where there are kept version (before converting to pdf) and intermediate versions deleted
|
||||
* ([#434](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/434)) Notification: fix editing of sent notification by removing form.addressesEmails, a field that no longer exists
|
||||
* Fix loading of social issues and social actions within vue component
|
||||
* ([#446](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/446)) Add unique condition on stored object filename, with cleaning step on existing duplicate filenames
|
||||
|
||||
**Schema Change**: Drop or rename table or columns, or enforce new constraint that must be manually fixed
|
||||
* [workflow] take permissions into account to delete the workflow attachment
|
||||
* ([#448](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/448)) Fix the execution of daily cronjob notification, when the previous last execution storage was invalid
|
||||
|
||||
## v4.5.1 - 2025-10-03
|
||||
### Fixed
|
||||
* Add missing javascript dependency
|
||||
* Add exception handling for conversion of attachment on sending external, when documens are already in pdf
|
||||
|
||||
## v4.5.0 - 2025-10-03
|
||||
### Feature
|
||||
* Only allow delete of attachment on workflows that are not final
|
||||
* Move up signature buttons on index workflow page for easier access
|
||||
* Filter out document from attachment list if it is the same as the workflow document
|
||||
* Block edition on attached document on workflow, if the workflow is finalized or sent external
|
||||
* Convert workflow's attached document to pdf while sending them external
|
||||
* After a signature is canceled or rejected, going to a waiting page until the post-process routines apply a workflow transition
|
||||
### Fixed
|
||||
* ([#426](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/426)) Increased the number of required characters when setting a new password in Chill from 9 to 14 - GDPR compliance
|
||||
* Fix permissions on storedObject which are subject by a workflow
|
||||
### DX
|
||||
* Introduce a WaitingScreen component to display a waiting screen
|
||||
|
||||
## v4.4.2 - 2025-09-12
|
||||
### Fixed
|
||||
* Fix document generation and workflow generation do not work on accompanying period work documents
|
||||
|
||||
## v4.4.1 - 2025-09-11
|
||||
### Fixed
|
||||
* fix translations in duplicate evaluation document modal and realign close modal button
|
||||
|
||||
## v4.4.0 - 2025-09-11
|
||||
### Feature
|
||||
* ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works
|
||||
* ([#369](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/369)) Duplication of a document to another accompanying period work evaluation
|
||||
* ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Fusion of two accompanying period works
|
||||
### Fixed
|
||||
* Fix display of 'duplicate' and 'merge' buttons in CRUD templates
|
||||
* Fix saving notification preferences in user's profile
|
||||
|
||||
## v4.3.0 - 2025-09-08
|
||||
### Feature
|
||||
* ([#409](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/409)) Add 45 and 60 min calendar ranges
|
||||
* Add a command to generate a list of permissions
|
||||
* ([#412](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/412)) Add an absence end date
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
### Fixed
|
||||
* fix date formatting in calendar range display
|
||||
* Change route URL to avoid clash with person duplicate controller method
|
||||
|
||||
## v4.2.1 - 2025-09-03
|
||||
### Fixed
|
||||
* Fix exports to work with DirectExportInterface
|
||||
### DX
|
||||
* Improve error message when a stored object cannot be written on local disk
|
||||
|
||||
|
||||
## v4.2.0 - 2025-09-02
|
||||
### Feature
|
||||
* ([#64](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/64)) Add external identifier for a Person
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
* ([#330](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/330) Allow users to choose for which notifications they want to receive an email
|
||||
### Fixed
|
||||
* ([#422](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/422)) Fixed html layout of pages for recovering password
|
||||
* Fix typo in 'uncheckAll' script for centers selection
|
||||
* Fix incorrect parameter name in event details link
|
||||
|
||||
## v4.1.0 - 2025-08-26
|
||||
### Feature
|
||||
* ([#400](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/400)) Add filter to social actions list to filter out actions where current user intervenes
|
||||
* ([#399](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/399)) Show filters on list pages unfolded by default
|
||||
* Expansion of event module with new fields in the creation form: thematic, internal/external animator, responsable, and budget elements. Filtering options in the event list + adapted exports
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
### Fixed
|
||||
* ([#382](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/382)) adjust display logic for accompanying period dates, include closing date if period is closed.
|
||||
* ([#384](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/384)) add min and step attributes to integer field in DateIntervalType
|
||||
### UX
|
||||
* Limit display of participations in event list
|
||||
|
||||
## v4.0.2 - 2025-07-09
|
||||
### Fixed
|
||||
* Fix add missing translation
|
||||
* Fix the transfer of evaluations and documents during of accompanyingperiodwork
|
||||
|
||||
## v4.0.1 - 2025-07-08
|
||||
### Fixed
|
||||
* Fix package.json for compilation
|
||||
|
||||
|
||||
## v4.0.0 - 2025-07-08
|
||||
### Feature
|
||||
* ([#359](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/359)) Allow the merge of two accompanying period works
|
||||
### Fixed
|
||||
* ([#390](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/390)) Display the list of participant in the results, even if there is only one participant and that the search result display the requestor
|
||||
* Fix admin entity edit actions for event admin entities and activity reason (category) entities
|
||||
* Fix translations for social action fields in admin form: results, goals, evaluations
|
||||
### DX
|
||||
* Rewrite exports to run them asynchronously
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
* Allow TranslatableMessage in flash messages
|
||||
### UX
|
||||
* Improve labeling of fields in person resource creation form
|
||||
|
||||
|
||||
**Release notes**
|
||||
|
||||
- Add new methods to serialize data using the rector rule
|
||||
- Remove all references to the Request in filters, aggregators, filters. Actually, the most frequent occurence is `$security->getUser()`.
|
||||
- Refactor manually the initializeQuery method
|
||||
- Remove the injection of ExportManager into the constructor of each export element:
|
||||
|
||||
```diff
|
||||
|
||||
- class MyFormatter implements FormatterInterface
|
||||
+ class MyFormatter implements FormatterInterface, \Chill\MainBundle\Export\ExportManagerAwareInterface
|
||||
{
|
||||
+ use \Chill\MainBundle\Export\Helper\ExportManagerAwareTrait;
|
||||
|
||||
- public function __construct(private ExportManager $exportmanager) {}
|
||||
|
||||
public function MyMethod(): void
|
||||
{
|
||||
- $this->exportManager->getFilter('alias');
|
||||
+ $this->getExportManager()->getFilter('alias');
|
||||
}
|
||||
}
|
||||
```
|
||||
- configure messenger to handle export in a queue:
|
||||
|
||||
```diff
|
||||
# config/packages/messenger.yaml
|
||||
framework:
|
||||
messenger:
|
||||
routing:
|
||||
+ 'Chill\MainBundle\Export\Messenger\ExportRequestGenerationMessage': priority
|
||||
```
|
||||
|
||||
- add missing methods to exports, aggregators, filters, formatter:
|
||||
|
||||
```php
|
||||
public function normalizeFormData(array $formData): array;
|
||||
|
||||
public function denormalizeFormData(array $formData, int $fromVersion): array;
|
||||
```
|
||||
|
||||
There are rector rules to generate those methods:
|
||||
|
||||
- `Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector`
|
||||
|
||||
See:
|
||||
|
||||
```php
|
||||
// upgrade chill exports
|
||||
$rectorConfig->rules([\Chill\Utils\Rector\Rector\ChillBundleAddNormalizationMethodsOnExportRector::class]);
|
||||
```
|
||||
|
||||
This rule will create most of the work necessary, but some manuals changes are still necessary:
|
||||
|
||||
- we must set manually the correct repository for method `denormalizeDoctrineEntity`;
|
||||
- when the form data contains some entities, and the form type is not one of EntityType::class, PickUserDynamicType::class, PickUserLocationType::class, PickThirdpartyDynamicType::class, Select2CountryType::class, then we must handle the normalization manually (using the `\Chill\MainBundle\Export\ExportDataNormalizerTrait`)
|
||||
|
||||
|
||||
|
||||
## v3.12.1 - 2025-06-30
|
||||
### Fixed
|
||||
* Fix loading of the list of documents
|
||||
|
||||
## v3.12.0 - 2025-06-30
|
||||
### Feature
|
||||
* ([#377](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/377)) Add the document file name to the document title when a user upload a document, unless there is already a document title.
|
||||
* Add desactivation date for social action and issue csv export
|
||||
* Add Emoji and Fullscreen feature to ckeditor configuration
|
||||
* ([#321](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/321)) Create editor which allow us to toggle between rich and simple text editor
|
||||
* Do not remove workflow which are automatically canceled after staling for more than 30 days
|
||||
### Fixed
|
||||
* ([#376](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/376)) trying to prevent bug of typeerror in doc-history + improved display of document history
|
||||
* ([#381](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/381)) Display previous participation in acc course work even if the person has left the acc course
|
||||
* ([#372](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/372)) Fix display of text in calendar events
|
||||
* Add missing translation for user_group.no_user_groups
|
||||
* Fix admin entity edit actions for event admin entities and activity reason (category) entities
|
||||
* ([#392](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/392)) Allow null and cast as string to setContent method for NewsItem
|
||||
|
||||
* ([#393](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/393)) Doc Generation: the "dump only" method send the document as an email attachment.
|
||||
### DX
|
||||
* ([#352](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/352)) Remove dead code for wopi-link module
|
||||
* Replace library node-sass by sass, and upgrade bootstrap to version 5.3 (yarn upgrade / install is required)
|
||||
### UX
|
||||
* ([#374](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/374)) Remove default filter in_progress for the page 'my tasks'; Allows for new tasks to be displayed upon opening of the page
|
||||
* Improve labeling of fields in person resource creation form
|
||||
|
||||
## v3.11.0 - 2025-04-17
|
||||
### Feature
|
||||
* ([#365](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/365)) Add counters of actions and activities, with 2 boxes to (1) show the number of active actions on total actions and (2) show the number of activities in a accompanying period, and pills in menus for showing the number of active actions and the number of activities.
|
||||
* ([#364](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/364)) Added a second phone number "telephone2" to the thirdParty entity. Adapted twig templates and vuejs apps to handle this phone number
|
||||
|
||||
**Schema Change**: Add columns or tables
|
||||
* Signature: add a button to go directly to the signature zone, even if there is only one
|
||||
### Fixed
|
||||
* Fixed wrong translations in the on-the-fly for creation of thirdParty
|
||||
* Fixed update of phone number in on-the-fly edition of thirdParty
|
||||
* Fixed closing of modal when editing thirdParty in accompanying course works
|
||||
* Shorten the delay between two execution of AccompanyingPeriodStepChangeCronjob, to ensure at least one execution in a day
|
||||
* ([#102](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/102)) Fix display of title in document list
|
||||
* When cleaning the old stored object versions, do not throw an error if the stored object is not found on disk
|
||||
* Add consistent log prefix and key to logs when stale workflows are automatically canceled
|
||||
* ([#380](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/380)) Remove the "not null" validation constraint on recently added properties on HouseholdComposition
|
||||
|
||||
### DX
|
||||
* Add new chill-col style for displaying title and aside in a flex table
|
||||
|
||||
## v3.10.3 - 2025-03-18
|
||||
### DX
|
||||
* Eslint fixes
|
||||
|
||||
@@ -54,7 +54,7 @@ Arborescence:
|
||||
- person
|
||||
- personvendee
|
||||
- household_edit_metadata
|
||||
- index.js
|
||||
- index.ts
|
||||
```
|
||||
|
||||
## Organisation des feuilles de styles
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
import { trans, setLocale, setLocaleFallbacks } from "./ux-translator";
|
||||
import {
|
||||
trans,
|
||||
setLocale,
|
||||
getLocale,
|
||||
setLocaleFallbacks,
|
||||
} from "./ux-translator";
|
||||
|
||||
setLocaleFallbacks({"en": "fr", "nl": "fr", "fr": "en"});
|
||||
setLocale('fr');
|
||||
setLocaleFallbacks({ en: "fr", nl: "fr", fr: "en" });
|
||||
setLocale("fr");
|
||||
|
||||
export { trans };
|
||||
export * from '../var/translations';
|
||||
export { trans, getLocale };
|
||||
export * from "../var/translations";
|
||||
|
||||
@@ -2,7 +2,7 @@ services:
|
||||
###> doctrine/doctrine-bundle ###
|
||||
database:
|
||||
ports:
|
||||
- "127.0.0.1:5454:5432"
|
||||
- "127.0.0.1:5455:5432"
|
||||
###< doctrine/doctrine-bundle ###
|
||||
|
||||
###> symfony/mailer ###
|
||||
@@ -14,20 +14,20 @@ services:
|
||||
environment:
|
||||
MP_SMTP_AUTH_ACCEPT_ANY: 1
|
||||
MP_SMTP_AUTH_ALLOW_INSECURE: 1
|
||||
###< symfony/mailer ###
|
||||
###< symfony/mailer ###
|
||||
|
||||
|
||||
redis:
|
||||
ports:
|
||||
- 127.0.0.1:6363:6379
|
||||
- 127.0.0.1:6364:6379
|
||||
relatorio:
|
||||
ports:
|
||||
- 8888
|
||||
|
||||
rabbitmq:
|
||||
ports:
|
||||
- 127.0.0.1:5689:5672
|
||||
- 127.0.0.1:15689:15672
|
||||
- 127.0.0.1:5690:5672
|
||||
- 127.0.0.1:15690:15672
|
||||
# required to make data persistent
|
||||
hostname: my-rabbit
|
||||
volumes:
|
||||
|
||||
137
composer.json
137
composer.json
@@ -7,79 +7,86 @@
|
||||
"chill",
|
||||
"social worker"
|
||||
],
|
||||
"repositories": [{
|
||||
"type": "path",
|
||||
"url": "./packages/ChillZimbraBundle",
|
||||
"options": {
|
||||
"symlink": true
|
||||
}
|
||||
}],
|
||||
"require": {
|
||||
"php": "^8.2",
|
||||
"php": "^8.4",
|
||||
"ext-dom": "*",
|
||||
"ext-json": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-redis": "*",
|
||||
"ext-zlib": "*",
|
||||
"champs-libres/wopi-bundle": "dev-master@dev",
|
||||
"champs-libres/wopi-lib": "dev-master@dev",
|
||||
"champs-libres/wopi-bundle": "1.0.0",
|
||||
"champs-libres/wopi-lib": "1.0.0",
|
||||
"doctrine/data-fixtures": "^1.8",
|
||||
"doctrine/doctrine-bundle": "^2.1",
|
||||
"doctrine/doctrine-migrations-bundle": "^3.0",
|
||||
"doctrine/orm": "^2.13.0",
|
||||
"doctrine/orm": "^3.5.2",
|
||||
"erusev/parsedown": "^1.7",
|
||||
"knplabs/knp-menu-bundle": "^3.0",
|
||||
"knplabs/knp-time-bundle": "^1.12",
|
||||
"knplabs/knp-time-bundle": "^2.4",
|
||||
"knpuniversity/oauth2-client-bundle": "^2.10",
|
||||
"league/csv": "^9.7.1",
|
||||
"lexik/jwt-authentication-bundle": "^2.16",
|
||||
"lexik/jwt-authentication-bundle": "^3.1.1",
|
||||
"nyholm/psr7": "^1.4",
|
||||
"ocramius/package-versions": "^1.10 || ^2",
|
||||
"odolbeau/phone-number-bundle": "^3.6",
|
||||
"ovh/ovh": "^3.0",
|
||||
"phpoffice/phpspreadsheet": "^1.16",
|
||||
"ramsey/uuid-doctrine": "^1.7",
|
||||
"sensio/framework-extra-bundle": "^5.5",
|
||||
"smalot/pdfparser": "^2.10",
|
||||
"spomky-labs/base64url": "^2.0",
|
||||
"symfony/asset": "^5.4",
|
||||
"symfony/browser-kit": "^5.4",
|
||||
"symfony/cache": "^5.4",
|
||||
"symfony/clock": "^6.2",
|
||||
"symfony/config": "^5.4",
|
||||
"symfony/console": "^5.4",
|
||||
"symfony/css-selector": "^5.4",
|
||||
"symfony/dom-crawler": "^5.4",
|
||||
"symfony/error-handler": "^5.4",
|
||||
"symfony/event-dispatcher": "^5.4",
|
||||
"symfony/event-dispatcher-contracts": "^2.4",
|
||||
"symfony/expression-language": "^5.4",
|
||||
"symfony/filesystem": "^5.4",
|
||||
"symfony/finder": "^5.4",
|
||||
"symfony/form": "^5.4",
|
||||
"symfony/framework-bundle": "^5.4",
|
||||
"symfony/http-client": "^5.4",
|
||||
"symfony/http-foundation": "^5.4",
|
||||
"symfony/intl": "^5.4",
|
||||
"symfony/mailer": "^5.4",
|
||||
"symfony/messenger": "^5.4",
|
||||
"symfony/mime": "^5.4",
|
||||
"symfony/amqp-messenger": "^7.3",
|
||||
"symfony/asset": "^7.2",
|
||||
"symfony/browser-kit": "^7.2",
|
||||
"symfony/cache": "^7.2",
|
||||
"symfony/clock": "^7.2",
|
||||
"symfony/config": "^7.2",
|
||||
"symfony/console": "^7.2",
|
||||
"symfony/css-selector": "^7.2",
|
||||
"symfony/dom-crawler": "^7.2",
|
||||
"symfony/error-handler": "^7.2",
|
||||
"symfony/event-dispatcher": "^7.2",
|
||||
"symfony/event-dispatcher-contracts": "^3.0",
|
||||
"symfony/expression-language": "^7.2",
|
||||
"symfony/filesystem": "^7.2",
|
||||
"symfony/finder": "^7.2",
|
||||
"symfony/form": "^7.2",
|
||||
"symfony/framework-bundle": "^7.2",
|
||||
"symfony/http-client": "^7.2",
|
||||
"symfony/http-foundation": "^7.2",
|
||||
"symfony/intl": "^7.2",
|
||||
"symfony/mailer": "^7.2",
|
||||
"symfony/messenger": "^7.2",
|
||||
"symfony/mime": "^7.2",
|
||||
"symfony/monolog-bundle": "^3.5",
|
||||
"symfony/notifier": "^5.4",
|
||||
"symfony/options-resolver": "^5.4",
|
||||
"symfony/ovh-cloud-notifier": "^5.4",
|
||||
"symfony/process": "^5.4",
|
||||
"symfony/property-access": "^5.4",
|
||||
"symfony/property-info": "^5.4",
|
||||
"symfony/routing": "^5.4",
|
||||
"symfony/security-bundle": "^5.4",
|
||||
"symfony/security-core": "^5.4",
|
||||
"symfony/security-csrf": "^5.4",
|
||||
"symfony/security-guard": "^5.4",
|
||||
"symfony/security-http": "^5.4",
|
||||
"symfony/serializer": "^5.4",
|
||||
"symfony/string": "^5.4",
|
||||
"symfony/templating": "^5.4",
|
||||
"symfony/translation": "^5.4",
|
||||
"symfony/twig-bundle": "^5.4",
|
||||
"symfony/notifier": "^7.2",
|
||||
"symfony/options-resolver": "^7.2",
|
||||
"symfony/ovh-cloud-notifier": "^7.2",
|
||||
"symfony/polyfill-intl-messageformatter": "^1.32",
|
||||
"symfony/process": "^7.2",
|
||||
"symfony/property-access": "^7.2",
|
||||
"symfony/property-info": "^7.2",
|
||||
"symfony/routing": "^7.2",
|
||||
"symfony/security-bundle": "^7.3",
|
||||
"symfony/security-core": "^7.2",
|
||||
"symfony/security-csrf": "^7.2",
|
||||
"symfony/security-http": "^7.2",
|
||||
"symfony/serializer": "^7.2",
|
||||
"symfony/string": "^7.2",
|
||||
"symfony/translation": "^7.3",
|
||||
"symfony/twig-bundle": "^7.3",
|
||||
"symfony/ux-translator": "^2.22",
|
||||
"symfony/validator": "^5.4",
|
||||
"symfony/webpack-encore-bundle": "^1.11",
|
||||
"symfony/workflow": "^5.4",
|
||||
"symfony/yaml": "^5.4",
|
||||
"symfony/validator": "^7.2",
|
||||
"symfony/var-exporter": "^7.0",
|
||||
"symfony/webpack-encore-bundle": "^2.0",
|
||||
"symfony/workflow": "^7.2",
|
||||
"symfony/yaml": "^7.2",
|
||||
"thenetworg/oauth2-azure": "^2.0",
|
||||
"twig/extra-bundle": "^3.0",
|
||||
"twig/intl-extra": "^3.0",
|
||||
@@ -90,27 +97,28 @@
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-fixtures-bundle": "^3.3",
|
||||
"fakerphp/faker": "^1.13",
|
||||
"friendsofphp/php-cs-fixer": "3.65.0",
|
||||
"jangregor/phpstan-prophecy": "^1.0",
|
||||
"friendsofphp/php-cs-fixer": "3.88.2",
|
||||
"jangregor/phpstan-prophecy": "^2.2",
|
||||
"nelmio/alice": "^3.8",
|
||||
"nikic/php-parser": "^4.15",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpstan/extension-installer": "^1.2",
|
||||
"phpstan/phpstan": "^1.9",
|
||||
"phpstan/phpstan-deprecation-rules": "^1.1",
|
||||
"phpstan/phpstan-strict-rules": "^1.0",
|
||||
"phpstan/phpstan": "^2.1.30",
|
||||
"phpstan/phpstan-deprecation-rules": "^2.0",
|
||||
"phpstan/phpstan-doctrine": "^2.0",
|
||||
"phpstan/phpstan-strict-rules": "^2.0.7",
|
||||
"phpstan/phpstan-symfony": "^2.0",
|
||||
"phpunit/phpunit": "^10.5.24",
|
||||
"rector/rector": "^1.1.0",
|
||||
"symfony/amqp-messenger": "^5.4.45",
|
||||
"symfony/debug-bundle": "^5.4",
|
||||
"symfony/dotenv": "^5.4",
|
||||
"rector/rector": "^2.2",
|
||||
"symfony/debug-bundle": "^7.2",
|
||||
"symfony/dotenv": "^7.2",
|
||||
"symfony/flex": "^2.4",
|
||||
"symfony/maker-bundle": "^1.20",
|
||||
"symfony/phpunit-bridge": "^7.1",
|
||||
"symfony/runtime": "^5.4",
|
||||
"symfony/stopwatch": "^5.4",
|
||||
"symfony/var-dumper": "^5.4",
|
||||
"symfony/web-profiler-bundle": "^5.4"
|
||||
"symfony/runtime": "^7.2",
|
||||
"symfony/stopwatch": "^7.2",
|
||||
"symfony/var-dumper": "^7.2",
|
||||
"symfony/web-profiler-bundle": "^7.2",
|
||||
"symfony/loco-translation-provider": "^6.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/symfony": "*"
|
||||
@@ -133,6 +141,7 @@
|
||||
"Chill\\TaskBundle\\": "src/Bundle/ChillTaskBundle",
|
||||
"Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle",
|
||||
"Chill\\WopiBundle\\": "src/Bundle/ChillWopiBundle/src",
|
||||
"Chill\\TicketBundle\\": "src/Bundle/ChillTicketBundle/src",
|
||||
"Chill\\Utils\\Rector\\": "utils/rector/src"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
return [
|
||||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
|
||||
loophp\PsrHttpMessageBridgeBundle\PsrHttpMessageBridgeBundle::class => ['all' => true],
|
||||
ChampsLibres\WopiBundle\WopiBundle::class => ['all' => true],
|
||||
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
|
||||
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
||||
@@ -14,7 +13,6 @@ return [
|
||||
Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true],
|
||||
Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['dev' => true, 'test' => true],
|
||||
Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true],
|
||||
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
|
||||
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
|
||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
||||
@@ -35,6 +33,8 @@ return [
|
||||
Chill\ThirdPartyBundle\ChillThirdPartyBundle::class => ['all' => true],
|
||||
Chill\BudgetBundle\ChillBudgetBundle::class => ['all' => true],
|
||||
Chill\WopiBundle\ChillWopiBundle::class => ['all' => true],
|
||||
Chill\TicketBundle\ChillTicketBundle::class => ['all' => true],
|
||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||
Symfony\UX\Translator\UxTranslatorBundle::class => ['all' => true],
|
||||
loophp\PsrHttpMessageBridgeBundle\PsrHttpMessageBridgeBundle::class => ['all' => true],
|
||||
];
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
chill_main:
|
||||
available_languages: [ '%env(resolve:LOCALE)%', 'en' ]
|
||||
available_languages: [ '%env(resolve:LOCALE)%', 'en', 'nl' ]
|
||||
available_countries: ['BE', 'FR']
|
||||
top_banner:
|
||||
visible: false
|
||||
text:
|
||||
fr: 'Vous travaillez actuellement avec la version de PRÉ-PRODUCTION.'
|
||||
nl: 'Je werkt momenteel in de PRE-PRODUCTIE versie'
|
||||
color: '#353535'
|
||||
background_color: '#d8bb48'
|
||||
notifications:
|
||||
from_email: '%env(resolve:NOTIFICATION_FROM_EMAIL)%'
|
||||
from_name: '%env(resolve:NOTIFICATION_FROM_NAME)%'
|
||||
@@ -17,6 +24,7 @@ chill_main:
|
||||
acl:
|
||||
form_show_scopes: true
|
||||
form_show_centers: true
|
||||
filter_stats_by_center: true
|
||||
access_global_history: false
|
||||
access_user_change_password: true
|
||||
access_permissions_group_list: true
|
||||
|
||||
2
config/packages/chill_aside_activity.yaml
Normal file
2
config/packages/chill_aside_activity.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
chill_aside_activity:
|
||||
show_concerned_persons_count: hidden
|
||||
@@ -1,5 +1,5 @@
|
||||
chill_doc_store:
|
||||
use_driver: openstack
|
||||
use_driver: local_storage
|
||||
local_storage:
|
||||
storage_path: '%kernel.project_dir%/var/storage'
|
||||
openstack:
|
||||
|
||||
5
config/packages/chill_ticket.yaml
Normal file
5
config/packages/chill_ticket.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
chill_ticket:
|
||||
ticket:
|
||||
person_per_ticket: one # One of "one"; "many"
|
||||
response_time_exceeded_delay: PT12H
|
||||
|
||||
11
config/packages/csrf.yaml
Normal file
11
config/packages/csrf.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
# Enable stateless CSRF protection for forms and logins/logouts
|
||||
framework:
|
||||
form:
|
||||
csrf_protection:
|
||||
token_id: submit
|
||||
|
||||
csrf_protection:
|
||||
stateless_token_ids:
|
||||
- submit
|
||||
- authenticate
|
||||
- logout
|
||||
@@ -7,6 +7,7 @@ doctrine:
|
||||
#server_version: '16'
|
||||
use_savepoints: true
|
||||
orm:
|
||||
enable_lazy_ghost_objects: true
|
||||
auto_generate_proxy_classes: true
|
||||
naming_strategy: doctrine.orm.naming_strategy.default
|
||||
auto_mapping: true
|
||||
|
||||
@@ -14,6 +14,7 @@ doctrine_migrations:
|
||||
'Chill\Migrations\Calendar': '@ChillCalendarBundle/migrations'
|
||||
'Chill\Migrations\Budget': '@ChillBudgetBundle/migrations'
|
||||
'Chill\Migrations\Report': '@ChillReportBundle/migrations'
|
||||
'Chill\Migrations\Ticket': '@ChillTicketBundle/migrations'
|
||||
all_or_nothing:
|
||||
true
|
||||
|
||||
|
||||
@@ -4,6 +4,16 @@ framework:
|
||||
#csrf_protection: true
|
||||
http_method_override: false
|
||||
|
||||
|
||||
# Enable EntityValueResolver for automatic entity injection in controllers
|
||||
# This replaces the functionality previously provided by SensioFrameworkExtraBundle
|
||||
http_client:
|
||||
enabled: true
|
||||
|
||||
request:
|
||||
formats:
|
||||
json: ['application/json']
|
||||
|
||||
# Enables session support. Note that the session will ONLY be started if you read or write from it.
|
||||
# Remove or comment this section to explicitly disable session support.
|
||||
session:
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
framework:
|
||||
messenger:
|
||||
# reset services after consuming messages
|
||||
reset_on_message: true
|
||||
|
||||
# Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
|
||||
failure_transport: failed
|
||||
|
||||
transports:
|
||||
# those transports are added by chill-bundles recipes
|
||||
sync: sync://
|
||||
@@ -19,7 +16,9 @@ framework:
|
||||
async: ~
|
||||
auto_setup: true
|
||||
|
||||
priority: '%env(MESSENGER_TRANSPORT_DSN)%/priority'
|
||||
priority:
|
||||
dsn: '%env(MESSENGER_TRANSPORT_DSN)%/priority'
|
||||
|
||||
# end of transports added by chill-bundles recipes
|
||||
# https://symfony.com/doc/current/messenger.html#transport-configuration
|
||||
failed: 'doctrine://default?queue_name=failed'
|
||||
@@ -61,6 +60,11 @@ framework:
|
||||
'Chill\MainBundle\Workflow\Messenger\PostSignatureStateChangeMessage': priority
|
||||
'Chill\MainBundle\Workflow\Messenger\PostPublicViewMessage': async
|
||||
'Chill\MainBundle\Service\Workflow\CancelStaleWorkflowMessage': async
|
||||
'Chill\MainBundle\Notification\Email\NotificationEmailMessages\SendImmediateNotificationEmailMessage': async
|
||||
'Chill\MainBundle\Export\Messenger\ExportRequestGenerationMessage': priority
|
||||
'Chill\MainBundle\Export\Messenger\RemoveExportGenerationMessage': async
|
||||
'Chill\MainBundle\Notification\Email\NotificationEmailMessages\ScheduleDailyNotificationDigestMessage': async
|
||||
'Chill\TicketBundle\Messenger\PostTicketUpdateMessage': async
|
||||
# end of routes added by chill-bundles recipes
|
||||
# Route your messages to the transports
|
||||
# 'App\Message\YourMessage': async
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
framework:
|
||||
notifier:
|
||||
texter_transports:
|
||||
#ovhcloud: '%env(OVHCLOUD_DSN)%'
|
||||
#ovhcloud: '%env(SHORT_MESSAGE_DSN)%'
|
||||
#ovhcloud: '%env(OVHCLOUD_DSN)%'
|
||||
#ovhcloud: '%env(SHORT_MESSAGE_DSN)%'
|
||||
channel_policy:
|
||||
# use chat/slack, chat/telegram, sms/twilio or sms/nexmo
|
||||
urgent: ['email']
|
||||
|
||||
3
config/packages/property_info.yaml
Normal file
3
config/packages/property_info.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
framework:
|
||||
property_info:
|
||||
enabled: true
|
||||
@@ -1,5 +1,4 @@
|
||||
security:
|
||||
enable_authenticator_manager: true
|
||||
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
|
||||
password_hashers:
|
||||
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
|
||||
@@ -28,16 +27,13 @@ security:
|
||||
pattern: ^/wopi
|
||||
provider: chill_chain_provider
|
||||
stateless: true
|
||||
guard:
|
||||
authenticators:
|
||||
- lexik_jwt_authentication.jwt_token_authenticator
|
||||
jwt: ~
|
||||
dav:
|
||||
pattern: ^/dav
|
||||
provider: chill_chain_provider
|
||||
stateless: true
|
||||
guard:
|
||||
authenticators:
|
||||
- Chill\DocStoreBundle\Security\Guard\JWTOnDavUrlAuthenticator
|
||||
custom_authenticator:
|
||||
- Chill\DocStoreBundle\Security\Authenticator\JWTOnDavUrlAuthenticator
|
||||
# this firewall is the main firewall for chill. It should be the last one in the stack,
|
||||
# unless you have specific needs
|
||||
chill_main:
|
||||
@@ -63,7 +59,7 @@ security:
|
||||
# Note: Only the *first* access control that matches will be used
|
||||
access_control:
|
||||
# those lines are added by chill-bundles recipes, and are requires to make chill-bundles working
|
||||
- { path: ^/(login|logout), roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/(login|logout), roles: PUBLIC_ACCESS }
|
||||
- { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/wopi, roles: IS_AUTHENTICATED_FULLY }
|
||||
# access for homepage, the homepage redirect admin to admin section
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
sensio_framework_extra:
|
||||
router:
|
||||
annotations: false
|
||||
4
config/packages/serializer.yaml
Normal file
4
config/packages/serializer.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
framework:
|
||||
serializer:
|
||||
enabled: true
|
||||
enable_attributes: true
|
||||
@@ -1,7 +1,12 @@
|
||||
# config/packages/translation.yaml
|
||||
framework:
|
||||
default_locale: en
|
||||
default_locale: '%env(resolve:LOCALE)%' # LOCALE=fr in .env
|
||||
translator:
|
||||
default_path: '%kernel.project_dir%/translations'
|
||||
fallbacks:
|
||||
- en
|
||||
- '%env(resolve:LOCALE)%' # fr
|
||||
providers:
|
||||
loco:
|
||||
dsn: '%env(LOCO_DSN)%'
|
||||
domains: [ 'messages' ]
|
||||
locales: [ 'fr', 'nl' ]
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
framework:
|
||||
default_locale: '%env(resolve:LOCALE)%'
|
||||
translator:
|
||||
fallbacks: [ '%env(resolve:LOCALE)%' ]
|
||||
@@ -7,7 +7,8 @@ framework:
|
||||
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluationDocument
|
||||
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork
|
||||
- Chill\DocStoreBundle\Entity\AccompanyingCourseDocument
|
||||
label:
|
||||
label: Suivi
|
||||
translated_labels:
|
||||
fr: 'Suivi'
|
||||
support_strategy: Chill\MainBundle\Workflow\RelatedEntityWorkflowSupportsStrategy
|
||||
marking_store:
|
||||
@@ -16,11 +17,13 @@ framework:
|
||||
places:
|
||||
initial:
|
||||
metadata:
|
||||
label:
|
||||
label: Étape initiale
|
||||
translated_labels:
|
||||
fr: Étape initiale
|
||||
attenteModification:
|
||||
metadata:
|
||||
label:
|
||||
label: En attente de modification du document
|
||||
translated_labels:
|
||||
fr: En attente de modification du document
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Modification effectuée}
|
||||
@@ -28,7 +31,8 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteMiseEnForme:
|
||||
metadata:
|
||||
label:
|
||||
label: En attente de mise en forme
|
||||
translated_labels:
|
||||
fr: En attente de mise en forme
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Mise en forme terminée}
|
||||
@@ -36,7 +40,8 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteVisa:
|
||||
metadata:
|
||||
label:
|
||||
label: En attente de visa
|
||||
translated_labels:
|
||||
fr: En attente de visa
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Visa accordé}
|
||||
@@ -47,7 +52,8 @@ framework:
|
||||
isSignature: ['user', 'person']
|
||||
onSignatureCompleted:
|
||||
transitionName: signatureApplied
|
||||
label:
|
||||
label: En attente de signature
|
||||
translated_labels:
|
||||
fr: En attente de signature
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Signature accordée}
|
||||
@@ -55,7 +61,8 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
postSignature:
|
||||
metadata:
|
||||
label:
|
||||
label: Signatures traitées
|
||||
translated_labels:
|
||||
fr: Signatures traitées
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Poursuite du traitement}
|
||||
@@ -63,7 +70,8 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteTraitement:
|
||||
metadata:
|
||||
label:
|
||||
label: En attente de traitement
|
||||
translated_labels:
|
||||
fr: En attente de traitement
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Traitement terminé favorablement}
|
||||
@@ -71,7 +79,8 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteEnvoi:
|
||||
metadata:
|
||||
label:
|
||||
label: En attente d'envoi
|
||||
translated_labels:
|
||||
fr: En attente d'envoi
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Document envoyé}
|
||||
@@ -79,7 +88,8 @@ framework:
|
||||
neutral: {fr: Autre}
|
||||
attenteValidationMiseEnForme:
|
||||
metadata:
|
||||
label:
|
||||
label: En attente de validation de la mise en forme
|
||||
translated_labels:
|
||||
fr: En attente de validation de la mise en forme
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Validation de la mise en forme}
|
||||
@@ -89,7 +99,8 @@ framework:
|
||||
metadata:
|
||||
isSentExternal: true
|
||||
onExternalView: clotureApresLectureEnvoiExterne
|
||||
label:
|
||||
label: En attente d'ouverture par un destinataire externe
|
||||
translated_labels:
|
||||
fr: En attente d'ouverture par un destinataire externe
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Document reçu par un destinataire externe}
|
||||
@@ -99,13 +110,15 @@ framework:
|
||||
metadata:
|
||||
isFinal: true
|
||||
isFinalPositive: false
|
||||
label:
|
||||
label: Annulé
|
||||
translated_labels:
|
||||
fr: Annulé
|
||||
final:
|
||||
metadata:
|
||||
isFinal: true
|
||||
isFinalPositive: true
|
||||
label:
|
||||
label: Finalisé
|
||||
translated_labels:
|
||||
fr: Finalisé
|
||||
transitions:
|
||||
# transition qui avancent
|
||||
@@ -114,7 +127,8 @@ framework:
|
||||
- initial
|
||||
to: attenteModification
|
||||
metadata:
|
||||
label:
|
||||
label: Demande de modification du document
|
||||
translated_labels:
|
||||
fr: Demande de modification du document
|
||||
isForward: true
|
||||
demandeMiseEnForme:
|
||||
@@ -123,7 +137,8 @@ framework:
|
||||
- attenteModification
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label:
|
||||
label: Demande de mise en forme
|
||||
translated_labels:
|
||||
fr: Demande de mise en forme
|
||||
isForward: true
|
||||
demandeValidationMiseEnForme:
|
||||
@@ -131,7 +146,8 @@ framework:
|
||||
- attenteMiseEnForme
|
||||
to: attenteValidationMiseEnForme
|
||||
metadata:
|
||||
label:
|
||||
label: Demande de validation de la mise en forme
|
||||
translated_labels:
|
||||
fr: Demande de validation de la mise en forme
|
||||
isForward: true
|
||||
demandeVisa:
|
||||
@@ -144,7 +160,8 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label:
|
||||
label: Demande de visa
|
||||
translated_labels:
|
||||
fr: Demande de visa
|
||||
isForward: true
|
||||
demandeSignature:
|
||||
@@ -157,14 +174,18 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteSignature
|
||||
metadata:
|
||||
label: {fr: Demande de signature}
|
||||
label: Demande de signature
|
||||
translated_labels:
|
||||
fr: Demande de signature
|
||||
isForward: true
|
||||
signatureApplied:
|
||||
from:
|
||||
- attenteSignature
|
||||
to: postSignature
|
||||
metadata:
|
||||
label: {fr: Signatures appliquées}
|
||||
label: Signatures appliquées
|
||||
translated_labels:
|
||||
fr: Signatures appliquées
|
||||
isForward: true
|
||||
transitionGuard: 'system' # can be 'system+only-dest' or 'only-dest' (only-dest is default)
|
||||
demandeTraitement:
|
||||
@@ -177,7 +198,9 @@ framework:
|
||||
- postSignature
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: {fr: Demande de traitement}
|
||||
label: Demande de traitement
|
||||
translated_labels:
|
||||
fr: Demande de traitement
|
||||
isForward: true
|
||||
demandeEnvoi:
|
||||
from:
|
||||
@@ -190,7 +213,9 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteEnvoi
|
||||
metadata:
|
||||
label: {fr: Demande d'envoi}
|
||||
label: Demande d'envoi
|
||||
translated_labels:
|
||||
fr: Demande d'envoi
|
||||
isForward: true
|
||||
demandeEnvoiExterne:
|
||||
from:
|
||||
@@ -203,7 +228,9 @@ framework:
|
||||
- attenteTraitement
|
||||
to: attenteReceptionExternal
|
||||
metadata:
|
||||
label: {fr: Envoi sécurisé par courrier électronique}
|
||||
label: Envoi sécurisé par courrier électronique
|
||||
translated_labels:
|
||||
fr: Envoi sécurisé par courrier électronique
|
||||
isForward: true
|
||||
clotureApresLectureEnvoiExterne:
|
||||
from:
|
||||
@@ -213,7 +240,9 @@ framework:
|
||||
metadata:
|
||||
transitionGuard: system
|
||||
isForward: true
|
||||
label: {fr: Consultation de l'envoi sécurisé}
|
||||
label: Consultation de l'envoi sécurisé
|
||||
translated_labels:
|
||||
fr: Consultation de l'envoi sécurisé
|
||||
annulation:
|
||||
from:
|
||||
- initial
|
||||
@@ -227,7 +256,9 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: annule
|
||||
metadata:
|
||||
label: {fr: Annulation}
|
||||
label: Annulation
|
||||
translated_labels:
|
||||
fr: Annulation
|
||||
isForward: false
|
||||
transitionGuard: 'system+only-dest' # can be 'system+only-dest' or 'only-dest' (only-dest is default)
|
||||
# transitions qui répètent l'étape
|
||||
@@ -237,27 +268,35 @@ framework:
|
||||
- attenteValidationMiseEnForme
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label: {fr: Demande de mise en forme supplémentaire}
|
||||
label: Demande de mise en forme supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de mise en forme supplémentaire
|
||||
demandeVisaSupplementaire:
|
||||
from:
|
||||
- attenteVisa
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label: {fr: Demande de visa supplémentaire}
|
||||
label: Demande de visa supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de visa supplémentaire
|
||||
isForward: true
|
||||
demandeSignatureSupplementaire:
|
||||
from:
|
||||
- postSignature
|
||||
to: attenteSignature
|
||||
metadata:
|
||||
label: {fr: Demande de signature supplémentaire}
|
||||
label: Demande de signature supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de signature supplémentaire
|
||||
isForward: true
|
||||
demandeTraitementSupplementaire:
|
||||
from:
|
||||
- attenteTraitement
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: {fr: Demande de traitement supplémentaire}
|
||||
label: Demande de traitement supplémentaire
|
||||
translated_labels:
|
||||
fr: Demande de traitement supplémentaire
|
||||
# transitions qui renvoient vers une étape précédente
|
||||
refusEtModificationDocument:
|
||||
from:
|
||||
@@ -267,7 +306,8 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: attenteModification
|
||||
metadata:
|
||||
label:
|
||||
label: Refus et demande de modification du document
|
||||
translated_labels:
|
||||
fr: Refus et demande de modification du document
|
||||
isForward: false
|
||||
refusEtDemandeMiseEnForme:
|
||||
@@ -277,7 +317,9 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label: {fr: Refus et demande de mise en forme}
|
||||
label: Refus et demande de mise en forme
|
||||
translated_labels:
|
||||
fr: Refus et demande de mise en forme
|
||||
isForward: false
|
||||
refusEtDemandeVisa:
|
||||
from:
|
||||
@@ -285,21 +327,27 @@ framework:
|
||||
- attenteEnvoi
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label: {fr: Refus et demande de visa}
|
||||
label: Refus et demande de visa
|
||||
translated_labels:
|
||||
fr: Refus et demande de visa
|
||||
isForward: false
|
||||
refusEtDemandeSignature:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: attenteSignature
|
||||
metadata:
|
||||
label: {fr: Refus et demande de signature}
|
||||
label: Refus et demande de signature
|
||||
translated_labels:
|
||||
fr: Refus et demande de signature
|
||||
isForward: false
|
||||
refusEtDemandeTraitement:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: {fr: Refus et demande de traitement}
|
||||
label: Refus et demande de traitement
|
||||
translated_labels:
|
||||
fr: Refus et demande de traitement
|
||||
isForward: false
|
||||
# transition vers final
|
||||
initialToFinal:
|
||||
@@ -307,7 +355,9 @@ framework:
|
||||
- initial
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Clotûre immédiate et cloture positive}
|
||||
label: Clotûre immédiate et cloture positive
|
||||
translated_labels:
|
||||
fr: Clotûre immédiate et cloture positive
|
||||
isForward: true
|
||||
attenteMiseEnFormeToFinal:
|
||||
from:
|
||||
@@ -315,33 +365,43 @@ framework:
|
||||
- attenteValidationMiseEnForme
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Mise en forme terminée et cloture positive}
|
||||
label: Mise en forme terminée et cloture positive
|
||||
translated_labels:
|
||||
fr: Mise en forme terminée et cloture positive
|
||||
isForward: true
|
||||
attenteVisaToFinal:
|
||||
from:
|
||||
- attenteVisa
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Accorde le visa et cloture positive}
|
||||
label: Accorde le visa et cloture positive
|
||||
translated_labels:
|
||||
fr: Accorde le visa et cloture positive
|
||||
isForward: true
|
||||
postSignatureToFinal:
|
||||
from:
|
||||
- postSignature
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Cloture positive}
|
||||
label: Cloture positive
|
||||
translated_labels:
|
||||
fr: Cloture positive
|
||||
isForward: true
|
||||
attenteTraitementToFinal:
|
||||
from:
|
||||
- attenteTraitement
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Traitement terminé et cloture positive}
|
||||
label: Traitement terminé et cloture positive
|
||||
translated_labels:
|
||||
fr: Traitement terminé et cloture positive
|
||||
isForward: true
|
||||
attenteEnvoiToFinal:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Envoyé et cloture positive}
|
||||
label: Envoyé et cloture positive
|
||||
translated_labels:
|
||||
fr: Envoyé et cloture positive
|
||||
isForward: true
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
kernel:
|
||||
resource: ../../src/app/Kernel.php
|
||||
type: annotation
|
||||
2
config/routes/chill_ticket.yaml
Normal file
2
config/routes/chill_ticket.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
chill_ticket_bundle:
|
||||
resource: '@ChillTicketBundle/config/routes.yaml'
|
||||
3
config/routes/security.yaml
Normal file
3
config/routes/security.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
_security_logout:
|
||||
resource: security.route_loader.logout
|
||||
type: service
|
||||
@@ -6,8 +6,23 @@
|
||||
parameters:
|
||||
|
||||
services:
|
||||
#alias to inject container into AbstractController::setContainer
|
||||
Psr\Container\ContainerInterface: '@service_container'
|
||||
|
||||
# default configuration for services in *this* file
|
||||
_defaults:
|
||||
autowire: true # Automatically injects dependencies in your services.
|
||||
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
|
||||
|
||||
# Custom entity value resolver to replace SensioFrameworkExtraBundle functionality
|
||||
Chill\MainBundle\ArgumentResolver\EntityValueResolver:
|
||||
tags:
|
||||
- { name: controller.argument_value_resolver, priority: 50 }
|
||||
|
||||
Chill\MainBundle\Serializer\CircularReferenceHandler:
|
||||
public: false
|
||||
tags:
|
||||
- { name: 'serializer.circular_reference_handler' }
|
||||
when@dev:
|
||||
services:
|
||||
ChampsLibres\WopiLib\Contract\Service\ProofValidatorInterface: '@Chill\WopiBundle\Service\Wopi\NullProofValidator'
|
||||
|
||||
181
docs/Makefile
181
docs/Makefile
@@ -1,177 +1,34 @@
|
||||
# Makefile for Sphinx documentation
|
||||
# Makefile for MkDocs documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = build
|
||||
MKDOCS = mkdocs
|
||||
BUILDDIR = site
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
# User-friendly check for mkdocs
|
||||
ifeq ($(shell which $(MKDOCS) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(MKDOCS)' command was not found. Make sure you have MkDocs installed with 'pip install mkdocs mkdocs-material', then make sure the mkdocs executable is in your PATH.)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
.PHONY: help clean html build serve
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
@echo " html to build the documentation (same as build)"
|
||||
@echo " build to build the documentation"
|
||||
@echo " serve to start the development server"
|
||||
@echo " clean to clean the build directory"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
html: build
|
||||
|
||||
build:
|
||||
$(MKDOCS) build
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/chill-doc.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/chill-doc.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/chill-doc"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/chill-doc"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
||||
serve:
|
||||
$(MKDOCS) serve
|
||||
@echo "Development server started at http://127.0.0.1:8000/"
|
||||
|
||||
@@ -10,20 +10,26 @@ Compilation into HTML
|
||||
|
||||
To compile this documentation :
|
||||
|
||||
1. Install [sphinx-doc](http://sphinx-doc.org)
|
||||
1. Install [MkDocs](https://www.mkdocs.org/) and MkDocs Material
|
||||
``` bash
|
||||
$ virtualenv .venv # creation of the virtual env (only the first time)
|
||||
$ source .venv/bin/activate # activate the virtual env
|
||||
(.venv) $ pip install -r requirements.txt
|
||||
```
|
||||
2. Install submodules : $ git submodule update --init;
|
||||
3. run `make html` from the root directory
|
||||
4. The base file is located on build/html/index.html
|
||||
3. run `make html` or `mkdocs build` from the root directory
|
||||
4. The base file is located on site/index.html
|
||||
``` bash
|
||||
$ cd build/html
|
||||
$ cd site
|
||||
$ python -m http.server 8888 # will serve the site on the port 8888
|
||||
```
|
||||
|
||||
Alternatively, you can use the built-in development server:
|
||||
``` bash
|
||||
(.venv) $ mkdocs serve
|
||||
```
|
||||
This will start a development server at http://127.0.0.1:8000/ with live reload.
|
||||
|
||||
Contribute
|
||||
===========
|
||||
|
||||
|
||||
137
docs/mkdocs.yml
Normal file
137
docs/mkdocs.yml
Normal file
@@ -0,0 +1,137 @@
|
||||
site_name: Chill Documentation
|
||||
site_description: Documentation for Chill - A free software for social workers
|
||||
site_url: https://docs.chill.social
|
||||
repo_url: https://gitlab.com/Chill-project/chill-bundles
|
||||
repo_name: Chill-project/chill-bundles
|
||||
|
||||
docs_dir: source
|
||||
|
||||
copyright: Copyright © 2014-2024 Champs-Libres Cooperative SCRLFS - GNU Free Documentation License v1.3
|
||||
|
||||
theme:
|
||||
name: material
|
||||
language: en
|
||||
features:
|
||||
- navigation.tabs
|
||||
- navigation.tabs.sticky
|
||||
- navigation.sections
|
||||
- navigation.expand
|
||||
- navigation.path
|
||||
- navigation.top
|
||||
- search.highlight
|
||||
- search.share
|
||||
- search.suggest
|
||||
- toc.follow
|
||||
- content.code.copy
|
||||
- content.code.annotate
|
||||
|
||||
palette:
|
||||
# Palette toggle for light mode
|
||||
- scheme: default
|
||||
primary: blue
|
||||
accent: blue
|
||||
toggle:
|
||||
icon: material/brightness-7
|
||||
name: Switch to dark mode
|
||||
|
||||
# Palette toggle for dark mode
|
||||
- scheme: slate
|
||||
primary: blue
|
||||
accent: blue
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
name: Switch to light mode
|
||||
|
||||
font:
|
||||
text: Roboto
|
||||
code: Roboto Mono
|
||||
|
||||
plugins:
|
||||
- search
|
||||
- autorefs
|
||||
|
||||
markdown_extensions:
|
||||
- admonition
|
||||
- pymdownx.details
|
||||
- pymdownx.superfences
|
||||
- pymdownx.highlight:
|
||||
anchor_linenums: true
|
||||
line_spans: __span
|
||||
pygments_lang_class: true
|
||||
- pymdownx.inlinehilite
|
||||
- pymdownx.snippets
|
||||
- pymdownx.tabbed:
|
||||
alternate_style: true
|
||||
- pymdownx.tasklist:
|
||||
custom_checkbox: true
|
||||
- toc:
|
||||
permalink: true
|
||||
- tables
|
||||
- attr_list
|
||||
- md_in_html
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Installation:
|
||||
- installation/index.md
|
||||
- Development: installation/installation-development.md
|
||||
- Production: installation/installation-production.md
|
||||
- Document Storage: installation/document-storage.md
|
||||
- Load Addresses: installation/load-addresses.md
|
||||
- Production Setup: installation/prod.md
|
||||
- Calendar SMS: installation/prod-calendar-sms-sending.md
|
||||
- MS Graph Configuration: installation/msgraph-configure.md
|
||||
- Enable Collabora: installation/enable-collabora-for-dev.md
|
||||
- Development:
|
||||
- development/index.md
|
||||
- Access Control: development/access_control_model.md
|
||||
- API: development/api.md
|
||||
- Assets: development/assets.md
|
||||
- Code Quality: development/code-quality.md
|
||||
- Create Bundle: development/create-a-new-bundle.md
|
||||
- Cronjobs: development/cronjob.md
|
||||
- CRUD: development/crud.md
|
||||
- Database Principles: development/database-principles.md
|
||||
- Embeddable Comments: development/embeddable-comments.md
|
||||
- Entity Info: development/entity-info.md
|
||||
- ESLint: development/es-lint.md
|
||||
- Exports: development/exports.md
|
||||
- FAQ: development/FAQ.md
|
||||
- Forms: development/forms.md
|
||||
- Localisation: development/localisation.md
|
||||
- Logging: development/logging.md
|
||||
- Manual:
|
||||
- development/manual/index.md
|
||||
- Routing and Menus: development/manual/routing-and-menus.md
|
||||
- Menus: development/menus.md
|
||||
- Messages to Users: development/messages-to-users.md
|
||||
- Migrations: development/migrations.md
|
||||
- Pagination: development/pagination.md
|
||||
- Render Entity: development/render-entity.md
|
||||
- Routing: development/routing.md
|
||||
- Run Tests: development/run-tests.md
|
||||
- Searching: development/searching.md
|
||||
- Timelines: development/timelines.md
|
||||
- Useful Snippets: development/useful-snippets.md
|
||||
- User Interface:
|
||||
- CSS Classes: development/user-interface/css-classes.md
|
||||
- JS Functions: development/user-interface/js-functions.md
|
||||
- Layout Template: development/user-interface/layout-template-usage.md
|
||||
- Widgets: development/user-interface/widgets.md
|
||||
- Bundles:
|
||||
- bundles/index.md
|
||||
- Activity: bundles/activity.md
|
||||
- Custom Fields: bundles/custom-fields.md
|
||||
- Event: bundles/event.md
|
||||
- Group: bundles/group.md
|
||||
- LDAP: bundles/ldap.md
|
||||
- Main: bundles/main.md
|
||||
- Person: bundles/person.md
|
||||
- Report: bundles/report.md
|
||||
|
||||
extra:
|
||||
social:
|
||||
- icon: fontawesome/brands/gitlab
|
||||
link: https://gitlab.com/Chill-project
|
||||
- icon: fontawesome/solid/comments
|
||||
link: https://app.element.io/#/room/#chill-social-admin:matrix.org
|
||||
@@ -1,7 +1,4 @@
|
||||
docutils==0.13.1
|
||||
Pygments==2.2.0
|
||||
sphinx==1.8.5
|
||||
Jinja2<3.1
|
||||
git+https://github.com/fabpot/sphinx-php.git@v2.0.2#egg_name=sphinx-php
|
||||
jsx-lexer===0.0.8
|
||||
sphinx_rtd_theme==0.5.0
|
||||
mkdocs>=1.5.3
|
||||
mkdocs-material>=9.4.0
|
||||
pymdown-extensions>=10.3.0
|
||||
mkdocs-autorefs>=0.5.0
|
||||
|
||||
@@ -23,8 +23,8 @@ class "Document" {
|
||||
- text description
|
||||
- ArrayCollection_DocumentCategory categories
|
||||
- varchar_150 content #link to openstack
|
||||
- Center center
|
||||
- Cercle cercle
|
||||
- Territoire territoire
|
||||
- Service service
|
||||
- User user
|
||||
- DateTime date # Creation date
|
||||
}
|
||||
|
||||
@@ -12,14 +12,16 @@ declare(strict_types=1);
|
||||
namespace Chill\PersonBundle\Export\Filter;
|
||||
|
||||
use Chill\MainBundle\Export\ExportElementValidatedInterface;
|
||||
use Chill\MainBundle\Export\ExportGenerationContext;
|
||||
use Chill\MainBundle\Export\FilterInterface;
|
||||
use DateTime;
|
||||
use Doctrine\ORM\Query\Expr;
|
||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||
|
||||
class BirthdateFilter implements ExportElementValidatedInterface, FilterInterface
|
||||
{
|
||||
use \Chill\MainBundle\Export\ExportDataNormalizerTrait;
|
||||
|
||||
// add specific role for this filter
|
||||
public function addRole(): ?string
|
||||
{
|
||||
@@ -28,7 +30,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
}
|
||||
|
||||
// here, we alter the query created by Export
|
||||
public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data)
|
||||
public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data, ExportGenerationContext $exportGenerationContext): void
|
||||
{
|
||||
$where = $qb->getDQLPart('where');
|
||||
// we create the clause here
|
||||
@@ -52,13 +54,13 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
}
|
||||
|
||||
// we give information on which type of export this filter applies
|
||||
public function applyOn()
|
||||
public function applyOn(): string
|
||||
{
|
||||
return 'person';
|
||||
}
|
||||
|
||||
// we build a form to collect some parameters from the users
|
||||
public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder)
|
||||
public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder): void
|
||||
{
|
||||
$builder->add('date_from', DateType::class, [
|
||||
'label' => 'Born after this date',
|
||||
@@ -74,23 +76,39 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
'format' => 'dd-MM-yyyy',
|
||||
]);
|
||||
}
|
||||
|
||||
public function getNormalizationVersion(): int
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
public function normalizeFormData(array $formData): array
|
||||
{
|
||||
return ['date_from' => $this->normalizeDate($formData['date_from']), 'date_to' => $this->normalizeDate($formData['date_to'])];
|
||||
}
|
||||
|
||||
public function denormalizeFormData(array $formData, int $fromVersion): array
|
||||
{
|
||||
return ['date_from' => $this->denormalizeDate($formData['date_from']), 'date_to' => $this->denormalizeDate($formData['date_to'])];
|
||||
}
|
||||
|
||||
public function getFormDefaultData(): array
|
||||
{
|
||||
return ['date_from' => new DateTime(), 'date_to' => new DateTime()];
|
||||
return ['date_from' => new \DateTime(), 'date_to' => new \DateTime()];
|
||||
}
|
||||
|
||||
// here, we create a simple string which will describe the action of
|
||||
// the filter in the Response
|
||||
public function describeAction($data, $format = 'string')
|
||||
public function describeAction($data, ExportGenerationContext $context): string|\Symfony\Contracts\Translation\TranslatableInterface|array
|
||||
{
|
||||
return ['Filtered by person\'s birtdate: '
|
||||
. 'between %date_from% and %date_to%', [
|
||||
.'between %date_from% and %date_to%', [
|
||||
'%date_from%' => $data['date_from']->format('d-m-Y'),
|
||||
'%date_to%' => $data['date_to']->format('d-m-Y'),
|
||||
], ];
|
||||
}
|
||||
|
||||
public function getTitle()
|
||||
public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
|
||||
{
|
||||
return 'Filter by person\'s birthdate';
|
||||
}
|
||||
@@ -99,20 +117,20 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
// is executed here. This function is added by the interface
|
||||
// `ExportElementValidatedInterface`, and can be ignore if there is
|
||||
// no need for a validation
|
||||
public function validateForm($data, ExecutionContextInterface $context)
|
||||
public function validateForm($data, ExecutionContextInterface $context): void
|
||||
{
|
||||
$date_from = $data['date_from'];
|
||||
$date_to = $data['date_to'];
|
||||
|
||||
if (null === $date_from) {
|
||||
$context->buildViolation('The "date from" should not be empty')
|
||||
//->atPath('date_from')
|
||||
// ->atPath('date_from')
|
||||
->addViolation();
|
||||
}
|
||||
|
||||
if (null === $date_to) {
|
||||
$context->buildViolation('The "date to" should not be empty')
|
||||
//->atPath('date_to')
|
||||
// ->atPath('date_to')
|
||||
->addViolation();
|
||||
}
|
||||
|
||||
@@ -121,7 +139,7 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
|
||||
&& $date_from >= $date_to
|
||||
) {
|
||||
$context->buildViolation('The date "date to" should be after the '
|
||||
. 'date given in "date from" field')
|
||||
.'date given in "date from" field')
|
||||
->addViolation();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,10 +32,22 @@ class CountPerson implements ExportInterface
|
||||
$this->entityManager = $em;
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder)
|
||||
public function buildForm(FormBuilderInterface $builder): void
|
||||
{
|
||||
// this export does not add any form
|
||||
}
|
||||
public function getNormalizationVersion(): int
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
public function normalizeFormData(array $formData): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
public function denormalizeFormData(array $formData, int $fromVersion): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
public function getFormDefaultData(): array
|
||||
{
|
||||
return [];
|
||||
@@ -60,29 +72,29 @@ class CountPerson implements ExportInterface
|
||||
};
|
||||
}
|
||||
|
||||
public function getQueryKeys($data)
|
||||
public function getQueryKeys($data): array
|
||||
{
|
||||
// this array match the result keys in the query. We have only
|
||||
// one column.
|
||||
return ['export_result'];
|
||||
}
|
||||
|
||||
public function getResult($query, $data)
|
||||
public function getResult($query, $data, \Chill\MainBundle\Export\ExportGenerationContext $context): array
|
||||
{
|
||||
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
|
||||
}
|
||||
|
||||
public function getTitle()
|
||||
public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
|
||||
{
|
||||
return 'Count peoples';
|
||||
}
|
||||
|
||||
public function getType()
|
||||
public function getType(): string
|
||||
{
|
||||
return Declarations::PERSON_TYPE;
|
||||
}
|
||||
|
||||
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
|
||||
public function initiateQuery(array $requiredModifiers, array $acl, array $data, \Chill\MainBundle\Export\ExportGenerationContext $context): \Doctrine\ORM\QueryBuilder
|
||||
{
|
||||
// we gather all center the user choose.
|
||||
$centers = array_map(static fn ($el) => $el['center'], $acl);
|
||||
|
||||
49
docs/source/bundles/activity.md
Normal file
49
docs/source/bundles/activity.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Activity bundle
|
||||
|
||||
This bundle provides the ability to record people in the software. This bundle is required by other bundle.
|
||||
|
||||
###### Entities provided
|
||||
|
||||
Describe the entities provided.
|
||||
|
||||
###### Configuration options
|
||||
|
||||
Those options are available under `chill_activity` key.
|
||||
|
||||
Example of configuration:
|
||||
|
||||
```yaml
|
||||
chill_activity:
|
||||
form:
|
||||
time_duration:
|
||||
- { label: '12 minutes', seconds: 720 }
|
||||
- { label: '30 minutes', seconds: 1800 }
|
||||
```
|
||||
|
||||
form.time_duration *array*
|
||||
The duration which might be suggested when the user create or update an activity. The value must be an array of object, where each object must have a `label` and a `seconds` key. The label provide which is shown to user (the label will be translated, if possible) and the seconds the duration.
|
||||
|
||||
Example: see the example above
|
||||
|
||||
Default value: the values available are 5, 10, 15, 20, 25, 30, 45 minutes, and 1 hour, 1 hour 15, 1 hour 30, 1 hour 45 and 2 hours.
|
||||
|
||||
###### Macros
|
||||
|
||||
## Activity reason sticker
|
||||
|
||||
Macro file
|
||||
`ChillActivityBundle:ActivityReason:macro.html.twig`
|
||||
Macro envelope
|
||||
`reason(r)`
|
||||
|
||||
`p` is an instance of :class:`Chill\ActivityBundle\Entity\ActivityReason`
|
||||
|
||||
When to use this macro ?
|
||||
When you want to represent an activity reason.
|
||||
Example usage :
|
||||
|
||||
```jinja
|
||||
{% import 'ChillActivityBundle:ActivityReason:macro.html.twig' as m %}
|
||||
|
||||
{{ m.reason(r) }}
|
||||
```
|
||||
@@ -1,71 +0,0 @@
|
||||
.. Copyright (C) 2014 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
.. _activity-bundle:
|
||||
|
||||
Activity bundle
|
||||
###############
|
||||
|
||||
This bundle provides the ability to record people in the software. This bundle is required by other bundle.
|
||||
|
||||
.. contents:: Table of content
|
||||
:local:
|
||||
|
||||
Entities provided
|
||||
*****************
|
||||
|
||||
.. todo::
|
||||
|
||||
Describe the entities provided.
|
||||
|
||||
|
||||
Configuration options
|
||||
*********************
|
||||
|
||||
Those options are available under `chill_activity` key.
|
||||
|
||||
Example of configuration:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
chill_activity:
|
||||
form:
|
||||
time_duration:
|
||||
- { label: '12 minutes', seconds: 720 }
|
||||
- { label: '30 minutes', seconds: 1800 }
|
||||
|
||||
form.time_duration *array*
|
||||
The duration which might be suggested when the user create or update an activity. The value must be an array of object, where each object must have a :code:`label` and a :code:`seconds` key. The label provide which is shown to user (the label will be translated, if possible) and the seconds the duration.
|
||||
|
||||
Example: see the example above
|
||||
|
||||
Default value: the values available are 5, 10, 15, 20, 25, 30, 45 minutes, and 1 hour, 1 hour 15, 1 hour 30, 1 hour 45 and 2 hours.
|
||||
|
||||
.. _activity-bundle-macros:
|
||||
|
||||
Macros
|
||||
******
|
||||
|
||||
Activity reason sticker
|
||||
=======================
|
||||
|
||||
Macro file
|
||||
`ChillActivityBundle:ActivityReason:macro.html.twig`
|
||||
Macro envelope
|
||||
:code:`reason(r)`
|
||||
|
||||
:code:`p` is an instance of :class:`Chill\ActivityBundle\Entity\ActivityReason`
|
||||
|
||||
When to use this macro ?
|
||||
When you want to represent an activity reason.
|
||||
Example usage :
|
||||
.. code-block:: html+jinja
|
||||
|
||||
{% import 'ChillActivityBundle:ActivityReason:macro.html.twig' as m %}
|
||||
|
||||
{{ m.reason(r) }}
|
||||
@@ -1,15 +1,4 @@
|
||||
.. Copyright (C) 2014 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
.. _custom-fields-bundle:
|
||||
|
||||
Custom fields bundle
|
||||
====================
|
||||
## Custom fields bundle
|
||||
|
||||
This bundle provides the ability to add custom fields to existing entities.
|
||||
|
||||
@@ -17,79 +6,63 @@ Those custom fields contains extra data and will be stored in the DB, along with
|
||||
|
||||
In the database, custom fields are stored in json format.
|
||||
|
||||
.. seealso::
|
||||
The full specification discussed [here](https://redmine.champs-libres.coop/issues/239)
|
||||
|
||||
The full specification discussed `here. <https://redmine.champs-libres.coop/issues/239>`_
|
||||
|
||||
`JSON Type on postgresql documentation <http://www.postgresql.org/docs/9.3/static/datatype-json.html>`_
|
||||
[JSON Type on postgresql documentation](http://www.postgresql.org/docs/9.3/static/datatype-json.html)
|
||||
The documentation of json type, which is used to store data in the database.
|
||||
|
||||
.. contents:: Table of contents
|
||||
:depth: 4
|
||||
:local:
|
||||
|
||||
Custom Fields concepts
|
||||
----------------------
|
||||
### Custom Fields concepts
|
||||
|
||||
Custom fields are extra data which may be added to entities by user. If a developer implements custom fields on a entity, users will be able to add more fields on this entity.
|
||||
|
||||
Example: the `person bundle` allows to record `firstname`, `lastname`, `date of birth` fields. But users need to store information about the kind of house he has (if he owns his house, if he rents it, ...). Custom fields allows to create those fields.
|
||||
Example: the [person bundle` allows to record `firstname`, `lastname`, `date of birth` fields. But users need to store information about the kind of house he has (if he owns his house, if he rents it, ...). Custom fields allows to create those fields.
|
||||
|
||||
Automatically, those fields are added at the person form. They are also printed in the person view and in exports.
|
||||
|
||||
Custom fields and custom fields group
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
##### Custom fields and custom fields group
|
||||
|
||||
Custom fields are associated to a custom fields group. When a user want to add custom fields on an entity, he must first create a custom fields group and associate this field with an entity. Then he may add add custom fields to this groups.
|
||||
Custom fields are associated to a custom fields group. When a user want to add custom fields on an entity, he must first create a custom fields group and associate this field with an entity. Then he may add add custom fields to this groups.
|
||||
|
||||
Some entities needs a **default** custom fields group. For instance, the default custom fields group will be printed on the main form for person, and will be appended on the main person view. Some bundle does not use this feature (i.e. the `report` bundle).
|
||||
|
||||
.. note::
|
||||
|
||||
In the future of the `person bundle`, other custom fields group will be added in forms accessible from the menu, allowing users to completely customize and separate their entities.
|
||||
|
||||
Allow custom fields on an entity
|
||||
--------------------------------
|
||||
|
||||
### Allow custom fields on an entity
|
||||
|
||||
As a developer, you must allow your users to add custom fields on your entities.
|
||||
|
||||
.. warning::
|
||||
For having custom fields, the class of the entity must contain a variable for storing the custom data. **By convention this variable must be called $cFData**
|
||||
|
||||
|
||||
Create a json field on your entity
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
##### Create a json field on your entity
|
||||
|
||||
Declare a json field in your database :
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
```bash
|
||||
Chill\CustomFieldsBundle\Entity\BlopEntity:
|
||||
type: entity
|
||||
# ...
|
||||
fields:
|
||||
cFData:
|
||||
type: json_array
|
||||
|
||||
```
|
||||
|
||||
Create the field accordingly in the class logic :
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
```bash
|
||||
namespace Chill\CustomFieldsBundle\Entity;
|
||||
|
||||
|
||||
/**
|
||||
* BlopEntity
|
||||
*/
|
||||
class BlopEntity
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $cFData;
|
||||
|
||||
|
||||
/**
|
||||
* You must set a setter in order to save automatically custom
|
||||
* You must set a setter in order to save automatically custom
|
||||
* fields from forms, using Form Component
|
||||
*
|
||||
* @param array $cFData
|
||||
@@ -100,9 +73,9 @@ Create the field accordingly in the class logic :
|
||||
$this->cFData = $cFData;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* You also must create a getter in order to let Form
|
||||
* You also must create a getter in order to let Form
|
||||
* component populate form fields
|
||||
*
|
||||
* @return array
|
||||
@@ -111,9 +84,9 @@ Create the field accordingly in the class logic :
|
||||
{
|
||||
return $this->cFData;
|
||||
}
|
||||
|
||||
Declare your customizable entity in configuration
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
```
|
||||
|
||||
##### Declare your customizable entity in configuration
|
||||
|
||||
This step is necessary to allow user to create custom fields group associated with this entity.
|
||||
|
||||
@@ -130,26 +103,25 @@ This method is discouraged but explained first as it helps to undersand the reco
|
||||
|
||||
Add those file under `chill_custom_fields` section :
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
```yaml
|
||||
chill_custom_fields:
|
||||
customizables_entities:
|
||||
- { class: Chill\YourBundleBundle\Entity\BlopEntity, name: blop_entity }
|
||||
|
||||
```
|
||||
|
||||
* The `name` allow you to define a string which is translatable. This string will appears when chill's admin will add/retrieve new customFieldsGroup.
|
||||
* The class, which is a full FQDN class path
|
||||
|
||||
Automatically, in DependencyInjection/Extension class (recommended)
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This is the recommended way for declaring customizable classes.
|
||||
This is the recommended way for declaring customizable classes.
|
||||
|
||||
You can prepend configuration of `custom fields bundle` from the class `YourBundle\DependencyInjection\YourBundleExtension`. **Note** that you also have to implements `Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface` on this class to make the `prepend` function being taken into account.
|
||||
|
||||
Example here :
|
||||
|
||||
.. code-block:: php
|
||||
Example here :
|
||||
|
||||
```php
|
||||
class ChillYourBundleExtension extends Extension implements PrependExtensionInterface
|
||||
{
|
||||
/**
|
||||
@@ -163,48 +135,44 @@ Example here :
|
||||
}
|
||||
|
||||
$container->prependExtensionConfig('chill_custom_fields',
|
||||
array('customizables_entities' =>
|
||||
array('customizables_entities' =>
|
||||
array(
|
||||
array(
|
||||
'class' => 'Chill\YourBundleBundle\Entity\BlopEntity',
|
||||
'class' => 'Chill\YourBundleBundle\Entity\BlopEntity',
|
||||
'name' => 'blop_entity',)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* The `name` allow you to define a string which is translatable. This string will appears when chill's admin will add/retrieve new customFieldsGroup.
|
||||
* The class, which is a full FQDN class path
|
||||
|
||||
.. seealso::
|
||||
|
||||
`How to simplify configuration of multiple bundles <http://symfony.com/doc/current/cookbook/bundles/prepend_extension.html>`_
|
||||
`How to simplify configuration of multiple bundles ](http://symfony.com/doc/current/cookbook/bundles/prepend_extension.html)
|
||||
A cookbook page about prepending configuration.
|
||||
|
||||
|
||||
Adding options to your custom fields groups
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
##### Adding options to your custom fields groups
|
||||
|
||||
You may add options to the groups associated with an entity.
|
||||
|
||||
In `config.yml` the declaration should be :
|
||||
|
||||
.. code-block:: yaml
|
||||
In `config.yml` the declaration should be :
|
||||
|
||||
```yaml
|
||||
chill_custom_fields:
|
||||
customizables_entities:
|
||||
-
|
||||
-
|
||||
class: Chill\YourBundleBundle\Entity\BlopEntity
|
||||
name: BlopEntity
|
||||
options:
|
||||
# this will create a "myFieldKey" field as text, with a maxlength attribute to 150 (see http://symfony.com/doc/master/reference/forms/types/text.html)
|
||||
myFieldKey: {form_type: text, form_options: {attr: [maxlength: 150]}}
|
||||
myFieldKey: {form_type: text, form_options: {attr: [maxlength: 150]}}
|
||||
```
|
||||
|
||||
In the `PrependExtensionInterface::prepend` function, the options key will be added in the configuration definition :
|
||||
|
||||
.. code-block:: php
|
||||
In the `PrependExtensionInterface::prepend` function, the options key will be added in the configuration definition :
|
||||
|
||||
```php
|
||||
class ChillYourBundleExtension extends Extension implements PrependExtensionInterface
|
||||
{
|
||||
/**
|
||||
@@ -218,10 +186,10 @@ In the `PrependExtensionInterface::prepend` function, the options key will be ad
|
||||
}
|
||||
|
||||
$container->prependExtensionConfig('chill_custom_fields',
|
||||
array('customizables_entities' =>
|
||||
array('customizables_entities' =>
|
||||
array(
|
||||
array(
|
||||
'class' => 'Chill\YourBundleBundle\Entity\BlopEntity',
|
||||
'class' => 'Chill\YourBundleBundle\Entity\BlopEntity',
|
||||
'name' => 'BlopEntity',
|
||||
'options' => array(
|
||||
'myFieldKey' => [ 'form_type' => 'text', 'form_options' => [ 'attr' => [ 'maxlength' => 150 ] ]
|
||||
@@ -231,16 +199,15 @@ In the `PrependExtensionInterface::prepend` function, the options key will be ad
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
**Example :** the entity `Report` from **ReportBundle** has to pick some custom fields belonging to a group to print them in *summaries* the timeline page. The definition will use the special type `custom_fields_group_linked_custom_field` which will add a select input with all fields associated with the current custom fields group :
|
||||
```
|
||||
|
||||
.. code-block:: php
|
||||
**Example :** the entity `Report` from **ReportBundle** has to pick some custom fields belonging to a group to print them in *summaries* the timeline page. The definition will use the special type `custom_fields_group_linked_custom_field` which will add a select input with all fields associated with the current custom fields group :
|
||||
|
||||
```php
|
||||
class ChillReportExtension extends Extension implements PrependExtensionInterface
|
||||
{
|
||||
/**
|
||||
*
|
||||
*
|
||||
###### *
|
||||
* @param ContainerBuilder $container
|
||||
*/
|
||||
public function prepend(ContainerBuilder $container)
|
||||
@@ -251,15 +218,15 @@ In the `PrependExtensionInterface::prepend` function, the options key will be ad
|
||||
}
|
||||
|
||||
$container->prependExtensionConfig('chill_custom_fields',
|
||||
array('customizables_entities' =>
|
||||
array('customizables_entities' =>
|
||||
array(
|
||||
array(
|
||||
'class' => 'Chill\ReportBundle\Entity\Report',
|
||||
'class' => 'Chill\ReportBundle\Entity\Report',
|
||||
'name' => 'ReportEntity',
|
||||
'options' => array(
|
||||
'summary_fields' => array(
|
||||
'form_type' => 'custom_fields_group_linked_custom_fields',
|
||||
'form_options' =>
|
||||
'form_options' =>
|
||||
[
|
||||
'multiple' => true,
|
||||
'expanded' => false
|
||||
@@ -271,14 +238,13 @@ In the `PrependExtensionInterface::prepend` function, the options key will be ad
|
||||
);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Note that `custom_fields_group_linked_custom_fields` does not create any input on `CustomFieldsGroup` creation : there aren't any fields associated with the custom fields just after the group creation... You have to add custom fields and associate them with the newly created group to see them appears.
|
||||
|
||||
Rendering custom fields and custom fields group in a template
|
||||
-------------------------------------------------------------
|
||||
### Rendering custom fields and custom fields group in a template
|
||||
|
||||
.. warning::
|
||||
Each custom field can be `active` or not. Only `active` custom fields has to be dislayed.
|
||||
Each custom field can be `active` or not. Only `active` custom fields has to be dislayed.
|
||||
|
||||
For rendering custom fields, two function are available :
|
||||
|
||||
@@ -290,8 +256,7 @@ For rendering custom fields group, a function is available :
|
||||
|
||||
* `chill_custom_fields_group_widget` to render the widget. It will display the custom fields of the group in a dd / dt structure.
|
||||
|
||||
chill_custom_field_label
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
##### chill_custom_field_label
|
||||
|
||||
The signature is :
|
||||
|
||||
@@ -300,29 +265,23 @@ The signature is :
|
||||
|
||||
Examples
|
||||
|
||||
.. code-block:: jinja
|
||||
|
||||
{{ chill_custom_field_label(customField) }}
|
||||
|
||||
|
||||
|
||||
chill_custom_field_widget
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
##### chill_custom_field_widget
|
||||
|
||||
The signature is :
|
||||
|
||||
* array **$fields** the array raw, as stored in the db
|
||||
* CustomField **$customField** a customField instance
|
||||
* CustomField **$customField** a customField instance
|
||||
* string **$documentType** the type of document. Default to `html`.
|
||||
|
||||
Examples:
|
||||
|
||||
.. code-block:: jinja
|
||||
|
||||
```bash
|
||||
{{ chill_custom_field_widget(entity.customFields, customField) }}
|
||||
```
|
||||
|
||||
chill_custom_field_is_empty
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
##### chill_custom_field_is_empty
|
||||
|
||||
The signature is :
|
||||
|
||||
@@ -331,13 +290,9 @@ The signature is :
|
||||
|
||||
Examples :
|
||||
|
||||
.. code-block:: jinja
|
||||
|
||||
{%- if chill_custom_field_is_empty(cFData, customField) == false -%}
|
||||
|
||||
|
||||
chill_custom_fields_group_widget
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
##### chill_custom_fields_group_widget
|
||||
|
||||
This function only display custom fields that are `active`.
|
||||
|
||||
@@ -346,19 +301,17 @@ The signature is :
|
||||
* array **$fields** the array raw, as stored in the db
|
||||
* CustomFieldsGroup **$customFieldsGroup** the custom field group to render
|
||||
|
||||
.. code-block:: jinja
|
||||
|
||||
```bash
|
||||
{{ chill_custom_fields_group_widget(entity.cFData, entity.customFieldsGroup) }}
|
||||
```
|
||||
|
||||
Custom Fields's form
|
||||
--------------------
|
||||
### Custom Fields's form
|
||||
|
||||
You should simply use the 'custom_field' type in a template, with the group you would like to render in the `group` option's type.
|
||||
|
||||
Example :
|
||||
|
||||
.. code-block:: php
|
||||
Example :
|
||||
|
||||
```php
|
||||
namespace Chill\ReportBundle\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
@@ -377,14 +330,14 @@ Example :
|
||||
|
||||
$builder
|
||||
->add('user')
|
||||
->add('date', 'date',
|
||||
->add('date', 'date',
|
||||
array('required' => true, 'widget' => 'single_text', 'format' => 'dd-MM-yyyy'))
|
||||
#add the custom fields :
|
||||
->add('cFData', 'custom_field',
|
||||
->add('cFData', 'custom_field',
|
||||
array('attr' => array('class' => 'cf-fields'), 'group' => $options['cFGroup']))
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param OptionsResolverInterface $resolver
|
||||
*/
|
||||
@@ -413,29 +366,25 @@ Example :
|
||||
return 'chill_reportbundle_report';
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Available configuration
|
||||
------------------------
|
||||
### Available configuration
|
||||
|
||||
Those options are available in the configuration, under the `chill_custom_field` key.
|
||||
|
||||
Example :
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
```yaml
|
||||
chill_custom_field:
|
||||
show_empty_values_in_views: false
|
||||
```
|
||||
|
||||
show_empty_values_in_views *boolean*:
|
||||
Allow to hide / show empty values in views. The aim of this configuration parameter is to hide (or show) empty values when :term:`custom fields group` are rendered.
|
||||
|
||||
Default value : `true`
|
||||
|
||||
Glossary
|
||||
--------
|
||||
|
||||
.. glossary::
|
||||
### Glossary
|
||||
|
||||
custom fields group
|
||||
A group of custom fields
|
||||
@@ -1,24 +1,18 @@
|
||||
.. Copyright (C) 2016 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
.. _event-bundle:
|
||||
# Event bundle
|
||||
|
||||
Event bundle
|
||||
############
|
||||
|
||||
Template & Menu
|
||||
===============
|
||||
## Template & Menu
|
||||
|
||||
The event bundle has a special template with a specific menu for actions on
|
||||
events. This menu is called `event`.
|
||||
|
||||
ChillEventBundle::layout.html.twig
|
||||
----------------------------------
|
||||
### ChillEventBundle::layout.html.twig
|
||||
|
||||
This layout extends `ChillMainBundle::layoutWithVerticalMenu.html.twig` and add the menu `event`
|
||||
|
||||
@@ -26,4 +20,4 @@ It proposes a new block :
|
||||
|
||||
* event_content
|
||||
|
||||
* where to display content relative to the event.
|
||||
* where to display content relative to the event.
|
||||
33
docs/source/bundles/group.md
Normal file
33
docs/source/bundles/group.md
Normal file
@@ -0,0 +1,33 @@
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
# Group bundle
|
||||
|
||||
Allow to group people in a group. This group may be a family, an activity group, ...
|
||||
|
||||
###### Entities
|
||||
|
||||
###### Macros
|
||||
|
||||
## Group sticker
|
||||
|
||||
Macro file
|
||||
`ChillGroupBundle:Group:macro.html.twig`
|
||||
Macro name
|
||||
`_render`
|
||||
Macro envelope
|
||||
`group`, instance of :class:`Chill\GroupBundle\Entity\CGroup`
|
||||
|
||||
When to use this macro ?
|
||||
When you want to represent group.
|
||||
Example usage :
|
||||
|
||||
```jinja
|
||||
{% import 'ChillGroupBundle:Group:macro.html.twig' as m %}
|
||||
|
||||
{{ m._render(g) }}
|
||||
```
|
||||
@@ -1,49 +0,0 @@
|
||||
.. Copyright (C) 2016 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
.. _group-bundle:
|
||||
|
||||
Group bundle
|
||||
############
|
||||
|
||||
Allow to group people in a group. This group may be a family, an activity group, ...
|
||||
|
||||
.. contents:: Table of content
|
||||
:local:
|
||||
|
||||
Entities
|
||||
********
|
||||
|
||||
.. figure:: /_static/bundles/group/group_classes_uml.png
|
||||
|
||||
|
||||
.. _group-bundle-macros:
|
||||
|
||||
Macros
|
||||
******
|
||||
|
||||
Group sticker
|
||||
==============
|
||||
|
||||
Macro file
|
||||
`ChillGroupBundle:Group:macro.html.twig`
|
||||
Macro name
|
||||
:code:`_render`
|
||||
Macro envelope
|
||||
:code:`group`, instance of :class:`Chill\GroupBundle\Entity\CGroup`
|
||||
|
||||
When to use this macro ?
|
||||
When you want to represent group.
|
||||
Example usage :
|
||||
.. code-block:: html+jinja
|
||||
|
||||
{% import 'ChillGroupBundle:Group:macro.html.twig' as m %}
|
||||
|
||||
{{ m._render(g) }}
|
||||
|
||||
|
||||
23
docs/source/bundles/index.md
Normal file
23
docs/source/bundles/index.md
Normal file
@@ -0,0 +1,23 @@
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
# Bundles documentation
|
||||
|
||||
You will find here documentation about bundles working with Chill.
|
||||
|
||||
- [Main bundle](main.md)
|
||||
- [Custom Fields bundle](custom-fields.md)
|
||||
- [Person bundle](person.md)
|
||||
- [Report bundle](report.md)
|
||||
- [Activity bundle](activity.md)
|
||||
- [Group bundle](group.md)
|
||||
- [Event bundle](event.md)
|
||||
- [Ldap bundle (synchronisation between ldap and database)](ldap.md)
|
||||
|
||||
### Your bundle here ?
|
||||
|
||||
The contributors still do not have a policy about those bundle integration, but we would like to be very open on this subject. Please write to us [or open an issue ](https://redmine.champs-libres.coop/projects/chill/issues).
|
||||
@@ -1,29 +0,0 @@
|
||||
.. Copyright (C) 2014 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
Bundles documentation
|
||||
###############################
|
||||
|
||||
You will find here documentation about bundles working with Chill.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
Main bundle <main.rst>
|
||||
Custom Fields bundle <custom-fields.rst>
|
||||
Person bundle <person.rst>
|
||||
Report bundle <report.rst>
|
||||
Activity bundle <activity.rst>
|
||||
Group bundle <group.rst>
|
||||
Event bundle <event.rst>
|
||||
Ldap bundle (synchronisation between ldap and database) <ldap.rst>
|
||||
|
||||
Your bundle here ?
|
||||
-------------------
|
||||
|
||||
The contributors still do not have a policy about those bundle integration, but we would like to be very open on this subject. Please write to us `or open an issue <https://redmine.champs-libres.coop/projects/chill/issues>`_.
|
||||
@@ -1,94 +1,70 @@
|
||||
.. Copyright (C) 2014 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
.. _ldap-bundle:
|
||||
|
||||
LDAP bundle
|
||||
###########
|
||||
# LDAP bundle
|
||||
|
||||
This bundle binds the database with an ldap directory.
|
||||
|
||||
The bundle synchronize the ldap directory with users in the database. It also
|
||||
provides a way to check user credentials against the ldap directory.
|
||||
|
||||
|
||||
.. contents:: Table of content
|
||||
:local:
|
||||
|
||||
Current limitations
|
||||
*******************
|
||||
###### Current limitations
|
||||
|
||||
- The length of the ldap dn must be < 255 characters
|
||||
- if the username extracted from the ldap is updated, the changes are not reflected in the database and remains the same
|
||||
|
||||
###### Entities provided
|
||||
|
||||
Entities provided
|
||||
*****************
|
||||
This bundle provides only one entity : :class:[Chill\\LdapBundle\\Entity\\UserLdapBinding`
|
||||
|
||||
This bundle provides only one entity : :class:`Chill\\LdapBundle\\Entity\\UserLdapBinding`
|
||||
###### How the synchronizer works ?
|
||||
|
||||
How the synchronizer works ?
|
||||
****************************
|
||||
|
||||
#. The synchronizer performs a query on :code:`dn` and :code:`query` defined in the :ref:`configuration <configuration>`.
|
||||
#. For each entry returned by the query, it looks if the :code:`dn` exists in the database
|
||||
#. The synchronizer performs a query on `dn` and `query` defined in the [configuration ](configuration.md).
|
||||
#. For each entry returned by the query, it looks if the `dn` exists in the database
|
||||
|
||||
#. If the entry does not exists :
|
||||
|
||||
#. the synchronizer looks for user with same username as defined by :code:`username_attr`, and bind it with the :code:`dn` if it exists.
|
||||
#. else, a user is created with username defined by :code:`username_attr` (if the ldap contains more than one attribute, the first attribute returned is used)
|
||||
#. the synchronizer looks for user with same username as defined by `username_attr`, and bind it with the `dn` if it exists.
|
||||
#. else, a user is created with username defined by `username_attr` (if the ldap contains more than one attribute, the first attribute returned is used)
|
||||
|
||||
#. if a user exists which is already binded with the :code:`dn`, the entry is ignored.
|
||||
#. if a user exists which is already binded with the `dn`, the entry is ignored.
|
||||
|
||||
#. The synchronizer looks for dn existing in database and which were not returned by the query performed in 1.
|
||||
#. The synchronizer looks for dn existing in database and which were not returned by the query performed in 1.
|
||||
|
||||
#. If they exists, those user are set to :code:`enabled=false`: they are not allowed to login.
|
||||
#. If they exists, those user are set to `enabled=false`: they are not allowed to login.
|
||||
|
||||
Installation
|
||||
************
|
||||
###### Installation
|
||||
|
||||
This bundle requires :
|
||||
This bundle requires :
|
||||
|
||||
- PHP LDAP ext
|
||||
- :code:`symfony/ldap` with minimal version 3.1. Note that, currently, Chill uses Symfony 2.8: you should add the dependency on this single package manually
|
||||
- `symfony/ldap` with minimal version 3.1. Note that, currently, Chill uses Symfony 2.8: you should add the dependency on this single package manually
|
||||
|
||||
In your composer.json, for stable version :
|
||||
|
||||
.. code-block:: json
|
||||
In your composer.json, for stable version :
|
||||
|
||||
"require": {
|
||||
// .. other dependencies
|
||||
// .. other dependencies
|
||||
"symfony/ldap" : "~3.1",
|
||||
"chill-project/ldap": "~1.0"
|
||||
}
|
||||
|
||||
|
||||
|
||||
And for dev version :
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
"require": {
|
||||
// .. other dependencies
|
||||
// .. other dependencies
|
||||
"symfony/ldap" : "~3.1",
|
||||
"chill-project/ldap": "dev-master@dev"
|
||||
}
|
||||
|
||||
###### Configuration
|
||||
|
||||
.. _configuration:
|
||||
|
||||
Configuration
|
||||
**************
|
||||
|
||||
Configuration of the bundle
|
||||
============================
|
||||
|
||||
.. code-block:: yaml
|
||||
## Configuration of the bundle
|
||||
|
||||
# Default configuration for extension with alias: "chill_ldap"
|
||||
chill_ldap:
|
||||
@@ -125,10 +101,7 @@ Configuration of the bundle
|
||||
# The attribute which will provide username (=login)
|
||||
username_attr: cn
|
||||
|
||||
|
||||
Example :
|
||||
|
||||
.. code-block:: yaml
|
||||
Example :
|
||||
|
||||
chill_ldap:
|
||||
server:
|
||||
@@ -140,16 +113,12 @@ Example :
|
||||
dn: dc=champs-libres,dc=coop
|
||||
query: "(&(objectClass=inetOrgPerson)(userPassword=*))"
|
||||
|
||||
|
||||
Configuration of the security part of chill
|
||||
============================================
|
||||
## Configuration of the security part of chill
|
||||
|
||||
Simply add the following config in the firewall of the security bundle :
|
||||
`chill_ldap_form_login: ~`. This config is located in `app/config/security.yml`
|
||||
|
||||
Example of a configuration :
|
||||
|
||||
.. code-block:: yaml
|
||||
Example of a configuration :
|
||||
|
||||
# in app/config/security.yml
|
||||
|
||||
@@ -168,37 +137,23 @@ Example of a configuration :
|
||||
# enable the login check by a form, against the ldap
|
||||
chill_ldap_form_login: ~ # this is the line you should add
|
||||
|
||||
|
||||
Note that, if you enable the login check by form **and** by the ldap,
|
||||
Note that, if you enable the login check by form **and** by the ldap,
|
||||
the password will be checked against the database **and** against the ldap.
|
||||
If one of them match, the login will succeed.
|
||||
|
||||
If you want to completely disable login check against the database,
|
||||
simply remove the :code:`form_login` entry and all his options.
|
||||
If you want to completely disable login check against the database,
|
||||
simply remove the `form_login` entry and all his options.
|
||||
|
||||
.. _command-and-crontab:
|
||||
## Command and crontab
|
||||
|
||||
Command and crontab
|
||||
===================
|
||||
|
||||
Synchronize the database :
|
||||
|
||||
.. code-block:: bash
|
||||
Synchronize the database :
|
||||
|
||||
php app/console chill:ldap:synchronize
|
||||
|
||||
|
||||
For getting more debug message :
|
||||
|
||||
.. code-block:: bash
|
||||
For getting more debug message :
|
||||
|
||||
php app/console chill:ldap:synchronize -vvv
|
||||
|
||||
|
||||
|
||||
You should run this command regularly (using crontab or
|
||||
`systemd timer <https://www.freedesktop.org/software/systemd/man/systemd.timer.html#>`_)
|
||||
You should run this command regularly (using crontab or
|
||||
`systemd timer ](https://www.freedesktop.org/software/systemd/man/systemd.timer.html#))
|
||||
to synchronize ldap and database automatically.
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
.. Copyright (C) 2014 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
.. _main-bundle:
|
||||
|
||||
Main bundle
|
||||
###########
|
||||
|
||||
# Main bundle
|
||||
|
||||
This bundle is **required** for running Chill.
|
||||
|
||||
@@ -18,32 +15,24 @@ This bundle provide :
|
||||
* Access control model (users, groups, and all concepts)
|
||||
* ...
|
||||
|
||||
|
||||
.. warning::
|
||||
|
||||
this section is incomplete.
|
||||
|
||||
.. _main-bundle-macros:
|
||||
###### Macros
|
||||
|
||||
Macros
|
||||
******
|
||||
|
||||
Address sticker
|
||||
===============
|
||||
## Address sticker
|
||||
|
||||
Macro file
|
||||
`ChillMainBundle:Address:macro.html.twig`
|
||||
Macro name
|
||||
:code:`_render`
|
||||
`_render`
|
||||
Macro envelope
|
||||
:code:`address`, instance of :class:`Chill\MainBundle\Entity\Address`
|
||||
`address`, instance of :class:`Chill\MainBundle\Entity\Address`
|
||||
|
||||
When to use this macro ?
|
||||
When you want to represent an address.
|
||||
Example usage :
|
||||
.. code-block:: html+jinja
|
||||
|
||||
{% import 'ChillMainBundle:Address:macro.html.twig' as m %}
|
||||
|
||||
{{ m._render(address) }}
|
||||
```jinja
|
||||
{% import 'ChillMainBundle:Address:macro.html.twig' as m %}
|
||||
|
||||
{{ m._render(address) }}
|
||||
```
|
||||
@@ -1,65 +1,41 @@
|
||||
.. Copyright (C) 2014 Champs Libres Cooperative SCRLFS
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
.. _person-bundle:
|
||||
|
||||
Person bundle
|
||||
#############
|
||||
# Person bundle
|
||||
|
||||
This bundle provides the ability to record people in the software. This bundle is required by other bundle.
|
||||
|
||||
.. contents:: Table of content
|
||||
:local:
|
||||
|
||||
Entities provided
|
||||
*****************
|
||||
|
||||
.. todo::
|
||||
###### Entities provided
|
||||
|
||||
describe entities provided by person bundle
|
||||
|
||||
|
||||
Search terms
|
||||
************
|
||||
|
||||
The class `Chill\PersonBundle\Search\PersonSearch` provide the search module.
|
||||
|
||||
Domain
|
||||
======
|
||||
###### Search terms
|
||||
|
||||
The class [Chill\PersonBundle\Search\PersonSearch` provide the search module.
|
||||
|
||||
## Domain
|
||||
|
||||
The search upon "person" is provided by default. The `@person` domain search may be omitted.
|
||||
|
||||
* `@person` is the domain search for people.
|
||||
|
||||
|
||||
Arguments
|
||||
=========
|
||||
## Arguments
|
||||
|
||||
* `firstname` : provide the search on firstname. Example : `firstname:Depardieu`. May match part of the firstname (`firsname:dep` will match Depardieu)
|
||||
* `lastname` : provide the search on lastname. May match part of the lastname.
|
||||
* `birthdate` : provide the search on the birthdate. Example : `birthdate:1996-01-19`
|
||||
* `gender`: performs search on man/woman. The accepted values are `man` or `woman`.
|
||||
* `nationality` : performs search on nationality. Value must be a country code `as described in ISO 3166 <http://www.iso.org/iso/fr/home/standards/country_codes.htm>`_. Example : `nationality:FR`.
|
||||
* `nationality` : performs search on nationality. Value must be a country code `as described in ISO 3166 ](http://www.iso.org/iso/fr/home/standards/country_codes.htm). Example : [nationality:FR`.
|
||||
|
||||
Default
|
||||
=======
|
||||
## Default
|
||||
|
||||
The default search is performed on firstname and/or lastname. Both are concatened before search. If values are separated by spaces, the clause `AND` is used : the search `dep ge` will match 'Gérard Depardieu` or 'Jean Depagelles', but not 'Charline Depardieu' (missing 'Ge' in word).
|
||||
|
||||
Configuration options
|
||||
*********************
|
||||
###### Configuration options
|
||||
|
||||
Those options are available under `chill_person` key.
|
||||
|
||||
Example of configuration:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
```yaml
|
||||
chill_person:
|
||||
validation:
|
||||
birthdate_not_after: P15Y
|
||||
@@ -73,17 +49,18 @@ Example of configuration:
|
||||
marital_status: visible
|
||||
spoken_languages: hidden
|
||||
address: visible
|
||||
```
|
||||
|
||||
birthdate_not_after *string*
|
||||
The period duration before today during which encoding birthdate is not possible. The period is a string matching the format of `ISO_8601`, which is also use to build `DateInterval classes <http://php.net/manual/en/dateinterval.construct.php>`_.
|
||||
The period duration before today during which encoding birthdate is not possible. The period is a string matching the format of `ISO_8601`, which is also use to build `DateInterval classes ](http://php.net/manual/en/dateinterval.construct.php).
|
||||
|
||||
Example: `P1D`, `P18Y`
|
||||
Example: [P1D`, `P18Y`
|
||||
|
||||
Default value: `P1D` which means that birthdate before the current day (= yesterday) are allowed.
|
||||
|
||||
person_fields *array*
|
||||
This define the visibility of some fields. By default, all fields are visible, but you can choose to hide some of them. Available keys are :
|
||||
|
||||
This define the visibility of some fields. By default, all fields are visible, but you can choose to hide some of them. Available keys are :
|
||||
|
||||
* `nationality`
|
||||
* `country_of_birth`
|
||||
* `place_of_birth`
|
||||
@@ -97,73 +74,62 @@ person_fields *array*
|
||||
|
||||
Default value : `visible`, which means that all fields are visible.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: yaml
|
||||
Example:
|
||||
|
||||
```yaml
|
||||
chill_person:
|
||||
person_fields:
|
||||
nationality: hidden
|
||||
email: hidden
|
||||
phonenumber: hidden
|
||||
```
|
||||
|
||||
.. note::
|
||||
If all the field of a "box" are hidden, the whole box does not appears. Example: if the fields `phonenumber` and `email` are hidden, the title `Contact information` will be hidden in the UI.
|
||||
|
||||
.. note::
|
||||
If you hide multiple fields, for a better integration you may want to override the template, for a better appeareance. See `the symfony documentation <http://symfony.com/doc/current/book/templating.html#overriding-bundle-templates>`_ about this feature.
|
||||
If you hide multiple fields, for a better integration you may want to override the template, for a better appeareance. See `the symfony documentation ](http://symfony.com/doc/current/book/templating.html#overriding-bundle-templates) about this feature.
|
||||
|
||||
.. _person-bundle-macros:
|
||||
###### Macros
|
||||
|
||||
Macros
|
||||
******
|
||||
|
||||
Sticker for a person
|
||||
=====================
|
||||
## Sticker for a person
|
||||
|
||||
Macro file
|
||||
`ChillPersonBundle:Person:macro.html.twig`
|
||||
Macro envelope
|
||||
:code:`render(p, withLink=false)`
|
||||
`render(p, withLink=false)`
|
||||
|
||||
:code:`p` is an instance of :class:`Chill\PersonBundle\Entity\Person`
|
||||
`p` is an instance of `Chill\PersonBundle\Entity\Person`
|
||||
|
||||
:code:`withLink` :class:`boolean`
|
||||
`withLink`: `boolean`
|
||||
When to use this macro ?
|
||||
When you want to represent a person.
|
||||
Example usage :
|
||||
.. code-block:: html+jinja
|
||||
```jinja
|
||||
{% import "ChillPersonBundle:Person:macro.html.twig" as person_ %}
|
||||
|
||||
{% import "ChillPersonBundle:Person:macro.html.twig" as person_ %}
|
||||
{{ person_.render(person, true) }}
|
||||
```
|
||||
|
||||
{{ person_.render(person, true) }}
|
||||
###### Layout events and delegated blocks
|
||||
|
||||
Layout events and delegated blocks
|
||||
***********************************
|
||||
|
||||
:code:`chill_block.person_post_vertical_menu` event
|
||||
====================================================
|
||||
## `chill_block.person_post_vertical_menu` event
|
||||
|
||||
This event is available to add content below of the vertical menu (on the right).
|
||||
|
||||
The context is :
|
||||
The context is :
|
||||
|
||||
- :code:`person` : the current person which is rendered. Instance of :class:`Chill\PersonBundle\Entity\Person`
|
||||
- `person` : the current person which is rendered. Instance of `Chill\PersonBundle\Entity\Person`
|
||||
|
||||
Widgets
|
||||
*******
|
||||
###### Widgets
|
||||
|
||||
Add a list of person on homepage
|
||||
================================
|
||||
## Add a list of person on homepage
|
||||
|
||||
The bundle provide a way to add a list of accompanyied person on the homepage:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
```yaml
|
||||
chill_main:
|
||||
widgets:
|
||||
homepage:
|
||||
-
|
||||
homepage:
|
||||
-
|
||||
order: 10
|
||||
widget_alias: person_list
|
||||
person_list:
|
||||
@@ -180,15 +146,11 @@ The bundle provide a way to add a list of accompanyied person on the homepage:
|
||||
# when the view is overriden, you can add some custom fields
|
||||
# to the view
|
||||
custom_fields: [school-2fb5440e-192c-11e6-b2fd-74d02b0c9b55]
|
||||
|
||||
Commands
|
||||
********
|
||||
```
|
||||
|
||||
###### Commands
|
||||
|
||||
:code:`chill:person:move`
|
||||
=========================
|
||||
|
||||
.. code-block:: txt
|
||||
## `chill:person:move`
|
||||
|
||||
Usage:
|
||||
chill:person:move [options]
|
||||
@@ -213,21 +175,17 @@ Commands
|
||||
|
||||
Move all the entities associated to a person onto another one, and remove the old person.
|
||||
|
||||
.. warning::
|
||||
|
||||
Some entities are ignored and will be deleted:
|
||||
Some entities are ignored and will be deleted:
|
||||
|
||||
- the accompanying periods ;
|
||||
- the data attached to a person entity: name, address, date of birth, etc. Thos should be merge before the move.
|
||||
|
||||
It is advised to run first the command with the :code:`dump-sql` option and, then, use the :code:`force` option.
|
||||
It is advised to run first the command with the `dump-sql` option and, then, use the `force` option.
|
||||
|
||||
The moving and suppression is executed inside a transaction, ensuring no data loss if the migration fails.
|
||||
|
||||
.. note::
|
||||
Using bash and awk, it is easy to use a TSV file (values separated by a tab, not a comma) to create move commands. Assuming our file is named `twins.tsv` and contains two columns: the first one with `from` ids, and the second one with `to` ids:
|
||||
|
||||
Using bash and awk, it is easy to use a TSV file (values separated by a tab, not a comma) to create move commands. Assuming our file is named :code:`twins.tsv` and contains two columns: the first one with :code:`from` ids, and the second one with :code:`to` ids:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
awk '{ print "php app/console chill:person:move --dump-sql --from " $1 " --to " $2;}' twins.tsv
|
||||
```bash
|
||||
awk '{ print "php app/console chill:person:move --dump-sql --from " $1 " --to " $2;}' twins.tsv
|
||||
```
|
||||
23
docs/source/bundles/report.md
Normal file
23
docs/source/bundles/report.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Report bundle
|
||||
|
||||
This bundle provides the ability to record report about people. We use custom fields to let user add fields to reports.
|
||||
|
||||
The documentation about report is not written
|
||||
|
||||
## Concepts
|
||||
|
||||
## Search
|
||||
|
||||
### Domain
|
||||
|
||||
* `@report` is the domain search for reports.
|
||||
|
||||
### Arguments
|
||||
|
||||
* `date` : The date of the report
|
||||
|
||||
### Default
|
||||
|
||||
The report's date is the default value.
|
||||
|
||||
An error is thrown if an argument `date` and a default is used.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user