mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
fix conflict + error on CommentType
This commit is contained in:
commit
aa5c7f333e
@ -51,7 +51,7 @@ class CommentType extends AbstractType
|
||||
|
||||
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
|
||||
$data = $event->getForm()->getData();
|
||||
$comment = $event->getData();
|
||||
$comment = $event->getData() ?? ['comment' => ''];
|
||||
|
||||
if ($data->getComment() !== $comment['comment']) {
|
||||
$data->setDate(new \DateTime());
|
||||
|
@ -78,6 +78,7 @@ class Configuration implements ConfigurationInterface
|
||||
->append($this->addFieldNode('address'))
|
||||
->append($this->addFieldNode('accompanying_period'))
|
||||
->append($this->addFieldNode('memo'))
|
||||
->append($this->addFieldNode('number_of_children'))
|
||||
->arrayNode('alt_names')
|
||||
->defaultValue([])
|
||||
->arrayPrototype()
|
||||
|
@ -23,13 +23,17 @@ namespace Chill\PersonBundle\Entity;
|
||||
*/
|
||||
|
||||
use ArrayIterator;
|
||||
use Chill\MainBundle\Doctrine\Model\TrackCreationInterface;
|
||||
use Chill\MainBundle\Doctrine\Model\TrackUpdateInterface;
|
||||
use Chill\MainBundle\Entity\Center;
|
||||
use Chill\MainBundle\Entity\Country;
|
||||
use Chill\MainBundle\Entity\User;
|
||||
use Chill\PersonBundle\Entity\Household\Household;
|
||||
use Chill\PersonBundle\Entity\MaritalStatus;
|
||||
use Chill\PersonBundle\Entity\Household\HouseholdMember;
|
||||
use Chill\MainBundle\Entity\HasCenterInterface;
|
||||
use Chill\MainBundle\Entity\Address;
|
||||
use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable;
|
||||
use DateTime;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
@ -53,7 +57,7 @@ use Chill\PersonBundle\Entity\Household\PersonHouseholdAddress;
|
||||
* "person"=Person::class
|
||||
* })
|
||||
*/
|
||||
class Person implements HasCenterInterface
|
||||
class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateInterface
|
||||
{
|
||||
/**
|
||||
* The person's id
|
||||
@ -100,6 +104,14 @@ class Person implements HasCenterInterface
|
||||
*/
|
||||
private $birthdate; //to change in birthdate
|
||||
|
||||
/**
|
||||
* The person's deathdate
|
||||
* @var \DateTimeImmutable
|
||||
*
|
||||
* @ORM\Column(type="date_immutable", nullable=true)
|
||||
*/
|
||||
private ?\DateTimeImmutable $deathdate;
|
||||
|
||||
/**
|
||||
* The person's place of birth
|
||||
* @var string
|
||||
@ -143,6 +155,14 @@ class Person implements HasCenterInterface
|
||||
const MALE_GENDER = 'man';
|
||||
const FEMALE_GENDER = 'woman';
|
||||
const BOTH_GENDER = 'both';
|
||||
const NO_INFORMATION = 'unknown';
|
||||
|
||||
/**
|
||||
* Comment on gender
|
||||
* @var CommentEmbeddable
|
||||
* @ORM\Embedded(class="Chill\MainBundle\Entity\Embeddable\CommentEmbeddable", columnPrefix="genderComment_")
|
||||
*/
|
||||
private CommentEmbeddable $genderComment;
|
||||
|
||||
/**
|
||||
* The marital status of the person
|
||||
@ -153,6 +173,21 @@ class Person implements HasCenterInterface
|
||||
*/
|
||||
private $maritalStatus;
|
||||
|
||||
/**
|
||||
* The date of the last marital status change of the person
|
||||
* @var \DateTime
|
||||
*
|
||||
* @ORM\Column(type="date", nullable=true)
|
||||
*/
|
||||
private $maritalStatusDate;
|
||||
|
||||
/**
|
||||
* Comment on marital status
|
||||
* @var CommentEmbeddable
|
||||
* @ORM\Embedded(class="Chill\MainBundle\Entity\Embeddable\CommentEmbeddable", columnPrefix="maritalStatusComment_")
|
||||
*/
|
||||
private CommentEmbeddable $maritalStatusComment;
|
||||
|
||||
/**
|
||||
* Contact information for contacting the person
|
||||
* @var string
|
||||
@ -240,6 +275,54 @@ class Person implements HasCenterInterface
|
||||
*/
|
||||
private $memo = ''; // TO-CHANGE in remark
|
||||
|
||||
|
||||
/**
|
||||
* Accept short text message (aka SMS)
|
||||
* @var boolean
|
||||
*
|
||||
* @ORM\Column(type="boolean", options={"default" : false})
|
||||
*/
|
||||
private ?bool $acceptSMS = false;
|
||||
|
||||
/**
|
||||
* Accept receiving email
|
||||
* @var boolean
|
||||
*
|
||||
* @ORM\Column(type="boolean", options={"default" : false})
|
||||
*/
|
||||
private ?bool $acceptEmail = false;
|
||||
|
||||
/**
|
||||
* Number of children
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(type="integer", nullable=true)
|
||||
*/
|
||||
private ?int $numberOfChildren = null;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity=User::class)
|
||||
* @ORM\JoinColumn(nullable=true)
|
||||
*/
|
||||
private $createdBy;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="datetime", nullable=true, options={"default": NULL})
|
||||
*/
|
||||
private \DateTimeInterface $createdAt;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(
|
||||
* targetEntity=User::class
|
||||
* )
|
||||
*/
|
||||
private User $updatedBy;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="datetime", nullable=true, options={"default": NULL})
|
||||
*/
|
||||
private \DateTimeInterface $updatedAt;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @deprecated
|
||||
@ -316,6 +399,8 @@ class Person implements HasCenterInterface
|
||||
}
|
||||
|
||||
$this->open(new AccompanyingPeriod($opening));
|
||||
$this->genderComment = new CommentEmbeddable();
|
||||
$this->maritalStatusComment = new CommentEmbeddable();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1341,4 +1426,122 @@ class Person implements HasCenterInterface
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public function getGenderComment(): CommentEmbeddable
|
||||
{
|
||||
return $this->genderComment;
|
||||
}
|
||||
|
||||
public function setGenderComment(CommentEmbeddable $genderComment): self
|
||||
{
|
||||
$this->genderComment = $genderComment;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMaritalStatusComment(): CommentEmbeddable
|
||||
{
|
||||
return $this->maritalStatusComment;
|
||||
}
|
||||
|
||||
public function setMaritalStatusComment(CommentEmbeddable $maritalStatusComment): self
|
||||
{
|
||||
$this->maritalStatusComment = $maritalStatusComment;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDeathdate(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->deathdate;
|
||||
}
|
||||
|
||||
public function setDeathdate(?\DateTimeInterface $deathdate): self
|
||||
{
|
||||
$this->deathdate = $deathdate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMaritalStatusDate(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->maritalStatusDate;
|
||||
}
|
||||
|
||||
public function setMaritalStatusDate(?\DateTimeInterface $maritalStatusDate): self
|
||||
{
|
||||
$this->maritalStatusDate = $maritalStatusDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAcceptSMS(): ?bool
|
||||
{
|
||||
return $this->acceptSMS;
|
||||
}
|
||||
|
||||
public function setAcceptSMS(bool $acceptSMS): self
|
||||
{
|
||||
$this->acceptSMS = $acceptSMS;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAcceptEmail(): ?bool
|
||||
{
|
||||
return $this->acceptEmail;
|
||||
}
|
||||
|
||||
public function setAcceptEmail(bool $acceptEmail): self
|
||||
{
|
||||
$this->acceptEmail = $acceptEmail;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getNumberOfChildren(): ?int
|
||||
{
|
||||
return $this->numberOfChildren;
|
||||
}
|
||||
|
||||
public function setNumberOfChildren(int $numberOfChildren): self
|
||||
{
|
||||
$this->numberOfChildren = $numberOfChildren;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCreatedBy(): ?User
|
||||
{
|
||||
return $this->createdBy;
|
||||
}
|
||||
|
||||
public function setCreatedBy(User $createdBy): self
|
||||
{
|
||||
$this->createdBy = $createdBy;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setCreatedAt(\DateTimeInterface $datetime): self
|
||||
{
|
||||
$this->createdAt = $datetime;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setUpdatedBy(User $user): self
|
||||
{
|
||||
$this->updatedBy = $user;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setUpdatedAt(\DateTimeInterface $datetime): self
|
||||
{
|
||||
$this->updatedAt = $datetime;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -34,9 +34,13 @@ use Chill\PersonBundle\Entity\PersonPhone;
|
||||
use Chill\PersonBundle\Form\Type\Select2MaritalStatusType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Chill\MainBundle\Form\Type\ChillDateType;
|
||||
use Chill\MainBundle\Form\Type\CommentType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TelType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
@ -82,8 +86,19 @@ class PersonType extends AbstractType
|
||||
->add('birthdate', ChillDateType::class, [
|
||||
'required' => false,
|
||||
])
|
||||
->add('deathdate', DateType::class, [
|
||||
'required' => false,
|
||||
'input' => 'datetime_immutable',
|
||||
'widget' => 'single_text'
|
||||
])
|
||||
->add('gender', GenderType::class, array(
|
||||
'required' => true
|
||||
))
|
||||
->add('genderComment', CommentType::class, array(
|
||||
'required' => false
|
||||
))
|
||||
->add('numberOfChildren', IntegerType::class, array(
|
||||
'required' => false
|
||||
));
|
||||
|
||||
if ($this->configAltNamesHelper->hasAltNames()) {
|
||||
@ -111,7 +126,12 @@ class PersonType extends AbstractType
|
||||
}
|
||||
|
||||
if ($this->config['mobilenumber'] === 'visible') {
|
||||
$builder->add('mobilenumber', TelType::class, array('required' => false));
|
||||
$builder
|
||||
->add('mobilenumber', TelType::class, array('required' => false))
|
||||
->add('acceptSMS', CheckboxType::class, array(
|
||||
'value' => false,
|
||||
'required' => true
|
||||
));
|
||||
}
|
||||
|
||||
$builder->add('otherPhoneNumbers', ChillCollectionType::class, [
|
||||
@ -130,7 +150,9 @@ class PersonType extends AbstractType
|
||||
]);
|
||||
|
||||
if ($this->config['email'] === 'visible') {
|
||||
$builder->add('email', EmailType::class, array('required' => false));
|
||||
$builder
|
||||
->add('email', EmailType::class, array('required' => false))
|
||||
->add('acceptEmail', CheckboxType::class, array('required' => false));
|
||||
}
|
||||
|
||||
if ($this->config['country_of_birth'] === 'visible') {
|
||||
@ -153,9 +175,16 @@ class PersonType extends AbstractType
|
||||
}
|
||||
|
||||
if ($this->config['marital_status'] === 'visible'){
|
||||
$builder->add('maritalStatus', Select2MaritalStatusType::class, array(
|
||||
'required' => false
|
||||
));
|
||||
$builder
|
||||
->add('maritalStatus', Select2MaritalStatusType::class, array(
|
||||
'required' => false
|
||||
))
|
||||
->add('maritalStatusDate', ChillDateType::class, array(
|
||||
'required' => false
|
||||
))
|
||||
->add('maritalStatusComment', CommentType::class, array(
|
||||
'required' => false
|
||||
));
|
||||
}
|
||||
|
||||
if($options['cFGroup']) {
|
||||
|
57
src/Bundle/ChillPersonBundle/Resources/public/js/person.js
Normal file
57
src/Bundle/ChillPersonBundle/Resources/public/js/person.js
Normal file
@ -0,0 +1,57 @@
|
||||
import { ShowHide } from 'ShowHide/show_hide.js';
|
||||
|
||||
const maritalStatus = document.getElementById("maritalStatus");
|
||||
const maritalStatusDate = document.getElementById("maritalStatusDate");
|
||||
const personEmail = document.getElementById("personEmail");
|
||||
const personAcceptEmail = document.getElementById("personAcceptEmail");
|
||||
const personPhoneNumber = document.getElementById("personPhoneNumber");
|
||||
const personAcceptSMS = document.getElementById("personAcceptSMS");
|
||||
|
||||
|
||||
new ShowHide({
|
||||
froms: [maritalStatus],
|
||||
container: [maritalStatusDate],
|
||||
test: function(froms) {
|
||||
for (let f of froms.values()) {
|
||||
for (let input of f.querySelectorAll('select').values()) {
|
||||
if (input.value) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
event_name: 'change'
|
||||
});
|
||||
|
||||
new ShowHide({
|
||||
froms: [personEmail],
|
||||
container: [personAcceptEmail],
|
||||
test: function(froms) {
|
||||
for (let f of froms.values()) {
|
||||
for (let input of f.querySelectorAll('input').values()) {
|
||||
if (input.value) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
event_name: 'input'
|
||||
});
|
||||
|
||||
new ShowHide({
|
||||
froms: [personPhoneNumber],
|
||||
container: [personAcceptSMS],
|
||||
test: function(froms) {
|
||||
for (let f of froms.values()) {
|
||||
for (let input of f.querySelectorAll('input').values()) {
|
||||
if (input.value) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
event_name: 'input'
|
||||
});
|
@ -43,6 +43,7 @@
|
||||
{{ form_widget(form.altNames, { 'label': 'Alternative names'}) }}
|
||||
{% endif %}
|
||||
{{ form_row(form.gender, {'label' : 'Gender'}) }}
|
||||
{{ form_row(form.genderComment, { 'label' : 'Comment on the gender'} ) }}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
@ -54,9 +55,12 @@
|
||||
{%- if form.countryOfBirth is defined -%}
|
||||
{{ form_row(form.countryOfBirth, { 'label' : 'Country of birth' } ) }}
|
||||
{%- endif -%}
|
||||
{%- if form.deathdate is defined -%}
|
||||
{{ form_row(form.deathdate, { 'label' : 'Date of death' } ) }}
|
||||
{%- endif -%}
|
||||
</fieldset>
|
||||
|
||||
{%- if form.nationality is defined or form.spokenLanguages is defined or form.maritalStatus is defined -%}
|
||||
{%- if form.nationality is defined or form.spokenLanguages is defined -%}
|
||||
<fieldset>
|
||||
<legend><h2>{{ 'Administrative information'|trans }}</h2></legend>
|
||||
{%- if form.nationality is defined -%}
|
||||
@ -65,8 +69,21 @@
|
||||
{%- if form.spokenLanguages is defined -%}
|
||||
{{ form_row(form.spokenLanguages, {'label' : 'Spoken languages'}) }}
|
||||
{%- endif -%}
|
||||
</fieldset>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if form.numberOfChildren is defined or form.maritalStatus is defined -%}
|
||||
<fieldset>
|
||||
<legend><h2>{{ 'Marital status'|trans }}</h2></legend>
|
||||
{{ form_row(form.numberOfChildren, {'label' : 'Number of children'}) }}
|
||||
{%- if form.maritalStatus is defined -%}
|
||||
{{ form_row(form.maritalStatus, { 'label' : 'Marital status'} ) }}
|
||||
<div id="maritalStatus">
|
||||
{{ form_row(form.maritalStatus, { 'label' : 'Marital status'} ) }}
|
||||
</div>
|
||||
<div id="maritalStatusDate">
|
||||
{{ form_row(form.maritalStatusDate, { 'label' : 'Date of last marital status change'} ) }}
|
||||
{{ form_row(form.maritalStatusComment, { 'label' : 'Comment on the marital status'} ) }}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
</fieldset>
|
||||
{%- endif -%}
|
||||
@ -75,13 +92,24 @@
|
||||
<fieldset>
|
||||
<legend><h2>{{ 'Contact information'|trans }}</h2></legend>
|
||||
{%- if form.email is defined -%}
|
||||
{{ form_row(form.email, {'label': 'Email'}) }}
|
||||
<div id="personEmail">
|
||||
{{ form_row(form.email, {'label': 'Email'}) }}
|
||||
</div>
|
||||
<div id="personAcceptEmail">
|
||||
{{ form_row(form.acceptEmail, {'label' : 'Accept emails ?'}) }}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if form.phonenumber is defined -%}
|
||||
{{ form_row(form.phonenumber, {'label': 'Phonenumber'}) }}
|
||||
{%- endif -%}
|
||||
{%- if form.mobilenumber is defined -%}
|
||||
{{ form_row(form.mobilenumber, {'label': 'Mobilenumber'}) }}
|
||||
<div id="personPhoneNumber">
|
||||
{{ form_row(form.mobilenumber, {'label': 'Mobilenumber'}) }}
|
||||
</div>
|
||||
<div id="personAcceptSMS">
|
||||
{{ form_row(form.acceptSMS, {'label' : 'Accept short text message ?'}) }}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
{%- if form.otherPhoneNumbers is defined -%}
|
||||
{{ form_widget(form.otherPhoneNumbers) }}
|
||||
@ -114,3 +142,8 @@
|
||||
|
||||
|
||||
{% endblock personcontent %}
|
||||
|
||||
|
||||
{% block js %}
|
||||
<script type="text/javascript" src="{{ asset('build/person.js') }}"></script>
|
||||
{% endblock js %}
|
||||
|
@ -73,12 +73,14 @@ This view should receive those arguments:
|
||||
|
||||
<dt>{{ 'Gender'|trans }} :</dt>
|
||||
<dd>{{ ( person.gender|default('Not given'))|trans }}</dd>
|
||||
|
||||
{% if not person.genderComment.isEmpty %}
|
||||
<dt>{{ 'Gender comment'|trans }} :</dt>
|
||||
<dd>{{ person.genderComment|chill_entity_render_box }}</dd>
|
||||
{% endif %}
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
{% if is_granted('CHILL_PERSON_UPDATE', person) %}
|
||||
{{ include(edit_tmp_name, edit_tmp_args) }}
|
||||
{% endif %}
|
||||
</figure>
|
||||
</div>
|
||||
|
||||
@ -114,11 +116,14 @@ This view should receive those arguments:
|
||||
{% endif %}
|
||||
{% endapply %}</dd>
|
||||
{%- endif -%}
|
||||
|
||||
{% if person.deathdate is not null %}
|
||||
<dt>{{ 'Date of death'|trans }} :</dt>
|
||||
<dd>{{ person.deathdate|format_date('long') }}</dd>
|
||||
{% endif %}
|
||||
|
||||
</dl>
|
||||
|
||||
{% if is_granted('CHILL_PERSON_UPDATE', person) %}
|
||||
{{ include(edit_tmp_name, edit_tmp_args) }}
|
||||
{% endif %}
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
@ -155,6 +160,21 @@ This view should receive those arguments:
|
||||
</dd>
|
||||
</dl>
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{%-if chill_person.fields.number_of_children == 'visible' -%}
|
||||
<dl>
|
||||
<dt>{{'Number of children'|trans}} :</dt>
|
||||
<dd>
|
||||
{% if person.numberOfChildren is not null %}
|
||||
{{ person.numberOfChildren }}
|
||||
{% else %}
|
||||
<span class="chill-no-data-statement">{{ 'No data given'|trans }}</span>
|
||||
{% endif %}
|
||||
</dd>
|
||||
</dl>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if chill_person.fields.marital_status == 'visible' -%}
|
||||
<dl>
|
||||
<dt>{{'Marital status'|trans}} :</dt>
|
||||
@ -166,11 +186,24 @@ This view should receive those arguments:
|
||||
{% endif %}
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{{'Date of last marital status change'|trans}} :</dt>
|
||||
{% if person.maritalStatusDate is not null %}
|
||||
<dd>
|
||||
{{ person.maritalStatusDate|format_date('long') }}
|
||||
</dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
<dl>
|
||||
{% if not person.maritalStatusComment.isEmpty %}
|
||||
<dt>{{'Comment on the marital status'|trans}} :</dt>
|
||||
<dd>
|
||||
{{ person.maritalStatusComment|chill_entity_render_box }}
|
||||
</dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
{%- endif -%}
|
||||
|
||||
{% if is_granted('CHILL_PERSON_UPDATE', person) %}
|
||||
{{ include(edit_tmp_name, edit_tmp_args) }}
|
||||
{% endif %}
|
||||
</figure>
|
||||
</div>
|
||||
{%- endif -%}
|
||||
@ -213,6 +246,13 @@ This view should receive those arguments:
|
||||
<dl>
|
||||
<dt>{{ 'Email'|trans }} :</dt>
|
||||
<dd>{% if person.email is not empty %}<a href="mailto:{{ person.email|escape('html_attr') }}">{{ person.email }}</a>{% else %}<span class="chill-no-data-statement">{{ 'No data given'|trans }}</span>{% endif %}</dd>
|
||||
{%- if person.email is not empty and person.acceptEmail -%}
|
||||
<dd>
|
||||
<span class="badge badge-secondary">
|
||||
{{- 'Accept emails'|trans -}}
|
||||
</span>
|
||||
</dd>
|
||||
{%- endif -%}
|
||||
</dl>
|
||||
{%- endif -%}
|
||||
{%- if chill_person.fields.phonenumber == 'visible' -%}
|
||||
@ -225,6 +265,13 @@ This view should receive those arguments:
|
||||
<dl>
|
||||
<dt>{{ 'Mobilenumber'|trans }} :</dt>
|
||||
<dd>{% if person.mobilenumber is not empty %}<a href="tel:{{ person.mobilenumber }}"><pre>{{ person.mobilenumber|chill_format_phonenumber }}</pre></a>{% else %}<span class="chill-no-data-statement">{{ 'No data given'|trans }}{% endif %}</dd>
|
||||
{%- if person.mobilenumber is not empty and person.acceptSMS -%}
|
||||
<dd>
|
||||
<span class="badge badge-secondary">
|
||||
{{- 'Accept short text message'|trans -}}
|
||||
</span>
|
||||
</dd>
|
||||
{%- endif -%}
|
||||
</dl>
|
||||
{% endif %}
|
||||
{% for pp in person.otherPhoneNumbers %}
|
||||
@ -253,9 +300,6 @@ This view should receive those arguments:
|
||||
</dl>
|
||||
{%- endif -%}
|
||||
|
||||
{% if is_granted('CHILL_PERSON_UPDATE', person) %}
|
||||
{{ include(edit_tmp_name, edit_tmp_args) }}
|
||||
{% endif %}
|
||||
</figure>
|
||||
</div>
|
||||
{%- endif -%}
|
||||
@ -272,14 +316,21 @@ This view should receive those arguments:
|
||||
|
||||
<div class="grid-10 push-1 grid-mobile-12 grid-tablet-12 push-mobile-0 push-tablet-0 parent">
|
||||
<figure class="person-details">
|
||||
|
||||
{% if is_granted('CHILL_PERSON_UPDATE', person) %}
|
||||
{{ include(edit_tmp_name, edit_tmp_args) }}
|
||||
{% endif %}
|
||||
</figure>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if is_granted('CHILL_PERSON_UPDATE', person) %}
|
||||
<ul class="grid-12 sticky-form-buttons record_actions ">
|
||||
<li>
|
||||
<a class="sc-button bt-update" href="{{ path('chill_person_general_edit', { 'person_id': person.id }) }}">
|
||||
{{ 'Edit'|trans }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
</div> <!-- end of div.person-view -->
|
||||
|
||||
{% endblock %}
|
||||
|
@ -14,4 +14,6 @@ module.exports = function(encore, entries)
|
||||
encore.addEntry('vue_accourse', __dirname + '/Resources/public/vuejs/AccompanyingCourse/index.js');
|
||||
encore.addEntry('household_edit_metadata', __dirname + '/Resources/public/modules/household_edit_metadata/index.js');
|
||||
encore.addEntry('accompanying_course_work_create', __dirname + '/Resources/public/vuejs/AccompanyingCourseWorkCreate/index.js');
|
||||
encore.addEntry('person', __dirname + '/Resources/public/js/person.js');
|
||||
|
||||
};
|
||||
|
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Chill\Migrations\Person;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Add new fields to Person entity
|
||||
*/
|
||||
final class Version20210617073504 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return 'Add new fields to Person entity';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD deathdate DATE DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD maritalStatusDate DATE DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD acceptSMS BOOLEAN DEFAULT false NOT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD acceptEmail BOOLEAN DEFAULT false NOT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD numberOfChildren INT DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD genderComment_comment TEXT DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD genderComment_userId INT DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD genderComment_date TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD maritalStatusComment_comment TEXT DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD maritalStatusComment_userId INT DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD maritalStatusComment_date TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP deathdate');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP maritalStatusDate');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP acceptSMS');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP acceptEmail');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP numberOfChildren');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP genderComment_comment');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP genderComment_userId');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP genderComment_date');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP maritalStatusComment_comment');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP maritalStatusComment_userId');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP maritalStatusComment_date');
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Chill\Migrations\Person;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Add createdAt, createdBy, updatedAt, updatedBy fields on Person
|
||||
*/
|
||||
final class Version20210618080702 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return 'Add createdAt, createdBy, updatedAt, updatedBy fields on Person';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD createdAt TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD updatedAt TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD createdBy_id INT DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD updatedBy_id INT DEFAULT NULL');
|
||||
$this->addSql('COMMENT ON COLUMN chill_person_person.deathdate IS \'(DC2Type:date_immutable)\'');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD CONSTRAINT FK_BF210A143174800F FOREIGN KEY (createdBy_id) REFERENCES users (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE chill_person_person ADD CONSTRAINT FK_BF210A1465FF1AEC FOREIGN KEY (updatedBy_id) REFERENCES users (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('CREATE INDEX IDX_BF210A143174800F ON chill_person_person (createdBy_id)');
|
||||
$this->addSql('CREATE INDEX IDX_BF210A1465FF1AEC ON chill_person_person (updatedBy_id)');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP CONSTRAINT FK_BF210A143174800F');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP CONSTRAINT FK_BF210A1465FF1AEC');
|
||||
$this->addSql('DROP INDEX IDX_BF210A143174800F');
|
||||
$this->addSql('DROP INDEX IDX_BF210A1465FF1AEC');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP createdAt');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP updatedAt');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP createdBy_id');
|
||||
$this->addSql('ALTER TABLE chill_person_person DROP updatedBy_id');
|
||||
$this->addSql('COMMENT ON COLUMN chill_person_person.deathdate IS NULL');
|
||||
}
|
||||
}
|
@ -10,6 +10,8 @@ First name or Last name: Prénom ou nom
|
||||
id: identifiant
|
||||
Birthdate: 'Date de naissance'
|
||||
birthdate: date de naissance
|
||||
deathdate: date de décès
|
||||
Date of death: Date de décès
|
||||
'Date of birth': 'Date de naissance'
|
||||
dateOfBirth: date de naissance
|
||||
dateofbirth: date de naissance
|
||||
@ -21,6 +23,7 @@ nationality: nationalité
|
||||
'Without nationality': 'Sans nationalité'
|
||||
Gender: Genre
|
||||
gender: genre
|
||||
Gender comment: Remarque sur le genre
|
||||
'Creation date': 'Date d''ouverture'
|
||||
'Not given': 'Non renseigné'
|
||||
'Place of birth': 'Lieu de naissance'
|
||||
@ -30,16 +33,22 @@ placeOfBirth: lieu de naissance
|
||||
countryOfBirth: 'Pays de naissance'
|
||||
'Unknown country of birth': 'Pays inconnu'
|
||||
'Marital status': 'État civil'
|
||||
Date of last marital status change: État civil depuis le
|
||||
Comment on the marital status: Commentaires sur l'état civil
|
||||
'Number of children': 'Nombre d''enfants'
|
||||
'{0} No child|{1} One child | ]1,Inf] %nb% children': '{0} Aucun enfant|{1} Un enfant | ]1,Inf] %nb% enfants'
|
||||
'National number': 'Numéro national'
|
||||
Email: 'Courrier électronique'
|
||||
Accept emails ?: Accepte les courriels?
|
||||
Accept emails: Peut être contacté par email
|
||||
Address: Adresse
|
||||
Memo: Mémo
|
||||
Phonenumber: 'Numéro de téléphone'
|
||||
phonenumber: numéro de téléphone
|
||||
Mobilenumber: 'Numéro de téléphone portable'
|
||||
mobilenumber: numéro de téléphone portable
|
||||
Accept short text message ?: Accepte les SMS?
|
||||
Accept short text message: Accepte les SMS
|
||||
Other phonenumber: Autre numéro de téléphone
|
||||
Description: description
|
||||
Add new phone: Ajouter un numéro de téléphone
|
||||
|
Loading…
x
Reference in New Issue
Block a user