mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 21:34:25 +00:00
[alt names] add alt names on person creation form
This commit is contained in:
parent
289afcdd0c
commit
5154039182
@ -281,7 +281,7 @@ class PersonController extends Controller
|
|||||||
$r->setStatusCode(400);
|
$r->setStatusCode(400);
|
||||||
return $r;
|
return $r;
|
||||||
}
|
}
|
||||||
|
|
||||||
$form = $this->createForm(
|
$form = $this->createForm(
|
||||||
//CreationPersonType::NAME,
|
//CreationPersonType::NAME,
|
||||||
CreationPersonType::class,
|
CreationPersonType::class,
|
||||||
@ -294,7 +294,7 @@ class PersonController extends Controller
|
|||||||
$form->handleRequest($request);
|
$form->handleRequest($request);
|
||||||
|
|
||||||
$person = $this->_bindCreationForm($form);
|
$person = $this->_bindCreationForm($form);
|
||||||
|
|
||||||
$errors = $this->_validatePersonAndAccompanyingPeriod($person);
|
$errors = $this->_validatePersonAndAccompanyingPeriod($person);
|
||||||
$this->get('logger')->info(sprintf('Person created with %d errors ', count($errors)));
|
$this->get('logger')->info(sprintf('Person created with %d errors ', count($errors)));
|
||||||
|
|
||||||
@ -311,7 +311,7 @@ class PersonController extends Controller
|
|||||||
|
|
||||||
$form = $this->createForm(
|
$form = $this->createForm(
|
||||||
CreationPersonType::NAME,
|
CreationPersonType::NAME,
|
||||||
new Person(),
|
$person,
|
||||||
array(
|
array(
|
||||||
'action' => $this->generateUrl('chill_person_review'),
|
'action' => $this->generateUrl('chill_person_review'),
|
||||||
'form_status' => CreationPersonType::FORM_NOT_REVIEWED
|
'form_status' => CreationPersonType::FORM_NOT_REVIEWED
|
||||||
@ -338,7 +338,9 @@ class PersonController extends Controller
|
|||||||
);
|
);
|
||||||
|
|
||||||
return $this->render('ChillPersonBundle:Person:create_review.html.twig',
|
return $this->render('ChillPersonBundle:Person:create_review.html.twig',
|
||||||
array('alternatePersons' => $alternatePersons,
|
array(
|
||||||
|
'person' => $person,
|
||||||
|
'alternatePersons' => $alternatePersons,
|
||||||
'firstName' => $form['firstName']->getData(),
|
'firstName' => $form['firstName']->getData(),
|
||||||
'lastName' => $form['lastName']->getData(),
|
'lastName' => $form['lastName']->getData(),
|
||||||
'birthdate' => $form['birthdate']->getData(),
|
'birthdate' => $form['birthdate']->getData(),
|
||||||
|
@ -27,11 +27,11 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
|||||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
|
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||||
|
|
||||||
use Chill\MainBundle\Form\Type\CenterType;
|
use Chill\MainBundle\Form\Type\CenterType;
|
||||||
use Chill\PersonBundle\Form\Type\GenderType;
|
use Chill\PersonBundle\Form\Type\GenderType;
|
||||||
use Chill\MainBundle\Form\Type\DataTransformer\CenterTransformer;
|
use Chill\MainBundle\Form\Type\DataTransformer\CenterTransformer;
|
||||||
use Chill\PersonBundle\Form\CreationPersonType;
|
use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper;
|
||||||
|
use Chill\PersonBundle\Form\Type\PersonAltNameType;
|
||||||
|
|
||||||
class CreationPersonType extends AbstractType
|
class CreationPersonType extends AbstractType
|
||||||
{
|
{
|
||||||
@ -47,9 +47,19 @@ class CreationPersonType extends AbstractType
|
|||||||
* @var CenterTransformer
|
* @var CenterTransformer
|
||||||
*/
|
*/
|
||||||
private $centerTransformer;
|
private $centerTransformer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @var ConfigPersonAltNamesHelper
|
||||||
|
*/
|
||||||
|
protected $configPersonAltNamesHelper;
|
||||||
|
|
||||||
public function __construct(CenterTransformer $centerTransformer) {
|
public function __construct(
|
||||||
|
CenterTransformer $centerTransformer,
|
||||||
|
ConfigPersonAltNamesHelper $configPersonAltNamesHelper
|
||||||
|
) {
|
||||||
$this->centerTransformer = $centerTransformer;
|
$this->centerTransformer = $centerTransformer;
|
||||||
|
$this->configPersonAltNamesHelper = $configPersonAltNamesHelper;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -78,6 +88,14 @@ class CreationPersonType extends AbstractType
|
|||||||
))
|
))
|
||||||
->add('center', HiddenType::class)
|
->add('center', HiddenType::class)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
if ($this->configPersonAltNamesHelper->hasAltNames()) {
|
||||||
|
$builder->add('altNames', PersonAltNameType::class, [
|
||||||
|
'by_reference' => false,
|
||||||
|
'force_hidden' => true
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
$builder->get('birthdate')
|
$builder->get('birthdate')
|
||||||
->addModelTransformer($dateToStringTransformer);
|
->addModelTransformer($dateToStringTransformer);
|
||||||
$builder->get('creation_date')
|
$builder->get('creation_date')
|
||||||
@ -105,6 +123,12 @@ class CreationPersonType extends AbstractType
|
|||||||
))
|
))
|
||||||
->add('center', CenterType::class)
|
->add('center', CenterType::class)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
if ($this->configPersonAltNamesHelper->hasAltNames()) {
|
||||||
|
$builder->add('altNames', PersonAltNameType::class, [
|
||||||
|
'by_reference' => false
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace Chill\PersonBundle\Form\DataMapper;
|
namespace Chill\PersonBundle\Form\DataMapper;
|
||||||
|
|
||||||
use Symfony\Component\Form\DataMapperInterface;
|
use Symfony\Component\Form\DataMapperInterface;
|
||||||
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
use Doctrine\Common\Collections\Collection;
|
use Doctrine\Common\Collections\Collection;
|
||||||
use Symfony\Component\Form\Exception\UnexpectedTypeException;
|
use Symfony\Component\Form\Exception\UnexpectedTypeException;
|
||||||
use Chill\PersonBundle\Entity\PersonAltName;
|
use Chill\PersonBundle\Entity\PersonAltName;
|
||||||
@ -44,7 +45,15 @@ class PersonAltNameDataMapper implements DataMapperInterface
|
|||||||
public function mapFormsToData($forms, &$viewData)
|
public function mapFormsToData($forms, &$viewData)
|
||||||
{
|
{
|
||||||
$mapIndexToKey = [];
|
$mapIndexToKey = [];
|
||||||
foreach ($viewData->getIterator() as $key => $altName) {
|
|
||||||
|
if (is_array($viewData)) {
|
||||||
|
$dataIterator = $viewData;
|
||||||
|
} else {
|
||||||
|
$dataIterator = $viewData instanceof ArrayCollection ?
|
||||||
|
$viewData->toArray() : $viewData->getIterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($dataIterator as $key => $altName) {
|
||||||
/** @var PersonAltName $altName */
|
/** @var PersonAltName $altName */
|
||||||
$mapIndexToKey[$altName->getKey()] = $key;
|
$mapIndexToKey[$altName->getKey()] = $key;
|
||||||
}
|
}
|
||||||
@ -64,7 +73,12 @@ class PersonAltNameDataMapper implements DataMapperInterface
|
|||||||
->setKey($key)
|
->setKey($key)
|
||||||
->setLabel($form->getData())
|
->setLabel($form->getData())
|
||||||
;
|
;
|
||||||
$viewData->add($altName);
|
|
||||||
|
if (is_array($viewData)) {
|
||||||
|
$viewData[] = $altName;
|
||||||
|
} else {
|
||||||
|
$viewData->add($altName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ use Symfony\Component\Form\AbstractType;
|
|||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||||
use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper;
|
use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper;
|
||||||
use Chill\MainBundle\Templating\TranslatableStringHelper;
|
use Chill\MainBundle\Templating\TranslatableStringHelper;
|
||||||
|
|
||||||
@ -38,7 +39,9 @@ class PersonAltNameType extends AbstractType
|
|||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
{
|
{
|
||||||
foreach ($this->getKeyChoices() as $label => $key) {
|
foreach ($this->getKeyChoices() as $label => $key) {
|
||||||
$builder->add($key, TextType::class, [
|
$builder->add(
|
||||||
|
$key,
|
||||||
|
$options['force_hidden'] ? HiddenType::class : TextType::class, [
|
||||||
'label' => $label,
|
'label' => $label,
|
||||||
'required' => false
|
'required' => false
|
||||||
]);
|
]);
|
||||||
@ -64,6 +67,9 @@ class PersonAltNameType extends AbstractType
|
|||||||
{
|
{
|
||||||
$resolver
|
$resolver
|
||||||
->setDefault('class', \Chill\PersonBundle\Entity\PersonAltName::class)
|
->setDefault('class', \Chill\PersonBundle\Entity\PersonAltName::class)
|
||||||
|
->setDefined('force_hidden')
|
||||||
|
->setAllowedTypes('force_hidden', 'bool')
|
||||||
|
->setDefault('force_hidden', false)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,11 +39,3 @@ services:
|
|||||||
- "%chill_person.validation.birtdate_not_before%"
|
- "%chill_person.validation.birtdate_not_before%"
|
||||||
tags:
|
tags:
|
||||||
- { name: validator.constraint_validator, alias: birthdate_not_before }
|
- { name: validator.constraint_validator, alias: birthdate_not_before }
|
||||||
|
|
||||||
chill.main.form.person_creation:
|
|
||||||
class: Chill\PersonBundle\Form\CreationPersonType
|
|
||||||
arguments:
|
|
||||||
- "@chill.main.form.data_transformer.center_transformer"
|
|
||||||
tags:
|
|
||||||
- { name: form.type, alias: chill_personbundle_person_creation }
|
|
||||||
|
|
||||||
|
@ -1,11 +1,25 @@
|
|||||||
services:
|
services:
|
||||||
chill.person.form.person_creation:
|
Chill\PersonBundle\Form\PersonType:
|
||||||
class: Chill\PersonBundle\Form\PersonType
|
|
||||||
arguments:
|
arguments:
|
||||||
- "%chill_person.person_fields%"
|
- '%chill_person.person_fields%'
|
||||||
- '@Chill\PersonBundle\Config\ConfigPersonAltNamesHelper'
|
- '@Chill\PersonBundle\Config\ConfigPersonAltNamesHelper'
|
||||||
tags:
|
tags:
|
||||||
- { name: form.type }
|
- { name: form.type }
|
||||||
|
|
||||||
|
chill.person.form.person_creation:
|
||||||
|
alias: 'Chill\PersonBundle\Form\PersonType'
|
||||||
|
deprecated: true
|
||||||
|
|
||||||
|
Chill\PersonBundle\Form\CreationPersonType:
|
||||||
|
arguments:
|
||||||
|
- '@chill.main.form.data_transformer.center_transformer'
|
||||||
|
- '@Chill\PersonBundle\Config\ConfigPersonAltNamesHelper'
|
||||||
|
tags:
|
||||||
|
- { name: form.type }
|
||||||
|
|
||||||
|
chill.main.form.person_creation:
|
||||||
|
alias: 'Chill\PersonBundle\Form\CreationPersonType'
|
||||||
|
deprecated: true
|
||||||
|
|
||||||
chill.person.accompanying_period_closing_motive:
|
chill.person.accompanying_period_closing_motive:
|
||||||
class: Chill\PersonBundle\Form\Type\ClosingMotiveType
|
class: Chill\PersonBundle\Form\Type\ClosingMotiveType
|
||||||
|
@ -28,6 +28,10 @@
|
|||||||
{{ form_row(form.firstName, { 'label' : 'First name'|trans }) }}
|
{{ form_row(form.firstName, { 'label' : 'First name'|trans }) }}
|
||||||
|
|
||||||
{{ form_row(form.lastName, { 'label' : 'Last name'|trans }) }}
|
{{ form_row(form.lastName, { 'label' : 'Last name'|trans }) }}
|
||||||
|
|
||||||
|
{% if form.altNames is defined %}
|
||||||
|
{{ form_widget(form.altNames) }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{{ form_row(form.birthdate, { 'label' : 'Date of birth'|trans }) }}
|
{{ form_row(form.birthdate, { 'label' : 'Date of birth'|trans }) }}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ path('chill_person_view', {'person_id': person.id } ) }}">
|
<a href="{{ path('chill_person_view', {'person_id': person.id } ) }}">
|
||||||
{{ person }}{% spaceless %}
|
{{ person|chill_entity_render_string }}{% spaceless %}
|
||||||
{% if person.isOpen == false %}
|
{% if person.isOpen == false %}
|
||||||
<i class="icon-lock"></i>
|
<i class="icon-lock"></i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -65,11 +65,8 @@
|
|||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
<h2>{{ 'You will create this person'|trans }}</h2>
|
<h2>{{ 'You will create this person'|trans }}</h2>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{{ 'First name'|trans }}</dt>
|
<dt>{{ 'Name'|trans }}</dt>
|
||||||
<dd>{{ firstName }}</dd>
|
<dd>{{ person|chill_entity_render_string }}</dd>
|
||||||
|
|
||||||
<dt>{{ 'Last name'|trans }}</dt>
|
|
||||||
<dd>{{ lastName }}</dd>
|
|
||||||
|
|
||||||
<dt>{{ 'Date of birth'|trans }}</dt>
|
<dt>{{ 'Date of birth'|trans }}</dt>
|
||||||
<dd>{{ birthdate|localizeddate('long', 'none', app.request.locale)|default( 'Unknown date of birth'|trans ) }}</dd>
|
<dd>{{ birthdate|localizeddate('long', 'none', app.request.locale)|default( 'Unknown date of birth'|trans ) }}</dd>
|
||||||
@ -79,6 +76,11 @@
|
|||||||
|
|
||||||
<dt>{{ 'Creation date'|trans }}</dt>
|
<dt>{{ 'Creation date'|trans }}</dt>
|
||||||
<dd>{{ creation_date|localizeddate('long', 'none', app.request.locale) }}</dd>
|
<dd>{{ creation_date|localizeddate('long', 'none', app.request.locale) }}</dd>
|
||||||
|
|
||||||
|
{% if form.altNames is defined %}
|
||||||
|
{# mark as rendered #}
|
||||||
|
{{ form_widget(form.altNames) }}
|
||||||
|
{% endif %}
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
{{ form_rest(form) }}
|
{{ form_rest(form) }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user