From 99337c4aa6b18bb2f2dc3ba7d06874c4d3c246bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Fri, 18 Jun 2021 14:11:02 +0200 Subject: [PATCH] add form edit metadata in summary page --- .../Controller/HouseholdController.php | 12 +++- .../views/Household/summary.html.twig | 59 +++++++++++++++++++ .../Controller/HouseholdControllerTest.php | 30 ++++++++++ 3 files changed, 99 insertions(+), 2 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php b/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php index 9b546fe68..9d647a84e 100644 --- a/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php +++ b/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php @@ -51,10 +51,18 @@ class HouseholdController extends AbstractController // initialize members collection, which will avoid // some queries $household->getMembers()->initialize(); + + if ($request->query->has('edit')) { + $form = $this->createMetadataForm($household); + } else { + $form = null; + } + return $this->render('@ChillPerson/Household/summary.html.twig', [ 'household' => $household, - 'positions' => $positions + 'positions' => $positions, + 'form' => NULL !== $form ? $form->createView() : null, ] ); } @@ -149,7 +157,7 @@ class HouseholdController extends AbstractController $this->addFlash('success', $this->translator->trans('household.data_saved')); - return $this->redirectToRoute('chill_person_household_members', [ + return $this->redirectToRoute('chill_person_household_summary', [ 'household_id' => $household->getId() ]); } diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Household/summary.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Household/summary.html.twig index 95ac55b12..3393722c4 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Household/summary.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Household/summary.html.twig @@ -19,6 +19,60 @@

{{ 'household.Household members'|trans }}

+{% if form is not null %} + {{ form_start(form) }} + + {{ form_row(form.commentMembers) }} + +
+ {{ form_row(form.waitingForBirth) }} +
+ +
+ {{ form_row(form.waitingForBirthDate) }} +
+ + + + {{ form_end(form) }} +{% else %} + + {% if not household.commentMembers.isEmpty() %} + {{ household.commentMembers|chill_entity_render_box }} + {% endif %} + + {% if household.waitingForBirth %} + {% if household.waitingForBirthDate is not null %} + {{ 'household.Expecting for birth on date'|trans({ 'date': household.waitingForBirthDate|format_date('long') }) }} + {% else %} + {{ 'household.Expecting for birth'|trans }} + {% endif %} + {% else %} +

+ {{ 'household.Any expecting birth'|trans }} +

+ {% endif %} + + + +{% endif %} + + {% for p in positions %}

{{ p.label|localize_translatable_string }}

@@ -176,3 +230,8 @@ {% endblock %} + +{% block js %} +{{ encore_entry_script_tags('household_edit_metadata') }} +{% endblock %} + diff --git a/src/Bundle/ChillPersonBundle/Tests/Controller/HouseholdControllerTest.php b/src/Bundle/ChillPersonBundle/Tests/Controller/HouseholdControllerTest.php index ad7b2ed75..34899af30 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Controller/HouseholdControllerTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Controller/HouseholdControllerTest.php @@ -33,6 +33,35 @@ class HouseholdControllerTest extends WebTestCase $this->assertResponseIsSuccessful(); } + /** + * @dataProvider generateValidHouseholdIds + */ + public function testEditMetadata($householdId) + { + + $crawler = $this->client->request( + Request::METHOD_GET, + "/fr/person/household/{$householdId}/summary", + [ + 'edit' => true + ] + ); + + $this->assertResponseIsSuccessful(); + + $form = $crawler->selectButton('Enregistrer') + ->form(); + + $form['household[commentMembers][comment]'] = "This is a text **generated** by automatic tests"; + $form['household[waitingForBirth]']->tick(); + $form['household[waitingForBirthDate]'] = (new \DateTime('today')) + ->add(new \DateInterval('P1M'))->format('Y-m-d'); + + $this->client->submit($form); + + $this->assertResponseRedirects("/fr/person/household/{$householdId}/summary"); + } + /** * @dataProvider generateValidHouseholdIds */ @@ -44,6 +73,7 @@ class HouseholdControllerTest extends WebTestCase ); $this->assertResponseIsSuccessful(); + } /**