mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-20 14:43:49 +00:00
configure SocialIssue consistency on Activity and AccompanyingPeriod
This commit is contained in:
@@ -17,7 +17,7 @@ use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
|
||||
*/
|
||||
interface AccompanyingPeriodLinkedWithSocialIssuesEntityInterface
|
||||
{
|
||||
public function getAccompanyingPeriod(): AccompanyingPeriod;
|
||||
public function getAccompanyingPeriod(): ?AccompanyingPeriod;
|
||||
|
||||
/**
|
||||
* @return Collection|SocialIssue[]
|
||||
|
@@ -39,14 +39,15 @@ final class AccompanyingPeriodSocialIssueConsistencyEntityListener
|
||||
|
||||
private function ensureConsistencyEntity(AccompanyingPeriodLinkedWithSocialIssuesEntityInterface $entity): void
|
||||
{
|
||||
if (NULL === $period = $entity->getAccompanyingPeriod()) {
|
||||
return;
|
||||
}
|
||||
// remove issues parents on the entity itself
|
||||
$ancestors = SocialIssue::findAncestorSocialIssues($entity->getSocialIssues());
|
||||
foreach ($ancestors as $ancestor) {
|
||||
$entity->removeSocialIssue($ancestor);
|
||||
}
|
||||
|
||||
$period = $entity->getAccompanyingPeriod();
|
||||
|
||||
foreach ($entity->getSocialIssues() as $issue) {
|
||||
// the entity itself test if the social issue is already associated, or not
|
||||
$period->addSocialIssue($issue);
|
||||
|
@@ -74,6 +74,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
|
||||
$loader->load('services/alt_names.yaml');
|
||||
$loader->load('services/household.yaml');
|
||||
$loader->load('services/notification.yaml');
|
||||
$loader->load('services/accompanyingPeriod.yaml');
|
||||
// We can get rid of this file when the service 'chill.person.repository.person' is no more used.
|
||||
// We should use the PersonRepository service instead of a custom service name.
|
||||
$loader->load('services/repository.yaml');
|
||||
|
@@ -71,7 +71,7 @@ const appMessages = {
|
||||
edit_temporary_address: "Modifier l'adresse temporaire",
|
||||
assign_course_address: "Désigner comme l'adresse du parcours",
|
||||
remove_button: "Enlever l'adresse",
|
||||
temporary_address_must_be_changed: "Cette addresse est temporaire et devrait être remplacée par celle d'un usager de référence.",
|
||||
temporary_address_must_be_changed: "Cette adresse est temporaire et devrait être remplacée par celle d'un usager de référence.",
|
||||
sure: "Êtes-vous sûr ?",
|
||||
sure_description: "Voulez-vous faire de cette adresse l'adresse du parcours ?",
|
||||
ok: "Désigner comme adresse du parcours",
|
||||
|
@@ -105,8 +105,13 @@ let initPromise = getAccompanyingCourse(id)
|
||||
state.accompanyingCourse.initialComment = comment;
|
||||
},
|
||||
updateSocialIssues(state, value) {
|
||||
console.log('updateSocialIssues', value);
|
||||
state.accompanyingCourse.socialIssues = value;
|
||||
},
|
||||
refreshSocialIssues(state, issues) {
|
||||
console.log('refreshSocialIssues', issues);
|
||||
state.accompanyingCourse.socialIssues = issues;
|
||||
},
|
||||
updateOrigin(state, value) {
|
||||
//console.log('value', value);
|
||||
state.accompanyingCourse.origin = value;
|
||||
@@ -226,14 +231,19 @@ let initPromise = getAccompanyingCourse(id)
|
||||
resolve();
|
||||
})).catch((error) => { commit('catchError', error) });
|
||||
},
|
||||
updateSocialIssues({ commit }, { payload, body, method }) {
|
||||
updateSocialIssues({ state, commit }, { payload, body, method }) {
|
||||
//console.log('## action: payload', { payload, body, method });
|
||||
postSocialIssue(id, body, method)
|
||||
.then(response => new Promise((resolve, reject) => {
|
||||
//console.log('response', response);
|
||||
commit('updateSocialIssues', payload);
|
||||
resolve();
|
||||
})).catch((error) => { commit('catchError', error) });
|
||||
})).then(() => {
|
||||
return getAccompanyingCourse(state.accompanyingCourse.id);
|
||||
}).then(accompanying_course => {
|
||||
commit('refreshSocialIssues', accompanying_course.socialIssues);
|
||||
})
|
||||
.catch((error) => { commit('catchError', error) });
|
||||
},
|
||||
updateOrigin({ commit }, payload) {
|
||||
patchAccompanyingCourse(id, { type: "accompanying_period", origin: { id: payload.id, type: payload.type } })
|
||||
|
@@ -0,0 +1,15 @@
|
||||
services:
|
||||
Chill\PersonBundle\AccompanyingPeriod\SocialIssueConsistency\AccompanyingPeriodSocialIssueConsistencyEntityListener:
|
||||
tags:
|
||||
-
|
||||
name: 'doctrine.orm.entity_listener'
|
||||
event: 'prePersist'
|
||||
entity: 'Chill\PersonBundle\Entity\AccompanyingPeriod'
|
||||
lazy: true
|
||||
method: prePersistAccompanyingPeriod
|
||||
-
|
||||
name: 'doctrine.orm.entity_listener'
|
||||
event: 'preUpdate'
|
||||
entity: 'Chill\PersonBundle\Entity\AccompanyingPeriod'
|
||||
lazy: true
|
||||
method: preUpdateAccompanyingPeriod
|
Reference in New Issue
Block a user