diff --git a/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php b/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php index 89cd94ef5..2cfd12842 100644 --- a/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php +++ b/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php @@ -3,6 +3,7 @@ namespace Chill\PersonBundle\Controller; use Chill\PersonBundle\Entity\Household\Position; +use Chill\PersonBundle\Repository\AccompanyingPeriodRepository; use Chill\PersonBundle\Security\Authorization\PersonVoter; use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Household\Household; @@ -25,11 +26,17 @@ class HouseholdMemberController extends ApiController private TranslatorInterface $translator; + private AccompanyingPeriodRepository $periodRepository; - public function __construct(UrlGeneratorInterface $generator, TranslatorInterface $translator) + public function __construct( + UrlGeneratorInterface $generator, + TranslatorInterface $translator, + AccompanyingPeriodRepository $periodRepository + ) { $this->generator = $generator; $this->translator = $translator; + $this->periodRepository = $periodRepository; } /** @@ -144,8 +151,23 @@ class HouseholdMemberController extends ApiController 'allowLeaveWithoutHousehold' => $allowLeaveWithoutHousehold ?? $request->query->has('allow_leave_without_household'), ]; + // context + if ($request->query->has('accompanying_period_id')) { + $period = $this->periodRepository->find( + $request->query->getInt('accompanying_period_id') + ); + + if ($period === null) { + throw $this->createNotFoundException('period not found'); + } + + // TODO add acl on accompanying Course + } + return $this->render('@ChillPerson/Household/members_editor.html.twig', [ - 'data' => $data + 'data' => $data, + 'expandSuggestions' => (int) $request->query->getBoolean('expand_suggestions', false), + 'accompanyingCourse' => $period ?? null, ]); } diff --git a/src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodRepository.php b/src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodRepository.php index c2a8299fc..b0578c994 100644 --- a/src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodRepository.php +++ b/src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodRepository.php @@ -25,8 +25,9 @@ namespace Chill\PersonBundle\Repository; use Chill\PersonBundle\Entity\AccompanyingPeriod; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityRepository; +use Doctrine\Persistence\ObjectRepository; -final class AccompanyingPeriodRepository +final class AccompanyingPeriodRepository implements ObjectRepository { private EntityRepository $repository; @@ -34,4 +35,32 @@ final class AccompanyingPeriodRepository { $this->repository = $entityManager->getRepository(AccompanyingPeriod::class); } + public function find($id): ?AccompanyingPeriod + { + return $this->repository->find($id); + } + + /** + * @return AccompanyingPeriod[] + */ + public function findAll(): array + { + return $this->repository->findAll(); + } + + public function findBy(array $criteria, ?array $orderBy = null, $limit = null, $offset = null): ?AccompanyingPeriod + { + return $this->repository->findBy($criteria, $orderBy, $limit, $offset); + } + + public function findOneBy(array $criteria): ?AccompanyingPeriod + { + return $this->findOneBy($criteria); + } + + public function getClassName() + { + return AccompanyingPeriod::class; + } + } diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js index 12cd6c38c..c09f6a365 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/js/i18n.js @@ -5,7 +5,7 @@ const appMessages = { fr: { household_members_editor: { household: { - no_household_choose_one: "Aucun ménage de destination. Choisissez un ménage.", + no_household_choose_one: "Aucun ménage de destination. Choisissez un ménage. Les usagers concernés par la modification apparaitront ensuite.", new_household: "Nouveau ménage", create_household: "Créer un ménage", search_household: "Chercher un ménage", diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js index 1f7df2b00..b44278614 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdMembersEditor/store/index.js @@ -14,6 +14,8 @@ const concerned = window.household_members_editor_data.persons.map(p => { }; }); +console.log('expand suggestions', window.household_members_editor_expand_suggestions === 1); + const store = createStore({ strict: debug, state: { @@ -34,7 +36,7 @@ const store = createStore({ allowLeaveWithoutHousehold: window.household_members_editor_data.allowLeaveWithoutHousehold, forceLeaveWithoutHousehold: false, householdSuggestionByAccompanyingPeriod: [], - showHouseholdSuggestion: false, + showHouseholdSuggestion: window.household_members_editor_expand_suggestions === 1, warnings: [], errors: [] }, diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourse/index.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourse/index.html.twig index 364f8c7fd..b9fe51370 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourse/index.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourse/index.html.twig @@ -39,12 +39,15 @@