mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
circuit of creating a person
This commit is contained in:
parent
5750c73574
commit
fcbe220c6c
@ -166,38 +166,27 @@ class PersonController extends Controller {
|
|||||||
* @return \CL\Chill\PersonBundle\Entity\Person
|
* @return \CL\Chill\PersonBundle\Entity\Person
|
||||||
*/
|
*/
|
||||||
private function _bindCreationForm($form) {
|
private function _bindCreationForm($form) {
|
||||||
$date = new \DateTime($form['creation_date']->getData());
|
$date = new \DateTime();
|
||||||
$person = new Person($date);
|
$person = new Person($form['creation_date']->getData());
|
||||||
|
|
||||||
|
|
||||||
$date_of_birth = new \DateTime($form['dateOfBirth']->getData());
|
$date_of_birth = new \DateTime();
|
||||||
|
|
||||||
$person->setName($form['name']->getData())
|
$person->setName($form['name']->getData())
|
||||||
->setSurname($form['surname']->getData())
|
->setSurname($form['surname']->getData())
|
||||||
->setGenre($form['genre']->getData())
|
->setGenre($form['genre']->getData())
|
||||||
->setDateOfBirth($date_of_birth)
|
->setDateOfBirth($form['dateOfBirth']->getData())
|
||||||
;
|
;
|
||||||
|
|
||||||
return $person;
|
return $person;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function reviewAction() {
|
/**
|
||||||
$request = $this->getRequest();
|
*
|
||||||
|
* @param \CL\Chill\PersonBundle\Entity\Person $person
|
||||||
if ($request->getMethod() !== 'POST') {
|
* @return \Symfony\Component\Validator\ConstraintViolationListInterface
|
||||||
$r = new Response("You must send something to review the creation of a new Person");
|
*/
|
||||||
$r->setStatusCode(400);
|
private function _validatePersonAndHistory(Person $person) {
|
||||||
return $r;
|
|
||||||
}
|
|
||||||
|
|
||||||
$form = $this->createForm(
|
|
||||||
new CreationPersonType(CreationPersonType::FORM_BEING_REVIEWED),
|
|
||||||
null, array('action' => $this->generateUrl('chill_person_create')));
|
|
||||||
|
|
||||||
$form->handleRequest($request);
|
|
||||||
|
|
||||||
$person = $this->_bindCreationForm($form);
|
|
||||||
|
|
||||||
$errors = $this->get('validator')
|
$errors = $this->get('validator')
|
||||||
->validate($person, array('creation'));
|
->validate($person, array('creation'));
|
||||||
|
|
||||||
@ -214,6 +203,28 @@ class PersonController extends Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function reviewAction() {
|
||||||
|
$request = $this->getRequest();
|
||||||
|
|
||||||
|
if ($request->getMethod() !== 'POST') {
|
||||||
|
$r = new Response("You must send something to review the creation of a new Person");
|
||||||
|
$r->setStatusCode(400);
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
$form = $this->createForm(
|
||||||
|
new CreationPersonType(CreationPersonType::FORM_BEING_REVIEWED),
|
||||||
|
null, array('action' => $this->generateUrl('chill_person_create')));
|
||||||
|
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
$person = $this->_bindCreationForm($form);
|
||||||
|
|
||||||
|
$errors = $this->_validatePersonAndHistory($person);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ( count($errors) > 0) {
|
if ( count($errors) > 0) {
|
||||||
@ -279,6 +290,42 @@ class PersonController extends Controller {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function createAction() {
|
||||||
|
|
||||||
|
$request = $this->getRequest();
|
||||||
|
|
||||||
|
if ($request->getMethod() !== 'POST') {
|
||||||
|
$r = new Response('You must send something to create a person !');
|
||||||
|
$r->setStatusCode(400);
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
$form = $this->createForm(new CreationPersonType());
|
||||||
|
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
$person = $this->_bindCreationForm($form);
|
||||||
|
|
||||||
|
$errors = $this->_validatePersonAndHistory($person);
|
||||||
|
|
||||||
|
if ($errors->count() === 0) {
|
||||||
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
|
$em->persist($person);
|
||||||
|
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
|
return $this->redirect($this->generateUrl('chill_person_view',
|
||||||
|
array('id' => $person->getId())));
|
||||||
|
} else {
|
||||||
|
$r = new Response('this should not happen if you reviewed your submission');
|
||||||
|
$r->setStatusCode(400);
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* easy getting a person by his id
|
* easy getting a person by his id
|
||||||
* @return \CL\Chill\PersonBundle\Entity\Person
|
* @return \CL\Chill\PersonBundle\Entity\Person
|
||||||
|
@ -46,7 +46,7 @@ class Person
|
|||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $civil_union;
|
private $civil_union = self::CIVIL_UNKNOW;
|
||||||
/*Célibataire
|
/*Célibataire
|
||||||
Marié(e)
|
Marié(e)
|
||||||
Veuf – Veuve
|
Veuf – Veuve
|
||||||
@ -339,6 +339,10 @@ ou une valeur vide lorsque la donnée nest pas connue*/
|
|||||||
*/
|
*/
|
||||||
public function setPlaceOfBirth($placeOfBirth)
|
public function setPlaceOfBirth($placeOfBirth)
|
||||||
{
|
{
|
||||||
|
if ($placeOfBirth === null) {
|
||||||
|
$placeOfBirth = '';
|
||||||
|
}
|
||||||
|
|
||||||
$this->placeOfBirth = $placeOfBirth;
|
$this->placeOfBirth = $placeOfBirth;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
@ -443,6 +447,10 @@ ou une valeur vide lorsque la donnée nest pas connue*/
|
|||||||
*/
|
*/
|
||||||
public function setBelgianNationalNumber($belgianNationalNumber)
|
public function setBelgianNationalNumber($belgianNationalNumber)
|
||||||
{
|
{
|
||||||
|
if ($belgianNationalNumber === null) {
|
||||||
|
$belgianNationalNumber = '';
|
||||||
|
}
|
||||||
|
|
||||||
$this->belgian_national_number = $belgianNationalNumber;
|
$this->belgian_national_number = $belgianNationalNumber;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
@ -520,6 +528,10 @@ ou une valeur vide lorsque la donnée nest pas connue*/
|
|||||||
*/
|
*/
|
||||||
public function setEmail($email)
|
public function setEmail($email)
|
||||||
{
|
{
|
||||||
|
if ($email === null) {
|
||||||
|
$email = '';
|
||||||
|
}
|
||||||
|
|
||||||
$this->email = $email;
|
$this->email = $email;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
|
@ -8,6 +8,7 @@ use Symfony\Component\OptionsResolver\OptionsResolverInterface;
|
|||||||
use CL\Chill\PersonBundle\Form\Type\CivilType;
|
use CL\Chill\PersonBundle\Form\Type\CivilType;
|
||||||
use CL\Chill\PersonBundle\Form\Type\GenderType;
|
use CL\Chill\PersonBundle\Form\Type\GenderType;
|
||||||
use CL\BelgianNationalNumberBundle\Form\BelgianNationalNumberType;
|
use CL\BelgianNationalNumberBundle\Form\BelgianNationalNumberType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
|
||||||
|
|
||||||
class CreationPersonType extends AbstractType
|
class CreationPersonType extends AbstractType
|
||||||
{
|
{
|
||||||
@ -31,11 +32,20 @@ class CreationPersonType extends AbstractType
|
|||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
{
|
{
|
||||||
if ($this->form_status === self::FORM_BEING_REVIEWED) {
|
if ($this->form_status === self::FORM_BEING_REVIEWED) {
|
||||||
|
|
||||||
|
$dateToStringTransformer = new DateTimeToStringTransformer(
|
||||||
|
null, null, 'Y-m-d', true);
|
||||||
|
|
||||||
|
|
||||||
$builder->add('name', 'hidden')
|
$builder->add('name', 'hidden')
|
||||||
->add('surname', 'hidden')
|
->add('surname', 'hidden')
|
||||||
->add('dateOfBirth', 'hidden')
|
->add( $builder->create('dateOfBirth', 'hidden')
|
||||||
|
->addModelTransformer($dateToStringTransformer)
|
||||||
|
)
|
||||||
->add('genre', 'hidden')
|
->add('genre', 'hidden')
|
||||||
->add('creation_date', 'hidden')
|
->add( $builder->create('creation_date', 'hidden')
|
||||||
|
->addModelTransformer($dateToStringTransformer)
|
||||||
|
)
|
||||||
->add('form_status', 'hidden')
|
->add('form_status', 'hidden')
|
||||||
;
|
;
|
||||||
} else {
|
} else {
|
||||||
@ -44,7 +54,7 @@ class CreationPersonType extends AbstractType
|
|||||||
->add('surname')
|
->add('surname')
|
||||||
->add('dateOfBirth', 'date', array('required' => false, 'widget' => 'single_text'))
|
->add('dateOfBirth', 'date', array('required' => false, 'widget' => 'single_text'))
|
||||||
->add('genre', new GenderType(), array(
|
->add('genre', new GenderType(), array(
|
||||||
'required' => false
|
'required' => true
|
||||||
))
|
))
|
||||||
->add('creation_date', 'date', array('required' => true,
|
->add('creation_date', 'date', array('required' => true,
|
||||||
'widget' => 'single_text', 'data' => new \DateTime()))
|
'widget' => 'single_text', 'data' => new \DateTime()))
|
||||||
|
51
Resources/views/Person/create.html.twig
Normal file
51
Resources/views/Person/create.html.twig
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{% extends "CLChillMainBundle::layout.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}{{ 'views.Person.creation.title'|trans }}{% endblock title %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
|
||||||
|
{% stylesheets output="css/all.css" filter="cssrewrite"
|
||||||
|
"bundles/clchillperson/css/person.css"
|
||||||
|
%}
|
||||||
|
<link rel="stylesheet" href="{{ asset_url }}"/>
|
||||||
|
{% endstylesheets %}
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% form_theme form 'CLChillMainBundle:Form:fields.html.twig' %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div id="person_wrapper">
|
||||||
|
<div id="person_details">
|
||||||
|
{{ form_start(form) }}
|
||||||
|
|
||||||
|
<h1>{{ 'views.Person.creation.open'|trans }}</h1>
|
||||||
|
|
||||||
|
{{ form_row(form.name, { 'label' : 'views.Person.view.name'|trans }) }}
|
||||||
|
|
||||||
|
{{ form_row(form.surname, { 'label' : 'views.Person.view.surname'|trans }) }}
|
||||||
|
|
||||||
|
{{ form_row(form.dateOfBirth, { 'label' : 'views.Person.view.dateOfBirth'|trans }) }}
|
||||||
|
|
||||||
|
{{ form_row(form.genre, { 'label' : 'views.Person.view.gender'|trans }) }}
|
||||||
|
|
||||||
|
{{ form_row(form.creation_date, { 'label' : 'views.Person.review.creation_date'|trans }) }}
|
||||||
|
|
||||||
|
{{ form_rest(form) }}
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form_control">
|
||||||
|
<div class="medium success btn icon-right entypo icon-user-add">
|
||||||
|
<button type="submit">{{ 'views.Person.creation.add'|trans }}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ form_end(form) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
87
Resources/views/Person/create_review.html.twig
Normal file
87
Resources/views/Person/create_review.html.twig
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
{% extends "CLChillMainBundle::layout.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}{{ 'views.Person.review.title'|trans }}{% endblock title %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
|
||||||
|
{% stylesheets output="css/all.css" filter="cssrewrite"
|
||||||
|
"bundles/clchillperson/css/person.css"
|
||||||
|
%}
|
||||||
|
<link rel="stylesheet" href="{{ asset_url }}"/>
|
||||||
|
{% endstylesheets %}
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% form_theme form 'CLChillMainBundle:Form:fields.html.twig' %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div id="person_wrapper">
|
||||||
|
{% if alternatePersons is not empty %}
|
||||||
|
<table class="rounded stripped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{{ 'views.Person.review.altName'|trans }}</th>
|
||||||
|
<th>{{ 'views.Person.review.altDateOfBirth'|trans }}</th>
|
||||||
|
<th>{{ 'views.Person.review.altNationality'|trans }}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for person in alternatePersons %}
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="{{ path('chill_person_view', {'id': person.id } ) }}">
|
||||||
|
{{ person }}{% spaceless %}{% if person.isOpen == false %}<i class="icon-lock"></i>{% endif %}
|
||||||
|
{% endspaceless %}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>{{ person.dateOfBirth|date(date_format) }}</td>
|
||||||
|
<td>{{ person.nationality|default('person.without_nationality'|trans) }}
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
<div id="person_details">
|
||||||
|
{{ form_start(form) }}
|
||||||
|
<h2>{{ 'views.Person.review.you_will_create_this_person'|trans }}</h2>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>{{ 'views.Person.view.name'|trans }}</dt>
|
||||||
|
<dd>{{ name }}</dd>
|
||||||
|
|
||||||
|
<dt>{{ 'views.Person.view.surname'|trans }}</dt>
|
||||||
|
<dd>{{ surname }}</dd>
|
||||||
|
|
||||||
|
<dt>{{ 'views.Person.view.dateOfBirth'|trans }}</dt>
|
||||||
|
<dd>{{ dateOfBirth|date(date_format)|default( 'person.without_date_of_birth'|trans ) }}</dd>
|
||||||
|
|
||||||
|
<dt>{{ 'views.Person.view.gender'|trans }}</dt>
|
||||||
|
<dd>{{ ('person.gender.' ~ genre)|trans }}</dd>
|
||||||
|
|
||||||
|
<dt>{{ 'views.Person.review.creation_date'|trans }}</dt>
|
||||||
|
<dd>{{ creation_date|date(date_format) }}</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
{{ form_rest(form) }}
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form_control">
|
||||||
|
<div class="btn medium success entypo icon-right icon-user-add">
|
||||||
|
<button type="submit">{{ 'views.Person.review.confirm_creation'|trans }}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ form_end(form) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
@ -21,6 +21,11 @@
|
|||||||
<a href="{{ path('chill_person_view', {id : person.id}) }}">
|
<a href="{{ path('chill_person_view', {id : person.id}) }}">
|
||||||
<span class="personSurname">{{person.surname}}</span>
|
<span class="personSurname">{{person.surname}}</span>
|
||||||
<span class="personName">{{person.name}}</span>
|
<span class="personName">{{person.name}}</span>
|
||||||
|
{% spaceless %}
|
||||||
|
{% if person.isOpen == false %}
|
||||||
|
<i class="icon-lock"></i>
|
||||||
|
{% endif %}
|
||||||
|
{% endspaceless %}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td><span class="personDateOfBirth">{{person.dateOfBirth.format(date_format)}}</span></td>
|
<td><span class="personDateOfBirth">{{person.dateOfBirth.format(date_format)}}</span></td>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user