mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Show alt names in person search results
This commit is contained in:
parent
74df496e38
commit
5111a0ff6a
@ -21,6 +21,9 @@ and this project adheres to
|
||||
* refactor `AuthorizationHelper` and `UserACLAwareRepository` to fix constructor, and separate logic for parent role helper into `ParentRoleHelper`
|
||||
* [main]: filter location and locationType in backend: exclude NULL names, only active and availableToUsers
|
||||
* [activity]: perform client-side validation & show/hide fields in the "new location" modal
|
||||
* [person] show current address in search results
|
||||
* [person] show alt names in search results
|
||||
* [admin]: links to activity admin section added again.
|
||||
* [tasks]: different layout for task list / my tasks, and fix link to tasks in alert or in warning
|
||||
* [admin]: links to activity admin section added again.
|
||||
* [household]: household addresses ordered by ValidFrom date and by id to show the last created address on top.
|
||||
|
@ -83,6 +83,10 @@
|
||||
{% endmacro %}
|
||||
|
||||
|
||||
{#
|
||||
this enclose the rendering inside a "li", which ease the placement operation when the address
|
||||
must be shown in such list
|
||||
#}
|
||||
{%- if render == 'list' -%}
|
||||
<li class="chill-entity entity-address">
|
||||
{% if options['with_picto'] %}
|
||||
|
@ -1283,11 +1283,14 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
|
||||
/**
|
||||
* get the address associated with the person at the given date
|
||||
*
|
||||
* If the `$at` parameter is now, use the method `getCurrentPersonAddress`, which is optimized
|
||||
* on database side.
|
||||
*
|
||||
* @param DateTime|null $at
|
||||
* @return Address|null
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function getCurrentPersonAddress(?\DateTime $at = null): ?Address
|
||||
public function getAddressAt(?\DateTime $at = null): ?Address
|
||||
{
|
||||
$at ??= new DateTime('now');
|
||||
|
||||
@ -1305,6 +1308,20 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
|
||||
current($addresses);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current person address
|
||||
*
|
||||
* @return Address|null
|
||||
*/
|
||||
public function getCurrentPersonAddress(): ?Address
|
||||
{
|
||||
if (null === $this->currentPersonAddress) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->currentPersonAddress->getAddress();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validation callback that checks if the accompanying periods are valid
|
||||
*
|
||||
|
@ -123,13 +123,15 @@
|
||||
</div>
|
||||
<div class="item-col">
|
||||
<ul class="list-content fa-ul">
|
||||
{% set multiline = (options['address_multiline']) ? true : false %}
|
||||
{{ person.getLastAddress|chill_entity_render_box({
|
||||
'render': 'list',
|
||||
'with_picto': true,
|
||||
'multiline': multiline,
|
||||
'with_valid_from': false
|
||||
}) }}
|
||||
{% if person.getCurrentPersonAddress is not null %}
|
||||
{% set multiline = (options['address_multiline']) ? true : false %}
|
||||
{{ person.getCurrentPersonAddress|chill_entity_render_box({
|
||||
'render': 'list',
|
||||
'with_picto': true,
|
||||
'multiline': multiline,
|
||||
'with_valid_from': false
|
||||
}) }}
|
||||
{% endif %}
|
||||
<li>
|
||||
{% if person.mobilenumber %}
|
||||
<i class="fa fa-li fa-mobile"></i><a href="{{ 'tel:' ~ person.mobilenumber }}">
|
||||
|
@ -53,7 +53,7 @@
|
||||
'addLink': true,
|
||||
'addInfo': true,
|
||||
'addAge': true,
|
||||
'addAltNames': false,
|
||||
'addAltNames': true,
|
||||
'addCenter': true,
|
||||
'address_multiline': false,
|
||||
'customButtons': { 'after': _self.button_person(person) }
|
||||
|
@ -164,55 +164,6 @@ class PersonTest extends \PHPUnit\Framework\TestCase
|
||||
$this->assertEquals($r['result'], Person::ERROR_ADDIND_PERIOD_AFTER_AN_OPEN_PERIOD);
|
||||
}
|
||||
|
||||
public function dateProvider(): Generator
|
||||
{
|
||||
yield [(DateTime::createFromFormat('Y-m-d', '2021-01-05'))->settime(0, 0)];
|
||||
yield [(DateTime::createFromFormat('Y-m-d', '2021-02-05'))->settime(0, 0)];
|
||||
yield [(DateTime::createFromFormat('Y-m-d', '2021-03-05'))->settime(0, 0)];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dateProvider
|
||||
*/
|
||||
public function testGetLastAddress(DateTime $date)
|
||||
{
|
||||
$p = new Person($date);
|
||||
|
||||
// Make sure that there is no last address.
|
||||
$this::assertNull($p->getLastAddress());
|
||||
|
||||
// Take an arbitrary date before the $date in parameter.
|
||||
$addressDate = clone $date;
|
||||
|
||||
// 1. Smoke test: Test that the first address added is the last one.
|
||||
$address1 = (new Address())->setValidFrom($addressDate->sub(new DateInterval('PT180M')));
|
||||
$p->addAddress($address1);
|
||||
|
||||
$this::assertCount(1, $p->getAddresses());
|
||||
$this::assertSame($address1, $p->getLastAddress());
|
||||
|
||||
// 2. Add an older address, which should not be the last address.
|
||||
$addressDate2 = clone $addressDate;
|
||||
$address2 = (new Address())->setValidFrom($addressDate2->sub(new DateInterval('PT30M')));
|
||||
$p->addAddress($address2);
|
||||
|
||||
$this::assertCount(2, $p->getAddresses());
|
||||
$this::assertSame($address1, $p->getLastAddress());
|
||||
|
||||
// 3. Add a newer address, which should be the last address.
|
||||
$addressDate3 = clone $addressDate;
|
||||
$address3 = (new Address())->setValidFrom($addressDate3->add(new DateInterval('PT30M')));
|
||||
$p->addAddress($address3);
|
||||
|
||||
$this::assertCount(3, $p->getAddresses());
|
||||
$this::assertSame($address3, $p->getLastAddress());
|
||||
|
||||
// 4. Get the last address from a specific date.
|
||||
$this::assertEquals($address1, $p->getLastAddress($addressDate));
|
||||
$this::assertEquals($address2, $p->getLastAddress($addressDate2));
|
||||
$this::assertEquals($address3, $p->getLastAddress($addressDate3));
|
||||
}
|
||||
|
||||
public function testIsSharingHousehold()
|
||||
{
|
||||
$person = new Person();
|
||||
|
Loading…
x
Reference in New Issue
Block a user