Fixed: [social issue][admin] do not remove the parent when editing a social issue

https://gitlab.com/Chill-Projet/chill-bundles/-/issues/46
This commit is contained in:
Julien Fastré 2023-01-13 16:41:45 +01:00
parent 6bba6f68b3
commit b2dec3e587
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
3 changed files with 43 additions and 14 deletions

View File

@ -13,10 +13,25 @@ namespace Chill\PersonBundle\Controller\SocialWork;
use Chill\MainBundle\CRUD\Controller\CRUDController;
use Chill\MainBundle\Pagination\PaginatorInterface;
use LogicException;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\Request;
class SocialIssueController extends CRUDController
{
protected function createFormFor(string $action, $entity, ?string $formClass = null, array $formOptions = []): FormInterface
{
if ('new' === $action) {
return parent::createFormFor($action, $entity, $formClass, ['step' => 'create']);
}
if ('edit' === $action) {
return parent::createFormFor($action, $entity, $formClass, ['step' => 'edit']);
}
throw new LogicException('action is not supported: ' . $action);
}
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
{
$query->addOrderBy('e.ordering', 'ASC');

View File

@ -36,12 +36,19 @@ class SocialIssueType extends AbstractType
$builder
->add('title', TranslatableStringFormType::class, [
'label' => 'Nom',
])
]);
if ('create' === $options['step']) {
$builder
->add('parent', EntityType::class, [
'class' => SocialIssue::class,
'required' => false,
'choice_label' => fn (SocialIssue $issue): ?string => $this->translatableStringHelper->localize($issue->getTitle()),
])
'mapped' => 'create' === $options['step'],
]);
}
$builder
->add('ordering', NumberType::class, [
'required' => true,
'scale' => 6,
@ -55,5 +62,8 @@ class SocialIssueType extends AbstractType
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefault('class', SocialIssue::class);
$resolver->setRequired('step')
->setAllowedValues('step', ['create', 'edit']);
}
}

View File

@ -8,13 +8,17 @@
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
{% block crud_content_form_rows %}
{% for f in form %}
{% if f.vars.name == 'parent' %}
{{ form_row(f, { 'attr':{'disabled':'disabled'}}) }}
{% else %}
{{ form_row(f) }}
{% endif %}
{% endfor %}
{{ form_row(form.title) }}
<div class="mb-3 row">
<label class="col-form-label col-sm-4">
{{ 'Parent'|trans }}
</label>
<div class="col-sm-8">
{{ entity.parent|chill_entity_render_box }}
</div>
</div>
{{ form_row(form.ordering) }}
{{ form_row(form.desactivationDate) }}
{% endblock crud_content_form_rows %}
{% block content_form_actions_save_and_show %}{% endblock %}