mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-13 05:44:24 +00:00
calendar: add suggestion for concernedGroups
This commit is contained in:
parent
d0e9829a3c
commit
631ffa02f7
@ -9,7 +9,6 @@
|
|||||||
v-bind:setPersonsInBloc="setPersonsInBloc">
|
v-bind:setPersonsInBloc="setPersonsInBloc">
|
||||||
</persons-bloc>
|
</persons-bloc>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="getContext === 'accompanyingCourse' && suggestedEntities.length > 0">
|
<div v-if="getContext === 'accompanyingCourse' && suggestedEntities.length > 0">
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="p in suggestedEntities" @click="addSuggestedEntity(p)">
|
<li v-for="p in suggestedEntities" @click="addSuggestedEntity(p)">
|
||||||
|
@ -27,6 +27,7 @@ const store = createStore({
|
|||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
suggestedEntities(state) {
|
suggestedEntities(state) {
|
||||||
|
console.log(state.activity)
|
||||||
if (typeof(state.activity.accompanyingPeriod) === 'undefined') {
|
if (typeof(state.activity.accompanyingPeriod) === 'undefined') {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,7 @@ class Calendar
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Chill\PersonBundle\Entity\AccompanyingPeriod")
|
* @ORM\ManyToOne(targetEntity="Chill\PersonBundle\Entity\AccompanyingPeriod")
|
||||||
|
* @Groups({"read"})
|
||||||
*/
|
*/
|
||||||
private AccompanyingPeriod $accompanyingPeriod;
|
private AccompanyingPeriod $accompanyingPeriod;
|
||||||
|
|
||||||
|
@ -28,9 +28,59 @@ const mapEntity = (entity) => {
|
|||||||
const store = createStore({
|
const store = createStore({
|
||||||
strict: debug,
|
strict: debug,
|
||||||
state: {
|
state: {
|
||||||
activity: mapEntity(window.entity),
|
activity: mapEntity(window.entity), // activity is the calendar entity actually
|
||||||
currentEvent: null
|
currentEvent: null
|
||||||
},
|
},
|
||||||
|
getters: {
|
||||||
|
suggestedEntities(state) {
|
||||||
|
console.log(state.activity)
|
||||||
|
if (typeof(state.activity.accompanyingPeriod) === 'undefined') {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
const allEntities = [
|
||||||
|
...store.getters.suggestedPersons,
|
||||||
|
...store.getters.suggestedRequestor,
|
||||||
|
...store.getters.suggestedUser,
|
||||||
|
...store.getters.suggestedResources
|
||||||
|
];
|
||||||
|
const uniqueIds = [...new Set(allEntities.map(i => `${i.type}-${i.id}`))];
|
||||||
|
return Array.from(uniqueIds, id => allEntities.filter(r => `${r.type}-${r.id}` === id)[0]);
|
||||||
|
},
|
||||||
|
suggestedPersons(state) {
|
||||||
|
const 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))
|
||||||
|
},
|
||||||
|
suggestedRequestor(state) {
|
||||||
|
const existingPersonIds = state.activity.persons.map(p => p.id);
|
||||||
|
const existingThirdPartyIds = state.activity.thirdParties.map(p => p.id);
|
||||||
|
return [state.activity.accompanyingPeriod.requestor]
|
||||||
|
.filter(r =>
|
||||||
|
(r.type === 'person' && !existingPersonIds.includes(r.id)) ||
|
||||||
|
(r.type === 'thirdparty' && !existingThirdPartyIds.includes(r.id))
|
||||||
|
);
|
||||||
|
},
|
||||||
|
suggestedUser(state) {
|
||||||
|
const existingUserIds = state.activity.users.map(p => p.id);
|
||||||
|
return [state.activity.accompanyingPeriod.user]
|
||||||
|
.filter(
|
||||||
|
u => !existingUserIds.includes(u.id)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
suggestedResources(state) {
|
||||||
|
const resources = state.activity.accompanyingPeriod.resources;
|
||||||
|
const existingPersonIds = state.activity.persons.map(p => p.id);
|
||||||
|
const existingThirdPartyIds = state.activity.thirdParties.map(p => p.id);
|
||||||
|
return state.activity.accompanyingPeriod.resources
|
||||||
|
.map(r => r.resource)
|
||||||
|
.filter(r =>
|
||||||
|
(r.type === 'person' && !existingPersonIds.includes(r.id)) ||
|
||||||
|
(r.type === 'thirdparty' && !existingThirdPartyIds.includes(r.id))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
|
||||||
// ConcernedGroups
|
// ConcernedGroups
|
||||||
|
Loading…
x
Reference in New Issue
Block a user