mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-07 23:34:58 +00:00
Controllers adjusted for use with person or household
This commit is contained in:
@@ -56,10 +56,18 @@ abstract class AbstractElementController extends Controller
|
||||
protected function _delete(AbstractElement $element, Request $request, $template, $flashMessage): Response
|
||||
{
|
||||
$this->denyAccessUnlessGranted(BudgetElementVoter::DELETE, $element, 'You are not '
|
||||
. 'allowed to delete this family membership');
|
||||
. 'allowed to delete this item');
|
||||
|
||||
$form = $this->createDeleteForm();
|
||||
|
||||
if (null != $element->getPerson()) {
|
||||
$entity = $element->getPerson();
|
||||
$indexPage = 'chill_budget_elements_index';
|
||||
} else {
|
||||
$entity = $element->getHousehold();
|
||||
$indexPage = 'chill_budget_elements_household_index';
|
||||
}
|
||||
|
||||
if ($request->getMethod() === Request::METHOD_DELETE) {
|
||||
$form->handleRequest($request);
|
||||
|
||||
@@ -79,8 +87,8 @@ abstract class AbstractElementController extends Controller
|
||||
$this->addFlash('success', $this->translator
|
||||
->trans($flashMessage));
|
||||
|
||||
return $this->redirectToRoute('chill_budget_elements_index', [
|
||||
'id' => $element->getPerson()->getId(),
|
||||
return $this->redirectToRoute($indexPage, [
|
||||
'id' => $entity->getId(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -99,6 +107,18 @@ abstract class AbstractElementController extends Controller
|
||||
{
|
||||
$this->denyAccessUnlessGranted(BudgetElementVoter::UPDATE, $element);
|
||||
|
||||
if (null != $element->getPerson()) {
|
||||
$entity = $element->getPerson();
|
||||
$entityStr = 'person';
|
||||
$indexPage = 'chill_budget_elements_index';
|
||||
} else {
|
||||
$entity = $element->getHousehold();
|
||||
$entityStr = 'household';
|
||||
$indexPage = 'chill_budget_elements_household_index';
|
||||
}
|
||||
|
||||
$entity = null != $element->getPerson() ? : $element->getHousehold();
|
||||
|
||||
$form = $this->createForm($this->getType(), $element);
|
||||
$form->add('submit', SubmitType::class);
|
||||
|
||||
@@ -110,15 +130,15 @@ abstract class AbstractElementController extends Controller
|
||||
|
||||
$this->addFlash('success', $this->translator->trans($flashOnSuccess));
|
||||
|
||||
return $this->redirectToRoute('chill_budget_elements_index', [
|
||||
'id' => $element->getPerson()->getId(),
|
||||
return $this->redirectToRoute($indexPage, [
|
||||
'id' => $entity->getId(),
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->render($template, [
|
||||
'element' => $element,
|
||||
'form' => $form->createView(),
|
||||
'person' => $element->getPerson(),
|
||||
$entityStr => $entity,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -126,13 +146,22 @@ abstract class AbstractElementController extends Controller
|
||||
* @param mixed $template
|
||||
* @param mixed $flashMessageOnSuccess
|
||||
*/
|
||||
protected function _new(Person $person, Request $request, $template, $flashMessageOnSuccess)
|
||||
protected function _new($entity, Request $request, $template, $flashMessageOnSuccess)
|
||||
{
|
||||
/** @var AbstractElement $element */
|
||||
$element = $this->createNewElement()
|
||||
->setPerson($person);
|
||||
$element = new AbstractElement();
|
||||
|
||||
$this->denyAccessUnlessGranted(BudgetElementVoter::CREATE, $element);
|
||||
if ($entity instanceof Person) {
|
||||
$element->setPerson($entity);
|
||||
$entityStr = 'person';
|
||||
$indexPage = 'chill_budget_elements_index';
|
||||
} else {
|
||||
$element->setHousehold($entity);
|
||||
$entityStr = 'household';
|
||||
$indexPage = 'chill_budget_elements_household_index';
|
||||
}
|
||||
|
||||
$this->denyAccessUnlessGranted(BudgetElementVoter::CREATE, $entity);
|
||||
|
||||
$form = $this->createForm($this->getType(), $element);
|
||||
$form->add('submit', SubmitType::class);
|
||||
@@ -146,8 +175,8 @@ abstract class AbstractElementController extends Controller
|
||||
|
||||
$this->addFlash('success', $this->translator->trans($flashMessageOnSuccess));
|
||||
|
||||
return $this->redirectToRoute('chill_budget_elements_index', [
|
||||
'id' => $person->getId(),
|
||||
return $this->redirectToRoute($indexPage, [
|
||||
'id' => $entity->getId(),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -157,7 +186,7 @@ abstract class AbstractElementController extends Controller
|
||||
|
||||
return $this->render($template, [
|
||||
'form' => $form->createView(),
|
||||
'person' => $person,
|
||||
$entityStr => $entity,
|
||||
'element' => $element,
|
||||
]);
|
||||
}
|
||||
|
Reference in New Issue
Block a user