From d6135641c563cd8b08632ecbaeb6595263e7eccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sun, 22 Aug 2021 00:50:37 +0200 Subject: [PATCH 1/4] add a list of suggested persons on activity --- .../Activity/components/ConcernedGroups.vue | 77 +++-- .../Resources/public/vuejs/Activity/store.js | 312 +++++++++--------- 2 files changed, 207 insertions(+), 182 deletions(-) diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue index 05b7dd218..1cbd299dc 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue @@ -2,7 +2,7 @@
-
- +
    +
  • + {{ p.text }} +
  • +
+ + + - -
+ + diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js index c87573797..952cb5b25 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js @@ -5,165 +5,175 @@ const debug = process.env.NODE_ENV !== 'production'; //console.log('window.activity', window.activity); const addIdToValue = (string, id) => { - let array = string ? string.split(',') : []; - array.push(id.toString()); - let str = array.join(); - return str; + let array = string ? string.split(',') : []; + array.push(id.toString()); + let str = array.join(); + return str; }; const removeIdFromValue = (string, id) => { - let array = string.split(','); - array = array.filter(el => el !== id.toString()); - let str = array.join(); - return str; + let array = string.split(','); + array = array.filter(el => el !== id.toString()); + let str = array.join(); + return str; }; const store = createStore({ - strict: debug, - state: { - activity: window.activity, - socialIssuesOther: [], - socialActionsList: [], - }, - mutations: { - - // SocialIssueAcc - addIssueInList(state, issue) { - //console.log('add issue list', issue.id); - state.activity.accompanyingPeriod.socialIssues.push(issue); - }, - addIssueSelected(state, issue) { - //console.log('add issue selected', issue.id); - state.activity.socialIssues.push(issue); - }, - updateIssuesSelected(state, issues) { - //console.log('update issues selected', issues); - state.activity.socialIssues = issues; - }, - updateIssuesOther(state, payload) { - //console.log('update issues other'); - state.socialIssuesOther = payload; - }, - removeIssueInOther(state, issue) { - //console.log('remove issue other', issue.id); - state.socialIssuesOther = state.socialIssuesOther.filter(i => i.id !== issue.id); - }, - resetActionsList(state) { - //console.log('reset list actions'); - state.socialActionsList = []; - }, - addActionInList(state, action) { - //console.log('add action list', action.id); - state.socialActionsList.push(action); - }, - updateActionsSelected(state, actions) { - //console.log('update actions selected', actions); - state.activity.socialActions = actions; - }, - filterList(state, list) { - const filterList = (list) => { - // remove duplicates entries - list = list.filter((value, index) => list.findIndex(array => array.id === value.id) === index); - // alpha sort - list.sort((a,b) => (a.text > b.text) ? 1 : ((b.text > a.text) ? -1 : 0)); - return list; - }; - if (list === 'issues') { - state.activity.accompanyingPeriod.socialIssues = filterList(state.activity.accompanyingPeriod.socialIssues); - } - if (list === 'actions') { - state.socialActionsList = filterList(state.socialActionsList); - } - }, - - // ConcernedGroups - addPersonsInvolved(state, payload) { - //console.log('### mutation addPersonsInvolved', payload.result.type); - switch (payload.result.type) { - case 'person': - state.activity.persons.push(payload.result); - break; - case 'thirdparty': - state.activity.thirdParties.push(payload.result); - break; - case 'user': - state.activity.users.push(payload.result); - break; - }; - }, - removePersonInvolved(state, payload) { - //console.log('### mutation removePersonInvolved', payload.type); - switch (payload.type) { - case 'person': - state.activity.persons = state.activity.persons.filter(person => person !== payload); - break; - case 'thirdparty': - state.activity.thirdParties = state.activity.thirdParties.filter(thirdparty => thirdparty !== payload); - break; - case 'user': - state.activity.users = state.activity.users.filter(user => user !== payload); - break; - }; + strict: debug, + state: { + activity: window.activity, + socialIssuesOther: [], + socialActionsList: [], + }, + getters: { + filterSuggestedPersons(state) { + if (typeof(state.activity.accompanyingPeriod) === 'undefined') { + return []; } - }, - actions: { - addIssueSelected({ commit }, issue) { - let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues"); - aSocialIssues.value = addIdToValue(aSocialIssues.value, issue.id); - commit('addIssueSelected', issue); - }, - updateIssuesSelected({ commit }, payload) { - let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues"); - aSocialIssues.value = ''; - payload.forEach(item => { - aSocialIssues.value = addIdToValue(aSocialIssues.value, item.id); - }); - commit('updateIssuesSelected', payload); - }, - updateActionsSelected({ commit }, payload) { - let aSocialActions = document.getElementById("chill_activitybundle_activity_socialActions"); - aSocialActions.value = ''; - payload.forEach(item => { - aSocialActions.value = addIdToValue(aSocialActions.value, item.id); - }); - commit('updateActionsSelected', payload); - }, - addPersonsInvolved({ commit }, payload) { - //console.log('### action addPersonsInvolved', payload.result.type); - switch (payload.result.type) { - case 'person': - let aPersons = document.getElementById("chill_activitybundle_activity_persons"); - aPersons.value = addIdToValue(aPersons.value, payload.result.id); - break; - case 'thirdparty': - let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties"); - aThirdParties.value = addIdToValue(aThirdParties.value, payload.result.id); - break; - case 'user': - let aUsers = document.getElementById("chill_activitybundle_activity_users"); - aUsers.value = addIdToValue(aUsers.value, payload.result.id); - break; - }; - commit('addPersonsInvolved', payload); - }, - removePersonInvolved({ commit }, payload) { - //console.log('### action removePersonInvolved', payload); - switch (payload.type) { - case 'person': - let aPersons = document.getElementById("chill_activitybundle_activity_persons"); - aPersons.value = removeIdFromValue(aPersons.value, payload.id); - break; - case 'thirdparty': - let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties"); - aThirdParties.value = removeIdFromValue(aThirdParties.value, payload.id); - break; - case 'user': - let aUsers = document.getElementById("chill_activitybundle_activity_users"); - aUsers.value = removeIdFromValue(aUsers.value, payload.id); - break; - }; - commit('removePersonInvolved', payload); + let existingPersonIds = state.activity.persons.map(p => p.id); + return state.activity.accompanyingPeriod.participations.filter(p => p.endDate === null) + .map(p => p.person) + .filter(p => !existingPersonIds.includes(p.id)) + } + }, + mutations: { + // SocialIssueAcc + addIssueInList(state, issue) { + //console.log('add issue list', issue.id); + state.activity.accompanyingPeriod.socialIssues.push(issue); + }, + addIssueSelected(state, issue) { + //console.log('add issue selected', issue.id); + state.activity.socialIssues.push(issue); + }, + updateIssuesSelected(state, issues) { + //console.log('update issues selected', issues); + state.activity.socialIssues = issues; + }, + updateIssuesOther(state, payload) { + //console.log('update issues other'); + state.socialIssuesOther = payload; + }, + removeIssueInOther(state, issue) { + //console.log('remove issue other', issue.id); + state.socialIssuesOther = state.socialIssuesOther.filter(i => i.id !== issue.id); + }, + resetActionsList(state) { + //console.log('reset list actions'); + state.socialActionsList = []; + }, + addActionInList(state, action) { + //console.log('add action list', action.id); + state.socialActionsList.push(action); + }, + updateActionsSelected(state, actions) { + //console.log('update actions selected', actions); + state.activity.socialActions = actions; + }, + filterList(state, list) { + const filterList = (list) => { + // remove duplicates entries + list = list.filter((value, index) => list.findIndex(array => array.id === value.id) === index); + // alpha sort + list.sort((a,b) => (a.text > b.text) ? 1 : ((b.text > a.text) ? -1 : 0)); + return list; + }; + if (list === 'issues') { + state.activity.accompanyingPeriod.socialIssues = filterList(state.activity.accompanyingPeriod.socialIssues); } + if (list === 'actions') { + state.socialActionsList = filterList(state.socialActionsList); + } + }, + + // ConcernedGroups + addPersonsInvolved(state, payload) { + //console.log('### mutation addPersonsInvolved', payload.result.type); + switch (payload.result.type) { + case 'person': + state.activity.persons.push(payload.result); + break; + case 'thirdparty': + state.activity.thirdParties.push(payload.result); + break; + case 'user': + state.activity.users.push(payload.result); + break; + }; + }, + removePersonInvolved(state, payload) { + //console.log('### mutation removePersonInvolved', payload.type); + switch (payload.type) { + case 'person': + state.activity.persons = state.activity.persons.filter(person => person !== payload); + break; + case 'thirdparty': + state.activity.thirdParties = state.activity.thirdParties.filter(thirdparty => thirdparty !== payload); + break; + case 'user': + state.activity.users = state.activity.users.filter(user => user !== payload); + break; + }; + } + }, + actions: { + addIssueSelected({ commit }, issue) { + let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues"); + aSocialIssues.value = addIdToValue(aSocialIssues.value, issue.id); + commit('addIssueSelected', issue); + }, + updateIssuesSelected({ commit }, payload) { + let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues"); + aSocialIssues.value = ''; + payload.forEach(item => { + aSocialIssues.value = addIdToValue(aSocialIssues.value, item.id); + }); + commit('updateIssuesSelected', payload); + }, + updateActionsSelected({ commit }, payload) { + let aSocialActions = document.getElementById("chill_activitybundle_activity_socialActions"); + aSocialActions.value = ''; + payload.forEach(item => { + aSocialActions.value = addIdToValue(aSocialActions.value, item.id); + }); + commit('updateActionsSelected', payload); + }, + addPersonsInvolved({ commit }, payload) { + //console.log('### action addPersonsInvolved', payload.result.type); + switch (payload.result.type) { + case 'person': + let aPersons = document.getElementById("chill_activitybundle_activity_persons"); + aPersons.value = addIdToValue(aPersons.value, payload.result.id); + break; + case 'thirdparty': + let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties"); + aThirdParties.value = addIdToValue(aThirdParties.value, payload.result.id); + break; + case 'user': + let aUsers = document.getElementById("chill_activitybundle_activity_users"); + aUsers.value = addIdToValue(aUsers.value, payload.result.id); + break; + }; + commit('addPersonsInvolved', payload); + }, + removePersonInvolved({ commit }, payload) { + //console.log('### action removePersonInvolved', payload); + switch (payload.type) { + case 'person': + let aPersons = document.getElementById("chill_activitybundle_activity_persons"); + aPersons.value = removeIdFromValue(aPersons.value, payload.id); + break; + case 'thirdparty': + let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties"); + aThirdParties.value = removeIdFromValue(aThirdParties.value, payload.id); + break; + case 'user': + let aUsers = document.getElementById("chill_activitybundle_activity_users"); + aUsers.value = removeIdFromValue(aUsers.value, payload.id); + break; + }; + commit('removePersonInvolved', payload); + } } }); From bd528c9025435b8c0e6e6e7ef50c2f856fd0c22c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sun, 22 Aug 2021 11:41:52 +0200 Subject: [PATCH 2/4] [person list with period] add current showed person to new accompanying period --- .../Resources/views/Person/list_with_period.html.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig index 10be1fde0..9db2c8377 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig @@ -1,6 +1,6 @@ {% macro button_person(person) %}
  • -
  • {% endmacro %} From af0905c6e06ac533024ff530621184f3f6b4b071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sun, 22 Aug 2021 11:47:52 +0200 Subject: [PATCH 3/4] [person details page] remove addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'adresse est indiquée dans le bandeau. Les adresses de résidence sont gérées dans une entrée de menu spécifique --- .../Resources/views/Person/view.html.twig | 42 ------------------- 1 file changed, 42 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig index 976e29a54..c5cc8478c 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig @@ -186,48 +186,6 @@ This view should receive those arguments:

     {{ 'Contact information'|trans }}

    - {%- if chill_person.fields.address == 'visible' -%} -
    -
    {{ 'Address'|trans }}
    -
    - {%- if person.lastAddress is not empty -%} - {{ person.lastAddress|chill_entity_render_box({ - 'render': 'bloc', - 'multiline': true, - 'extended_infos': true, - 'has_no_address': true - }) }} - -
      -
    • - {# include vue_address component #} - {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { - mode: 'edit', - address_id: person.lastAddress.id, - backUrl: path('chill_person_view', { 'person_id': person.id }), - modalTitle: 'Edit address', buttonText: 'Edit address', - buttonSize: 'btn-sm', - buttonDisplayText: false - } %} -
    • -
    • - - - -
    • -
    - - {%- else -%} - {{ 'No address given'|trans }} - - {{ 'Add an address'|trans }} - - {%- endif -%} -
    -
    - {%- endif -%} - {%- if chill_person.fields.email == 'visible' -%}
    {{ 'Email'|trans }} :
    From c798b1290cea88222dacfe5fa4221a64266c8e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sun, 22 Aug 2021 11:56:51 +0200 Subject: [PATCH 4/4] [course list in person file] remove action on course list --- .../views/AccompanyingPeriod/_list.html.twig | 2 ++ .../views/AccompanyingPeriod/list.html.twig | 23 ++----------------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list.html.twig index ca7ed9e02..b1ff1c3a3 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list.html.twig @@ -116,6 +116,7 @@ class="btn btn-show" title="{{ 'See accompanying period'|trans }}">{# {{ 'See this period'|trans }} #} + diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/list.html.twig index a95fa800c..3472d5b1d 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/list.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/list.html.twig @@ -18,29 +18,10 @@