mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
household editor: allow to move without any household
This commit is contained in:
parent
38c06977ca
commit
b2ce5fca38
@ -1,7 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<h2>{{ $t('household_members_editor.concerned.title') }}</h2>
|
<h2>{{ $t('household_members_editor.concerned.title') }}</h2>
|
||||||
|
|
||||||
<h3>{{ $t('household_members_editor.concerned.persons_to_positionnate') }}</h3>
|
<h3 v-if="needsPositionning">
|
||||||
|
{{ $t('household_members_editor.concerned.persons_to_positionnate') }}
|
||||||
|
</h3>
|
||||||
|
<h3 v-else>
|
||||||
|
{{ $t('household_members_editor.concerned.persons_leaving') }}
|
||||||
|
</h3>
|
||||||
|
|
||||||
<div v-if="noPerson">
|
<div v-if="noPerson">
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
@ -40,7 +45,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-row move_to">
|
<div v-if="needsPositionning" class="item-row move_to">
|
||||||
<div class="item-col">
|
<div class="item-col">
|
||||||
|
|
||||||
<p class="move_hint">{{ $t('household_members_editor.concerned.move_to') }}:</p>
|
<p class="move_hint">{{ $t('household_members_editor.concerned.move_to') }}:</p>
|
||||||
@ -79,7 +84,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="positions">
|
<div v-if="needsPositionning" class="positions">
|
||||||
<div
|
<div
|
||||||
v-for="position in positions"
|
v-for="position in positions"
|
||||||
>
|
>
|
||||||
@ -159,6 +164,7 @@ export default {
|
|||||||
'concUnpositionned',
|
'concUnpositionned',
|
||||||
'positions',
|
'positions',
|
||||||
'concByPosition',
|
'concByPosition',
|
||||||
|
'needsPositionning'
|
||||||
]),
|
]),
|
||||||
noPerson () {
|
noPerson () {
|
||||||
return this.$store.getters.persons.length === 0;
|
return this.$store.getters.persons.length === 0;
|
||||||
|
@ -10,6 +10,7 @@ const appMessages = {
|
|||||||
create_household: "Créer un ménage",
|
create_household: "Créer un ménage",
|
||||||
search_household: "Chercher un ménage",
|
search_household: "Chercher un ménage",
|
||||||
will_leave_any_household: "Ne rejoignent pas de ménage",
|
will_leave_any_household: "Ne rejoignent pas de ménage",
|
||||||
|
leave_without_household: "Sans nouveau ménage"
|
||||||
},
|
},
|
||||||
concerned: {
|
concerned: {
|
||||||
title: "Usagers concernés",
|
title: "Usagers concernés",
|
||||||
@ -17,6 +18,7 @@ const appMessages = {
|
|||||||
search: "Rechercher des usagers",
|
search: "Rechercher des usagers",
|
||||||
move_to: "Déplacer vers",
|
move_to: "Déplacer vers",
|
||||||
persons_to_positionnate: 'Usagers à positionner',
|
persons_to_positionnate: 'Usagers à positionner',
|
||||||
|
persons_leaving: "Usagers quittant leurs ménages",
|
||||||
},
|
},
|
||||||
drop_persons_here: "Glissez-déposez ici les usagers pour la position \"{position}\"",
|
drop_persons_here: "Glissez-déposez ici les usagers pour la position \"{position}\"",
|
||||||
all_positionnated: "Tous les usagers sont positionnés",
|
all_positionnated: "Tous les usagers sont positionnés",
|
||||||
|
@ -65,35 +65,48 @@ const store = createStore({
|
|||||||
.find(conc => conc.person.id === person_id)
|
.find(conc => conc.person.id === person_id)
|
||||||
;
|
;
|
||||||
},
|
},
|
||||||
|
needsPositionning(state) {
|
||||||
|
return state.forceLeaveWithoutHousehold === false;
|
||||||
|
},
|
||||||
buildPayload: (state) => {
|
buildPayload: (state) => {
|
||||||
let
|
let
|
||||||
conc,
|
conc,
|
||||||
|
payload_conc,
|
||||||
payload = {
|
payload = {
|
||||||
concerned: [],
|
concerned: [],
|
||||||
destination: {
|
destination: null
|
||||||
id: state.household.id,
|
|
||||||
type: state.household.type
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
if (state.forceLeaveWithoutHousehold === false) {
|
||||||
|
payload.destination = {
|
||||||
|
id: state.household.id,
|
||||||
|
type: state.household.type
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
for (let i in state.concerned) {
|
for (let i in state.concerned) {
|
||||||
conc = state.concerned[i];
|
conc = state.concerned[i];
|
||||||
payload.concerned.push({
|
payload_conc = {
|
||||||
person: {
|
person: {
|
||||||
id: conc.person.id,
|
id: conc.person.id,
|
||||||
type: conc.person.type
|
type: conc.person.type
|
||||||
},
|
},
|
||||||
position: {
|
|
||||||
id: conc.position.id,
|
|
||||||
type: conc.position.type
|
|
||||||
},
|
|
||||||
holder: conc.holder,
|
|
||||||
comment: conc.comment,
|
|
||||||
start_date: {
|
start_date: {
|
||||||
datetime: datetimeToISO(state.startDate)
|
datetime: datetimeToISO(state.startDate)
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
if (state.forceLeaveWithoutHousehold === false) {
|
||||||
|
payload_conc.position = {
|
||||||
|
id: conc.position.id,
|
||||||
|
type: conc.position.type
|
||||||
|
};
|
||||||
|
payload_conc.holder = conc.holder;
|
||||||
|
payload_conc.comment = conc.comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
payload.concerned.push(payload_conc);
|
||||||
}
|
}
|
||||||
|
|
||||||
return payload;
|
return payload;
|
||||||
@ -137,6 +150,7 @@ const store = createStore({
|
|||||||
},
|
},
|
||||||
createHousehold(state) {
|
createHousehold(state) {
|
||||||
state.household = { type: 'household', members: [], address: null }
|
state.household = { type: 'household', members: [], address: null }
|
||||||
|
state.forceLeaveWithoutHousehold = false;
|
||||||
},
|
},
|
||||||
forceLeaveWithoutHousehold(state) {
|
forceLeaveWithoutHousehold(state) {
|
||||||
state.household = null;
|
state.household = null;
|
||||||
@ -202,12 +216,19 @@ const store = createStore({
|
|||||||
|
|
||||||
commit('setWarnings', warnings);
|
commit('setWarnings', warnings);
|
||||||
},
|
},
|
||||||
confirm({ getters }) {
|
confirm({ getters, state }) {
|
||||||
let payload = getters.buildPayload;
|
let payload = getters.buildPayload,
|
||||||
|
person_id,
|
||||||
|
household_id;
|
||||||
householdMove(payload).then(household => {
|
householdMove(payload).then(household => {
|
||||||
let id = household.id;
|
if (household === null) {
|
||||||
// nothing to do anymore here, bye-bye !
|
person_id = getters.persons[0].id;
|
||||||
window.location.replace(`/fr/person/household/{id}/members`);
|
window.location.replace(`/fr/person/${person_id}/general`);
|
||||||
|
} else {
|
||||||
|
household_id = household.id;
|
||||||
|
// nothing to do anymore here, bye-bye !
|
||||||
|
window.location.replace(`/fr/person/household/${household_id}/members`);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user