create-edit composition placed in separate page to avoid confusion

This commit is contained in:
Julie Lenaerts 2022-03-09 14:06:18 +01:00
parent d6933fce35
commit e28da7e99b
4 changed files with 68 additions and 41 deletions

View File

@ -129,23 +129,10 @@ class HouseholdCompositionController extends AbstractController
} }
/** /**
* @Route("/{_locale}/person/household/{id}/composition/index", name="chill_person_household_composition_index") * @Route("/{_locale}/person/household/{id}/composition/new", name="chill_person_household_composition_new")
*/ */
public function index(Household $household, Request $request): Response public function newAction(Household $household, Request $request): Response
{ {
if (!$this->security->isGranted(HouseholdVoter::SEE, $household)) {
throw new AccessDeniedException('not allowed to edit an household');
}
$count = $this->householdCompositionRepository->countByHousehold($household);
$paginator = $this->paginatorFactory->create($count);
$compositions = $this->householdCompositionRepository->findByHousehold(
$household,
['startDate' => 'DESC', 'id' => 'DESC'],
$paginator->getItemsPerPage(),
$paginator->getCurrentPageFirstItemNumber()
);
if ($this->security->isGranted(HouseholdVoter::EDIT, $household)) { if ($this->security->isGranted(HouseholdVoter::EDIT, $household)) {
$isEdit = $request->query->has('edit'); $isEdit = $request->query->has('edit');
@ -195,14 +182,40 @@ class HouseholdCompositionController extends AbstractController
} }
return new Response($this->engine->render( return new Response($this->engine->render(
'@ChillPerson/HouseholdComposition/index.html.twig', '@ChillPerson/HouseholdComposition/create.html.twig',
[ [
'household' => $household, 'household' => $household,
'compositions' => $compositions,
'form' => isset($form) ? $form->createView() : null, 'form' => isset($form) ? $form->createView() : null,
'isPosted' => isset($form) ? $form->isSubmitted() : false, 'isPosted' => isset($form) ? $form->isSubmitted() : false,
'editId' => $request->query->getInt('edit', -1), 'editId' => $request->query->getInt('edit', -1),
] ]
)); ));
} }
/**
* @Route("/{_locale}/person/household/{id}/composition/index", name="chill_person_household_composition_index")
*/
public function index(Household $household, Request $request): Response
{
if (!$this->security->isGranted(HouseholdVoter::SEE, $household)) {
throw new AccessDeniedException('not allowed to edit a household');
}
$count = $this->householdCompositionRepository->countByHousehold($household);
$paginator = $this->paginatorFactory->create($count);
$compositions = $this->householdCompositionRepository->findByHousehold(
$household,
['startDate' => 'DESC', 'id' => 'DESC'],
$paginator->getItemsPerPage(),
$paginator->getCurrentPageFirstItemNumber()
);
return new Response($this->engine->render(
'@ChillPerson/HouseholdComposition/index.html.twig',
[
'household' => $household,
'compositions' => $compositions
]
));
}
} }

View File

@ -0,0 +1,26 @@
{% extends '@ChillPerson/Household/layout.html.twig' %}
{% block title 'household_composition.create'|trans %}
{% block block_post_menu %}
<div class="post-menu"></div>
{% endblock %}
{% block content %}
<h1>{{ 'household_composition.Create'|trans }}</h1>
<div>
{{ form_start(form) }}
{{ form_widget(form) }}
<ul class="record_actions">
<li>
<button type="submit" class="btn btn-create">{{ 'Save'|trans }}</button>
</li>
</ul>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@ -15,7 +15,7 @@
{% else %} {% else %}
<div class="flex-table"> <div class="flex-table">
{% for c in compositions %} {% for c in compositions %}
{% if c.id != editId %} {# {% if c.id != editId %} #}
<div class="item-bloc"> <div class="item-bloc">
<div class="item-row"> <div class="item-row">
<div class="item-col"> <div class="item-col">
@ -42,7 +42,7 @@
<div class="item-row"> <div class="item-row">
<ul class="record_actions"> <ul class="record_actions">
<li> <li>
<a href="{{ path('chill_person_household_composition_index', {'id': c.household.id, 'edit': c.id}) }}" class="btn btn-edit"></a> <a href="{{ path('chill_person_household_composition_new', {'id': c.household.id, 'edit': c.id}) }}" class="btn btn-edit"></a>
</li> </li>
<li> <li>
<a href="{{ chill_path_add_return_path('chill_person_household_composition_delete', {'composition_id': c.id, <a href="{{ chill_path_add_return_path('chill_person_household_composition_delete', {'composition_id': c.id,
@ -54,7 +54,7 @@
</div> </div>
{% endif %} {% endif %}
</div> </div>
{% else %} {# {% else %}
{{ form_start(form) }} {{ form_start(form) }}
{{ form_widget(form) }} {{ form_widget(form) }}
@ -68,32 +68,19 @@
</li> </li>
</ul> </ul>
{{ form_end(form) }} {{ form_end(form) }}
{% endif %} {% endif %} #}
{% endfor %} {% endfor %}
</div> </div>
{% endif %} {% endif %}
<div id="collapseForm" class="{% if not isPosted %}collapse{% endif %}"> {# {% if editId == -1 %} #}
{{ form_start(form) }}
{{ form_widget(form) }}
<ul class="record_actions">
<li>
<button type="submit" class="btn btn-create">{{ 'Save'|trans }}</button>
</li>
</ul>
{{ form_end(form) }}
</div>
{% if editId == -1 %}
<ul class="record_actions sticky-form-buttons"> <ul class="record_actions sticky-form-buttons">
<li> <li>
<button class="btn btn-primary btn-create change-icon" type="button" data-bs-toggle="collapse" data-bs-target="#collapseForm" aria-expanded="false" aria-controls="collapseForm"> <a href="{{ chill_path_add_return_path('chill_person_household_composition_new', {'id': household.id,}) }}"
{{ 'Create'|trans }} class="btn btn-sm btn-new"
</button> title="{{ 'Create'|trans }}">{{ 'Create'|trans }}</a>
</li> </li>
</ul> </ul>
{% endif %} {# {% endif %} #}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -566,6 +566,7 @@ household_composition:
Currently no composition: Aucune composition familiale renseignée. Currently no composition: Aucune composition familiale renseignée.
Add a composition: Ajouter une composition familiale Add a composition: Ajouter une composition familiale
Update composition: Modifier la composition familiale Update composition: Modifier la composition familiale
Create: Créér une nouvelle composition familiale
# docgen # docgen
Linked evaluations: Évaluations associées Linked evaluations: Évaluations associées