mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge branch 'issue309_format_address' into 'master'
main: change address format for France, in Address render box and normalizer See merge request Chill-Projet/chill-bundles!259
This commit is contained in:
commit
55991a6082
@ -11,6 +11,7 @@ and this project adheres to
|
||||
## Unreleased
|
||||
|
||||
<!-- write down unreleased development here -->
|
||||
* [main] change address format in case the country is France, in Address render box and address normalizer
|
||||
* [person] add validator for accompanying period with a test on social issues (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/76)
|
||||
* [activity] fix visibility for location
|
||||
* [origin] fix origin: use correctly the translatable strings
|
||||
|
@ -12,13 +12,11 @@
|
||||
* extended_infos bool add extra informations (step, floor, etc.)
|
||||
|
||||
#}
|
||||
{% macro raw(address, options) %}
|
||||
|
||||
{% macro raw(address, options, streetLine) %}
|
||||
|
||||
{% if address.street is not empty %}
|
||||
<p class="street">{{ address.street }}
|
||||
{% if address.streetNumber is not empty %}
|
||||
<span class="streetnumber">{{ address.streetNumber }}</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
<p>{{ streetLine }}</p>
|
||||
{% endif %}
|
||||
{% if options['extended_infos'] %}
|
||||
{{ _self.extended(address, options) }}
|
||||
@ -56,7 +54,7 @@
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro inline(address, options) %}
|
||||
{% macro inline(address, options, streetLine) %}
|
||||
{% if options['has_no_address'] == true and address.isNoAddress == true %}
|
||||
{% if address.postCode is not empty %}
|
||||
<p class="postcode">
|
||||
@ -70,7 +68,7 @@
|
||||
</span>
|
||||
{% else %}
|
||||
<span class="address{% if options['multiline'] %} multiline{% endif %}{% if options['with_delimiter'] %} delimiter{% endif %}">
|
||||
{{ _self.raw(address, options) }}
|
||||
{{ _self.raw(address, options, streetLine) }}
|
||||
</span>
|
||||
{% endif %}
|
||||
{{ _self.validity(address, options) }}
|
||||
@ -99,7 +97,7 @@
|
||||
{% if options['with_picto'] %}
|
||||
<i class="fa fa-li fa-map-marker"></i>
|
||||
{% endif %}
|
||||
{{ _self.inline(address, options) }}
|
||||
{{ _self.inline(address, options, streetLine) }}
|
||||
</li>
|
||||
{%- endif -%}
|
||||
|
||||
@ -108,7 +106,7 @@
|
||||
{% if options['with_picto'] %}
|
||||
<i class="fa fa-fw fa-map-marker"></i>
|
||||
{% endif %}
|
||||
{{ _self.inline(address, options) }}
|
||||
{{ _self.inline(address, options, streetLine) }}
|
||||
</span>
|
||||
{%- endif -%}
|
||||
|
||||
@ -133,7 +131,7 @@
|
||||
{% if options['with_picto'] %}
|
||||
<i class="fa fa-fw fa-map-marker"></i>
|
||||
{% endif %}
|
||||
{{ _self.raw(address, options) }}
|
||||
{{ _self.raw(address, options, streetLine) }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{{ _self.validity(address, options) }}
|
||||
|
@ -52,9 +52,19 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw
|
||||
public function normalize($address, ?string $format = null, array $context = [])
|
||||
{
|
||||
if ($address instanceof Address) {
|
||||
$text = $address->isNoAddress() ? '' : $address->getStreet() . ', ' . $address->getStreetNumber();
|
||||
|
||||
if (null !== $address->getPostCode()->getCountry()->getCountryCode()) {
|
||||
if ($address->getPostCode()->getCountry()->getCountryCode() === 'FR') {
|
||||
$text = $address->isNoAddress() ? '' : $address->getStreetNumber() . ', ' . $address->getStreet();
|
||||
} else {
|
||||
$text = $address->isNoAddress() ? '' : $address->getStreetNumber() . ', ' . $address->getStreet();
|
||||
}
|
||||
}
|
||||
|
||||
$data = [
|
||||
'address_id' => $address->getId(),
|
||||
'text' => $address->isNoAddress() ? '' : $address->getStreetNumber() . ', ' . $address->getStreet(),
|
||||
'text' => $text,
|
||||
'street' => $address->getStreet(),
|
||||
'streetNumber' => $address->getStreetNumber(),
|
||||
'postcode' => [
|
||||
|
@ -46,6 +46,7 @@ class AddressRender implements ChillEntityRenderInterface
|
||||
return $this->templating
|
||||
->render('@ChillMain/Entity/address.html.twig', [
|
||||
'address' => $addr,
|
||||
'streetLine' => $this->renderStreetLine($addr),
|
||||
'render' => $options['render'] ?? 'bloc',
|
||||
'options' => $options,
|
||||
]);
|
||||
@ -59,13 +60,7 @@ class AddressRender implements ChillEntityRenderInterface
|
||||
{
|
||||
$lines = [];
|
||||
|
||||
if (!empty($addr->getStreet())) {
|
||||
$lines[0] = $addr->getStreet();
|
||||
}
|
||||
|
||||
if (!empty($addr->getStreetNumber())) {
|
||||
$lines[0] .= ', ' . $addr->getStreetNumber();
|
||||
}
|
||||
$lines[0] = $this->renderStreetLine($addr);
|
||||
|
||||
if (!empty($addr->getPostcode())) {
|
||||
$lines[1] = strtr('{postcode} {label}', [
|
||||
@ -81,4 +76,33 @@ class AddressRender implements ChillEntityRenderInterface
|
||||
{
|
||||
return $entity instanceof Address;
|
||||
}
|
||||
|
||||
private function renderStreetLine($addr): string
|
||||
{
|
||||
if (!empty($addr->getStreet())) {
|
||||
$street = $addr->getStreet();
|
||||
} else {
|
||||
$street = '';
|
||||
}
|
||||
|
||||
if (!empty($addr->getStreetNumber())) {
|
||||
$streetNumber = $addr->getStreetNumber();
|
||||
} else {
|
||||
$streetNumber = '';
|
||||
}
|
||||
|
||||
$res = trim($street . ', ' . $streetNumber, ', ');
|
||||
|
||||
if (null !== $addr->getPostCode()->getCountry()->getCountryCode()) {
|
||||
if ($addr->getPostCode()->getCountry()->getCountryCode() === 'FR') {
|
||||
$res = trim($streetNumber . ', ' . $street, ', ');
|
||||
}
|
||||
}
|
||||
|
||||
if (',' === $res) {
|
||||
$res = '';
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user