Compare commits

...

572 Commits

Author SHA1 Message Date
34801dcd5f master merged into branch 2022-07-18 15:04:31 +02:00
cc2bee8188 php cs style fixes, stan ok! 2022-07-18 14:56:44 +02:00
99154eaa99 changelog updated 2022-07-18 14:42:41 +02:00
b28677fac9 delete quitter et repositionner buttons from enfant hors menage 2022-07-18 14:39:24 +02:00
fb0135a0af update changelog 2022-07-18 12:01:07 +02:00
88961e3e7e allow the deletion of a relationship 2022-07-18 12:00:09 +02:00
85796c2271 CS 2022-07-12 18:16:04 +02:00
83ee3c7cfd fixed: add required type-hinting to AccompanyingPeriodComment, necessary
for docgen rendering
2022-07-12 18:15:16 +02:00
8809abedf6 fixed: rendering of course in list of courses by household 2022-07-12 18:14:25 +02:00
5896a77ae9 Fixed: use CenterResolver where cases when center is resolved differently 2022-07-12 11:10:18 +02:00
11d1b26efc fixed: unable to create a course (due to method change in activity entity) 2022-07-12 10:44:40 +02:00
5f6c11bde9 Feature: show comment in #docgen generation for accompanying periods 2022-07-11 19:56:59 +02:00
b3da9611ce Fixed: do not show postal code created by users in the list of postal codes 2022-07-11 19:37:32 +02:00
ba8a80a202 Fixed: test for userjob associated to course in Regulation list 2022-07-11 19:32:19 +02:00
6998043159 Fixed: do not allow to create activities when no rights to do it
The ACTIVITY_FULL role does not give anymore the roles
CHILL_ACTIVITY_CREATE_PERSON and CHILL_ACTIVITY_CREATE_ACCOMPANYING_COURSE.

Tags: #BC
2022-07-11 19:31:24 +02:00
ce17c15d41 fixed: ACL in activity creations and edition 2022-07-11 18:24:48 +02:00
93560a62ef Feature: an activity has the same scope as an accompanying period, if it exists 2022-07-11 17:36:59 +02:00
3785e5096e Merge branch 'master' into fix_activity_rights 2022-07-11 17:17:35 +02:00
3748eb99c6 Fixed: add an exclude constraint to ensure on db side that there is only one step waiting for a transition 2022-07-11 17:10:40 +02:00
c69af351cc fixed: do not show disabled jobs in list of jobs from the api 2022-07-11 16:20:48 +02:00
692c2bdac0 fixed: do not show disabled users in list of users from the api 2022-07-11 16:11:45 +02:00
6bcc28b4bb feature: hide course when the period is not active for the user, in search results and list of periods for a person 2022-07-11 15:57:38 +02:00
a79a2b6ee9 fixed: warning message "usagers du parcours" does show only for current
members for a course
2022-07-11 15:26:04 +02:00
09b2c9a14e fixed: do not show same person twice if persons are members simultaneously 2022-07-11 15:11:35 +02:00
4ef48216ed fixed: do not allow to create a course or see a houshold from the search result, if the user does not have any rights to do it 2022-07-11 13:54:12 +02:00
16fed67dd0 fixed: do not allow to edit a course through the "warning" button on the course's index page 2022-07-11 13:45:52 +02:00
87a9d48bdf feature: allow to not check mainPerson, person1 or person2 when generating a document 2022-07-11 13:39:07 +02:00
f3ca01fd88 cs: fix 2022-07-11 13:34:10 +02:00
5962d3f233 fixed: query for index in PersonDocumentACLAwareRepository 2022-07-11 12:57:21 +02:00
ab08dab88a fixed: voter and permissions in accompanying course document 2022-07-11 12:57:08 +02:00
3bb8b713d1 fixed: migration of databse with address on same day fails 2022-07-11 03:32:43 +02:00
94c258e914 fixed: narrow search on postal code with an 'AND' clause instead of 'OR' clause 2022-07-10 22:00:04 +02:00
1d8f25e2c8 use the date parameter in deprecated method getLastAddress 2022-07-08 15:04:06 +02:00
b4b67c6f0d Merge branch 'event_bundle_sf4' into 'master'
Event bundle sf4

See merge request Chill-Projet/chill-bundles!439
2022-07-08 10:21:31 +00:00
nobohan
9978e76a87 fix activity rights (WIP) 2022-07-07 15:25:17 +02:00
nobohan
36e35f2e8f [event] refactor admin for event bundle 2022-07-06 13:36:20 +02:00
nobohan
389f014d36 [event] fix deprecation (typing) 2022-07-05 10:18:07 +02:00
135b385c11 fix rust indent 2022-07-04 17:29:45 +02:00
nobohan
3cf8609e8f [event] fix deprecation (type missing) 2022-07-04 17:20:03 +02:00
c82e128c5c Merge branch 'master' of gitlab.com:Chill-Projet/chill-bundles 2022-07-04 16:32:20 +02:00
3ddab4f6e2 documente un souci avec docker lors de l'installation de chill 2022-07-04 16:32:12 +02:00
nobohan
31e1bfdf80 export: cast role as string in PickCenterType 2022-07-04 16:19:03 +02:00
nobohan
c76f2a81c9 [main] cast uniqid arg to string in ExportController 2022-06-30 07:37:27 +02:00
nobohan
f48e197e0b [main] fix deprecations for Export/PickCenterType 2022-06-30 07:29:33 +02:00
nobohan
f70e3b7997 quick fix: use Scope class instead of classname 2022-06-29 15:05:59 +02:00
66baf0391c Revert "only prefill agents traitants of action if parcours has a referrer, otherwise null"
This reverts commit 0943366d39.
2022-06-28 00:01:31 +02:00
4f81bffa67 add a test for relocking an existing lock 2022-06-27 23:57:42 +02:00
5432ce2b0f some fixes with wopi 2022-06-27 23:51:07 +02:00
03bc94178f re-implements document lock manager for wopi 2022-06-27 22:44:10 +02:00
bf536aab38 Merge branch 'translations_dutch' into 'master'
Dutch translations

See merge request Chill-Projet/chill-bundles!403
2022-06-24 15:59:10 +00:00
df593c7c7f Dutch translations 2022-06-24 15:59:10 +00:00
nobohan
07f4aaa590 quick fix: address: only add coordinates to selected postcode if coordinates exist 2022-06-23 15:46:17 +02:00
10095343ec handle lastUpdateTime for Wopi implementation
* get the last updated time from the stored object's storage
* improve perf on loading content from stored object's storage: keep the
response in cache
2022-06-20 21:22:02 +02:00
1742dd4951 add return path after changing location, and select2 on picking user location 2022-06-17 13:34:05 +02:00
832da83b27 fix tests for person controller update 2022-06-16 21:35:05 +02:00
0cfad13720 fix normalization for null accompanying period docgen 2022-06-16 21:30:46 +02:00
dfb583fa8b fix cs 2022-06-16 15:37:59 +02:00
da9eba2618 add regulation list and basic regulation list query 2022-06-16 15:37:51 +02:00
8982697a73 add missing translation message 2022-06-15 17:46:28 +02:00
1bd00c3f4c fix editing thirdparty without date 2022-06-15 17:46:28 +02:00
7ac54a6c9f Merge branch 'master' of gitlab.com:Chill-Projet/chill-bundles 2022-06-15 16:06:15 +02:00
ccaf430b37 remove border from address 2022-06-15 16:06:06 +02:00
72ce5c716d remove border from address 2022-06-15 16:02:37 +02:00
86afe2f702 fix condition 2022-06-15 15:58:53 +02:00
f297548a3a adjust styling of address + button 2022-06-15 15:46:24 +02:00
d20d38e5f4 change icon house to map marker 2022-06-15 12:35:20 +02:00
3735f24e10 Merge branch 'master' of gitlab.com:Chill-Projet/chill-bundles 2022-06-15 12:26:22 +02:00
4b5cdd471b fix showPane component for editing address 2022-06-15 11:55:49 +02:00
f339cf56d6 notify the referrer from an activity page or list 2022-06-14 21:24:50 +02:00
4592be3a8d improve syntax for the js fix 2022-06-14 21:24:50 +02:00
4e1d7278c6 change translation in twig template for creation of household in user create form 2022-06-14 17:33:12 +02:00
a26346859c change translation to add household for new user 2022-06-14 17:21:57 +02:00
a48b990c73 condition correction to fix display of addAddress btn in parcours and household tunnel 2022-06-14 17:15:33 +02:00
0943366d39 only prefill agents traitants of action if parcours has a referrer, otherwise null 2022-06-13 17:59:29 +02:00
4719a74307 constraint added to workflow transtion - cannot be null 2022-06-13 17:40:01 +02:00
72167b9e77 fix merge conflict 2022-06-13 16:38:37 +02:00
c14ae98130 fix merge conflict 2022-06-13 16:36:09 +02:00
83b928b0b0 fix merge conflict 2022-06-13 16:35:04 +02:00
f0187536c1 visual changes when option 'create household' is checked in user create form 2022-06-13 16:33:56 +02:00
fec27babbe visual changes when option 'create household' is checked in user create form 2022-06-13 15:35:35 +02:00
ceb0f741ef order of birthdate fields changed in advanced search 2022-06-13 15:05:18 +02:00
149d4c3846 changelog updated 2022-06-13 09:46:45 +02:00
9a29532362 fix bux to quickly add names that exist of multiple parts to the namefield of a person or thirdparty 2022-06-09 18:31:38 +02:00
d9dfe75378 minor layout improvement show parcours btn in task 2022-06-01 15:43:01 +02:00
8d70562132 null error in task widget on homepage fixed 2022-06-01 11:37:29 +02:00
83de518b45 update changelog 2022-06-01 11:08:20 +02:00
21bc472886 Merge branch 'master' of gitlab.com:chill-projet/chill-bundles 2022-06-01 11:05:17 +02:00
75490306a2 add pagination on workflow list page 2022-06-01 11:04:23 +02:00
f92cef02cf fix creating a new AccompanyingPeriodWorkEvaluationDocument when replacing the document (the workflow was lost) 2022-05-30 22:43:50 +02:00
a4e3ffbe27 fix cs 2022-05-30 22:41:47 +02:00
0849b2d5f4 docgen: fix title of origin 2022-05-30 21:16:40 +02:00
679d19e2a1 allow null values for private comment 2022-05-30 10:01:27 +02:00
7fb0e44307 fix null value for calendar in private comments 2022-05-28 01:45:11 +02:00
1496ae34f8 preload course json for a faster display 2022-05-28 00:07:11 +02:00
b9c1dbd8c1 require weblink 2022-05-27 23:27:22 +02:00
bc288a2161 feature: add a link to create a notification to the referrer 2022-05-27 23:24:54 +02:00
c41ee1d9de add pagination on notification list 2022-05-27 22:47:32 +02:00
3ceda28994 Merge branch 'issue604_activity_list_documents' into 'master'
Issue604 activity list documents

See merge request Chill-Projet/chill-bundles!436
2022-05-27 20:35:03 +00:00
5d13a587df fix cs 2022-05-27 22:34:13 +02:00
d49859e474 change order for title in stored object 2022-05-27 22:32:06 +02:00
c9ea9112f1 do not add private comment into generated documents 2022-05-27 22:24:25 +02:00
3274ecfaec Merge remote-tracking branch 'origin/master' into issue604_activity_list_documents 2022-05-27 22:03:41 +02:00
dba4cfbb2d Merge branch 'issue603_add_closing_motive_course' into 'master'
person: add closing motive to closed acc course

See merge request Chill-Projet/chill-bundles!435
2022-05-27 20:00:58 +00:00
e6da1be5f5 Merge remote-tracking branch 'origin/master' into issue603_add_closing_motive_course 2022-05-27 21:57:19 +02:00
cb1108a25e Merge branch 'issue586_filiations' into 'master'
household filiations issues

See merge request Chill-Projet/chill-bundles!433
2022-05-27 19:51:20 +00:00
3efb4a4a5e Merge remote-tracking branch 'origin/master' into issue586_filiations 2022-05-27 21:49:21 +02:00
9511d6eaee Merge branch 'issue601_admin_social_work_social_action' into 'master'
admin: repair social action edit

See merge request Chill-Projet/chill-bundles!434
2022-05-27 14:42:03 +00:00
d4aba04a52 do not show action when editing goals 2022-05-27 16:41:38 +02:00
71a92a8b6b Merge remote-tracking branch 'origin/master' into issue601_admin_social_work_social_action 2022-05-27 16:37:03 +02:00
2cabe80bf6 Merge branch 'issue577_user_admin' into 'master'
main admin

See merge request Chill-Projet/chill-bundles!432
2022-05-27 14:35:59 +00:00
9680f7c01e remove deprecated notation for getting entity 2022-05-27 16:34:30 +02:00
3c8b2207c4 add civility in user docgen normalizer 2022-05-27 16:34:14 +02:00
7278a5f3fa fix strict typing and do not show link to edit password in user list 2022-05-27 16:24:55 +02:00
566c1c5380 Merge remote-tracking branch 'origin/master' into issue577_user_admin 2022-05-27 16:05:49 +02:00
af7df7029b Merge branch 'issue578_display_userjob' into 'master'
Issue578 display userjob

See merge request Chill-Projet/chill-bundles!430
2022-05-27 14:04:09 +00:00
4d0717690b Merge remote-tracking branch 'origin/master' into issue578_display_userjob 2022-05-27 16:00:16 +02:00
96a0b76e85 Merge branch 'issue589_private_comments' into 'master'
Issue589 private comments

See merge request Chill-Projet/chill-bundles!418
2022-05-27 13:59:19 +00:00
f3800ff38f fix issue with null comment and set correct variable name in signature 2022-05-27 15:58:51 +02:00
5e5a855578 fix cs 2022-05-27 15:48:50 +02:00
54a3e2b2ef Merge remote-tracking branch 'origin/master' into issue589_private_comments 2022-05-27 15:47:25 +02:00
014c460eef improvements on private comments 2022-05-27 15:40:08 +02:00
01f1605cb8 change indent of js files 2022-05-27 14:30:05 +02:00
nobohan
0a4ef3ad22 php code style + upd CHANGELOG 2022-05-27 09:39:36 +02:00
nobohan
dbdf435721 docstore: safer display of form.title 2022-05-27 09:39:13 +02:00
nobohan
cdbb70b9c5 activity: add title to generated document 2022-05-27 09:32:51 +02:00
nobohan
60c163ae9d storedObject: add title in form twig and in activity show 2022-05-25 17:30:26 +02:00
nobohan
e8cf7ae8e1 stored object: add has_title option to form type of StoredObject 2022-05-25 17:14:21 +02:00
nobohan
dea554ced4 storedObject: add title field on StoredObject entity 2022-05-25 16:32:52 +02:00
nobohan
5948ac5b2a [main] add a 'read more...' on comment embeddable when overflown 2022-05-25 14:18:38 +02:00
nobohan
af898cbd12 person: add closing motive to closed acc course 2022-05-25 13:27:29 +02:00
nobohan
8863157fc9 upd CHANGELOG 2022-05-25 11:47:02 +02:00
nobohan
2ac78a12db admin: fix adding of evaluation to social action 2022-05-25 11:46:03 +02:00
nobohan
bc410b02e7 admin: do not use disabled for form widget with collections, see https://github.com/symfony/symfony/issues/18998 2022-05-25 11:45:25 +02:00
nobohan
5ebaeeb4ba php cs fix 2022-05-25 10:38:09 +02:00
nobohan
4402d52de7 upd CHANGELOG 2022-05-25 10:35:15 +02:00
nobohan
d6f1aa53dc [admin]: add select2 to Goal form type entity fields 2022-05-25 10:34:24 +02:00
nobohan
da2c88c026 [admin] show/hide the user permissions group depending on config 2022-05-25 10:12:07 +02:00
nobohan
a4210dd2c7 [main] allow hide permissions group list menu 2022-05-18 09:30:47 +02:00
nobohan
d8db8c0f8e upd CHANGELOG 2022-05-17 17:46:01 +02:00
nobohan
b13ac3a919 household filiations: fetch person info when unfolding person node 2022-05-17 17:24:17 +02:00
354c37ade2 fix issue when loading category 2022-05-16 15:33:02 +02:00
nobohan
cecfa1a18a main: allow creation of user without password 2022-05-16 14:07:34 +02:00
nobohan
f77031630f [main] allow hide change user password menu 2022-05-16 13:52:55 +02:00
nobohan
8eef073988 [main] filter user jobs by active jobs 2022-05-16 11:49:36 +02:00
nobohan
380c55698c main: add civility to User 2022-05-16 11:28:37 +02:00
9dd463882c fix dfault in db for user::attributes 2022-05-13 17:23:10 +02:00
6edc9b25db Merge branch 'issue596_admin_user' into 'master'
Admin interface

See merge request Chill-Projet/chill-bundles!429
2022-05-13 14:13:09 +00:00
bb18082c3a fix type hinting 2022-05-13 16:07:33 +02:00
89a700ff61 fix cs 2022-05-13 16:05:38 +02:00
2a5bb28210 fix typo in tests 2022-05-13 16:05:08 +02:00
aec01df202 admin users: filter by name or email 2022-05-13 16:00:34 +02:00
a9df9f4880 add ordering on some social work + minor improves 2022-05-13 15:36:20 +02:00
b26fcc4566 Merge remote-tracking branch 'origin/master' into issue596_admin_user 2022-05-13 15:08:49 +02:00
9970212075 Merge branch 'issue576_address_show_more_if_no_address' into 'master'
addAddress: can add extra info even if noAddress

See merge request Chill-Projet/chill-bundles!423
2022-05-13 13:06:51 +00:00
fd935795e5 Merge remote-tracking branch 'origin/master' into issue576_address_show_more_if_no_address 2022-05-13 15:06:11 +02:00
52dd08e088 add default attributes for user 2022-05-13 14:51:02 +02:00
3fb3df9db1 remove not necessary debug log 2022-05-11 19:40:28 +02:00
b98f4e2d76 fix construction of BadRequestHttpException 2022-05-11 19:39:36 +02:00
58fce9999d OnTheFly: do not show 'create adress and household' on edit action 2022-05-11 19:29:12 +02:00
49b1ca13f2 OnTheFly: fix error when updating person without changing civility 2022-05-11 19:25:07 +02:00
nobohan
6481f6a4c1 quick fix: safer way to add civility to body before PATCHing (AddPerson) 2022-05-11 17:04:17 +02:00
nobohan
05088b5964 upd CHANGELOG 2022-05-11 12:14:46 +02:00
nobohan
f44b9ca05b admin: fix error when creating document category 2022-05-11 12:03:38 +02:00
nobohan
fa458c54ec admin: adapt social work form type and templates 2022-05-11 11:50:17 +02:00
nobohan
629dbb9137 admin: missing translations and css class 2022-05-11 11:30:08 +02:00
nobohan
97fd9c557c admin: tentative to add filterOrder (cleaning) 2022-05-11 10:06:44 +02:00
nobohan
f449dcbda1 admin: refine social work admin form 2022-05-10 18:06:29 +02:00
nobohan
b7ed658f96 admin: fix new document category 2022-05-10 17:01:09 +02:00
nobohan
f4652adbc2 admin: add fa icons to menu section title 2022-05-10 15:21:29 +02:00
nobohan
fde1d563c2 admin custom fields integration 2022-05-10 14:36:10 +02:00
nobohan
cb1bbe940f admin: docgen admin 2022-05-10 13:55:33 +02:00
nobohan
be27df1fd5 admin: remove obsolet header => true tag + php code fix 2022-05-10 11:46:17 +02:00
nobohan
0e8b73638f admin for aside activity 2022-05-10 10:40:06 +02:00
nobohan
c9b3bab508 admin sections for main bundle 2022-05-10 10:14:30 +02:00
nobohan
0f735c5749 admin sections for person bundle 2022-05-10 08:44:29 +02:00
nobohan
1a764025e1 admin: admin section for thirdparty 2022-05-09 17:14:25 +02:00
nobohan
1c04a873c0 admin: admin section for docstore 2022-05-09 17:07:36 +02:00
nobohan
3f399296c8 admin: admin section for calendar 2022-05-09 16:53:22 +02:00
nobohan
fd67f327ae admin menu: simplify header style 2022-05-09 16:30:20 +02:00
nobohan
0f319a1003 admin: reorganising activity menu and submenus 2022-05-09 16:22:17 +02:00
nobohan
63bfd25acb admin: homepage + style menu 2022-05-09 15:14:37 +02:00
6453de32ec fix typo 2022-05-06 17:29:03 +02:00
3a115744fe add index to search postal code by reference 2022-05-06 17:14:21 +02:00
nobohan
24794c1285 admin: document category menu 2022-05-06 16:28:37 +02:00
nobohan
7cefce8305 admin: add ThirdParty admin 2022-05-06 15:51:29 +02:00
66c7504b22 Merge branch 'issue520_reference_address_update' into 'master'
Add new fields to AddressReference for update procedure

See merge request Chill-Projet/chill-bundles!395
2022-05-06 13:32:29 +00:00
nobohan
a4f2d47c46 admin: add CancelReason admin 2022-05-06 15:25:49 +02:00
31d076d49b fix search on address: do not take deleted one into account 2022-05-06 15:22:10 +02:00
189974d5e4 Merge remote-tracking branch 'origin/master' into issue520_reference_address_update 2022-05-06 14:47:15 +02:00
f55c06d5c5 Merge branch 'issue557_address_civility_in_form_person' into 'master'
Issue557 address and civility in form person

See merge request Chill-Projet/chill-bundles!410
2022-05-06 11:01:20 +00:00
6c246a0d38 allow to edit civility in onTheFly 2022-05-06 12:54:01 +02:00
6abbf9bf21 improves create a person with address
* validation: must have an address when 'create a form' is checked;
* minor improvements
2022-05-06 11:47:33 +02:00
64432bb08a Merge remote-tracking branch 'origin/master' into issue557_address_civility_in_form_person 2022-05-06 10:21:13 +02:00
nobohan
7907e4a050 admin: add household position and relation admin 2022-05-05 18:31:08 +02:00
nobohan
9ce7f10415 admin: add personresourcekind in the admin 2022-05-05 15:20:47 +02:00
nobohan
2fbdd169df admin: add AccompanyingPeriod Origin and closingMotive 2022-05-05 14:37:56 +02:00
nobohan
5daf09334b admin: admin section for social work related entities: SocialIssue, SocialAction, Goal, Result, Evaluation 2022-05-05 12:07:45 +02:00
nobohan
10aa727fb3 admin: reorganise person admin menu + fix marital status admin 2022-05-05 10:39:20 +02:00
nobohan
475e8adedc admin: merge admin user job 2022-05-05 10:20:04 +02:00
nobohan
54ced6ec3d admin: merge admin activity 2022-05-05 10:18:11 +02:00
nobohan
47f47ac017 admin: delete obsolet country controller 2022-05-05 10:11:12 +02:00
nobohan
ba495def7e admin: refactor templates and delete some show pages for Center, Scope, User, UserJob, PermissionsGroup 2022-05-05 09:47:17 +02:00
nobohan
b09d92eae8 admin: reorganise files according to conventions 2022-05-05 08:03:20 +02:00
nobohan
ab90f72c7e update conventions 2022-05-05 07:13:53 +02:00
nobohan
16d74eaa0c admin: reorganize twig templates and admin menu 2022-05-04 17:34:44 +02:00
10d0078716 add changelog 2022-05-04 15:16:13 +02:00
6567143ff5 update job if users assigns him/herself as referrer and job is not null 2022-05-04 15:14:17 +02:00
nobohan
e50e68a52b admin: add missing data_class option to form types 2022-05-04 14:09:10 +02:00
e19cac168b php csfixes 2022-05-04 13:00:46 +02:00
416a88b93d fix form and take null cases into account 2022-05-04 12:30:44 +02:00
784a725ce3 fix translation 2022-05-04 09:34:16 +02:00
2ef3a3362a merge master into branch 2022-05-04 09:31:22 +02:00
nobohan
3f256ad907 admin: update marital status 2022-05-03 19:03:58 +02:00
nobohan
76af733bc3 admin: add civility 2022-05-03 18:33:56 +02:00
nobohan
9808675455 upd CHANGELOG 2022-05-03 09:28:33 +02:00
nobohan
04f27cc555 admin: add menu for languages and countries section 2022-05-03 09:27:04 +02:00
a3c3834081 Merge branch 'issue534_bulk_reassign' into 'master'
Bulk reassign parcours

See merge request Chill-Projet/chill-bundles!398
2022-05-02 14:53:32 +00:00
nobohan
4c99abd6d3 Admin: Add country and languages to the admin 2022-05-02 16:51:41 +02:00
0e0e0799d1 translation added 2022-05-02 16:51:14 +02:00
02a8f5a863 Fix display privateComment in activity 2022-05-02 16:50:24 +02:00
ae624d25fc fix display of privateComment for action 2022-05-02 16:49:32 +02:00
14341b9768 fix cs 2022-05-02 16:44:26 +02:00
ee14cd268b add role to get acl on confidential periods 2022-05-02 16:44:02 +02:00
3122098447 remove privateCommentRender 2022-05-02 16:29:47 +02:00
065b10b877 fix somes validation and acompanying period voter 2022-05-02 16:22:25 +02:00
8113fddcb2 use pick dynamic user type for reassigning + layout stuffs 2022-05-02 15:37:23 +02:00
1b6e84262b add translation 2022-05-02 15:27:44 +02:00
acee0ade24 add merge method 2022-05-02 14:01:41 +02:00
c629dd79cb fix serialization - deserialization 2022-05-02 14:01:07 +02:00
0ec859e345 remove isset test on variable which always exists 2022-05-02 12:30:16 +02:00
eb2bc306f7 prevent duplicates in relationships data fixtures 2022-05-02 12:22:34 +02:00
nobohan
64d459466f activity admin: translations + remove label field for comment on admin activity type 2022-05-02 12:16:46 +02:00
372ec7c4b2 Merge remote-tracking branch 'origin/master' into issue534_bulk_reassign 2022-05-02 11:29:55 +02:00
f917be0958 type hinting param for psalm 2022-04-30 02:12:29 +02:00
6fd0ff7960 remove unusedfile 2022-04-30 02:12:15 +02:00
45d2e0c9cd Merge branch 'undeprecate/repository-by-fqdn-only' into 'master'
replace some entity shortcut by fqdn

See merge request Chill-Projet/chill-bundles!426
2022-04-30 00:07:49 +00:00
da3236425e rename namespace for family members bundle 2022-04-30 01:58:38 +02:00
79ac908631 remove a new set of unused files 2022-04-30 01:50:29 +02:00
8ba7a39335 fix conflicting doc between class Resource and resource 2022-04-30 01:46:14 +02:00
304c734f9b delete unused test fixtures app 2022-04-30 01:44:53 +02:00
dae383dbd9 fix some psalm errors 2022-04-30 01:34:23 +02:00
3f63bc803d desactivate test whilpage is not working 2022-04-30 01:03:35 +02:00
472bc3f35d add missing keys to blank docgen person normalization 2022-04-30 00:55:40 +02:00
27e74014ce replace fqdn in docstore bundle 2022-04-30 00:48:38 +02:00
f26d50a3a8 replace fqdn in customfields bundle 2022-04-30 00:46:48 +02:00
6da19b0135 replace fqdn in event bundle 2022-04-30 00:42:03 +02:00
d0cc0e775f replace fqdn in calendar bundle 2022-04-30 00:39:17 +02:00
4b9b27a8ef replace docrine shortcuts in activity bundle by fqdn 2022-04-30 00:37:26 +02:00
864e1eeabb replace more doctrine shortcuts by fqdn 2022-04-30 00:35:11 +02:00
a0392b9216 replace some entity shortcut by fqdn
* ChillPerson:Person
* ChillMain:Center
* ChillActivity:Activity
2022-04-30 00:20:18 +02:00
8ba51bafd0 fix loading report: use FQDN instead of entity shortcut 2022-04-30 00:06:58 +02:00
afdc32d416 fix loading report: use FQDN instead of entity shortcut 2022-04-30 00:00:52 +02:00
nobohan
de362dcad7 upd CHANGELOG 2022-04-29 22:04:36 +02:00
nobohan
2263e7be73 admin: order user job by id 2022-04-29 22:02:19 +02:00
nobohan
8d62ce46c6 admin: order user job type 2022-04-29 21:44:02 +02:00
nobohan
fabf23f1f0 admin: add custom template for userjob edit 2022-04-29 21:21:09 +02:00
nobohan
192ab02be2 upd CHANGELOG 2022-04-29 20:02:26 +02:00
nobohan
62d59e6037 address: show address extra info even if noAddress 2022-04-29 20:00:11 +02:00
nobohan
83a888a32d addAddress: can add extra info even if noAddress 2022-04-29 19:44:06 +02:00
e1fe2a396f Merge branch 'issue582_docgen_person' into 'master'
[person] more fields to PersonDocGenNormalizer

See merge request Chill-Projet/chill-bundles!422
2022-04-29 15:12:50 +00:00
99413cf328 fix cs 2022-04-29 17:04:55 +02:00
fedcf7272c Merge remote-tracking branch 'origin/master' into issue582_docgen_person 2022-04-29 16:59:19 +02:00
df4abd6661 Merge branch 'issue569_display_time' into 'master'
Display time for evaluation documents

See merge request Chill-Projet/chill-bundles!421
2022-04-29 14:56:37 +00:00
ad96319d97 use traits to handle createdAt/updatedAt and by on AccompanyingCourseEvaluationDocument 2022-04-29 16:53:17 +02:00
fcbf62f613 fix cs 2022-04-29 16:41:13 +02:00
cc139782b1 Merge remote-tracking branch 'origin/master' into issue569_display_time 2022-04-29 16:28:29 +02:00
770010ceb8 Add command to remove old draft accompanying periods 2022-04-29 15:51:54 +02:00
1e06926f6d Load relationships without gender in french fixtures 2022-04-29 14:11:32 +02:00
ed35822eb5 changelog: release 2022-04-29 14:10:41 +02:00
nobohan
671950708c [person] prevent circular references in PersonDocGenNormalizer 2022-04-29 10:54:56 +02:00
7a96671f35 Merge branch 'issue593_bug_addAddress' into 'master'
address: fix bug when editing address: update localisation and...

See merge request Chill-Projet/chill-bundles!419
2022-04-28 16:05:01 +00:00
6daee268bf Merge remote-tracking branch 'origin/master' into issue593_bug_addAddress 2022-04-28 17:46:42 +02:00
nobohan
4675525225 [person] add maritalStatusComment to PersonDocGenNormalizer 2022-04-28 17:34:53 +02:00
86a7bb5880 Merge branch 'issue566_commentaire_fonctionnalites' into 'master'
Issue566 commentaire fonctionnalites

See merge request Chill-Projet/chill-bundles!416
2022-04-28 15:33:06 +00:00
6eaa553d77 Merge remote-tracking branch 'origin/master' into issue566_commentaire_fonctionnalites 2022-04-28 17:13:54 +02:00
daa09e2df3 update changelog 2022-04-27 17:15:04 +02:00
09aa7ff631 change date to datetime for evaluation document 2022-04-27 17:13:38 +02:00
a28ac8f28c Merge branch 'issue561_avoid_search_address_with_undefined_city' into 'master'
avoid address reference search on undefined post code

See merge request Chill-Projet/chill-bundles!407
2022-04-27 13:30:34 +00:00
ea6a9b3e2d Merge remote-tracking branch 'origin/master' into issue561_avoid_search_address_with_undefined_city 2022-04-27 15:30:12 +02:00
a8527b6cbb Merge branch 'issue560_relationship_validation' into 'master'
person: add validation to relationship to avoid duplicate

See merge request Chill-Projet/chill-bundles!415
2022-04-27 13:28:21 +00:00
ad9ac8ec0a Merge remote-tracking branch 'origin/master' into issue560_relationship_validation 2022-04-27 15:00:02 +02:00
44f9601759 Merge branch 'fixes/fixes-phpstan-2022-04-27' into 'master'
Fixes/fixes phpstan 2022 04 27

See merge request Chill-Projet/chill-bundles!420
2022-04-27 12:53:31 +00:00
9244040d7b csfixes 2022-04-27 14:51:37 +02:00
467ae5f474 master merged into branch 2022-04-27 14:50:37 +02:00
aa356185a5 Merge remote-tracking branch 'origin/master' into issue561_avoid_search_address_with_undefined_city 2022-04-27 14:50:24 +02:00
9789c79402 use strict type comparison and replace use of BadRequestException by BadRequestHttpException 2022-04-27 14:46:43 +02:00
fa7850196f force using strict type on comparison 2022-04-27 14:46:08 +02:00
4794039250 declare properties used for cache 2022-04-27 14:45:42 +02:00
916e3ab02d ignore phpcs cache for phpstan 2022-04-27 14:31:59 +02:00
48daed26f9 replace BadRequestException by BadRequestHttpException 2022-04-27 14:31:39 +02:00
c56a125a78 privateComment for action (not working yet) 2022-04-27 11:52:01 +02:00
4dc56db018 show of activity adjusted for private comment 2022-04-27 11:51:32 +02:00
e878960da9 Private comment adjusted for rendez-vous 2022-04-27 11:51:18 +02:00
b2003c74a6 renderbox for private comments (not working yet) 2022-04-27 11:50:53 +02:00
27ce146aa0 Serializer made for privateComment 2022-04-27 11:50:32 +02:00
3ed2b36057 privateCommentType adjusted 2022-04-27 11:50:14 +02:00
e8dcb45abb remove dump 2022-04-27 11:49:31 +02:00
nobohan
6662e0fb5f upd CHANGELOG 2022-04-27 10:40:11 +02:00
nobohan
76549581e6 address: fix bug when editing address: update localisation and addressreferenceId + better update of the map in edition 2022-04-27 10:38:25 +02:00
f14c915502 Merge branch 'issue565_document_storedObject' into 'master'
storedObject: add validation in properties where it is used

See merge request Chill-Projet/chill-bundles!417
2022-04-27 07:01:06 +00:00
2e44926088 fix cs 2022-04-27 09:00:47 +02:00
fcec3af5a8 fix type for condition in ParticipationController 2022-04-27 08:45:22 +02:00
452c4b85c6 Merge remote-tracking branch 'origin/master' into issue565_document_storedObject 2022-04-27 08:43:35 +02:00
d5864027d6 Merge branch 'issue471_activity_socialissue-action' into 'master'
Activity: socialIssue and socialAction

See merge request Chill-Projet/chill-bundles!366
2022-04-26 19:22:54 +00:00
c2061110dd fix cs 2022-04-26 21:16:55 +02:00
b2fb86111d fix social action consistency 2022-04-26 21:12:31 +02:00
db6c4f15f8 Merge remote-tracking branch 'origin/master' into issue471_activity_socialissue-action 2022-04-26 20:29:07 +02:00
12231912d6 remove dead code 2022-04-26 20:27:24 +02:00
7b0c8d21ee sort properties alphabetically 2022-04-26 20:27:08 +02:00
37a198b860 PrivateCommentEmbeddable created and added to entities + datamapper 2022-04-26 20:21:33 +02:00
64b5de2c03 migrations deleted 2022-04-26 20:19:40 +02:00
f713b1ddc8 allow to edit encrypted documents 2022-04-26 17:46:25 +02:00
faf1559770 Merge branch 'master' into feat/add-document-encrypter-service 2022-04-26 14:52:13 +02:00
5a1ce399f6 fix creation of evaluation in js 2022-04-26 14:26:51 +02:00
505384c2a0 fix generation of document 2022-04-26 14:11:59 +02:00
a7654edefa add missing services 2022-04-26 14:11:28 +02:00
81689e3507 fix catching response 400 in relatorio driver 2022-04-26 14:11:04 +02:00
b891ba842d update changelog 2022-04-26 12:03:06 +02:00
3ceae0473d Merge remote-tracking branch 'origin/master' 2022-04-26 11:57:37 +02:00
8ba70b08c4 storedObject: remove traverse=true on assert valid 2022-04-26 09:54:49 +00:00
795a8e9daf Merge remote-tracking branch 'origin/master' 2022-04-26 11:54:01 +02:00
nobohan
3f47503528 storedObject: allow for null data in storedObject 2022-04-26 11:53:17 +02:00
Pol Dellaiera
81edaef062 Fix: Route name change. 2022-04-26 11:50:59 +02:00
Pol Dellaiera
dc48b4b9c7 Fix #581: Collabora / wopi: le bouton "imprimer" ne fonctionne pas. 2022-04-26 11:47:46 +02:00
2684345981 voter updates 2022-04-26 11:34:49 +02:00
51d1e5422b remove unnecessary code 2022-04-26 10:27:45 +02:00
064286aa2f private comment for action. still needs (de)normalization 2022-04-26 09:52:00 +02:00
e72a2004d7 Merge remote-tracking branch 'origin/master' into feat/add-document-encrypter-service 2022-04-26 09:37:30 +02:00
329fb05db0 Merge branch 'issue571_ordering_socialactions' into 'master'
Ordering social actions

See merge request Chill-Projet/chill-bundles!412
2022-04-25 20:14:59 +00:00
75250402c8 fix ordering of social actions 2022-04-25 22:14:36 +02:00
e5209ca6d9 do not make a loop to normalizer for a native php object 2022-04-25 22:14:23 +02:00
4512b94293 Merge remote-tracking branch 'origin/master' into issue571_ordering_socialactions 2022-04-25 21:35:16 +02:00
217f95472b Merge branch 'issue574_accordeon_parcours' into 'master'
Accordeon for closed parcours in person search results

See merge request Chill-Projet/chill-bundles!413
2022-04-25 19:34:49 +00:00
b7abf6b6bf Merge remote-tracking branch 'origin/master' into issue571_ordering_socialactions 2022-04-25 21:30:48 +02:00
c39fa1c49b remove legacy folded/unfolded style requirements for showing label on accordion 2022-04-25 21:27:56 +02:00
81c8d0ec77 move extension of accordion bootstrap to dedicated file 2022-04-25 21:23:41 +02:00
72012a70d9 button "closed" with same layout than in course header 2022-04-25 21:23:12 +02:00
916560c522 list with period: full sentences in translation component 2022-04-25 21:21:38 +02:00
57d6240cd1 Merge remote-tracking branch 'origin/master' into issue574_accordeon_parcours 2022-04-25 20:46:57 +02:00
2d460adc4d Merge branch 'issue568_agents_traitants' into 'master'
Display agents traitants

See merge request Chill-Projet/chill-bundles!411
2022-04-25 17:30:18 +00:00
d155c76013 Merge remote-tracking branch 'origin/master' into issue568_agents_traitants 2022-04-25 19:22:52 +02:00
529a9e5f58 fix notification counter on entity 2022-04-25 16:34:49 +02:00
2b837e0445 Merge branch 'issue545_datepicker' into 'master'
Fix datepicker

See merge request Chill-Projet/chill-bundles!405
2022-04-25 14:19:36 +00:00
4279acc2f8 convert date for new household 2022-04-25 16:11:42 +02:00
8fb3870ca0 remove dead code 2022-04-25 15:59:35 +02:00
171cc79a4a Add private comment to rendez-vous 2022-04-25 15:47:51 +02:00
79fa030323 add private comment input field to edit form 2022-04-25 15:47:13 +02:00
b36fd57e4f Add private comment options to activity type (visibility + label) 2022-04-25 15:46:55 +02:00
ff72b28861 Revert "private comment added to activity"
This reverts commit 1f2638626c.
2022-04-25 14:52:28 +02:00
1f2638626c private comment added to activity 2022-04-25 14:43:44 +02:00
nobohan
5ae6c6397c storedObject: add validation in properties where it is used 2022-04-25 13:52:49 +02:00
nobohan
f8410de569 person: correct relationship no duplicate validator 2022-04-25 11:34:17 +02:00
nobohan
3ad8223949 person: add unique index on table relationship to avoid duplicate fromperson_id/toperson_id pairs - typo cs fixer 2022-04-25 11:24:29 +02:00
nobohan
111906c2b9 person: add unique index on table relationship to avoid duplicate fromperson_id/toperson_id pairs 2022-04-25 11:23:28 +02:00
f5efb07e3c csfixes 2022-04-25 10:32:02 +02:00
79e46c7fe8 changelog updated 2022-04-25 10:30:44 +02:00
09503768f5 unpin comment is possible + delete and edit by all users that can edit period 2022-04-25 10:29:26 +02:00
41ff21ee23 update changelog with last release 2022-04-25 09:38:36 +02:00
30bb2e8393 Merge remote-tracking branch 'origin/master' into issue545_datepicker 2022-04-25 09:37:35 +02:00
ca166655da changelog updated 2022-04-22 18:05:47 +02:00
8f69f852b9 fix merge conflict 2022-04-22 18:04:20 +02:00
6747cad210 add amount of closed periods in accordeon message 2022-04-22 18:02:59 +02:00
0cbcd91c3f closed periods in accordeon + styling 2022-04-22 17:49:57 +02:00
nobohan
63dacb9ebb upd CHANGELOG 2022-04-22 17:24:29 +02:00
nobohan
5acd49357e person: add validation on relationship between person 2022-04-22 17:22:56 +02:00
d757e07dfc macro added + closed parcours displayed in accordeon 2022-04-22 17:22:46 +02:00
92c04c545f csfixes 2022-04-22 17:15:02 +02:00
f681e50167 role added to voter, but no check yet 2022-04-22 17:14:27 +02:00
9c428f989c final touches to controller 2022-04-22 17:14:11 +02:00
ef84576903 fix merge conflict 2022-04-22 16:51:21 +02:00
12df38d32d infinite loop bug on flush 2022-04-22 16:49:54 +02:00
084d77c8f4 new user is assigned, but crash on flush() 2022-04-22 16:49:54 +02:00
2646fa5b65 redo bulk assign 2022-04-22 16:49:54 +02:00
81bff2bb76 trying to get selected periods to be caught after form submit 2022-04-22 16:49:54 +02:00
291d340aa0 change view btn to edit btn 2022-04-22 16:49:54 +02:00
38a26f0bc1 beginning of ACL added 2022-04-22 16:49:54 +02:00
18025012a8 selected periods are not coming through in POST. Value not valid 2022-04-22 16:49:35 +02:00
805b9dc0df attempts to submit reassign form 2022-04-22 16:49:35 +02:00
9f064784f2 first commit 2022-04-22 16:49:35 +02:00
nobohan
07ea2b771c person: add validation to relationship to avoid duplicate 2022-04-22 16:37:21 +02:00
83dd8f810c Merge branch 'notification/deferring-sending-notification-to-terminate' into 'master'
Notification/deferring sending notification to terminate

See merge request Chill-Projet/chill-bundles!414
2022-04-22 10:48:18 +00:00
bd0b45b4dd fix cs 2022-04-22 12:47:50 +02:00
6dbe8068ae update changelog 2022-04-22 12:31:33 +02:00
19561c63cb do not persist if no notification is scheduled 2022-04-22 12:31:23 +02:00
354f130e9e use NotificationPersister into PersonMoveEventSubscriber 2022-04-22 12:12:50 +02:00
2d9af8f8c0 period: fix method hasPreviousUser and create method isChangedUser, and use it in Notification 2022-04-22 12:12:30 +02:00
f7d9551dc1 fix cs 2022-04-22 11:41:38 +02:00
abc3caee00 AccompanyingPeriod: fix method hasPreviousUser 2022-04-22 11:40:29 +02:00
33f93d484d deferring the sending of notification to kernel.terminate: prepare 2022-04-22 11:34:41 +02:00
8470604b8f macro added + closed parcours displayed in accordeon 2022-04-21 22:06:22 +02:00
b85e6aae3f csfixes 2022-04-21 21:22:18 +02:00
a4baf89a6a social actions ordered in store 2022-04-21 21:05:32 +02:00
0a05dcd753 add ordering to serialization 2022-04-21 20:49:54 +02:00
nobohan
3ed562e5d9 person: create a person with address and attribute the household to the create ousehold button 2022-04-21 18:23:47 +02:00
c6be7955fd remove save button datepicker parcours. set timeout 2022-04-21 13:59:45 +02:00
e246ccbcd9 [Course comment] add validationConstraint NotNull and NotBlank on comment content, to avoid sql error 2022-04-20 18:34:29 +02:00
44b537f05e [Accompanying period work evaluations] list documents associated to a work by creation date, and then by id, from the most recent to older 2022-04-20 18:34:27 +02:00
0fd23c61a1 Wording changed when user is not associated to household 2022-04-20 17:19:20 +02:00
6cad0be181 Ignore thirdparty for socialaction created via activity 2022-04-20 17:08:27 +02:00
9a0eb1c74c Renaming of tabs and removal of social actions tab 2022-04-20 16:33:05 +02:00
a70c561596 Number of parcours of user displayed in blue pill 2022-04-20 16:23:08 +02:00
daa3eabd43 Change wording for save document button 2022-04-20 16:12:58 +02:00
b24de76d77 display agents traitants 2022-04-20 15:16:26 +02:00
92d394b669 changelog updated 2022-04-20 14:22:35 +02:00
c17d20f945 comment out success message parcours start date 2022-04-20 14:18:24 +02:00
be77c3729b take empty date strings into account 2022-04-20 14:09:28 +02:00
ad1e7b576c remove success toast for parcours startdate + take empty string values into account for action dates 2022-04-20 13:58:45 +02:00
bf0578b6d7 [Accompanying period work] list evaluations associated to a work by startDate, and then by id, from the most recent to older 2022-04-20 13:49:47 +02:00
0ce23230da fix evaluation datepickers in edit 2022-04-20 13:32:51 +02:00
8b7404e531 Email on designation: allow raw characters
As the content-type of the email is text/plain, we should not escape
special character.

Add the raw filter on string which will be escaped by twig.
2022-04-20 13:05:11 +02:00
bc550ea42a updating openingdate parcours fixed 2022-04-20 12:14:19 +02:00
65e6471a02 fix datepicker for social action edit form.
still a problem with the display of already set evaluation dates... need to be transformed to correct format to display
2022-04-20 12:14:19 +02:00
de9d2aa885 fix datepicker for householdmember editor 2022-04-20 12:14:19 +02:00
66ab38c60f prefill startdate with now 2022-04-20 12:14:19 +02:00
8882c99f5a fix datepicker for social action 2022-04-20 12:14:19 +02:00
8512a5e1bc person list with period: use sameas twig operator instead of using '==' operator to introduce requestor 2022-04-20 11:24:20 +02:00
7f97215fe9 activity form: keep the same order for attendee field between edit and new form 2022-04-20 10:03:58 +02:00
6427fc64cd invert 'incoming' and 'receiving' 2022-04-20 10:00:48 +02:00
26d5bf03bd add order by on document list 2022-04-20 10:00:48 +02:00
nobohan
f2c60cfd20 php code style fix 2022-04-20 08:52:15 +02:00
nobohan
7a6aa6edcb upd CHANGELOG 2022-04-20 08:51:00 +02:00
nobohan
bad5506b98 person: create a person with address (and household without position (remove required position for household member) 2022-04-19 18:01:25 +02:00
nobohan
c214c2f4a4 household: safe display of household members without positions 2022-04-19 17:09:10 +02:00
Pol Dellaiera
7048f670ed Fix #552: Return AccessDeniedException when trying to access a document and user is not logged in. 2022-04-19 15:45:47 +02:00
c757fa068a Translations added for error message in parcours 2022-04-19 15:21:23 +02:00
ebc4ec0d7c updating openingdate parcours fixed 2022-04-19 15:09:25 +02:00
nobohan
4bc8da9655 person: create a person with address (php form) 2022-04-19 14:56:41 +02:00
69394df89b infinite loop bug on flush 2022-04-19 14:02:47 +02:00
nobohan
84038c0ff2 person: Add checkobox for adding address in AddPerson - css 2022-04-19 13:17:40 +02:00
nobohan
584111b5f7 person: Add checkobox for adding address in AddPerson 2022-04-19 11:39:08 +02:00
nobohan
355c5cf8fd person: add address when creating person in AddPerson: fix POSTing household 2022-04-19 09:54:42 +02:00
nobohan
57ed90a696 person: post an address when creating a person 2022-04-15 13:41:47 +02:00
nobohan
bea019e9bc household: API endpoint for posting a household 2022-04-15 12:23:16 +02:00
nobohan
ae45f5f40b person: add address when creating a person 2022-04-15 11:11:41 +02:00
nobohan
946ae31d11 upd CHANGELOG 2022-04-14 21:47:51 +02:00
nobohan
4009f3ffda php code fix 2022-04-14 21:47:38 +02:00
nobohan
7d3239d6d6 person: fix adding civility to a person with OnTheFly form 2022-04-14 21:37:16 +02:00
nobohan
7a2151f23a AddPerson: add civility when creating a person 2022-04-14 18:04:36 +02:00
nobohan
c1ec2933e5 person: create a new person: add a civility field 2022-04-14 17:08:44 +02:00
617473f6a5 notification - grant access by key - temporarily disable email verification due to character escaping in email 2022-04-14 01:36:01 +02:00
124a6a58fc fix cs 2022-04-14 01:13:16 +02:00
afa38e9dd5 addresses: add constraint in database to avoid error later 2022-04-14 01:11:39 +02:00
a52f29bb78 accompanyingWorkEditor: add label on form document title 2022-04-14 01:11:14 +02:00
b95ff337b6 add more time duration for aside activities 2022-04-14 00:41:15 +02:00
92a169be1e Merge branch 'issue541_change_moving_date' into 'master'
household address: add a form for editing the validFrom date

See merge request Chill-Projet/chill-bundles!402
2022-04-13 22:11:34 +00:00
e6d59bc837 fix cs 2022-04-14 00:11:15 +02:00
31731c6f44 Merge remote-tracking branch 'origin/master' into issue541_change_moving_date 2022-04-14 00:04:30 +02:00
86ec020f80 fixes on address valid from edit for household 2022-04-14 00:02:57 +02:00
07351e2946 Merge branch 'issue543_double_click_household' into 'master'
householdmemberseditor: fix composition type bug

See merge request Chill-Projet/chill-bundles!406
2022-04-13 21:37:41 +00:00
405694a0b4 Merge remote-tracking branch 'origin/master' into issue541_change_moving_date 2022-04-13 23:30:51 +02:00
bad39364c2 Merge remote-tracking branch 'origin/master' into issue543_double_click_household 2022-04-13 23:26:38 +02:00
c0b39e4e7c Merge branch 'notifications/allow-to-send-to-email' into 'master'
Notifications/allow to send to email

See merge request Chill-Projet/chill-bundles!409
2022-04-13 21:25:35 +00:00
f98b35f009 Merge remote-tracking branch 'origin/master' into issue543_double_click_household 2022-04-13 23:20:23 +02:00
8770188d54 update changelog 2022-04-13 23:18:50 +02:00
35c7d55b8c fix cs 2022-04-13 23:17:16 +02:00
2a53fb9341 show email adresses on notification list 2022-04-13 23:16:02 +02:00
e7f0cd50c9 controller to grant access to notification by access key 2022-04-13 23:05:38 +02:00
a41d6cf744 notification: send an email to addressesEmails 2022-04-13 22:50:32 +02:00
24d28b0a52 notification: alter form type to add and remove email addresses 2022-04-13 22:11:01 +02:00
4425f2ad49 fix type for Notification email addresses 2022-04-13 21:43:41 +02:00
a8db07a383 notification / add email: fix entity Notification 2022-04-13 21:33:18 +02:00
ef9fd80ad5 update schema to send to emails 2022-04-13 18:02:11 +02:00
e6169ddffa Merge branch 'docgen/improve-context-courses' into 'master'
docgen: some fixes and improvements

See merge request Chill-Projet/chill-bundles!408
2022-04-13 07:53:43 +00:00
ccf7c885bb fix normalization for phonenumber on person when phonenumber is null 2022-04-13 09:44:21 +02:00
01c571ab06 fix path to table 2022-04-11 21:04:36 +02:00
69b2dce7ee docgen/budget: add comment for each budget line (resource and charge)
The comments are cocatenated by lines of each type, and separated by a
`|`
2022-04-11 18:11:20 +02:00
910245f855 update changelog 2022-04-11 17:45:57 +02:00
7fbb3dfd07 docgen: add more persons choices in person1, person2 and mainPerson
Allow to pick amongst:

* requestor (if person)
* resources of course (if person)
* resources of person (if person)
2022-04-11 17:43:31 +02:00
9765bc5663 fix cs 2022-04-11 17:12:59 +02:00
bb65909bfa add docgen context for a list of activities in a course 2022-04-11 16:52:11 +02:00
03b0a8766e remove dumps 2022-04-08 19:12:11 +02:00
5eea202586 fix adding sibling action 2022-04-08 19:04:13 +02:00
a78c62789c if parent in collection replace with child, problem, sibling isn't added 2022-04-08 18:56:37 +02:00
68671e297c Merge branch 'issue471_activity_socialissue-action' of gitlab.com:Chill-Projet/chill-bundles into issue471_activity_socialissue-action 2022-04-08 13:24:49 +02:00
c3179da320 new user is assigned, but crash on flush() 2022-04-08 12:13:19 +02:00
2a32284471 redo bulk assign 2022-04-08 09:56:57 +02:00
4257a918f3 fix error when search pattern is empty 2022-04-08 00:11:08 +02:00
7ffb3dc74f task: fix route name 2022-04-07 23:49:32 +02:00
0f926e9dfe allow to display pinned comment in item of accompanying course list 2022-04-07 22:40:20 +02:00
fc55567a64 update changelog 2022-04-07 22:12:13 +02:00
009030b5fb notification list: move action buttons outside of the toggle 2022-04-07 21:59:02 +02:00
6e1cabc8fc fix detecting of non-read notification 2022-04-07 21:55:04 +02:00
572c602387 filter users which are disabled 2022-04-07 21:47:56 +02:00
26a4577420 order query for location and add pagination in list 2022-04-07 21:08:11 +02:00
nobohan
c0ee51068c avoid address reference search on undefined post code 2022-04-07 16:55:54 +02:00
f09870931c switch to using getDescendantsWithThis() 2022-04-07 16:11:00 +02:00
ea21f2d9c4 improvement, but still not correct 2022-04-07 16:11:00 +02:00
d81a41bb17 Test added for activity-social action and social issue 2022-04-07 16:11:00 +02:00
7851d9956e csfixes 2022-04-07 16:11:00 +02:00
f35479e4d2 fix logic in activity entity 2022-04-07 16:11:00 +02:00
432b105be5 update changelog 2022-04-07 16:11:00 +02:00
988b67bd4b logic added to only keep youngest descendant. works for issue, seems not to for action 2022-04-07 16:11:00 +02:00
f64409e5e6 allow every person which has part for a workflow to see the workflow page 2022-04-07 16:06:26 +02:00
a1baf99294 able to see the workflow if the evaluation document has been deleted 2022-04-07 15:54:53 +02:00
d9bb18e042 hardcode the list of supported mime types for edition with collabora 2022-04-07 15:37:17 +02:00
00a6ef0598 fix creating of accompanying period work 2022-04-07 11:05:34 +02:00
nobohan
c03e38f4ff upd CHANGELOG 2022-04-07 10:47:14 +02:00
nobohan
f9bcc5b1e9 householdmemberseditor: fix composition type bug 2022-04-07 10:45:46 +02:00
56340b44d5 trying to get selected periods to be caught after form submit 2022-04-07 10:24:14 +02:00
934a066910 remove error disappearing from phpstan 2022-04-06 22:40:09 +02:00
095afb90c7 AddPerson search: fix aborting query when the query is altered by user 2022-04-06 21:47:01 +02:00
645549ae34 effectively filter on all words in third party search 2022-04-06 21:45:49 +02:00
02b12c097d change view btn to edit btn 2022-04-06 16:53:26 +02:00
nobohan
d34462d849 php code fix 2022-04-06 15:34:11 +02:00
nobohan
c65a73604d upd CHANGELOG 2022-04-06 15:33:07 +02:00
nobohan
6a4edd000f household address: add max date for changing the validFrom date 2022-04-06 15:31:17 +02:00
nobohan
017b7bca87 address: handle cases when null street and streetnumber are given 2022-04-06 15:14:51 +02:00
612d053892 fix phpstan and phpcs 2022-04-06 13:59:05 +02:00
8edc68859e do not allow to freeze a document 2022-04-06 13:41:34 +02:00
a4afe73efe take into account system notification in counter and fix hardcoded user id 2022-04-06 13:35:24 +02:00
2b67f105f7 Merge branch 'issues521_531_540' into 'master'
issues graphiques 521 531 540

See merge request Chill-Projet/chill-bundles!399
2022-04-06 10:43:29 +00:00
95b114a144 do not show button to send notification on draft courses 2022-04-06 12:42:12 +02:00
5477a70c84 add ACL around creation of work in course 2022-04-06 12:41:50 +02:00
7d69ec6d6b Merge remote-tracking branch 'origin/master' into issues521_531_540 2022-04-06 12:29:11 +02:00
17594b58ab Merge branch 'issue548_notifs_buttons' into 'master'
notification toggle read: correct js syntax

See merge request Chill-Projet/chill-bundles!404
2022-04-06 10:24:27 +00:00
cddd3c20c8 Merge remote-tracking branch 'origin/master' into issue548_notifs_buttons 2022-04-06 12:16:23 +02:00
25a37974e5 Merge branch 'issues522_523' into 'master'
activity: add spacing between buttons + better alignment

See merge request Chill-Projet/chill-bundles!397
2022-04-06 10:08:59 +00:00
066afc07a8 update changelog 2022-04-06 12:08:44 +02:00
56c3f05ec9 Merge remote-tracking branch 'origin/master' into issues522_523 2022-04-06 12:04:54 +02:00
1907beaf6e Merge branch 'change_interlocuteurs_display' into 'master'
Change display of interlocuteurs (parcours)

See merge request Chill-Projet/chill-bundles!396
2022-04-06 10:01:26 +00:00
37c04d3f12 update changelog 2022-04-06 12:00:49 +02:00
a7fbce0add Merge remote-tracking branch 'origin/master' into change_interlocuteurs_display 2022-04-06 11:59:18 +02:00
e663bae5c4 fix datepicker for social action edit form.
still a problem with the display of already set evaluation dates... need to be transformed to correct format to display
2022-04-06 11:26:04 +02:00
ad6a68487c fix datepicker for householdmember editor 2022-04-06 11:24:01 +02:00
nobohan
88f377778c upd CHANGELOG 2022-04-06 09:28:57 +02:00
nobohan
d6deaeb324 notification unread: correct class 2022-04-06 09:26:14 +02:00
nobohan
f2744fba43 notification toggle read: correct js syntax 2022-04-05 22:28:35 +02:00
72a62a3a1b prefill startdate with now 2022-04-05 16:03:07 +02:00
bcde4497cc fix datepicker for social action 2022-04-05 15:56:02 +02:00
nobohan
c3731ae2db address reference: add filtering by deletedAt 2022-04-05 10:21:14 +02:00
nobohan
ddce7603ad household address: add condition for minimum value for vaildFrom date 2022-04-02 10:53:54 +02:00
nobohan
3a3eb68288 household address: add a form for editing the validFrom date 2022-04-01 16:17:04 +02:00
a4ece21f2b in household, force validTo of address to be NULL 2022-04-01 15:06:00 +02:00
c7762dd6d2 fix trimming for email in person / thirdparty 2022-03-31 12:51:53 +02:00
f47fb17b8d fix denormalization of invalid dates 2022-03-31 12:48:27 +02:00
51dc255be5 fix phonenumber denormalization when null value is given 2022-03-31 12:48:27 +02:00
6ddbb79157 format phonenumber in third party normalization 2022-03-31 12:48:27 +02:00
nobohan
1d6d8dc002 accompanyingcourse work: add ACL rights for create and edit buttons 2022-03-30 12:01:35 +02:00
nobohan
f29ead4961 accompanying course: fix display bug in accompanying course resume 2022-03-30 11:26:19 +02:00
nobohan
b361ab2d74 workflow: add div for delete workflow form 2022-03-30 11:10:23 +02:00
ed1ddbe53d beginning of ACL added 2022-03-28 17:06:29 +02:00
818370f037 selected periods are not coming through in POST. Value not valid 2022-03-28 16:46:39 +02:00
nobohan
10fcd4f732 accompanying course: evaluation documents: align buttons 2022-03-28 15:12:16 +02:00
nobohan
bc8709f9a1 activity: add spacing between buttons + better alignment 2022-03-28 14:30:49 +02:00
3d6745e535 display of interlocuteurs changed to flex-table to prevent cut-off of information 2022-03-28 12:00:13 +02:00
7963076505 attempts to submit reassign form 2022-03-25 16:59:05 +01:00
nobohan
58f1984c77 Add new fields to AddressReference for update procedure 2022-03-25 15:14:13 +01:00
f2ae183682 first commit 2022-03-25 13:01:33 +01:00
02571bf727 switch to using getDescendantsWithThis() 2022-03-22 13:45:20 +01:00
247f1879e3 Merge remote-tracking branch 'origin/master' into issue471_activity_socialissue-action 2022-03-21 11:16:19 +01:00
9551e10d2b improvement, but still not correct 2022-03-16 11:55:19 +01:00
39ba21f308 merge master into branch 2022-03-16 11:36:07 +01:00
Pol Dellaiera
22755de1dd fix: Remove PrependExtensionInterface.
It is now handled by `chill_main` bundle.
2022-03-15 13:45:07 +01:00
Pol Dellaiera
3d7fcd99a8 fix: Remove console.log. 2022-03-15 13:45:07 +01:00
Pol Dellaiera
35d723e5fb refactor: Use StoredObjectManager. 2022-03-15 13:45:07 +01:00
Pol Dellaiera
62af980ea5 feat: Add new StoredObjectManager service.
To read and write onto `StoredObject` document using a common interface.
2022-03-15 13:41:38 +01:00
Pol Dellaiera
8abed67e1c refactor: Return a string instead of a resource. 2022-03-15 09:40:32 +01:00
Pol Dellaiera
b8992b8eeb misc: Update interface doc. 2022-03-15 09:40:32 +01:00
Pol Dellaiera
6ddbf35a7b misc: Add return types. 2022-03-15 09:40:32 +01:00
Pol Dellaiera
325ab0daf3 chore: Update composer.json files. 2022-03-15 09:40:32 +01:00
16be28681a Test added for activity-social action and social issue 2022-03-07 15:13:47 +01:00
68aa80269f rebase onto master 2022-03-04 17:29:36 +01:00
2012df512c merge conflict fixed 2022-03-04 17:27:26 +01:00
1c21b80703 csfixes 2022-03-04 17:25:37 +01:00
25fe105590 fix logic in activity entity 2022-03-04 17:25:37 +01:00
b6e530fec6 update changelog 2022-03-04 17:25:37 +01:00
4ef2274803 logic added to only keep youngest descendant. works for issue, seems not to for action 2022-03-04 17:25:22 +01:00
474fffcbb5 changelog updated 2022-03-04 12:08:00 +01:00
0333e79b0a csfixes 2022-03-04 12:07:29 +01:00
7c043e9d85 fix logic in activity entity 2022-03-04 12:06:53 +01:00
214ef09fe7 update changelog 2022-03-03 16:29:35 +01:00
18694a34cf logic added to only keep youngest descendant. works for issue, seems not to for action 2022-03-03 16:24:37 +01:00
828 changed files with 13244 additions and 44397 deletions

View File

@@ -18,3 +18,10 @@ max_line_length = 80
[COMMIT_EDITMSG]
max_line_length = 0
<<<<<<< Updated upstream
=======
[*.{js, vue, ts}]
indent_size = 2
indent_style = space
>>>>>>> Stashed changes

1
.gitignore vendored
View File

@@ -22,3 +22,4 @@ docs/build/
/.php-cs-fixer.cache
/.idea/
/.psalm/

View File

@@ -11,9 +11,122 @@ and this project adheres to
## Unreleased
<!-- write down unreleased development here -->
* [workflow]: added pagination to workflow list page
* [homepage_widget]: null error on tasks widget fixed
* [person-thirdparty]: fix quick-add of names that consist of multiple parts (eg. De Vlieger) within onthefly modal person/thirdparty
* [search]: Order of birthdate fields changed in advanced search to avoid confusion.
* [workflow]: Constraint added to workflow (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/675)
* [filiation]: Allow the deletion of a relationship in filiations (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/608)
* [household]: Reposition and cut button for enfant hors menage have been deleted (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/620)
## Test releases
### 2022-05-30
* fix creating a new AccompanyingPeriodWorkEvaluationDocument when replacing the document (the workflow was lost)
### 2022-05-27
* [storedobject] add title field on StoredObject entity + use it in activity documents (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/604)
* [main] add a "read more..." on comment embeddable when overflown (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/604)
* [person] add closing motive to closed acc course (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/603)
* [person] household filiation: fetch person info when unfolding person (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/586)
* [admin] repair edit of social action in the admin (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/601)
* [admin]: add select2 to Goal form type entity fields (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/702)
* [main] allow hide permissions group list menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
* [main] allow hide change user password menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
* [main] filter user jobs by active jobs (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
* [main] add civility to User (entity, migration and form type) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577)
* [admin] refactorisation of the admin section: reorganisation of the menu, translations, form types, new entities (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/592)
* [admin] add admin section for languages and countries (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/596)
* [activity] activity admin: translations + remove label field for comment on admin activity type (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/587)
* [main] admin user_job: improvements (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/588)
* [address] can add extra address info even if noAddress (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/576)
### 2022-05-06
* [person] add civility when creating a person (with the on-the-fly component or in the php form) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/557)
* [person] add address when creating a person (with the on-the-fly component or in the php form) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/557)
* [person] add household creation API point (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/557)
### 2021-04-29
* [person] prevent circular references in PersonDocGenNormalizer (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/527)
* [person] add maritalStatusComment to PersonDocGenNormalizer (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/582)
* Load relationships without gender in french fixtures
* Add command to remove old draft accompanying periods
* [parcours]: If users assings him/herself as referrer and job is not null. Update parcours job (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/578)
### 2021-04-28
* [address] fix bug when editing address: update location and addressreferenceId + better update of the map in edition (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/593)
* [main] avoid address reference search on undefined post code (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/561)
* [person] prevent duplicate relationship in filiation/household graph (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/560)
* [Documents] Validate storedObject and allow for null data (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/565)
* [parcours]: Comments can be unpinned + edit/delete for all users that are allowed to edit parcours (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/566)
### 2021-04-26
* [Datepickers] datepickers fixed when using keyboard to enter date (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/545)
* [social_action] Display 'agents traitants' in parcours resumé and social action list (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/568)
* [Person_search] Closed parcours shown within an accordeon that can be opened/closed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/574)
### 2021-04-24
* [notification email on course designation] allow raw string in email content generation
* [Accompanying period work] list evaluations associated to a work by startDate, and then by id, from the most recent to older
* [Documents] Change wording 'créer' to 'enregistrer' (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/634)
* [Parcours]: The number of 'mes parcours' displayed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/572)
* [Hompage_widget]: Renaming of tabs and removal of social actions tab (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/570)
* [activity]: Ignore thirdparties when creating a social action via an activity (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/573)
* [parcours]: change wording of warning message and button when user is not associated to a household yet (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/590#note_918370943)
* [Accompanying period work evaluations] list documents associated to a work by creation date, and then by id, from the most recent to older
* [Course comment] add validationConstraint NotNull and NotBlank on comment content, to avoid sql error
* [Notifications] delay the sending of notificaiton to kernel.terminate
* [Notifications / Period user change] fix the sending of notification when user changes
* [Activity form] invert 'incoming' and 'receiving' in Activity form
* [Activity form] keep the same order for 'attendee' field in new and edit form
* [list with period] use "sameas" test operator to introduce requestor in list
* [notification email on course designation] allow raw string in email content generation
* [Accompanying period work] list evaluations associated to a work by startDate, and then by id, from the most recent to older
* [evaluation_document] changing date to datetime in order to display the time at which document was created (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/569)
### 2021-04-13
* [person] household address: add a form for editing the validFrom date (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/541)
* [person] householdmemberseditor: fix composition type bug in select form (vuejs) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/543)
* [docgen] add more persons choices in docgen for course: amongst requestor (if person), resources of course (if person), and PersonResource (if person);
* [docgen] add a new context with a list of activities in course
* [docgen] add a comment in budget lines
* [notifications] allow to send a notification to an email address. The address receive an access link
* [adresses] add constraints in database to avoid errors later: postcode not null, and validfrom <= validto
* [accompanying work editor] add a label on document title input
### 2021-04-07
* notification list: move action buttons outside of the toggle
* fix detecting of non-read notification
* filter users which are disabled in search user api
* order query for location and add pagination in list
* allow every person which has part for a workflow to see the workflow page
* able to see the workflow if the evaluation document has been deleted
* hardcode the list of supported mime types for edition with collabora
* list of accompanying course: allow to see the pinned comment in list_item
### 2021-04-06
* [main] notification toggle read: correct js syntax for compilation in production (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/548)
* [parcours] Display of interlocuteurs changed to flex-table in parcours edit page to prevent cut-off of information (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/535)
* [activity] espace entre les boutons pour supprimer les documents
### continuous release in February and March
* Creation of PickCivilityType, and implementation in PersonType and ThirdpartyType
* [person] Accompanying course evaluation documents: disable the WOPI edit link if mimetype not supported and if no keyInfos
(https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/585)
* [activity] display error messages above the form in creating a new location (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/481)
* [activity] show required field in activity edit/new by an asterix in the vuejs fields (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/494)
* [ACL] fix allow to see the course, event if the scope'course does not contains the scope's user
@@ -52,6 +165,7 @@ and this project adheres to
* [household] bugfix if position of member is null, renderbox no longer throws an error (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/480)
* [parcours] location cannot be removed if linked to a user (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/478)
* [person] email added to twig personRenderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/490)
* [activity] Only youngest descendant is kept for social issues and actions (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/471)
* [person] Add link to current household in person banner (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/484)
* [address] person badge in address history changed to open OnTheFly with all person info (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/489)
* [person] Change 'personne' with 'usager' and '&' with 'ET' (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/499)
@@ -79,6 +193,7 @@ and this project adheres to
* [notification] Display of social action within workflow notification set to display block (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/537)
* [onthefly] trim trailing whitespace in email of person and thirdparty (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/542)
* [action] Only youngest descendant is kept for social issues and actions (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/471)
## Test releases
### test release 2022-02-21
@@ -107,8 +222,6 @@ and this project adheres to
* [bug]: fix confidential toggle of address in thirdpartyrenderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/460)
## Test releases
* Creation of PickCivilityType, and implementation in PersonType and ThirdpartyType
### test release 2022-02-14
@@ -135,6 +248,7 @@ and this project adheres to
* [address]: Correction residential address 'depuis le' (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/459)
* [Documents]: List view adapted to display more information (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/414)
* [Thirdparty_contact]: address blurred if confidential in view page (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/450)
* [thirdparty] Add a contact to a thirdparty from within onTheFly (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/345)
### test release 2021-02-01
@@ -157,18 +271,9 @@ and this project adheres to
* [fast_actions] improve fast-actions buttons override mechanism, fix https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/413
* [homepage widget] add vue homepage_widget with asynchone loading, give a global view resume of the user concerned actions, notifications, etc.
* [thirdparty] Add a contact to a thirdparty from within onTheFly (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/345)
## Test releases
=======
* [homepage widget] add vue homepage_widget with asynchone loading, give a global view resume of the user concerned actions, notifications, etc.
>>>>>>> issue422_and_others_on_AddPersons
=======
* [homepage widget] add vue homepage_widget with asynchone loading, give a global view resume of the user concerned actions, notifications, etc.
* [thirdparty] Add a contact to a thirdparty from within onTheFly (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/345)
>>>>>>> b0d50d315c8e00959a967badac9cf5057ab2b4bc
### test release 2021-01-31
* [person] accompanying course: optimisation: do not fetch some resources for the banner (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/409)

View File

@@ -2,7 +2,14 @@
en cours de rédaction
## Translations
Par bundle, toutes les traductions des pages twig se trouvent dans un seul fichier `translations/messages.fr.yaml`.
## Emplacement des fichiers
Les controllers, form type & templates twig sont placés à la racine des dossiers `Controller`, `Form` & `Ressources/views`, respectivement. Pour les pages Admin, on ne les mets plus dans des sous-dossiers Admin.
## Assets: nommage des entrypoints
Trois types d'entrypoint:
@@ -146,19 +153,20 @@ Ces règles n'ont pas toujours été utilisées par le passé. Elles sont souhai
Les routes sont nommées de cette manière:
`chill_bundle_entite_action`
`chill_(api|crud)_bundle_(api)_entite_action`
1. d'abord chill_ (pour tous les modules chill)
2. ensuite une string qui est identique, par bundle
3. si le point est un point d'api (json), alors ajouter la string `api`
4. ensuite une string qui indique sur quelle entité porte la route, voire également les sous-entités
5. ensuite une action (`list`, `view`, `edit`, `new`, ...)
2. ensuite `crud` ou `api`, optionnel, automatiquement ajouté si la route est générée par la configuration
3. ensuite une string qui indique le bundle (`main`, `person`, `activity`, ...)
4. ensuite, `api`, si la route est une route d'api.
5. ensuite une string qui indique sur quelle entité porte la route, voire également les sous-entités
6. ensuite une action (`list`, `view`, `edit`, `new`, ...)
Le fait d'indiquer `api` en 3 permet de distinguer les routes d'api qui sont générées par la configuration (qui sont toutes préfixées par `chill_api`, de celles générées manuellement. (Exemple: `chill_api_household__index`, et `chill_person_api_household_members_move`)
Le fait d'indiquer `api` en quatrième position permet de distinguer les routes d'api qui sont générées par la configuration (qui sont toutes préfixées par `chill_api`, de celles générées manuellement. (Exemple: `chill_api_household__index`, et `chill_person_api_household_members_move`)
Si les points 4 et 5 sont inexistants, alors ils sont remplacés par d'autres éléments de manière à garantir l'unicité de la route, et sa bonne compréhension.
### URL
### Nommage des URL
Les URL respectent également une convention:
@@ -219,6 +227,14 @@ Les éléments suivants devraient se trouver dans la liste:
Ces éléments peuvent être entrecoupés de l'identifiant d'une entité. Dans ce cas, cet identifiant se place juste après l'entité auquel il se rapporte.
#### Pour les URL de l'espace Admin
Même conventions que dans les autres pages html de l'application, **mais `admin` est ajouté en deuxième position**. Soit:
`/{_locale}/admin/bundle/entity/{id}/action`
## Règles UI chill
### Titre des pages

View File

@@ -10,8 +10,8 @@
"require": {
"php": "^7.4",
"champs-libres/async-uploader-bundle": "dev-sf4#d57134aee8e504a83c902ff0cf9f8d36ac418290",
"champs-libres/wopi-bundle": "dev-master#59b468503b9413f8d588ef9e626e7675560db3d8",
"champs-libres/wopi-lib": "dev-master#0e1da19bb6de820080b8651867a7e475be590060",
"champs-libres/wopi-bundle": "dev-master#6dd8e0a14e00131eb4b889ecc30270ee4a0e5224",
"champs-libres/wopi-lib": "dev-master#8615f4a45a39fc2b6a98765ea835fcfd39618787",
"doctrine/doctrine-bundle": "^2.1",
"doctrine/doctrine-migrations-bundle": "^3.0",
"doctrine/orm": "^2.7",
@@ -21,7 +21,7 @@
"knplabs/knp-time-bundle": "^1.12",
"league/csv": "^9.7.1",
"nyholm/psr7": "^1.4",
"ocramius/package-versions": "^1.10",
"ocramius/package-versions": "^1.10 || ^2",
"odolbeau/phone-number-bundle": "^3.6",
"phpoffice/phpspreadsheet": "^1.16",
"ramsey/uuid-doctrine": "^1.7",
@@ -33,6 +33,7 @@
"symfony/expression-language": "^4.4",
"symfony/form": "^4.4",
"symfony/framework-bundle": "^4.4",
"symfony/http-foundation": "^4.4",
"symfony/intl": "^4.4",
"symfony/mailer": "^5.4",
"symfony/mime": "^5.4",
@@ -44,6 +45,7 @@
"symfony/translation": "^4.4",
"symfony/twig-bundle": "^4.4",
"symfony/validator": "^4.4",
"symfony/web-link": "*",
"symfony/webpack-encore-bundle": "^1.11",
"symfony/workflow": "^4.4",
"symfony/yaml": "^4.4",
@@ -94,7 +96,8 @@
"autoload-dev": {
"psr-4": {
"App\\": "tests/app/src/",
"Chill\\DocGeneratorBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests"
"Chill\\DocGeneratorBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests",
"Chill\\WopiBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests"
}
},
"config": {
@@ -103,7 +106,8 @@
"ergebnis/composer-normalize": true,
"ocramius/package-versions": true,
"phpro/grumphp": true,
"phpstan/extension-installer": true
"phpstan/extension-installer": true,
"roave/you-are-using-it-wrong": true
},
"bin-dir": "bin",
"optimize-autoloader": true,

View File

@@ -65,6 +65,17 @@ This script will :
4. build assets
.. note::
In some cases it can happen that an old image (chill_base_php or chill_php) stored in the docker cache will make the script fail. To solve this problem you have to delete the image and the container, before the make init :
.. code-block:: bash
docker-compose images php
docker rmi -f chill_php:prod
docker-compose rm php
4. Start the project
====================

View File

@@ -24,6 +24,7 @@ parameters:
- "/spec/"
- "/var/"
- "/vendor/"
- "/tests/app"
# Psalm
tasks.psalm.blocking: true

View File

@@ -5,11 +5,6 @@ parameters:
count: 1
path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php
-
message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$currentHouseholdParticipationAt\\.$#"
count: 3
path: src/Bundle/ChillPersonBundle/Entity/Person.php
-
message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$relation\\.$#"
count: 1

File diff suppressed because it is too large Load Diff

View File

@@ -25,16 +25,6 @@ parameters:
count: 1
path: src/Bundle/ChillActivityBundle/Form/ActivityType.php
-
message: "#^Only booleans are allowed in &&, mixed given on the right side\\.$#"
count: 3
path: src/Bundle/ChillActivityBundle/Form/ActivityType.php
-
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 2
path: src/Bundle/ChillActivityBundle/Form/ActivityType.php
-
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 3
@@ -450,11 +440,6 @@ parameters:
count: 1
path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php
-
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
count: 1
path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartyApiSearch.php
-
message: "#^Method Chill\\\\ThirdPartyBundle\\\\Search\\\\ThirdPartySearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#"
count: 1

View File

@@ -3,6 +3,7 @@ parameters:
paths:
- src/
excludePaths:
- .php_cs*
- docs/
- src/Bundle/*/Tests/*
- src/Bundle/*/tests/*

View File

@@ -40,6 +40,9 @@
<testsuite name="DocGeneratorBundle">
<directory suffix="Test.php">src/Bundle/ChillDocGeneratorBundle/tests/</directory>
</testsuite>
<testsuite name="WopiBundle">
<directory suffix="Test.php">src/Bundle/ChillWopiBundle/tests/</directory>
</testsuite>
</testsuites>
<listeners>

View File

@@ -6,6 +6,7 @@
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config tests/app/vendor/vimeo/psalm/config.xsd"
errorBaseline="psalm-baseline.xml"
cacheDirectory="./.psalm"
>
<projectFiles>
<directory name="src" />
@@ -13,4 +14,15 @@
<directory name="./tests/" />
</ignoreFiles>
</projectFiles>
<!-- suppress error around parameter bags - see https://github.com/symfony/symfony/issues/45609#issuecomment-1056816975 -->
<!-- maybe to desactivate with php 8.1 ? -->
<issueHandlers>
<UndefinedDocblockClass>
<errorLevel type="suppress">
<referencedClass name="UnitEnum" />
</errorLevel>
</UndefinedDocblockClass>
</issueHandlers>
</psalm>

View File

@@ -21,6 +21,7 @@ use Chill\ActivityBundle\Repository\ActivityTypeRepository;
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable;
use Chill\MainBundle\Repository\LocationRepository;
use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Privacy\PrivacyEvent;
@@ -56,6 +57,8 @@ final class ActivityController extends AbstractController
private ActivityTypeRepository $activityTypeRepository;
private CenterResolverManagerInterface $centerResolver;
private EntityManagerInterface $entityManager;
private EventDispatcherInterface $eventDispatcher;
@@ -82,7 +85,8 @@ final class ActivityController extends AbstractController
EntityManagerInterface $entityManager,
EventDispatcherInterface $eventDispatcher,
LoggerInterface $logger,
SerializerInterface $serializer
SerializerInterface $serializer,
CenterResolverManagerInterface $centerResolver
) {
$this->activityACLAwareRepository = $activityACLAwareRepository;
$this->activityTypeRepository = $activityTypeRepository;
@@ -96,6 +100,7 @@ final class ActivityController extends AbstractController
$this->eventDispatcher = $eventDispatcher;
$this->logger = $logger;
$this->serializer = $serializer;
$this->centerResolver = $centerResolver;
}
/**
@@ -198,7 +203,7 @@ final class ActivityController extends AbstractController
// $this->denyAccessUnlessGranted('CHILL_ACTIVITY_UPDATE', $entity);
$form = $this->createForm(ActivityType::class, $entity, [
'center' => $entity->getCenter(),
'center' => $this->centerResolver->resolveCenters($entity)[0] ?? null,
'role' => new Role('CHILL_ACTIVITY_UPDATE'),
'activityType' => $entity->getActivityType(),
'accompanyingPeriod' => $accompanyingPeriod,
@@ -416,7 +421,7 @@ final class ActivityController extends AbstractController
$this->denyAccessUnlessGranted(ActivityVoter::CREATE, $entity);
$form = $this->createForm(ActivityType::class, $entity, [
'center' => $entity->getCenter(),
'center' => $this->centerResolver->resolveCenters($entity)[0] ?? null,
'role' => new Role('CHILL_ACTIVITY_CREATE'),
'activityType' => $entity->getActivityType(),
'accompanyingPeriod' => $accompanyingPeriod,

View File

@@ -54,7 +54,7 @@ class ActivityReasonCategoryController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->find($id);
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
@@ -75,7 +75,7 @@ class ActivityReasonCategoryController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->findAll();
$entities = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->findAll();
return $this->render('ChillActivityBundle:ActivityReasonCategory:index.html.twig', [
'entities' => $entities,
@@ -105,7 +105,7 @@ class ActivityReasonCategoryController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->find($id);
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');
@@ -125,7 +125,7 @@ class ActivityReasonCategoryController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('ChillActivityBundle:ActivityReasonCategory')->find($id);
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReasonCategory::class)->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find ActivityReasonCategory entity.');

View File

@@ -54,7 +54,7 @@ class ActivityReasonController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('ChillActivityBundle:ActivityReason')->find($id);
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
@@ -75,7 +75,7 @@ class ActivityReasonController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('ChillActivityBundle:ActivityReason')->findAll();
$entities = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->findAll();
return $this->render('ChillActivityBundle:ActivityReason:index.html.twig', [
'entities' => $entities,
@@ -105,7 +105,7 @@ class ActivityReasonController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('ChillActivityBundle:ActivityReason')->find($id);
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find ActivityReason entity.');
@@ -125,7 +125,7 @@ class ActivityReasonController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('ChillActivityBundle:ActivityReason')->find($id);
$entity = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find ActivityReason entity.');

View File

@@ -61,8 +61,6 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf
ActivityVoter::DELETE => [ActivityVoter::SEE_DETAILS],
ActivityVoter::SEE_DETAILS => [ActivityVoter::SEE],
ActivityVoter::FULL => [
ActivityVoter::CREATE_PERSON,
ActivityVoter::CREATE_ACCOMPANYING_COURSE,
ActivityVoter::DELETE,
ActivityVoter::UPDATE,
],

View File

@@ -15,8 +15,9 @@ use Chill\ActivityBundle\Validator\Constraints as ActivityValidator;
use Chill\DocStoreBundle\Entity\StoredObject;
use Chill\MainBundle\Entity\Center;
use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable;
use Chill\MainBundle\Entity\HasCenterInterface;
use Chill\MainBundle\Entity\HasScopeInterface;
use Chill\MainBundle\Entity\Embeddable\PrivateCommentEmbeddable;
use Chill\MainBundle\Entity\HasCentersInterface;
use Chill\MainBundle\Entity\HasScopesInterface;
use Chill\MainBundle\Entity\Location;
use Chill\MainBundle\Entity\Scope;
use Chill\MainBundle\Entity\User;
@@ -35,6 +36,7 @@ use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Annotation\DiscriminatorMap;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Serializer\Annotation\SerializedName;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Class Activity.
@@ -53,7 +55,7 @@ use Symfony\Component\Serializer\Annotation\SerializedName;
* getUserFunction="getUser",
* path="scope")
*/
class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterface, HasCenterInterface, HasScopeInterface
class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterface, HasCentersInterface, HasScopesInterface
{
public const SENTRECEIVED_RECEIVED = 'received';
@@ -93,6 +95,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
/**
* @ORM\ManyToMany(targetEntity="Chill\DocStoreBundle\Entity\StoredObject", cascade={"persist"})
* @Assert\Valid(traverse=true)
*/
private Collection $documents;
@@ -132,6 +135,11 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
*/
private ?Collection $persons = null;
/**
* @ORM\Embedded(class="Chill\MainBundle\Entity\Embeddable\PrivateCommentEmbeddable", columnPrefix="privateComment_")
*/
private PrivateCommentEmbeddable $privateComment;
/**
* @ORM\ManyToMany(targetEntity="Chill\ActivityBundle\Entity\ActivityReason")
* @Groups({"docgen:read"})
@@ -191,6 +199,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
{
$this->reasons = new ArrayCollection();
$this->comment = new CommentEmbeddable();
$this->privateComment = new PrivateCommentEmbeddable();
$this->persons = new ArrayCollection();
$this->thirdParties = new ArrayCollection();
$this->documents = new ArrayCollection();
@@ -231,11 +240,22 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
{
if (!$this->socialActions->contains($socialAction)) {
$this->socialActions[] = $socialAction;
$this->ensureSocialActionConsistency();
}
return $this;
}
/**
* Add a social issue.
*
* Note: the social issue consistency (the fact that only yougest social issues
* are kept) is processed by an entity listener:
*
* @see{\Chill\PersonBundle\AccompanyingPeriod\SocialIssueConsistency\AccompanyingPeriodSocialIssueConsistencyEntityListener}
*
* @return $this
*/
public function addSocialIssue(SocialIssue $socialIssue): self
{
if (!$this->socialIssues->contains($socialIssue)) {
@@ -286,13 +306,17 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
* get the center
* center is extracted from person.
*/
public function getCenter(): ?Center
public function getCenters(): iterable
{
if ($this->person instanceof Person) {
return $this->person->getCenter();
return [$this->person->getCenter()];
}
return null;
if ($this->getAccompanyingPeriod() instanceof AccompanyingPeriod) {
return $this->getAccompanyingPeriod()->getCenters() ?? [];
}
return [];
}
public function getComment(): CommentEmbeddable
@@ -387,6 +411,11 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return [];
}
public function getPrivateComment(): PrivateCommentEmbeddable
{
return $this->privateComment;
}
public function getReasons(): Collection
{
return $this->reasons;
@@ -397,6 +426,19 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return $this->scope;
}
public function getScopes(): iterable
{
if (null !== $this->getAccompanyingPeriod()) {
return $this->getAccompanyingPeriod()->getScopes();
}
if (null !== $this->getPerson()) {
return [$this->scope];
}
return [];
}
public function getSentReceived(): string
{
return $this->sentReceived;
@@ -573,6 +615,13 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return $this;
}
public function setPrivateComment(PrivateCommentEmbeddable $privateComment): self
{
$this->privateComment = $privateComment;
return $this;
}
public function setReasons(?ArrayCollection $reasons): self
{
$this->reasons = $reasons;
@@ -631,4 +680,13 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return $this;
}
private function ensureSocialActionConsistency(): void
{
$ancestors = SocialAction::findAncestorSocialActions($this->getSocialActions());
foreach ($ancestors as $ancestor) {
$this->removeSocialAction($ancestor);
}
}
}

View File

@@ -167,6 +167,16 @@ class ActivityType
*/
private int $personVisible = self::FIELD_REQUIRED;
/**
* @ORM\Column(type="string", nullable=false, options={"default": ""})
*/
private string $privateCommentLabel = '';
/**
* @ORM\Column(type="smallint", nullable=false, options={"default": 1})
*/
private int $privateCommentVisible = self::FIELD_OPTIONAL;
/**
* @ORM\Column(type="string", nullable=false, options={"default": ""})
*/
@@ -416,6 +426,16 @@ class ActivityType
return $this->personVisible;
}
public function getPrivateCommentLabel(): string
{
return $this->privateCommentLabel;
}
public function getPrivateCommentVisible(): int
{
return $this->privateCommentVisible;
}
public function getReasonsLabel(): string
{
return $this->reasonsLabel;
@@ -688,6 +708,20 @@ class ActivityType
return $this;
}
public function setPrivateCommentLabel(string $privateCommentLabel): self
{
$this->privateCommentLabel = $privateCommentLabel;
return $this;
}
public function setPrivateCommentVisible(int $privateCommentVisible): self
{
$this->privateCommentVisible = $privateCommentVisible;
return $this;
}
public function setReasonsLabel(string $reasonsLabel): self
{
$this->reasonsLabel = $reasonsLabel;

View File

@@ -66,9 +66,6 @@ class ActivityEntityListener
$newAction->addPerson($person);
}
foreach ($associatedThirdparties as $thirdparty) {
$newAction->setHandlingThierparty($thirdparty);
}
$this->em->persist($newAction);
$this->em->flush();
}

View File

@@ -14,16 +14,20 @@ namespace Chill\ActivityBundle\Form;
use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Entity\ActivityPresence;
use Chill\ActivityBundle\Entity\ActivityReason;
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
use Chill\DocStoreBundle\Form\StoredObjectType;
use Chill\MainBundle\Entity\Center;
use Chill\MainBundle\Entity\Location;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Form\Type\ChillCollectionType;
use Chill\MainBundle\Form\Type\ChillDateType;
use Chill\MainBundle\Form\Type\CommentType;
use Chill\MainBundle\Form\Type\PickUserDynamicType;
use Chill\MainBundle\Form\Type\PrivateCommentType;
use Chill\MainBundle\Form\Type\ScopePickerType;
use Chill\MainBundle\Form\Type\UserPickerType;
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Chill\MainBundle\Templating\TranslatableStringHelper;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
@@ -49,6 +53,7 @@ use Symfony\Component\Form\FormEvents;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Role\Role;
use function in_array;
class ActivityType extends AbstractType
@@ -108,19 +113,18 @@ class ActivityType extends AbstractType
$activityType = $options['activityType'];
// TODO revoir la gestion des center au niveau du form des activité.
if ($options['center']) {
if ($options['center'] instanceof Center && null !== $options['data']->getPerson()) {
$builder->add('scope', ScopePickerType::class, [
'center' => $options['center'],
'role' => $options['role'],
// TODO make required again once scope and rights are fixed
'required' => false,
'role' => ActivityVoter::CREATE === (string) $options['role'] ? ActivityVoter::CREATE_PERSON : (string) $options['role'],
'required' => true,
]);
}
/** @var ? \Chill\PersonBundle\Entity\AccompanyingPeriod $accompanyingPeriod */
$accompanyingPeriod = null;
if ($options['accompanyingPeriod']) {
if ($options['accompanyingPeriod'] instanceof AccompanyingPeriod) {
$accompanyingPeriod = $options['accompanyingPeriod'];
}
@@ -217,12 +221,10 @@ class ActivityType extends AbstractType
]);
}
if ($activityType->isVisible('user') && $options['center']) {
$builder->add('user', UserPickerType::class, [
if ($activityType->isVisible('user') && $options['center'] instanceof Center) {
$builder->add('user', PickUserDynamicType::class, [
'label' => $activityType->getLabel('user'),
'required' => $activityType->isRequired('user'),
'center' => $options['center'],
'role' => $options['role'],
]);
}
@@ -251,6 +253,13 @@ class ActivityType extends AbstractType
]);
}
if ($activityType->isVisible('privateComment')) {
$builder->add('privateComment', PrivateCommentType::class, [
'label' => '' === $activityType->getLabel('privateComment') ? 'private comment' : $activityType->getPrivateCommentLabel(),
'required' => false,
]);
}
if ($activityType->isVisible('persons')) {
$builder->add('persons', HiddenType::class);
$builder->get('persons')
@@ -313,6 +322,7 @@ class ActivityType extends AbstractType
'button_add_label' => 'activity.Insert a document',
'button_remove_label' => 'activity.Remove a document',
'empty_collection_explain' => 'No documents',
'entry_options' => ['has_title' => true],
]);
}
@@ -373,8 +383,8 @@ class ActivityType extends AbstractType
'label' => $activityType->getLabel('sentReceived'),
'required' => $activityType->isRequired('sentReceived'),
'choices' => [
'Sent' => Activity::SENTRECEIVED_SENT,
'Received' => Activity::SENTRECEIVED_RECEIVED,
'Sent' => Activity::SENTRECEIVED_SENT,
],
]);
}
@@ -433,8 +443,8 @@ class ActivityType extends AbstractType
$resolver
->setRequired(['center', 'role', 'activityType', 'accompanyingPeriod'])
->setAllowedTypes('center', ['null', 'Chill\MainBundle\Entity\Center'])
->setAllowedTypes('role', 'Symfony\Component\Security\Core\Role\Role')
->setAllowedTypes('center', ['null', Center::class])
->setAllowedTypes('role', [Role::class, 'string'])
->setAllowedTypes('activityType', \Chill\ActivityBundle\Entity\ActivityType::class)
->setAllowedTypes('accompanyingPeriod', [\Chill\PersonBundle\Entity\AccompanyingPeriod::class, 'null']);
}

View File

@@ -57,7 +57,7 @@ class ActivityTypeType extends AbstractType
$fields = [
'persons', 'user', 'date', 'location', 'persons',
'thirdParties', 'durationTime', 'travelTime', 'attendee',
'reasons', 'comment', 'sentReceived', 'documents',
'reasons', 'comment', 'privateComment', 'sentReceived', 'documents',
'emergency', 'socialIssues', 'socialActions', 'users',
];
@@ -69,6 +69,9 @@ class ActivityTypeType extends AbstractType
'empty_data' => '',
]);
}
$builder
->add('commentVisible', ActivityFieldPresence::class);
}
public function configureOptions(OptionsResolver $resolver)

View File

@@ -15,8 +15,6 @@ use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
use Knp\Menu\MenuItem;
use Symfony\Component\Security\Core\Security;
use function in_array;
final class AdminMenuBuilder implements LocalMenuBuilderInterface
{
private Security $security;
@@ -32,27 +30,38 @@ final class AdminMenuBuilder implements LocalMenuBuilderInterface
return;
}
if (in_array($menuId, ['admin_index', 'admin_section'], true)) {
$menu->addChild('Activities', [
'route' => 'chill_admin_activity_index',
])
->setExtras([
'order' => 2000,
'explain' => 'Activity configuration',
]);
} else {
$menu
->addChild('Activities', [
'route' => 'chill_admin_activity_index',
])
->setExtras([
'order' => '60',
]);
}
$menu->addChild('Activities', [
'route' => 'chill_activity_admin_index',
])
->setAttribute('class', 'list-group-item-header')
->setExtras([
'order' => 5000,
'icons' => ['exchange'],
]);
$menu->addChild('Activity Reasons', [
'route' => 'chill_activity_activityreason',
])->setExtras(['order' => 5010]);
$menu->addChild('Activity Reasons Category', [
'route' => 'chill_activity_activityreasoncategory',
])->setExtras(['order' => 5020]);
$menu->addChild('Activity type', [
'route' => 'chill_activity_type_admin',
])->setExtras(['order' => 5030]);
$menu->addChild('Activity Presences', [
'route' => 'chill_crud_activity_presence_index',
])->setExtras(['order' => 5040]);
$menu->addChild('Activity Types Categories', [
'route' => 'chill_activity_type_category_admin',
])->setExtras(['order' => 5050]);
}
public static function getMenuIds(): array
{
return ['admin_index', 'admin_section', 'admin_activity'];
return ['admin_section', 'admin_activity'];
}
}

View File

@@ -12,13 +12,20 @@ declare(strict_types=1);
namespace Chill\ActivityBundle\Repository;
use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Entity\ActivityPresence;
use Chill\ActivityBundle\Entity\ActivityType;
use Chill\ActivityBundle\Security\Authorization\ActivityVoter;
use Chill\MainBundle\Entity\Location;
use Chill\MainBundle\Entity\LocationType;
use Chill\MainBundle\Entity\Scope;
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\AbstractQuery;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Query\ResultSetMappingBuilder;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Role\Role;
use Symfony\Component\Security\Core\Security;
@@ -72,6 +79,86 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte
->findByAccompanyingPeriod($period, $scopes, true, $limit, $start, $orderBy);
}
public function findByAccompanyingPeriodSimplified(AccompanyingPeriod $period, ?int $limit = 1000): array
{
$rsm = new ResultSetMappingBuilder($this->em);
$sql = '
SELECT
a.id AS activity_id,
date,
CASE WHEN durationtime IS NOT NULL THEN (EXTRACT(EPOCH from durationtime) / 60)::int ELSE 0 END AS durationtimeminute,
attendee_id,
comment_comment,
emergency,
sentreceived,
CASE WHEN traveltime IS NOT NULL THEN (EXTRACT(EPOCH from traveltime) / 60)::int ELSE 0 END AS traveltimeminute,
t.id AS type_id, t.name as type_name,
p.id AS presence_id, p.name AS presence_name,
location.id AS location_id, location.address_id, location.name AS location_name, location.phonenumber1, location.phonenumber2, location.email,
location.locationtype_id, locationtype.title AS locationtype_title,
users.userids AS userids,
thirdparties.thirdpartyids,
persons.personids,
actions.socialactionids,
issues.socialissueids
FROM activity a
LEFT JOIN chill_main_location location ON a.location_id = location.id
LEFT JOIN chill_main_location_type locationtype ON location.locationtype_id = locationtype.id
LEFT JOIN activitytpresence p ON a.attendee_id = p.id
LEFT JOIN activitytype t ON a.type_id = t.id
LEFT JOIN LATERAL (SELECT jsonb_agg(user_id) userids, activity_id FROM activity_user AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS users ON TRUE
LEFT JOIN LATERAL (SELECT jsonb_agg(thirdparty_id) thirdpartyids, activity_id FROM activity_thirdparty AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS thirdparties ON TRUE
LEFT JOIN LATERAL (SELECT jsonb_agg(person_id) personids, activity_id FROM activity_person AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS persons ON TRUE
LEFT JOIN LATERAL (SELECT jsonb_agg(socialaction_id) socialactionids, activity_id FROM chill_activity_activity_chill_person_socialaction AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS actions ON TRUE
LEFT JOIN LATERAL (SELECT jsonb_agg(socialissue_id) socialissueids, activity_id FROM chill_activity_activity_chill_person_socialissue AS au WHERE a.id = au.activity_id GROUP BY activity_id) AS issues ON TRUE
WHERE accompanyingperiod_id = ?
ORDER BY a.date DESC, a.id DESC
LIMIT ?
';
$rsm
->addEntityResult(Activity::class, 'a')
->addFieldResult('a', 'activity_id', 'id')
->addFieldResult('a', 'date', 'date')
->addFieldResult('a', 'comment', 'comment')
->addFieldResult('a', 'sentreceived', 'sentReceived')
->addFieldResult('a', 'emergency', 'emergency')
->addJoinedEntityResult(Location::class, 'location', 'a', 'location')
->addFieldResult('location', 'location_id', 'id')
->addFieldResult('location', 'location_name', 'name')
->addFieldResult('location', 'phonenumber1', 'phonenumber1')
->addFieldResult('location', 'phonenumber2', 'phonenumber2')
->addFieldResult('location', 'email', 'email')
->addJoinedEntityResult(LocationType::class, 'locationType', 'location', 'locationType')
->addFieldResult('locationType', 'locationtype_id', 'id')
->addFieldResult('locationType', 'locationtype_title', 'title')
->addJoinedEntityResult(ActivityType::class, 'activityType', 'a', 'activityType')
->addFieldResult('activityType', 'type_id', 'id')
->addFieldResult('activityType', 'type_name', 'name')
->addJoinedEntityResult(ActivityPresence::class, 'activityPresence', 'a', 'attendee')
->addFieldResult('activityPresence', 'presence_id', 'id')
->addFieldResult('activityPresence', 'presence_name', 'name')
// results which cannot be mapped into entity
->addScalarResult('comment_comment', 'comment', Types::TEXT)
->addScalarResult('userids', 'userIds', Types::JSON)
->addScalarResult('thirdpartyids', 'thirdPartyIds', Types::JSON)
->addScalarResult('personids', 'personIds', Types::JSON)
->addScalarResult('socialactionids', 'socialActionIds', Types::JSON)
->addScalarResult('socialissueids', 'socialIssueIds', Types::JSON)
->addScalarResult('durationtimeminute', 'durationTimeMinute', Types::INTEGER)
->addScalarResult('traveltimeminute', 'travelTimeMinute', Types::INTEGER);
$nq = $this->em->createNativeQuery($sql, $rsm);
$nq->setParameter(0, $period->getId())->setParameter(1, $limit);
return $nq->getResult(AbstractQuery::HYDRATE_ARRAY);
}
/**
* @param array $orderBy
*

View File

@@ -21,6 +21,15 @@ interface ActivityACLAwareRepositoryInterface
*/
public function findByAccompanyingPeriod(AccompanyingPeriod $period, string $role, ?int $start = 0, ?int $limit = 1000, ?array $orderBy = []): array;
/**
* Return a list of activities, simplified as array (not object).
*
* The aim of this method is to get a long list of activities and keep performance.
*
* @return array an array of array, each item representing an activity
*/
public function findByAccompanyingPeriodSimplified(AccompanyingPeriod $period, ?int $limit = 1000): array;
/**
* @return Activity[]|array
*/

View File

@@ -4,6 +4,13 @@ div.chill-dropzone__below-zone {
}
}
ul[data-collection-name="documents"] {
button.remove-entry {
margin: 0.5rem 0!important;
}
}
// do it in js does not work
// document.addEventListener('DOMContentLoaded', e => {
// const dropzoneBelow = document.querySelectorAll('div.chill-dropzone__below-zone');

View File

@@ -54,19 +54,19 @@
{{ $t('activity.select_first_a_social_issue') }}
</span>
<template v-else-if="socialActionsList.length > 0">
<check-social-action
v-if="socialIssuesSelected.length || socialActionsSelected.length"
v-for="action in socialActionsList"
:key="action.id"
:action="action"
:selection="socialActionsSelected"
@updateSelected="updateActionsSelected">
</check-social-action>
</template>
<template v-else-if="socialActionsList.length > 0">
<check-social-action
v-if="socialIssuesSelected.length || socialActionsSelected.length"
v-for="action in socialActionsList"
:key="action.id"
:action="action"
:selection="socialActionsSelected"
@updateSelected="updateActionsSelected">
</check-social-action>
</template>
<span v-else-if="actionAreLoaded && socialActionsList.length === 0" class="inline-choice chill-no-data-statement mt-3">
{{ $t('activity.social_action_list_empty') }}
{{ $t('activity.social_action_list_empty') }}
</span>
@@ -111,7 +111,7 @@ export default {
return this.$store.state.socialIssuesOther;
},
socialActionsList() {
return this.$store.state.socialActionsList;
return this.$store.getters.socialActionsListSorted;
},
socialActionsSelected() {
return this.$store.state.activity.socialActions;

View File

@@ -101,6 +101,9 @@ const store = createStore({
state.activity.activityType.thirdPartiesVisible !== 0)
);
},
socialActionsListSorted(state) {
return [ ...state.socialActionsList].sort((a, b) => a.ordering - b.ordering);
},
},
mutations: {
// SocialIssueAcc
@@ -131,7 +134,6 @@ const store = createStore({
state.socialActionsList = [];
},
addActionInList(state, action) {
//console.log('add action list', action.id);
state.socialActionsList.push(action);
},
updateActionsSelected(state, actions) {

View File

@@ -1,56 +0,0 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\HttpKernel\Kernel;
class AppKernel extends Kernel
{
/**
* @return string
*/
public function getCacheDir()
{
return sys_get_temp_dir() . '/ActivityBundle/cache';
}
/**
* @return string
*/
public function getLogDir()
{
return sys_get_temp_dir() . '/ActivityBundle/logs';
}
public function registerBundles()
{
return [
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Chill\CustomFieldsBundle\ChillCustomFieldsBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new \Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Chill\PersonBundle\ChillPersonBundle(),
new Chill\MainBundle\ChillMainBundle(),
new Chill\ActivityBundle\ChillActivityBundle(),
new \Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
//add here all the required bundle (some bundle are not required)
];
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load($this->getRootDir() . '/config/config_' . $this->getEnvironment() . '.yml');
}
}

View File

@@ -1,20 +0,0 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
use Composer\Autoload\ClassLoader;
use Doctrine\Common\Annotations\AnnotationRegistry;
/** @var ClassLoader $loader */
$loader = require __DIR__ . '/../../../../../vendor/autoload.php';
AnnotationRegistry::registerLoader([$loader, 'loadClass']);
return $loader;

File diff suppressed because one or more lines are too long

View File

@@ -1,438 +0,0 @@
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "assets._default_package" (parent: assets.path_package).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.chain_provider" (parent: security.user.provider.chain).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.in_memory" (parent: security.user.provider.in_memory).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.in_memory_admin" (parent: security.user.provider.in_memory.user).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.users" (parent: doctrine.orm.security.user.provider).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.dev" (parent: security.firewall.context).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.context_listener.0" (parent: security.context_listener).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.logout_listener.default" (parent: security.logout_listener).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.logout.success_handler.default" (parent: security.logout.success_handler).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.provider.dao.default" (parent: security.authentication.provider.dao).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.success_handler.default.form_login" (parent: security.authentication.success_handler).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.failure_handler.default.form_login" (parent: security.authentication.failure_handler).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.form" (parent: security.authentication.listener.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.form.default" (parent: security.authentication.listener.form).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.form_entry_point.default" (parent: security.authentication.form_entry_point).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.anonymous.default" (parent: security.authentication.listener.anonymous).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.provider.anonymous.default" (parent: security.authentication.provider.anonymous).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.exception_listener.default" (parent: security.exception_listener).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.default" (parent: security.firewall.context).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.eventdispatcher" (parent: swiftmailer.transport.eventdispatcher.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.authhandler" (parent: swiftmailer.transport.authhandler.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.buffer" (parent: swiftmailer.transport.buffer.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.transport.smtp" (parent: swiftmailer.transport.smtp.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default" (parent: swiftmailer.mailer.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "swiftmailer.mailer.default.plugin.messagelogger" (parent: swiftmailer.plugin.messagelogger.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.default_connection.configuration" (parent: doctrine.dbal.connection.configuration).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.logger.profiling.default" (parent: doctrine.dbal.logger.profiling).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.logger.chain.default" (parent: doctrine.dbal.logger.chain).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.default_connection.event_manager" (parent: doctrine.dbal.connection.event_manager).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.dbal.default_connection" (parent: doctrine.dbal.connection).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.orm.default_configuration" (parent: doctrine.orm.configuration).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine_cache.providers.doctrine.orm.default_metadata_cache" (parent: doctrine_cache.abstract.array).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine_cache.providers.doctrine.orm.default_result_cache" (parent: doctrine_cache.abstract.array).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine_cache.providers.doctrine.orm.default_query_cache" (parent: doctrine_cache.abstract.array).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.orm.default_manager_configurator" (parent: doctrine.orm.manager_configurator.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "doctrine.orm.default_entity_manager" (parent: doctrine.orm.entity_manager.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.request" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.translation" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.security" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.templating" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.profiler" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.router" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.php" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.event" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.assetic" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.doctrine" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "validator.mapping.class_metadata_factory"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "assetic.value_supplier"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.dbal.event_manager"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.metadata.annotation_reader"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_entity_manager.event_manager"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "sensio_framework_extra.security.expression_language"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "translator.logging.inner"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "translator.data_collector.inner"; reason: private alias
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assets.path_package"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assets.url_package"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assets.static_version_strategy"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.context"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory.user"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.chain"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout_listener"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.handler.cookie_clearing"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.success_handler"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.form_entry_point"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_success_handler"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.success_handler"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_failure_handler"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.failure_handler"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.form"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.simple_form"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.simple_success_failure_handler"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.simple_preauth"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.x509"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.remote_user"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.basic"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.digest"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.dao"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.simple"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.pre_authenticated"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.exception_listener"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.switchuser_listener"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.rememberme"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.rememberme"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.persistent"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.simplehash"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.logger_prototype"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.mailer.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.sendmail.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.mail.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.null.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.buffer.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.authhandler.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.eventdispatcher.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.redirecting.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.antiflood.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.impersonate.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.plugin.messagelogger.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.smtp.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.transport.spool.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.spool.file.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "swiftmailer.spool.memory.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "assetic.worker.ensure_filter"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.apc"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.array"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.file_system"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.php_file"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.memcache"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.memcached"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.redis"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.wincache"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.xcache"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.zenddata"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.mongodb"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.riak"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine_cache.abstract.couchbase"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.logger.chain"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.logger.profiling"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.event_manager"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.configuration"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.configuration"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.entity_manager.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.manager_configurator.abstract"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.security.user.provider"; reason: abstract
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "session" previously pointing to "session.storage.mock_file" to "session.storage.filesystem".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "session.storage.native" previously pointing to "session.handler.native_file" to "session.handler".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "session.storage.php_bridge" previously pointing to "session.handler.native_file" to "session.handler".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "assetic.twig_directory_resource.kernel" previously pointing to "templating.loader.filesystem" to "templating.loader".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.text" previously pointing to "templating.engine.twig" to "templating".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.choice" previously pointing to "templating.engine.twig" to "templating".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.title" previously pointing to "templating.engine.twig" to "templating".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "translator_listener" previously pointing to "translator.data_collector" to "translator".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "validator.builder" previously pointing to "translator.data_collector" to "translator".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "data_collector.translation" previously pointing to "translator.data_collector" to "translator".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "twig.extension.trans" previously pointing to "translator.data_collector" to "translator".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "chill.custom_field.custom_fields_group_type" previously pointing to "translator.data_collector" to "translator".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "locale_listener" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "templating.helper.router" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "router.cache_warmer" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "router_listener" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.logout_url_generator" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "twig.extension.routing" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "web_profiler.controller.profiler" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "web_profiler.controller.router" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "sensio_framework_extra.controller.listener" previously pointing to "annotations.file_cache_reader" to "annotation_reader".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "sensio_framework_extra.routing.loader.annot_class" previously pointing to "annotations.file_cache_reader" to "annotation_reader".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.user_password_encoder.generic" previously pointing to "security.encoder_factory.generic" to "security.encoder_factory".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.validator.user_password" previously pointing to "security.encoder_factory.generic" to "security.encoder_factory".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.provider.dao.default" previously pointing to "security.encoder_factory.generic" to "security.encoder_factory".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "twig" previously pointing to "twig.loader.filesystem" to "twig.loader".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "swiftmailer.email_sender.listener" previously pointing to "monolog.logger" to "logger".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "swiftmailer.mailer.default" previously pointing to "swiftmailer.mailer.default.transport.smtp" to "swiftmailer.mailer.default.transport".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "templating.cache_warmer.template_paths" to "cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.asset_manager_cache_warmer" to "cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "translation.warmer" to "cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "router.cache_warmer" to "cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.proxy_cache_warmer" to "cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "translator.selector" to "translator.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "test.client.history" to "test.client".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "test.client.cookiejar" to "test.client".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "session.attribute_bag" to "session".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "session.flash_bag" to "session".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "16f9ce82abe2adc8b44c9c8d29afbc93d322e7fad5e23fae42fb16c689658c58_1" to "form.resolved_type_factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.extension" to "form.registry".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.type_extension.form.request_handler" to "form.type_extension.form.http_foundation".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.server_params" to "form.type_extension.form.request_handler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.csrf.token_generator" to "security.csrf.token_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.csrf.token_storage" to "security.csrf.token_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assets._default_package" to "assets.packages".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.validator_factory" to "validator.builder".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "profiler.storage" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.config" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.ajax" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.exception" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.events" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.logger" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.time" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.memory" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.twig" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.security" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.data_collector" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "data_collector.doctrine" to "profiler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.xml" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.yml" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.php" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_dir" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_file" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.resolver" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.event_dispatcher.parent" to "debug.event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "controller_resolver" to "debug.controller_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.provider.dao.default" to "security.authentication.manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.provider.anonymous.default" to "security.authentication.manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.expression_voter" to "security.access.decision_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.role_hierarchy_voter" to "security.access.decision_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.authenticated_voter" to "security.access.decision_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.expression_language" to "security.access.expression_voter".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map" to "security.firewall".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.request_matcher.5314eeb91110adf24b9b678372bb11bbe00e8858c519c088bfb65f525181ad3bf573fd1d" to "security.firewall.map".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.retry_entry_point" to "security.channel_listener".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user.provider.concrete.in_memory_admin" to "security.user.provider.concrete.in_memory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout.success_handler.default" to "security.logout_listener.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout.handler.session" to "security.logout_listener.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user_checker" to "security.authentication.provider.dao.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.session_strategy" to "security.authentication.listener.form.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.success_handler.default.form_login" to "security.authentication.listener.form.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.failure_handler.default.form_login" to "security.authentication.listener.form.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.form_entry_point.default" to "security.exception_listener.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.channel_listener" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.context_listener.0" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout_listener.default" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.listener.form.default" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.listener.anonymous.default" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_listener" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.exception_listener.default" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.logout_url" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.security" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.profiler" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.trans" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.assets" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.actions" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.code" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.routing" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.yaml" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.debug.stopwatch" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.expression" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.httpkernel" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.form" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.debug" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_extension" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.twig.doctrine_extension" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.dump" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.webprofiler" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.app_variable" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.configurator.environment" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.form.renderer" to "twig.extension.form".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.form.engine" to "twig.form.renderer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_1" to "swiftmailer.mailer.default.transport.authhandler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_2" to "swiftmailer.mailer.default.transport.authhandler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_3" to "swiftmailer.mailer.default.transport.authhandler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.transport.replacementfactory" to "swiftmailer.mailer.default.transport.buffer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_formula_loader" to "assetic.asset_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.chillpersonbundle" to "assetic.asset_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.chillmainbundle" to "assetic.asset_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.kernel" to "assetic.asset_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.parameter_bag" to "assetic.asset_factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.value_supplier.default" to "assetic.twig_extension".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_formula_loader.real" to "assetic.twig_formula_loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.config_cache" to "assetic.twig_formula_loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.logger.chain.default" to "doctrine.dbal.default_connection.configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.logger" to "doctrine.dbal.logger.chain.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.configuration" to "doctrine.dbal.default_connection".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.event_manager" to "doctrine.dbal.default_connection".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_metadata_driver" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.naming_strategy.default" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.quote_strategy.default" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_yml_metadata_driver" to "doctrine.orm.default_metadata_driver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_configuration" to "doctrine.orm.default_entity_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.security.expression_language.default" to "sensio_framework_extra.security.listener".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_distribution.webconfigurator.doctrine_step" to "sensio_distribution.webconfigurator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_distribution.webconfigurator.secret_step" to "sensio_distribution.webconfigurator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "translator.logging" to "translator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.mailer.default.transport.buffer" to "swiftmailer.mailer.default.transport".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.mailer.default.transport.authhandler" to "swiftmailer.mailer.default.transport".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.mailer.default.transport.eventdispatcher" to "swiftmailer.mailer.default.transport".
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "controller_resolver"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "translator.logging"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "translator.selector"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "translation.warmer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.flash_bag"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.attribute_bag"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.handler.write_check"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.extension"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.type_extension.form.request_handler"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.server_params"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.csrf.token_generator"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.csrf.token_storage"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assets.empty_package"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assets._default_package"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.engine.delegating"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.cache_warmer.template_paths"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.loader.cache"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.loader.chain"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.cache.apc"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.validator_factory"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "profiler.storage"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.config"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.ajax"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.exception"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.events"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.logger"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.time"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.memory"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "16f9ce82abe2adc8b44c9c8d29afbc93d322e7fad5e23fae42fb16c689658c58_1"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.resolver"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.xml"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.yml"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.php"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "router.cache_warmer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "annotations.cached_reader"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "debug.event_dispatcher.parent"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.session_strategy"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.expression_language"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.authenticated_voter"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.role_hierarchy_voter"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.expression_voter"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.firewall.map"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.anonymous"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.anonymous"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.retry_entry_point"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.basic_entry_point"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.digest_entry_point"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.channel_listener"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout.handler.session"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_listener"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.rememberme.token.provider.in_memory"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.logout_url"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.security"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.security"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user.provider.concrete.in_memory_admin"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.request_matcher.5314eeb91110adf24b9b678372bb11bbe00e8858c519c088bfb65f525181ad3bf573fd1d"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener.0"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout_listener.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout.success_handler.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.dao.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.success_handler.default.form_login"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.failure_handler.default.form_login"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.form.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.form_entry_point.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.anonymous.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.anonymous.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.exception_listener.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.app_variable"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.cache_warmer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.loader.native_filesystem"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.loader.chain"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.profiler"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.twig"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.trans"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.assets"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.actions"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.code"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.routing"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.yaml"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.debug.stopwatch"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.expression"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.httpkernel"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.form"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.debug"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.form.engine"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.form.renderer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.configurator.environment"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.chrome_php"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.gelf_message"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.html"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.json"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.line"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.loggly"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.normalizer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.scalar"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.wildfire"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_3"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_2"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "0ae0165e1c986a63ecc244514317fc4860d8c97fd0529833a00cfb95d75a4d92_1"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.failover"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.mailinvoker"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.replacementfactory"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.data_collector"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.mailer.default.transport.eventdispatcher"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.mailer.default.transport.authhandler"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.mailer.default.transport.buffer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.config_cache"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.asset_manager_cache_warmer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.worker.cache_busting"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.parameter_bag"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.value_supplier.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_extension"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_formula_loader"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_formula_loader.real"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.logger"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.doctrine"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.twig.doctrine_extension"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.default_connection.configuration"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.logger.chain.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.default_connection.event_manager"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.proxy_cache_warmer"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.listeners.resolve_target_entity"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.underscore"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.quote_strategy.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.quote_strategy.ansi"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_configuration"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_yml_metadata_driver"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_metadata_driver"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.routing.loader.annot_dir"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.routing.loader.annot_file"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.security.expression_language.default"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.dump"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.webprofiler"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_distribution.webconfigurator.doctrine_step"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_distribution.webconfigurator.secret_step"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.chillpersonbundle"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.chillmainbundle"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.kernel"; reason: unused
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "templating.finder" to "cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assets.empty_version_strategy" to "assets.packages".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_class" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_class" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "sensio_framework_extra.routing.loader.annot_class" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_map" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_map" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.http_utils" to "security.firewall.map.context.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.httpfoundation" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.httpfoundation" to "twig".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "annotations.reader" to "annotation_reader".
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assets.empty_version_strategy"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.finder"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "annotations.reader"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.http_utils"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_map"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.httpfoundation"; reason: unused
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "sensio_framework_extra.routing.loader.annot_class"; reason: unused

View File

@@ -1,88 +0,0 @@
<?php return array (
0 => 'Symfony\\Bundle\\FrameworkBundle\\EventListener\\SessionListener',
1 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage',
2 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage',
3 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler',
4 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy',
5 => 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy',
6 => 'Symfony\\Component\\HttpFoundation\\Session\\Session',
7 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\GlobalVariables',
8 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateReference',
9 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser',
10 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\TemplateLocator',
11 => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
12 => 'Symfony\\Component\\Routing\\RequestContext',
13 => 'Symfony\\Component\\Routing\\Router',
14 => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableUrlMatcher',
15 => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\Router',
16 => 'Symfony\\Component\\Config\\FileLocator',
17 => 'Symfony\\Component\\Debug\\ErrorHandler',
18 => 'Symfony\\Component\\EventDispatcher\\Event',
19 => 'Symfony\\Component\\EventDispatcher\\ContainerAwareEventDispatcher',
20 => 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener',
21 => 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener',
22 => 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver',
23 => 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent',
24 => 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent',
25 => 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent',
26 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent',
27 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForControllerResultEvent',
28 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent',
29 => 'Symfony\\Component\\HttpKernel\\KernelEvents',
30 => 'Symfony\\Component\\HttpKernel\\Config\\FileLocator',
31 => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerNameParser',
32 => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerResolver',
33 => 'Symfony\\Component\\Security\\Http\\Firewall',
34 => 'Symfony\\Component\\Security\\Core\\User\\UserProviderInterface',
35 => 'Symfony\\Component\\Security\\Core\\Authentication\\AuthenticationProviderManager',
36 => 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\Storage\\TokenStorage',
37 => 'Symfony\\Component\\Security\\Core\\Authorization\\AccessDecisionManager',
38 => 'Symfony\\Component\\Security\\Core\\Authorization\\AuthorizationChecker',
39 => 'Symfony\\Component\\Security\\Core\\Authorization\\Voter\\VoterInterface',
40 => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallMap',
41 => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallContext',
42 => 'Symfony\\Component\\HttpFoundation\\RequestMatcher',
43 => 'Twig_Environment',
44 => 'Twig_Extension',
45 => 'Twig_Extension_Core',
46 => 'Twig_Extension_Escaper',
47 => 'Twig_Extension_Optimizer',
48 => 'Twig_LoaderInterface',
49 => 'Twig_Markup',
50 => 'Twig_Template',
51 => 'Monolog\\Formatter\\FormatterInterface',
52 => 'Monolog\\Formatter\\LineFormatter',
53 => 'Monolog\\Handler\\HandlerInterface',
54 => 'Monolog\\Handler\\AbstractHandler',
55 => 'Monolog\\Handler\\AbstractProcessingHandler',
56 => 'Monolog\\Handler\\StreamHandler',
57 => 'Monolog\\Handler\\FingersCrossedHandler',
58 => 'Monolog\\Handler\\FilterHandler',
59 => 'Monolog\\Handler\\TestHandler',
60 => 'Monolog\\Logger',
61 => 'Symfony\\Bridge\\Monolog\\Logger',
62 => 'Symfony\\Bridge\\Monolog\\Handler\\DebugHandler',
63 => 'Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface',
64 => 'Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy',
65 => 'Symfony\\Bundle\\AsseticBundle\\DefaultValueSupplier',
66 => 'Symfony\\Bundle\\AsseticBundle\\Factory\\AssetFactory',
67 => 'Doctrine\\Common\\Annotations\\DocLexer',
68 => 'Doctrine\\Common\\Annotations\\FileCacheReader',
69 => 'Doctrine\\Common\\Annotations\\PhpParser',
70 => 'Doctrine\\Common\\Annotations\\Reader',
71 => 'Doctrine\\Common\\Lexer',
72 => 'Doctrine\\Common\\Persistence\\ConnectionRegistry',
73 => 'Doctrine\\Common\\Persistence\\Proxy',
74 => 'Doctrine\\Common\\Util\\ClassUtils',
75 => 'Doctrine\\Bundle\\DoctrineBundle\\Registry',
76 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ControllerListener',
77 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ParamConverterListener',
78 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\DateTimeParamConverter',
79 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\DoctrineParamConverter',
80 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\ParamConverterInterface',
81 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\ParamConverterManager',
82 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\TemplateListener',
83 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\HttpCacheListener',
84 => 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\SecurityListener',
85 => 'Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\ConfigurationAnnotation',
);

View File

@@ -1,77 +0,0 @@
imports:
- { resource: parameters.yml }
framework:
secret: Not very secret
router: { resource: "%kernel.root_dir%/config/routing.yml" }
form: true
csrf_protection: true
session: ~
default_locale: fr
translator: { fallback: fr }
profiler: { only_exceptions: false }
templating:
engines: ['twig']
doctrine:
dbal:
driver: pdo_pgsql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
mapping_types:
jsonb: json_array
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
# Assetic Configuration
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
security:
providers:
chain_provider:
chain :
providers: [in_memory, users]
in_memory:
memory:
users:
admin: { password: olala, roles: 'ROLE_ADMIN' }
users:
entity:
class: Chill\MainBundle\Entity\User
property: username
encoders:
Chill\MainBundle\Entity\User:
algorithm: bcrypt
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
anonymous: ~
form_login:
csrf_parameter: _csrf_token
csrf_token_id: authenticate
csrf_provider: form.csrf_provider
logout: ~
http_basic:
access_control:
#disable authentication for tests
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
#- { path: ^/admin, roles: ROLE_ADMIN }
#- { path: ^/, roles: ROLE_USER }

View File

@@ -1,7 +0,0 @@
imports:
- { resource: config.yml } #here we import a config.yml file, this is not required
framework:
test: ~
session:
storage_id: session.storage.filesystem

View File

@@ -1,8 +0,0 @@
# config/config_test.yml
imports:
- { resource: config.yml } #here we import a config.yml file, this is not required
framework:
test: ~
session:
storage_id: session.storage.filesystem

View File

@@ -1,9 +0,0 @@
#required by ConfigCustomizablesEntitiesTest::testNotEmptyConfig
imports:
- { resource: config_test.yml }
chill_custom_fields:
customizables_entities:
- { class: Test\With\A\Dummy\Entity, name: test }

View File

@@ -1,7 +0,0 @@
parameters:
database_host: chill__database
database_port: 5432
database_name: postgres
database_user: postgres
database_password: postgres
locale: fr

View File

@@ -1,7 +0,0 @@
parameters:
database_host: 127.0.0.1
database_port: 5432
database_name: test0
database_user: postgres
database_password: postgres
locale: fr

View File

@@ -1,7 +0,0 @@
parameters:
database_host: 127.0.0.1
database_port: 5434
database_name: symfony
database_user: symfony
database_password: symfony
locale: fr

View File

@@ -1,10 +0,0 @@
cl_custom_fields:
resource: .
type: chill_routes
chill_main:
resource: "@ChillMainBundle/Resources/config/routing.yml"
test_custom_field_form_render:
path: /customfieldsgroup/test/render/{id}
defaults: { _controller: ChillCustomFieldsBundle:CustomFieldsGroup:renderForm }

View File

@@ -1,28 +0,0 @@
#!/usr/bin/env php
<?php
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
// for more information
//umask(0000);
set_time_limit(0);
/** @var \Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__.'/autoload.php';
$input = new ArgvInput();
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
if ($debug) {
Debug::enable();
}
$kernel = new AppKernel($env, $debug);
$application = new Application($kernel);
$application->run($input);

View File

@@ -1,41 +0,0 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (
isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !(in_array($_SERVER['REMOTE_ADDR'], ['127.0.0.1', 'fe80::1', '::1'], true) || \PHP_SAPI === 'cli-server')
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check ' . basename(__FILE__) . ' for more information.');
}
$loader = require_once __DIR__ . '/../app/bootstrap.php.cache';
Debug::enable();
require_once __DIR__ . '/../app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

View File

@@ -83,6 +83,10 @@
{{ form_row(edit_form.comment) }}
{% endif %}
{%- if edit_form.privateComment is defined -%}
{{ form_row(edit_form.privateComment) }}
{% endif %}
{%- if edit_form.attendee is defined -%}
{{ form_row(edit_form.attendee) }}
{% endif %}
@@ -116,3 +120,11 @@
{{ form_end(edit_form) }}
{# {{ form(delete_form) }} #}
{% block js %}
{{ encore_entry_script_tags('mod_pickentity_type') }}
{% endblock %}
{% block css %}
{{ encore_entry_link_tags('mod_pickentity_type') }}
{% endblock %}

View File

@@ -2,12 +2,30 @@
{% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) %}
{% if no_action is not defined or no_action == false %}
<li>
<a class="btn btn-misc" href="{{ chill_path_add_return_path('chill_main_notification_create', {
'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity',
'entityId': activity.id
}) }}">
<i class="fa fa-paper-plane fa-fw"></i>
{{ 'notification.Notify'|trans }}</a>
{% set showGroup = activity.accompanyingPeriod is not null and activity.accompanyingPeriod.hasUser and activity.accompanyingPeriod.user is not same as(app.user) %}
<div class="{% if showGroup %}btn-group{% endif %}" {% if showGroup %}role="group"{% endif %}>
{% if showGroup %}
<button id="btnGroupNotifyButtons" type="button" class="btn btn-notify dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
{{ 'notification.Notify'|trans }}
</button>
<ul class="dropdown-menu" aria-labelledby="btnGroupNotifyButtons">
<li>
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': activity.id, 'tos': [activity.accompanyingPeriod.user.id]}) }}">
{{ 'notification.Notify referrer'|trans }}
</a>
</li>
<li>
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': activity.id}) }}">
{{ 'notification.Notify any'|trans }}
</a>
</li>
</ul>
{% else %}
<a class="btn btn-notify" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': activity.id}) }}">
{{ 'notification.Notify'|trans }}
</a>
{% endif %}
</div>
</li>
{% endif %}
{% if context == 'person' and activity.accompanyingPeriod is not empty %}

View File

@@ -46,7 +46,7 @@
{% include 'ChillActivityBundle:Activity:list.html.twig' with {'context': 'person'} %}
{% if is_granted('CHILL_ACTIVITY_CREATE_PERSON', person) %}
{% if is_granted('CHILL_ACTIVITY_CREATE', person) %}
<ul class="record_actions sticky-form-buttons">
<li>
<a href="{{ path('chill_activity_activity_new', {'person_id': person_id, 'accompanying_period_id': accompanying_course_id}) }}"

View File

@@ -81,19 +81,22 @@
{% endif %}
{%- if form.comment is defined -%}
{# TODO .. public and private #}
{{ form_row(form.comment) }}
{% endif %}
{%- if form.privateComment is defined -%}
{{ form_row(form.privateComment) }}
{% endif %}
{%- if form.attendee is defined -%}
{{ form_row(form.attendee) }}
{% endif %}
{%- if form.documents is defined -%}
{{ form_row(form.documents) }}
<div data-docgen-template-picker="data-docgen-template-picker" data-entity-class="Chill\ActivityBundle\Entity\Activity" data-entity-id="{{ entity.id }}"></div>
{% endif %}
{%- if form.attendee is defined -%}
{{ form_row(form.attendee) }}
{% endif %}
{# TODO .. status #}
<ul class="record_actions sticky-form-buttons">
@@ -116,3 +119,11 @@
</li>
</ul>
{{ form_end(form) }}
{% block js %}
{{ encore_entry_script_tags('mod_pickentity_type') }}
{% endblock %}
{% block css %}
{{ encore_entry_link_tags('mod_pickentity_type') }}
{% endblock %}

View File

@@ -1,4 +1,5 @@
{%- set t = entity.type -%}
{% set userId = app.user.id %}
{%- import "@ChillDocStore/Macro/macro.html.twig" as m -%}
<h1>{{ "Activity"|trans }}</h1>
@@ -146,13 +147,28 @@
</dd>
{% endif %}
{% if t.privateCommentVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) and entity.privateComment.hasCommentForUser(app.user) %}
{% if t.privateCommentLabel is not empty %}
<dt class="inline">{{ t.privateCommentLabel }}</dt>
{% else %}
<dt class="inline">{{ 'Private comment'|trans }}</dt>
{% endif %}
<dd>
<section class="chill-entity entity-comment-embeddable">
<blockquote class="chill-user-quote private-quote">
{{ entity.privateComment.comments[userId] }}
</blockquote>
</section>
</dd>
{% endif %}
{% if t.documentsVisible and is_granted('CHILL_ACTIVITY_SEE_DETAILS', entity) %}
<dt class="inline">{{ 'Documents'|trans }}</dt>
<dd>
{% if entity.documents|length > 0 %}
<ul>
{% for d in entity.documents %}
<li>{{ m.download_button(d) }}</li>
<li>{{ d.title }}{{ m.download_button(d) }}</li>
{% endfor %}
</ul>
{% else %}
@@ -201,9 +217,30 @@
</a>
</li>
<li>
<a class="btn btn-notify" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': entity.id}) }}">
{{ 'notification.Notify'|trans }}
</a>
{% set showGroup = entity.accompanyingPeriod is not null and entity.accompanyingPeriod.hasUser and entity.accompanyingPeriod.user is not same as(app.user) %}
<div class="{% if showGroup %}btn-group{% endif %}" {% if showGroup %}role="group"{% endif %}>
{% if showGroup %}
<button id="btnGroupNotifyButtons" type="button" class="btn btn-notify dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
{{ 'notification.Notify'|trans }}
</button>
<ul class="dropdown-menu" aria-labelledby="btnGroupNotifyButtons">
<li>
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': entity.id, 'tos': [entity.accompanyingPeriod.user.id]}) }}">
{{ 'notification.Notify referrer'|trans }}
</a>
</li>
<li>
<a class="dropdown-item" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': entity.id}) }}">
{{ 'notification.Notify any'|trans }}
</a>
</li>
</ul>
{% else %}
<a class="btn btn-notify" href="{{ chill_path_add_return_path('chill_main_notification_create', {'entityClass': 'Chill\\ActivityBundle\\Entity\\Activity', 'entityId': entity.id}) }}">
{{ 'notification.Notify'|trans }}
</a>
{% endif %}
</div>
</li>
{% if is_granted('CHILL_ACTIVITY_UPDATE', entity) %}
<li>

View File

@@ -1,10 +1,10 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_edit_title.html.twig') %}
{% include('@ChillMain/CRUD/_edit_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
{% block content_form_actions_view %}{% endblock %}
{% block content_form_actions_save_and_show %}{% endblock %}

View File

@@ -1,4 +1,4 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityPresence list'|trans }}</h1>
@@ -34,7 +34,7 @@
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li>
<a href="{{ path('chill_crud_activity_presence_new') }}" class="btn btn-create">
{{ 'Create a new activity presence'|trans }}

View File

@@ -1,11 +1,11 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_new_title.html.twig') %}
{% include('@ChillMain/CRUD/_new_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% embed '@ChillMain/CRUD/_new_content.html.twig' %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_new_content.html.twig' %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}
{% endblock %}

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReason edit'|trans }}</h1>
@@ -24,7 +8,7 @@
{{ form_row(edit_form.active) }}
{{ form_row(edit_form.category) }}
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li class="cancel">
<a href="{{ path('chill_activity_activityreason') }}" class="btn btn-cancel">{{ 'Back to the list'|trans }}</a>
</li>

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReason list'|trans }}</h1>
@@ -45,7 +29,11 @@
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li class='cancel'>
<a href="{{ path('chill_main_admin_central') }}" class="btn btn-cancel">{{'Back to the admin'|trans}}</a>
</li>
<li>
<a href="{{ path('chill_activity_activityreason_new') }}" class="btn btn-new">
{{ 'Create a new activity reason'|trans }}

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReason creation'|trans }}</h1>
@@ -24,7 +8,7 @@
{{ form_row(form.active) }}
{{ form_row(form.category) }}
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li class="cancel">
<a href="{{ path('chill_activity_activityreason') }}" class="btn btn-cancel">{{ 'Back to the list'|trans }}</a>
</li>

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReason'|trans }}</h1>
@@ -38,7 +22,7 @@
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li class="cancel">
<a href="{{ path('chill_activity_activityreason') }}" class="btn btn-cancel">
{{ 'Back to the list'|trans }}

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReasonCategory edit'|trans }}</h1>
@@ -23,7 +7,7 @@
{{ form_row(edit_form.name) }}
{{ form_row(edit_form.active) }}
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li class="cancel">
<a href="{{ path('chill_activity_activityreasoncategory') }}" class="btn btn-cancel">
{{ 'Back to the list'|trans }}

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReasonCategory list'|trans }}</h1>
@@ -46,7 +30,7 @@
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li>
<a href="{{ path('chill_activity_activityreasoncategory_new') }}" class="btn btn-new">
{{ 'Create a new activity category reason'|trans }}

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReasonCategory creation'|trans }}</h1>
@@ -23,7 +7,7 @@
{{ form_row(form.name) }}
{{ form_row(form.active) }}
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li class="cancel">
<a href="{{ path('chill_activity_activityreasoncategory') }}" class="btn btn-cancel">{{ 'Back to the list'|trans }}</a>
</li>

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityReasonCategory'|trans }}</h1>
@@ -37,7 +21,7 @@
</tr>
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li class="cancel">
<a href="{{ path('chill_activity_activityreasoncategory') }}" class="btn btn-cancel">
{{ 'Back to the list'|trans }}

View File

@@ -1,10 +1,10 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_edit_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
{% block content_form_actions_view %}{% endblock %}
{% block content_form_actions_save_and_show %}{% endblock %}

View File

@@ -1,20 +1,4 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityType list'|trans }}</h1>
@@ -50,7 +34,7 @@
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li>
<a href="{{ path('chill_crud_activity_type_new') }}" class="btn btn-create">
{{ 'Create a new activity type'|trans }}

View File

@@ -1,10 +1,10 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_new_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_new_content.html.twig' %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}

View File

@@ -1,12 +1,12 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_edit_title.html.twig') %}
{% include('@ChillMain/CRUD/_edit_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
{% block content_form_actions_view %}{% endblock %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
{% block content_form_actions_view %}{% endblock %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}
{% endblock %}

View File

@@ -1,4 +1,4 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block admin_content %}
<h1>{{ 'ActivityTypeCategory list'|trans }}</h1>
@@ -34,7 +34,7 @@
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li>
<a href="{{ path('chill_crud_activity_type_category_new') }}" class="btn btn-create">
{{ 'Create a new activity type category'|trans }}

View File

@@ -1,11 +1,11 @@
{% extends "@ChillActivity/Admin/layout_activity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_new_title.html.twig') %}
{% include('@ChillMain/CRUD/_new_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% embed '@ChillMain/CRUD/_new_content.html.twig' %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_new_content.html.twig' %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}
{% endblock %}

View File

@@ -1,5 +1,5 @@
{#
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
<info@champs-libres.coop> / <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
@@ -20,7 +20,7 @@
{% block vertical_menu_content %}
{{ chill_menu('admin_activity', {
'layout': '@ChillActivity/Admin/menu_activity.html.twig',
'layout': '@ChillMain/Admin/menu_admin_section.html.twig',
}) }}
{% endblock %}

View File

@@ -1,20 +0,0 @@
{#
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
<info@champs-libres.coop> / <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillMain/Menu/verticalMenu.html.twig" %}
{% block v_menu_title %}{{ 'Activity configuration menu'|trans }}{% endblock %}

View File

@@ -133,7 +133,7 @@ class ActivityVoter extends AbstractChillVoter implements ProvideRoleHierarchyIn
// change attribute CREATE
if (self::CREATE === $attribute) {
$attribute = self::CREATE_PERSON;
return $this->voterHelper->voteOnAttribute(self::CREATE_PERSON, $subject->getPerson(), $token);
}
} elseif ($subject->getAccompanyingPeriod() instanceof AccompanyingPeriod) {
if (!$this->security->isGranted(AccompanyingPeriodVoter::SEE, $subject->getAccompanyingPeriod())) {
@@ -144,7 +144,8 @@ class ActivityVoter extends AbstractChillVoter implements ProvideRoleHierarchyIn
if (AccompanyingPeriod::STEP_CLOSED === $subject->getAccompanyingPeriod()->getStep()) {
return false;
}
$attribute = self::CREATE_ACCOMPANYING_COURSE;
return $this->voterHelper->voteOnAttribute(self::CREATE_ACCOMPANYING_COURSE, $subject->getAccompanyingPeriod(), $token);
}
} else {
throw new RuntimeException('Could not determine context of activity.');
@@ -158,12 +159,12 @@ class ActivityVoter extends AbstractChillVoter implements ProvideRoleHierarchyIn
// transform the attribute
if (self::CREATE === $attribute) {
$attribute = self::CREATE_ACCOMPANYING_COURSE;
return $this->voterHelper->voteOnAttribute(self::CREATE_ACCOMPANYING_COURSE, $subject, $token);
}
} elseif ($subject instanceof Person) {
// transform the attribute
if (self::CREATE === $attribute) {
$attribute = self::CREATE_PERSON;
return $this->voterHelper->voteOnAttribute(self::CREATE_PERSON, $subject, $token);
}
}

View File

@@ -130,8 +130,10 @@ class ActivityContext implements
return $this->personRender->renderString($p, []);
},
'multiple' => false,
'required' => false,
'expanded' => true,
'label' => $options[$key . 'Label'],
'placeholder' => $this->translator->trans('Any person selected'),
]);
}
}
@@ -209,6 +211,7 @@ class ActivityContext implements
*/
public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void
{
$storedObject->setTitle($this->translatableStringHelper->localize($template->getName()));
$entity->addDocument($storedObject);
$this->em->persist($storedObject);

View File

@@ -0,0 +1,286 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\ActivityBundle\Service\DocGenerator;
use Chill\ActivityBundle\Entity\ActivityPresence;
use Chill\ActivityBundle\Entity\ActivityType;
use Chill\ActivityBundle\Repository\ActivityACLAwareRepositoryInterface;
use Chill\DocGeneratorBundle\Context\DocGeneratorContextWithAdminFormInterface;
use Chill\DocGeneratorBundle\Context\DocGeneratorContextWithPublicFormInterface;
use Chill\DocGeneratorBundle\Entity\DocGeneratorTemplate;
use Chill\DocStoreBundle\Entity\StoredObject;
use Chill\MainBundle\Entity\Location;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Repository\UserRepository;
use Chill\MainBundle\Templating\TranslatableStringHelperInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
use Chill\PersonBundle\Repository\PersonRepository;
use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository;
use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository;
use Chill\PersonBundle\Service\DocGenerator\AccompanyingPeriodContext;
use Chill\ThirdPartyBundle\Entity\ThirdParty;
use Chill\ThirdPartyBundle\Repository\ThirdPartyRepository;
use DateTime;
use libphonenumber\PhoneNumber;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
class ListActivitiesByAccompanyingPeriodContext implements
DocGeneratorContextWithAdminFormInterface,
DocGeneratorContextWithPublicFormInterface
{
private AccompanyingPeriodContext $accompanyingPeriodContext;
private ActivityACLAwareRepositoryInterface $activityACLAwareRepository;
private NormalizerInterface $normalizer;
private PersonRepository $personRepository;
private SocialActionRepository $socialActionRepository;
private SocialIssueRepository $socialIssueRepository;
private ThirdPartyRepository $thirdPartyRepository;
private TranslatableStringHelperInterface $translatableStringHelper;
private UserRepository $userRepository;
public function __construct(
AccompanyingPeriodContext $accompanyingPeriodContext,
ActivityACLAwareRepositoryInterface $activityACLAwareRepository,
NormalizerInterface $normalizer,
PersonRepository $personRepository,
SocialActionRepository $socialActionRepository,
SocialIssueRepository $socialIssueRepository,
ThirdPartyRepository $thirdPartyRepository,
TranslatableStringHelperInterface $translatableStringHelper,
UserRepository $userRepository
) {
$this->accompanyingPeriodContext = $accompanyingPeriodContext;
$this->activityACLAwareRepository = $activityACLAwareRepository;
$this->normalizer = $normalizer;
$this->personRepository = $personRepository;
$this->socialActionRepository = $socialActionRepository;
$this->socialIssueRepository = $socialIssueRepository;
$this->thirdPartyRepository = $thirdPartyRepository;
$this->translatableStringHelper = $translatableStringHelper;
$this->userRepository = $userRepository;
}
public function adminFormReverseTransform(array $data): array
{
return $this->accompanyingPeriodContext->adminFormReverseTransform($data);
}
public function adminFormTransform(array $data): array
{
return $this->accompanyingPeriodContext->adminFormTransform($data);
}
public function buildAdminForm(FormBuilderInterface $builder): void
{
$this->accompanyingPeriodContext->buildAdminForm($builder);
}
public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void
{
$this->accompanyingPeriodContext->buildPublicForm($builder, $template, $entity);
}
public function getData(DocGeneratorTemplate $template, $entity, array $contextGenerationData = []): array
{
$data = $this->accompanyingPeriodContext->getData($template, $entity, $contextGenerationData);
$data['activities'] = $this->getActivitiesSimplified($entity);
return $data;
}
public function getDescription(): string
{
return 'docgen.Accompanying period with a list of activities description';
}
public function getEntityClass(): string
{
return AccompanyingPeriod::class;
}
public function getFormData(DocGeneratorTemplate $template, $entity): array
{
return $this->accompanyingPeriodContext->getFormData($template, $entity);
}
public static function getKey(): string
{
return self::class;
}
public function getName(): string
{
return 'docgen.Accompanying period with a list of activities';
}
public function hasAdminForm(): bool
{
return $this->accompanyingPeriodContext->hasAdminForm();
}
public function hasPublicForm(DocGeneratorTemplate $template, $entity): bool
{
return $this->accompanyingPeriodContext->hasPublicForm($template, $entity);
}
public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void
{
$this->accompanyingPeriodContext->storeGenerated($template, $storedObject, $entity, $contextGenerationData);
}
private function getActivitiesSimplified(AccompanyingPeriod $period)
{
$activities =
$this->activityACLAwareRepository->findByAccompanyingPeriodSimplified($period);
$results = [];
foreach ($activities as $row) {
$activity = $row[0];
$activity['date'] = $this->normalizer->normalize($activity['date'], 'docgen', [
AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => DateTime::class,
]);
if (null === $activity['location']) {
$activity['location'] = $this->normalizer->normalize(null, 'docgen', [
AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => Location::class,
]);
$activity['location']['type'] = 'location';
} else {
$activity['location']['isNull'] = false;
$activity['location']['type'] = 'location';
foreach (['1', '2'] as $key) {
$activity['location']['phonenumber' . $key] = $this->normalizer->normalize(
$activity['location']['phonenumber' . $key],
'docgen',
[AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => PhoneNumber::class]
);
}
}
if (is_numeric($activity['location']['locationType']['id'])) {
$activity['location']['locationType']['title'] = $this->translatableStringHelper->localize(
$activity['location']['locationType']['title']
);
$activity['location']['locationType']['isNull'] = false;
$activity['location']['locationType']['type'] = 'locationType';
}
if (null !== $activity['activityType']) {
$activity['activityType']['name'] = $this->translatableStringHelper->localize(
$activity['activityType']['name']
);
$activity['activityType']['isNull'] = false;
$activity['activityType']['type'] = 'activityType';
} else {
$activity['activityType'] = $this->normalizer->normalize(null, 'docgen', [
AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => ActivityType::class,
]);
}
if (null !== $activity['attendee']) {
$activity['attendee']['name'] = $this->translatableStringHelper->localize(
$activity['attendee']['name']
);
$activity['attendee']['isNull'] = false;
$activity['attendee']['type'] = 'activityPresence';
} else {
$activity['attendee'] = $this->normalizer->normalize(null, 'docgen', [
AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => ActivityPresence::class,
]);
}
$activity['comment'] = (string) $row['comment'];
$activity['travelTimeMinute'] = $row['travelTimeMinute'];
$activity['durationTimeMinute'] = $row['durationTimeMinute'];
if (null !== $row['userIds']) {
foreach ($row['userIds'] as $id) {
$activity['users'][] = $this->normalizer->normalize(
$this->userRepository->find($id),
'docgen',
[AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => User::class]
);
}
} else {
$activity['users'] = [];
}
if (null !== $row['personIds']) {
foreach ($row['personIds'] as $id) {
$activity['persons'][] = $this->normalizer->normalize(
$this->personRepository->find($id),
'docgen',
[AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => Person::class]
);
}
} else {
$activity['persons'] = [];
}
if (null !== $row['thirdPartyIds']) {
foreach ($row['thirdPartyIds'] as $id) {
$activity['thirdParties'][] = $this->normalizer->normalize(
$this->thirdPartyRepository->find($id),
'docgen',
[AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => ThirdParty::class]
);
}
} else {
$activity['thirdParties'] = [];
}
if (null !== $row['socialActionIds']) {
foreach ($row['socialActionIds'] as $id) {
$activity['socialActions'][] = $this->normalizer->normalize(
$this->socialActionRepository->find($id),
'docgen',
[AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => SocialAction::class]
);
}
} else {
$activity['socialActions'] = [];
}
if (null !== $row['socialIssueIds']) {
foreach ($row['socialIssueIds'] as $id) {
$activity['socialIssues'][] = $this->normalizer->normalize(
$this->socialIssueRepository->find($id),
'docgen',
[AbstractNormalizer::GROUPS => ['docgen:read'], 'docgen:expects' => SocialIssue::class]
);
}
} else {
$activity['socialIssues'] = [];
}
$results[] = $activity;
}
return $results;
}
}

View File

@@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\ActivityBundle\Tests\Controller;
use Chill\ActivityBundle\Entity\ActivityType;
use RuntimeException;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\Security\Core\Role\Role;
@@ -209,7 +210,7 @@ final class ActivityControllerTest extends WebTestCase
//get the social PermissionGroup, and remove CHILL_ACTIVITY_*
$socialPermissionGroup = $em
->getRepository('ChillMainBundle:PermissionsGroup')
->getRepository(\Chill\MainBundle\Entity\PermissionsGroup::class)
->findOneByName('social');
$withoutActivityPermissionGroup = (new \Chill\MainBundle\Entity\PermissionsGroup())
->setName('social without activity');
@@ -221,7 +222,7 @@ final class ActivityControllerTest extends WebTestCase
}
//create groupCenter
$groupCenter = new \Chill\MainBundle\Entity\GroupCenter();
$groupCenter->setCenter($em->getRepository('ChillMainBundle:Center')
$groupCenter->setCenter($em->getRepository(\Chill\MainBundle\Entity\Center::class)
->findOneBy(['name' => 'Center A']))
->setPermissionsGroup($withoutActivityPermissionGroup);
$em->persist($withoutActivityPermissionGroup);
@@ -249,7 +250,7 @@ final class ActivityControllerTest extends WebTestCase
$em = self::$kernel->getContainer()
->get('doctrine.orm.entity_manager');
$activities = $em->getRepository('ChillActivityBundle:Activity')
$activities = $em->getRepository(\Chill\ActivityBundle\Entity\Activity::class)
->findBy(['person' => $person]);
if (count($activities) === 0) {
@@ -281,7 +282,7 @@ final class ActivityControllerTest extends WebTestCase
$em = self::$kernel->getContainer()
->get('doctrine.orm.entity_manager');
$person = $em->getRepository('ChillPersonBundle:Person')
$person = $em->getRepository(\Chill\PersonBundle\Entity\Person::class)
->findOneBy([
'firstName' => 'Depardieu',
'lastName' => 'Gérard',
@@ -304,7 +305,7 @@ final class ActivityControllerTest extends WebTestCase
{
$reasons = self::$kernel->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('ChillActivityBundle:ActivityReason')
->getRepository(\Chill\ActivityBundle\Entity\ActivityReason::class)
->findAll();
$reason = $reasons[array_rand($reasons)];
@@ -323,7 +324,7 @@ final class ActivityControllerTest extends WebTestCase
{
$types = self::$kernel->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('ChillActivityBundle:ActivityType')
->getRepository(ActivityType::class)
->findAll();
return $types[array_rand($types)];
@@ -339,7 +340,7 @@ final class ActivityControllerTest extends WebTestCase
{
$user = self::$kernel->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('ChillMainBundle:User')
->getRepository(\Chill\MainBundle\Entity\User::class)
->findOneByUsername($username);
if (null === $user) {
@@ -349,7 +350,7 @@ final class ActivityControllerTest extends WebTestCase
$center = self::$kernel->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('ChillMainBundle:Center')
->getRepository(\Chill\MainBundle\Entity\Center::class)
->findOneByName($centerName);
// get scope reachable by both role UPDATE and DELETE

View File

@@ -0,0 +1,114 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\ActivityBundle\Tests\Entity;
use Chill\ActivityBundle\Entity\Activity;
use Chill\PersonBundle\AccompanyingPeriod\SocialIssueConsistency\AccompanyingPeriodSocialIssueConsistencyEntityListener;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
use Doctrine\ORM\Event\LifecycleEventArgs;
use PHPUnit\Framework\TestCase;
use Prophecy\PhpUnit\ProphecyTrait;
/**
* @internal
* @coversNothing
*/
final class ActivityTest extends TestCase
{
use ProphecyTrait;
public function testHierarchySocialActions(): void
{
$parent = new SocialAction();
$child = new SocialAction();
$parent->addChild($child);
$grandChild = new SocialAction();
$child->addChild($grandChild);
$activity = new Activity();
$activity->addSocialAction($parent);
$this->assertCount(1, $activity->getSocialActions());
$this->assertContains($parent, $activity->getSocialActions());
$activity->addSocialAction($grandChild);
$this->assertCount(1, $activity->getSocialActions());
$this->assertContains($grandChild, $activity->getSocialActions());
$this->assertNotContains($parent, $activity->getSocialActions());
$activity->addSocialAction($child);
$this->assertCount(1, $activity->getSocialActions());
$this->assertContains($grandChild, $activity->getSocialActions());
$this->assertNotContains($parent, $activity->getSocialActions());
$this->assertNotContains($child, $activity->getSocialActions());
$activity->addSocialAction($another = new SocialAction());
$this->assertCount(2, $activity->getSocialActions());
$this->assertContains($grandChild, $activity->getSocialActions());
$this->assertContains($another, $activity->getSocialActions());
$this->assertNotContains($parent, $activity->getSocialActions());
$this->assertNotContains($child, $activity->getSocialActions());
}
public function testHierarchySocialIssues(): void
{
$listener = new AccompanyingPeriodSocialIssueConsistencyEntityListener();
$event = $this->prophesize(LifecycleEventArgs::class)->reveal();
$parent = new SocialIssue();
$child = new SocialIssue();
$parent->addChild($child);
$grandChild = new SocialIssue();
$child->addChild($grandChild);
$activity = new Activity();
$activity->setAccompanyingPeriod(new AccompanyingPeriod());
$activity->addSocialIssue($parent);
$listener->preUpdate($activity, $event);
$this->assertCount(1, $activity->getSocialIssues());
$this->assertContains($parent, $activity->getSocialIssues());
$activity->addSocialIssue($grandChild);
$listener->preUpdate($activity, $event);
$this->assertCount(1, $activity->getSocialIssues());
$this->assertContains($grandChild, $activity->getSocialIssues());
$this->assertNotContains($parent, $activity->getSocialIssues());
$activity->addSocialIssue($child);
$listener->preUpdate($activity, $event);
$this->assertCount(1, $activity->getSocialIssues());
$this->assertContains($grandChild, $activity->getSocialIssues());
$this->assertNotContains($parent, $activity->getSocialIssues());
$this->assertNotContains($child, $activity->getSocialIssues());
$activity->addSocialIssue($another = new SocialIssue());
$listener->preUpdate($activity, $event);
$this->assertCount(2, $activity->getSocialIssues());
$this->assertContains($grandChild, $activity->getSocialIssues());
$this->assertContains($another, $activity->getSocialIssues());
$this->assertNotContains($parent, $activity->getSocialIssues());
$this->assertNotContains($child, $activity->getSocialIssues());
}
}

View File

@@ -68,10 +68,10 @@ final class ActivityTypeTest extends KernelTestCase
->push($request);
$this->user = $this->container->get('doctrine.orm.entity_manager')
->getRepository('ChillMainBundle:User')
->getRepository(\Chill\MainBundle\Entity\User::class)
->findOneBy(['username' => 'center a_social']);
$this->center = $this->container->get('doctrine.orm.entity_manager')
->getRepository('ChillMainBundle:Center')
->getRepository(\Chill\MainBundle\Entity\Center::class)
->findOneBy(['name' => 'Center A']);
$token = $prophet->prophesize();
$token->willExtend(AbstractToken::class);

View File

@@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\ActivityBundle\Tests\Form\Type;
use Chill\ActivityBundle\Entity\ActivityType;
use Chill\ActivityBundle\Form\Type\TranslatableActivityType;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Form\Extension\Core\Type\FormType;
@@ -95,7 +96,7 @@ final class TranslatableActivityTypeTest extends KernelTestCase
protected function getRandomType($active = true)
{
$types = $this->container->get('doctrine.orm.entity_manager')
->getRepository('ChillActivityBundle:ActivityType')
->getRepository(ActivityType::class)
->findBy(['active' => $active]);
return $types[array_rand($types)];

View File

@@ -10,48 +10,22 @@ chill_activity_activityreasoncategory:
resource: "@ChillActivityBundle/config/routes/activityreasoncategory.yaml"
prefix: /
chill_admin_activity_index:
chill_activity_admin_index:
path: /{_locale}/admin/activity
controller: Chill\ActivityBundle\Controller\AdminController::indexActivityAction
options:
menus:
admin_section:
label: Activities
order: 2000
icons: [tag]
chill_admin_activity_redirect_to_admin_index:
path: /{_locale}/admin/activity_redirect_to_main
controller: Chill\ActivityBundle\Controller\AdminController::redirectToAdminIndexAction
options:
menus:
admin_activity:
order: 0
label: Main admin menu
chill_activity_type_admin:
path: /{_locale}/admin/activity/type
controller: cscrud_activity_type_controller:index
options:
menus:
admin_activity:
order: 2020
label: 'Activity Types'
chill_activity_type_category_admin:
path: /{_locale}/admin/activity/type_category
controller: cscrud_activity_type_category_controller:index
options:
menus:
admin_activity:
order: 2999
label: 'Activity Types Categories'
chill_activity_presence_admin:
path: /{_locale}/admin/activity/presence
controller: cscrud_activity_presence_controller:index
options:
menus:
admin_activity:
order: 2021
label: 'Activity Presences'

View File

@@ -1,11 +1,6 @@
chill_activity_activityreason:
path: /{_locale}/admin/activityreason/
controller: Chill\ActivityBundle\Controller\ActivityReasonController::indexAction
options:
menus:
admin_activity:
order: 2000
label: "Activity Reasons"
chill_activity_activityreason_show:
path: /{_locale}/admin/activityreason/{id}/show

View File

@@ -1,11 +1,6 @@
chill_activity_activityreasoncategory:
path: /{_locale}/admin/activityreasoncategory/
controller: Chill\ActivityBundle\Controller\ActivityReasonCategoryController::indexAction
options:
menus:
admin_activity:
order: 2010
label: "Activity Reasons Category"
chill_activity_activityreasoncategory_show:
path: /{_locale}/admin/activityreasoncategory/{id}/show

View File

@@ -0,0 +1,35 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\Migrations\Activity;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20220425133027 extends AbstractMigration
{
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE activitytype DROP privateCommentLabel');
$this->addSql('ALTER TABLE activitytype DROP privateCommentVisible');
}
public function getDescription(): string
{
return 'add private comment option to activity types';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE activitytype ADD privateCommentLabel VARCHAR(255) DEFAULT \'\' NOT NULL');
$this->addSql('ALTER TABLE activitytype ADD privateCommentVisible SMALLINT DEFAULT 1 NOT NULL');
}
}

View File

@@ -0,0 +1,33 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\Migrations\Activity;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20220527124438 extends AbstractMigration
{
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE chill_person_accompanying_period_work DROP privateComment_comments');
}
public function getDescription(): string
{
return 'add private comment to activity';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE activity ADD privateComment_comments JSON DEFAULT \'{}\'');
}
}

View File

@@ -44,6 +44,7 @@ Received: Recevoir
by: 'Par '
location: Lieu
Reasons: Sujets
Private comment: Commentaire privé
#forms
@@ -66,6 +67,14 @@ Choose a type: Choisir un type
1 hour 30: 1 heure 30
1 hour 45: 1 heure 45
2 hours: 2 heures
2 hours 15: 2 heures 15
2 hours 30: 2 heures 30
2 hours 45: 2 heures 45
3 hours: 3 heures
3 hours 30: 3 heures 30
4 hours: 4 heures
4 hours 30: 4 heures 30
5 hours: 5 heures
Concerned groups: Parties concernées
Persons in accompanying course: Usagers du parcours
Third persons: Tiers non-pro.
@@ -105,7 +114,7 @@ Activity type configuration: Configuration des categories d'activités
Activity Reasons: Sujets d'une activité
Activity Reasons Category: Catégories de sujet d'activités
Activity Types Categories: Catégories des types d'activité
Activity Presences: Presences des activités
Activity Presences: Presences aux activités
# Crud
@@ -116,6 +125,9 @@ crud:
activity_type_category:
title_new: Nouvelle catégorie de type d'activité
title_edit: Edition d'une catégorie de type d'activité
activity_presence:
title_new: Nouvelle Présence aux activités
title_edit: Edition d'une Présence aux activités
# activity reason admin
ActivityReason list: Liste des sujets
@@ -137,6 +149,10 @@ ActivityReasonCategory: Catégorie de sujet d'activité
ActivityReasonCategory is active and will be proposed: La catégorie est active et sera proposée
ActivityReasonCategory is inactive and won't be proposed: La catégorie est inactive et ne sera pas proposée
#activity presence admin
ActivityPresence list: Liste des Présences aux activités
Create a new activity presence: Créer une nouvelle "Présence aux activités"
# activity type type admin
ActivityType list: Types d'activités
Create a new activity type: Créer un nouveau type d'activité
@@ -160,6 +176,8 @@ Reasons visible: Visibilité du champ Sujet
Reasons label: Libellé du champ Sujet
Comment visible: Visibilité du champ Commentaire
Comment label: Libellé du champ Commentaire
Private comment visible: Visibilité du champ Commentaire Privé
Private comment label: Libellé du champ Commentaire Privé
Emergency visible: Visibilité du champ Urgent
Emergency label: Libellé du champ Urgent
Accompanying period visible: Visibilité du champ Période d'accompagnement
@@ -232,3 +250,5 @@ This is the minimal activity data: Activité n°
docgen:
Activity basic: Echange
A basic context for activity: Contexte pour les échanges
Accompanying period with a list of activities: Parcours d'accompagnement avec liste des échanges
Accompanying period with a list of activities description: Ce contexte reprend les informations du parcours, et tous les échanges pour un parcours. Les échanges ne sont pas filtrés.

View File

@@ -0,0 +1,234 @@
#general
Show the activity: Toon activiteit
Edit the activity: Wijzig activiteit
Activity: Activiteit
Duration time: Duur
Duration Time: Duur
durationTime: duur
Travel time: Duur van verplaatsing
Attendee: Aanwezigheden
attendee: aanwezigheden
list_reasons: Onderwerpen
user_username: gebruikersnaam
circle_name: naam kring
Remark: Opmerking
No comments: Geen opmerkingen
Add a new activity: Voeg een nieuwe activiteit toe
Activity list: Lijst van activiteiten
present: aanwezig
not present: afwezig
Delete: Verwijderen
Update: Bijwerken
Update activity: Activieit bijwerken
Scope: Werkingsgebied
Activity data: Gegevens activiteit
Activity location: Locatie activiteit
No reason associated: Geen onderwerp
No social issues associated: Geen sociaal vraagstuk
No social actions associated: Geen maatschappelijke actie
There isn't any activities.: Er zijn geen activiteiten
type_name: Soort activiteit
person_firstname: voornaam
person_lastname: familienaam
person_id: Identificatienummer persoon
Type: Soort
Invisible: Onzichtbaar
Optional: Optioneel
Required: Verplicht
Persons: Personen
Users: Gebruikers
Emergency: Dringend
Sent received: Inkomend / Uitgaand
Sent: Verzenden
Received: Ontvangen
by: 'Door '
location: Plaats
Reasons: Onderwerpen
#forms
Activity creation: Nouvelle activité
Create: Créer
Back to the list: Retour à la liste
Save activity: Sauver l'activité
Reset form: Remise à zéro du formulaire
Choose the duration: Choisir la durée
Choose a type: Choisir un type
5 minutes: 5 minutes
10 minutes: 10 minutes
15 minutes: 15 minutes
20 minutes: 20 minutes
25 minutes: 25 minutes
30 minutes: 30 minutes
45 minutes: 45 minutes
1 hour: 1 heure
1 hour 15: 1 heure 15
1 hour 30: 1 heure 30
1 hour 45: 1 heure 45
2 hours: 2 heures
Concerned groups: Parties concernées
Persons in accompanying course: Usagers du parcours
Third persons: Tiers non-pro.
Others persons: Usagers
Third parties: Tiers professionnels
Users concerned: T(M)S
activity:
Insert a document: Insérer un document
Remove a document: Supprimer le document
comment: Commentaire
No documents: Aucun document
#timeline
'%user% has done an %activity_type%': '%user% a effectué une activité de type "%activity_type%"'
#controller
'Success : activity created!': L'activité a été créée.
'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'activité n'a pas été créée.
'Success : activity updated!': L'activité a été mise à jour.
'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'activité n'a pas été mise à jour.
# ROLES
CHILL_ACTIVITY_CREATE: Créer une activité
CHILL_ACTIVITY_UPDATE: Modifier une activité
CHILL_ACTIVITY_SEE: Voir une activité
CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des activités
CHILL_ACTIVITY_DELETE: Supprimer une activité
CHILL_ACTIVITY_STATS: Statistique des activités
CHILL_ACTIVITY_LIST: Liste des activités
# admin
Activities: Activités
Activity configuration: Configuration des activités
Activity configuration menu: Configuration des activités
Activity types: Types d'activité
Activity type configuration: Configuration des categories d'activités
Activity Reasons: Sujets d'une activité
Activity Reasons Category: Catégories de sujet d'activités
Activity Types Categories: Catégories des types d'activité
Activity Presences: Presences des activités
# Crud
crud:
activity_type:
title_new: Nouveau type d'activité
title_edit: Edition d'un type d'activité
activity_type_category:
title_new: Nouvelle catégorie de type d'activité
title_edit: Edition d'une catégorie de type d'activité
# activity reason admin
ActivityReason list: Liste des sujets
Create a new activity reason: Créer un nouveau sujet
Active: Actif
Category: Catégorie
ActivityReason creation: Nouveau sujet
ActivityReason edit: Modification d'un sujet
ActivityReason: Sujet d'activité
The entity is inactive and won't be proposed: Le sujet est inactif et ne sera pas proposé
The entity is active and will be proposed: Le sujet est actif et sera proposé
#activity reason category admin
ActivityReasonCategory list: Catégories de sujets
Create a new activity category reason: Créer une nouvelle catégorie
ActivityReasonCategory creation: Nouvelle catégorie de sujet
ActivityReasonCategory edit: Modification d'une catégorie de sujet
ActivityReasonCategory: Catégorie de sujet d'activité
ActivityReasonCategory is active and will be proposed: La catégorie est active et sera proposée
ActivityReasonCategory is inactive and won't be proposed: La catégorie est inactive et ne sera pas proposée
# activity type type admin
ActivityType list: Types d'activités
Create a new activity type: Créer un nouveau type d'activité
Persons visible: Visibilité du champ Personnes
Persons label: Libellé du champ Personnes
User visible: Visibilité du champ Utilisateur
User label: Libellé du champ Utilisateur
Date visible: Visibilité du champ Date
Date label: Libellé du champ Date
Location visible: Visibilité du champ Lieu
Location label: Libellé du champ Lieu
Third parties visible: Visibilité du champ Tiers
Third parties label: Libellé du champ Tiers
Duration time visible: Visibilité du champ Durée
Duration time label: Libellé du champ Durée
Travel time visible: Visibilité du champ Durée de déplacement
Travel time label: Libellé du champ Durée de déplacement
Attendee visible: Visibilité du champ Présence de l'usager
Attendee label: Libellé du champ Présence de l'usager
Reasons visible: Visibilité du champ Sujet
Reasons label: Libellé du champ Sujet
Comment visible: Visibilité du champ Commentaire
Comment label: Libellé du champ Commentaire
Emergency visible: Visibilité du champ Urgent
Emergency label: Libellé du champ Urgent
Accompanying period visible: Visibilité du champ Période d'accompagnement
Accompanying period label: Libellé du champ Période d'accompagnement
Social issues visible: Visibilité du champ Problématiques sociales
Social issues label: Libellé du champ Problématiques sociales
Social actions visible: Visibilité du champ Action sociale
Social actions label: Libellé du champ Action sociale
Users visible: Visibilité du champ Utilisateurs
Users label: Libellé du champ Utilisateurs
Sent received visible: Visibilité du champ Entrant / Sortant
Sent received label: Libellé du champ Entrant / Sortant
Documents visible: Visibilité du champ Documents
Documents label: Libellé du champ Documents
# activity type category admin
ActivityTypeCategory list: Liste des catégories des types d'activité
Create a new activity type category: Créer une nouvelle catégorie de type d'activité
# activity delete
Remove activity: Supprimer une activité
Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr de vouloir supprimer une activité qui concerne "%name%" ?
The activity has been successfully removed.: L'activité a été supprimée.
# exports
Count activities: Nombre d'activités
Count activities by various parameters.: Compte le nombre d'activités enregistrées en fonction de différents paramètres.
Sum activity duration: Total de la durée des activités
Sum activities duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres.
List activities: Liste les activités
Number of activities: Nombre d'activités
#filters
Filter by reason: Filtrer par sujet d'activité
'Filtered by reasons: only %list%': 'Filtré par sujet: seulement %list%'
'Filtered by activity type: only %list%': "Filtré par type d'activity: seulement %list%"
Filtered by date activity: Filtrer par date d'activité
Activities after this date: Activités après cette date
Activities before this date: Activités avant cette date
"Filtered by date of activity: only between %date_from% and %date_to%": "Filtré par date de l'activité: uniquement entre %date_from% et %date_to%"
This date should be after the date given in "Implied in an activity after this date" field: Cette date devrait être postérieure à la date donnée dans le champ "activités après cette date"
Filtered by person having an activity in a period: Uniquement les personnes ayant eu une activité dans la période donnée
Implied in an activity after this date: Impliqué dans une activité après cette date
Implied in an activity before this date: Impliqué dans une activité avant cette date
Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Filtré par personnes associées à une activité entre %date_from% et %date_to% avec les sujets %reasons_name%
Activity reasons for those activities: Sujets de ces activités
Filter by activity type: Filtrer par type d'activité
#aggregators
Activity type: Type d'activité
Activity user: Utilisateur lié à l'activity
By reason: Par sujet
By category of reason: Par catégorie de sujet
Reason's level: Niveau du sujet
Group by reasons: Sujet d'activité
Aggregate by activity user: Aggréger par utilisateur lié à l'activité
Aggregate by activity type: Aggréger par type d'activité
Aggregate by activity reason: Aggréger par sujet de l'activité
Last activities: Les dernières activités
See activity in accompanying course context: Voir l'activité dans le contexte du parcours d'accompagnement
You get notified of an activity which does not exists any more: Cette notification ne correspond pas à une activité valide.
you are not allowed to see it details: La notification fait référence à une activité à laquelle vous n'avez pas accès.
This is the minimal activity data: Activité n°
docgen:
Activity basic: Echange
A basic context for activity: Contexte pour les échanges

View File

@@ -0,0 +1,23 @@
The reasons's level should not be empty: Het onderwerp niveau mag niet leeg zijn.
At least one reason must be choosen: Kies minstens één onderwerp
For this type of activity, you must add at least one person: Voor dit soort activiteit dient u minstens één persoon toe te voegen.
For this type of activity, you must add at least one user: Voor dit soort activiteit dient u minstens één gebruiker toe te voegen.
For this type of activity, you must add at least one third party: Voor dit soort activiteit dient u minstens één externe partner toe te voegen.
For this type of activity, user is required: Voor dit soort activiteit, dient u een gebruiker in te vullen.
For this type of activity, date is required: Voor dit soort activiteit, dient u een datum in te vullen.
For this type of activity, location is required: Voor dit soort activiteit, dient u een locatie in te vullen.
For this type of activity, attendee is required: Voor dit soort activiteit, dient u minstend één 'aanwezige persoon' in te vullen.
For this type of activity, duration time is required: Voor dit soort activiteit, dient u een duur in te vullen.
For this type of activity, travel time is required: Voor dit soort activiteit, dient u een verplaatsingsduur in te vullen.
For this type of activity, reasons is required: Voor dit soort activiteit, dient u een onderwerp in te vullen.
For this type of activity, comment is required: Voor dit soort activiteit, dient u een opmerking in te vullen.
For this type of activity, sent/received is required: Voor dit soort activiteit, dient u het veld 'inkomend/uitgaand' in te vullen.
For this type of activity, document is required: Voor dit soort activiteit, dient u een document toe te voegen.
For this type of activity, emergency is required: Voor dit soort activiteit, is het veld 'dringend' verplicht.
For this type of activity, accompanying period is required: Voor dit soort activiteit, dient u een begeleidingstraject in te vullen.
For this type of activity, you must add at least one social issue: Voor dit soort activiteit, dient u een sociaal vraagstuk aan te duiden.
For this type of activity, you must add at least one social action: Voor dit soort activiteit, dient u een maatschappelijke actie toe te voegen.
# admin
This parameter must be equal to social issue parameter: Deze parameter moet gelijk zijn aan de parameter "zichtbaarheid veld sociaal vraagstuk".
The socialActionsVisible value is not compatible with the socialIssuesVisible value: De waarde van de parameter "zichtbaarheid veld maatschappelijke actie" is niet compatibel met de waarde van de parameter "zichtbaarheid veld sociaal vraagstuk".

View File

@@ -0,0 +1,29 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\AsideActivityBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
/**
* Class AdminController.
*/
class AdminController extends AbstractController
{
/**
* @Route("/{_locale}/admin/aside-activity", name="chill_aside_activity_admin")
*/
public function indexAdminAction()
{
return $this->render('ChillAsideActivityBundle:Admin:index.html.twig');
}
}

View File

@@ -31,6 +31,10 @@ class Configuration implements ConfigurationInterface
->isRequired()
->defaultValue(
[
['label' => '1 minutes', 'seconds' => 60],
['label' => '2 minutes', 'seconds' => 120],
['label' => '3 minutes', 'seconds' => 180],
['label' => '4 minutes', 'seconds' => 240],
['label' => '5 minutes', 'seconds' => 300],
['label' => '10 minutes', 'seconds' => 600],
['label' => '15 minutes', 'seconds' => 900],

View File

@@ -14,8 +14,6 @@ namespace Chill\AsideActivityBundle\Menu;
use Knp\Menu\MenuItem;
use Symfony\Component\Security\Core\Security;
use function in_array;
final class AdminMenuBuilder implements \Chill\MainBundle\Routing\LocalMenuBuilderInterface
{
private Security $security;
@@ -32,27 +30,25 @@ final class AdminMenuBuilder implements \Chill\MainBundle\Routing\LocalMenuBuild
return;
}
if (in_array($menuId, ['admin_index', 'admin_section'], true)) {
$menu->addChild('Aside activities', [
$menu->addChild('Aside activities', [
'route' => 'chill_aside_activity_admin',
])
->setAttribute('class', 'list-group-item-header')
->setExtras([
'order' => 7000,
'explain' => 'Aside activity type configuration',
]);
$menu
->addChild('Aside activity categories', [
'route' => 'chill_crud_aside_activity_category_index',
])
->setExtras([
'order' => 900,
'explain' => 'Aside activity type configuration',
]);
} else {
$menu
->addChild('Aside activity categories', [
'route' => 'chill_crud_aside_activity_category_index',
])
->setExtras([
'order' => '50',
]);
}
->setExtras([
'order' => 7010,
]);
}
public static function getMenuIds(): array
{
return ['admin_index', 'admin_section', 'admin_aside_activity'];
return ['admin_section', 'admin_aside_activity'];
}
}

View File

@@ -1,7 +1,9 @@
{% extends "@ChillMain/Admin/layoutWithVerticalMenu.html.twig" %}
{% block vertical_menu_content %}
{{ chill_menu('admin_aside_activity') }}
{{ chill_menu('admin_aside_activity', {
'layout': '@ChillMain/Admin/menu_admin_section.html.twig',
}) }}
{% endblock %}
{% block layout_wvm_content %}

View File

@@ -1,10 +1,10 @@
{% extends "@ChillAsideActivity/Admin/layout_asideactivity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_edit_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
{% block content_form_actions_view %}{% endblock %}
{% block content_form_actions_save_and_show %}{% endblock %}

View File

@@ -1,7 +1,10 @@
{% extends "@ChillAsideActivity/Admin/layout_asideactivity.html.twig" %}
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
{% block title %}{{ 'Aside Activity Type List'|trans }}{% endblock title %}
{% block admin_content %}
<h1>{{ 'Aside Activity Type List'|trans }}</h1>
<h1>{{ 'Aside Activity Type List'|trans }}</h1>
<table class="records_list table table-bordered border-dark">
<thead>
@@ -36,7 +39,7 @@
</tbody>
</table>
<ul class="record_actions">
<ul class="record_actions sticky-form-buttons">
<li>
<a href="{{ path('chill_crud_aside_activity_category_new') }}" class="btn btn-create">
{{ 'Create a new aside activity type'|trans }}

View File

@@ -1,10 +1,10 @@
{% extends "@ChillAsideActivity/Admin/layout_asideactivity.html.twig" %}
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
{% block title %}
{% include('@ChillMain/CRUD/_new_title.html.twig') %}
{% endblock %}
{% block layout_wvm_content %}
{% block admin_content %}
{% embed '@ChillMain/CRUD/_new_content.html.twig' %}
{% block content_form_actions_save_and_show %}{% endblock %}
{% endembed %}

View File

@@ -38,7 +38,7 @@ crud:
confirm_message_delete: Êtes-vous sûr de vouloir supprimer cette activité annexe?
aside_activity_category:
title_new: Nouvelle catégorie d'activité annexe
title_edit: Edition d'une catégorie de type d'activité
title_edit: Édition d'une catégorie de type d'activité
#forms
Create a new aside activity type: Nouvelle categorie d'activité annexe
@@ -165,3 +165,4 @@ Phonecall: "Appel téléphonique"
Aside activities: Activités annexes
Aside activity types: Types d'activités annexes
Aside activity type configuration: Configuration des categories d'activités annexes
Aside activity configuration: Configuration des activités annexes

View File

@@ -0,0 +1,167 @@
#general
Show the aside activity: Toon de nevenactiviteit
Edit the aside activity: Wijzig de nevenactiviteit
Remove aside activity: Verwijder de nevenactiviteit
Aside activity: Nevenactiviteit
Aside Activity Type List: Lijst van nevenactiviteiten
Duration time: Duur
durationTime: duur
user_username: gebruikersnaam
Remark: Opmerking
No comments: Geen opmerkingen
Add a new aside activity: Nevenactiviteit toeveogen
Aside activity list: Nevenactiviteiten
present: aanwezig
not present: afwezig
Delete: Verwijderen
Update: Bijwerken
Aside activity data: Gegevens van nevenactiviteit
There aren't any aside activities.: Geen nevenactiviteiten om weer te geven
Type: Type
Invisible: Onzichtbaar
Optional: Optioneel
Required: Verplicht
Persons: Personen
Users: Gebruikers
Emergency: Dringend
by: "Door "
location: Plaats
# Crud
crud:
aside_activity:
title_view: Details nevenactiviteit
title_new: Nieuwe nevenactiviteit
title_edit: Wijzig nevenactiviteit
title_delete: Verwijder nevenactiviteit
button_delete: Verwijderen
confirm_message_delete: Bent u zeker deze nevenactiviteit te willen verwijderen?
aside_activity_category:
title_new: Nieuwe categorie nevenactiviteiten
title_edit: Wijzigen categorie nevenactiviteiten
#forms
Create a new aside activity type: Nieuwe categorie nevenactiviteiten
Back to the list: Terug naar de lijst
Choose the duration: Kies een duur
Choose a category: Kies een categorie
Is active: Actief
For agent: Voor de gebruiker
date: Datum
Duration: Duur
Note: Opmerking
Choose the agent for whom this activity is created: Kies de gebruiker voor wie deze nevenactiviteit wordt aangemaakt.
Choose the activity category: Kies een categorie
#Duration
minutes: minuten
hour: uur
hours: uren
day: dag
days: dagen
5 minutes: 5 minuten
10 minutes: 10 minuten
15 minutes: 15 minuten
20 minutes: 20 minuten
25 minutes: 25 minuten
30 minutes: 30 minuten
45 minutes: 45 minuten
1 hour: 1 uur
1 hour 15: 1 uur 15
1 hour 30: 1 uur 30
1 hour 45: 1 uur 45
2 hours: 2 uren
2 hours 30: 2 uur 30
3 hours: 3 uren
3 hours 30: 3 uur 30
4 hours: 4 uren
4 hours 30: 4 uur 30
5 hours: 5 uren
5 hours 30: 5 uur 30
6 hours: 6 uren
6 hours 30: 6 uur 30
7 hours: 7 uren
7 hours 30: 7 uur 30
8 hours: 8 uren
8 hours 30: 8 uur 30
9 hours: 9 uren
9 hours 30: 9 uur 30
10 hours: 10 uren
1/2 day: 1/2 dag
1 day: 1 dag
1 1/2 days: 1 1/2 dagen
2 days: 2 dagen
2 1/2 days: 2 1/2 dagen
3 days: 3 dagen
3 1/2 days: 3 1/2 dagen
4 days: 4 dagen
4 1/2 days: 4 1/2 dagen
5 days: 5 dagen
5 1/2 days: 5 1/2 dagen
6 days: 6 dagen
6 1/2 days: 6 1/2 dagen
7 days: 7 dagen
7 1/2 days: 7 1/2 dagen
8 days: 8 dagen
8 1/2 days: 8 1/2 dagen
9 days: 9 dagen
9 1/2 days: 9 1/2 dagen
10 days: 10 dagen
10 1/2 days: 10 1/2 dagen
11 days: 11 dagen
11 1/2 days: 11 1/2 dagen
12 days: 12 dagen
12 1/2 days: 12 1/2 dagen
13 days: 13 dagen
13 1/2 days: 13 1/2 dagen
14 days: 14 dagen
14 1/2 days: 14 1/2 dagen
15 days: 15 dagen
15 1/2 days: 15 1/2 dagen
16 days: 16 dagen
16 1/2 days: 16 1/2 dagen
17 days: 17 dagen
17 1/2 days: 17 1/2 dagen
18 days: 18 dagen
18 1/2 days: 18 1/2 dagen
19 days: 19 dagen
19 1/2 days: 19 1/2 dagen
20 days: 20 dagen
20 1/2 days: 20 1/2 dagen
21 days: 21 dagen
21 1/2 days: 21 1/2 dagen
22 days: 22 dagen
22 1/2 days: 22 1/2 dagen
23 days: 23 dagen
23 1/2 days: 23 1/2 dagen
24 days: 24 dagen
24 1/2 days: 24 1/2 dagen
25 days: 25 dagen
25 1/2 days: 25 1/2 dagen
26 days: 26 dagen
26 1/2 days: 26 1/2 dagen
27 days: 27 dagen
27 1/2 days: 27 1/2 dagen
28 days: 28 dagen
28 1/2 days: 28 1/2 dagen
29 days: 29 dagen
29 1/2 days: 29 1/2 dagen
30 days: 30 dagen
#list
My aside activities: Mijn nevenactiviteiten
#Aside activity delete
Delete aside activity: Verwijder een nevenactiviteit
Are you sure you want to remove the aside activity concerning "%name%" ?: Bent u zeker deze nevenactiviteit voor "%name%" te willen verwijderen ?
The activity has been successfully removed.: De nevenactiviteit werd verwijdert.
#Menu
Create an aside activity: "Maak een nevenactiviteit aan"
Aside activity categories: Categorieën van nevenactiviteiten
Aside activity configuration menu: "Configuratie menu voor nevenactiviteiten"
Phonecall: "Telefoon oproep"
# admin
Aside activities: Nevenactiviteiten
Aside activity types: Types nevenactiviteiten
Aside activity type configuration: Configuratie categorieën nevenactiviteiten

View File

@@ -0,0 +1 @@
You must not add twice the same category in the parent tree (previous result returned): Je mag niet tweemaal dezelfde entiteit aanduiden in de stamboom. (Het vorige resultaat werd hersteld)

View File

@@ -13,6 +13,7 @@ namespace Chill\BudgetBundle\Menu;
use Chill\BudgetBundle\Security\Authorization\BudgetElementVoter;
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
use Chill\PersonBundle\Entity\Household\Household;
use Knp\Menu\MenuItem;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Contracts\Translation\TranslatorInterface;

View File

@@ -13,6 +13,7 @@ namespace Chill\BudgetBundle\Menu;
use Chill\BudgetBundle\Security\Authorization\BudgetElementVoter;
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
use Chill\PersonBundle\Entity\Person;
use Knp\Menu\MenuItem;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Contracts\Translation\TranslatorInterface;

View File

@@ -25,13 +25,13 @@ use function count;
*/
class SummaryBudget implements SummaryBudgetInterface
{
private const QUERY_CHARGE_BY_HOUSEHOLD = 'select SUM(amount) AS sum, type FROM chill_budget.charge WHERE (person_id IN (_ids_) OR household_id = ?) AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private const QUERY_CHARGE_BY_HOUSEHOLD = 'select SUM(amount) AS sum, string_agg(comment, \'|\') AS comment, type FROM chill_budget.charge WHERE (person_id IN (_ids_) OR household_id = ?) AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private const QUERY_CHARGE_BY_PERSON = 'select SUM(amount) AS sum, type FROM chill_budget.charge WHERE person_id = ? AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private const QUERY_CHARGE_BY_PERSON = 'select SUM(amount) AS sum, string_agg(comment, \'|\') AS comment, type FROM chill_budget.charge WHERE person_id = ? AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private const QUERY_RESOURCE_BY_HOUSEHOLD = 'select SUM(amount) AS sum, type FROM chill_budget.resource WHERE (person_id IN (_ids_) OR household_id = ?) AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private const QUERY_RESOURCE_BY_HOUSEHOLD = 'select SUM(amount) AS sum, string_agg(comment, \'|\') AS comment, type FROM chill_budget.resource WHERE (person_id IN (_ids_) OR household_id = ?) AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private const QUERY_RESOURCE_BY_PERSON = 'select SUM(amount) AS sum, type FROM chill_budget.resource WHERE person_id = ? AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private const QUERY_RESOURCE_BY_PERSON = 'select SUM(amount) AS sum, string_agg(comment, \'|\') AS comment, type FROM chill_budget.resource WHERE person_id = ? AND NOW() BETWEEN startdate AND COALESCE(enddate, \'infinity\'::timestamp) GROUP BY type';
private array $chargeLabels;
@@ -110,7 +110,8 @@ class SummaryBudget implements SummaryBudgetInterface
$rsm = new ResultSetMapping();
$rsm
->addScalarResult('sum', 'sum')
->addScalarResult('type', 'type');
->addScalarResult('type', 'type')
->addScalarResult('comment', 'comment');
return $rsm;
}
@@ -121,7 +122,7 @@ class SummaryBudget implements SummaryBudgetInterface
$labels = $this->chargeLabels;
return array_combine($keys, array_map(function ($i) use ($labels) {
return ['sum' => 0.0, 'label' => $this->translatableStringHelper->localize($labels[$i])];
return ['sum' => 0.0, 'label' => $this->translatableStringHelper->localize($labels[$i]), 'comment' => ''];
}, $keys));
}
@@ -131,7 +132,7 @@ class SummaryBudget implements SummaryBudgetInterface
$labels = $this->resourcesLabels;
return array_combine($keys, array_map(function ($i) use ($labels) {
return ['sum' => 0.0, 'label' => $this->translatableStringHelper->localize($labels[$i])];
return ['sum' => 0.0, 'label' => $this->translatableStringHelper->localize($labels[$i]), 'comment' => ''];
}, $keys));
}
@@ -158,6 +159,7 @@ class SummaryBudget implements SummaryBudgetInterface
$result[$row['type']] = [
'sum' => (float) $row['sum'],
'label' => $this->translatableStringHelper->localize($label[$row['type']]),
'comment' => (string) $row['comment'],
];
}

View File

@@ -0,0 +1,8 @@
budget:
number of elements: >-
{nb_items, plural,
=0 {Geen element}
one {Één element}
many {# elementen}
other {# elementen}
}

Some files were not shown because too many files have changed in this diff Show More