mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
ajout infos formulaire envoi
This commit is contained in:
parent
44b4f49289
commit
2bcec59281
11 changed files with 211 additions and 61 deletions
|
@ -318,14 +318,24 @@ class PublicController extends AbstractController
|
|||
$tags = [];
|
||||
$request_post = $request->request->all();
|
||||
$request_post = $this->motocultrice->map_post_values($request_post);
|
||||
$request_post = $request_post ?? [];
|
||||
// Log temporaire pour debug POST
|
||||
file_put_contents('/tmp/debug_post.txt', print_r($request_post, true));
|
||||
// Debug visuel immédiat
|
||||
$excluded_post_fields = [];
|
||||
foreach ($request_post as $key => $value) {
|
||||
if (strpos($key, 'commerce_tag_value__') === 0) {
|
||||
$tagKey = str_replace('commerce_tag_value__', '', $key);
|
||||
if (!empty($value)) {
|
||||
$tags[$tagKey] = trim($value);
|
||||
}
|
||||
// On ajoute la clé même si la valeur est vide (pour affichage suppression)
|
||||
$tags[$tagKey] = trim($value);
|
||||
} else {
|
||||
$excluded_post_fields[] = $key;
|
||||
}
|
||||
}
|
||||
// Récupérer les tags Overpass avant modification
|
||||
$currentObjectData = $this->motocultrice->get_osm_object_data($osm_kind, $osm_object_id);
|
||||
$tags_before_modif = $currentObjectData['tags_converted'] ?? [];
|
||||
$tags_after_modif = $tags;
|
||||
// var_dump('POST brut', $_POST);
|
||||
// var_dump('request->request->all()', $request->request->all());
|
||||
// var_dump('tags extraits', $tags);
|
||||
|
@ -359,9 +369,6 @@ class PublicController extends AbstractController
|
|||
|
||||
$newChangesetId = $changesetResponse->getBody()->getContents();
|
||||
|
||||
// Récupérer les données actuelles de l'objet
|
||||
$currentObjectData = $this->motocultrice->get_osm_object_data($osm_kind, $osm_object_id);
|
||||
|
||||
// 2. Modifier l'objet avec le nouveau changeset
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><osm version="0.6"></osm>');
|
||||
$object = $xml->addChild($osm_kind);
|
||||
|
@ -474,6 +481,9 @@ class PublicController extends AbstractController
|
|||
'maptiler_token' => $_ENV['MAPTILER_TOKEN'],
|
||||
'hide_filled_inputs' => false,
|
||||
'excluded_tags_to_render' => $this->motocultrice->excluded_tags_to_render,
|
||||
'tags_before_modif' => $tags_before_modif ?? null,
|
||||
'tags_after_modif' => $tags_after_modif ?? null,
|
||||
'excluded_post_fields' => $excluded_post_fields ?? null,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -123,10 +123,15 @@ out meta;';
|
|||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* fait le lien entre les tags du formulaire et les tags OSM pour les champs personnalisés
|
||||
*
|
||||
* @param [type] $request_post
|
||||
* @return void
|
||||
*/
|
||||
public function map_post_values($request_post) {
|
||||
|
||||
$has_ask_angela = false;
|
||||
$remove_ask_angela = false;
|
||||
$has_opening_hours = false;
|
||||
|
||||
|
||||
|
@ -136,8 +141,6 @@ out meta;';
|
|||
if (strpos($key, 'custom__ask_angela') === 0 ) {
|
||||
if($value == 'ask_angela'){
|
||||
$has_ask_angela = true;
|
||||
}else{
|
||||
$remove_ask_angela = true;
|
||||
}
|
||||
}
|
||||
if (strpos($key, 'custom__opening_hours') === 0 && $value != '') {
|
||||
|
@ -149,9 +152,6 @@ out meta;';
|
|||
if($has_ask_angela) {
|
||||
$modified_request_post['commerce_tag_value__harassment_prevention'] = 'ask_angela';
|
||||
}
|
||||
if($remove_ask_angela) {
|
||||
unset($modified_request_post['commerce_tag_value__harassment_prevention']);
|
||||
}
|
||||
|
||||
if($has_opening_hours) {
|
||||
$modified_request_post['commerce_tag_value__opening_hours'] = $request_post['commerce_tag_value__opening_hours'];
|
||||
|
|
|
@ -97,6 +97,13 @@
|
|||
{% endif %}
|
||||
|
||||
|
||||
<td>
|
||||
{% if stats.population > 0 %}
|
||||
{{ (1 / (stats.population / stats.places|length))|number_format(3, '.', ' ') }}
|
||||
{% else %}
|
||||
-
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{# (si siret clos) #}
|
||||
</td>
|
||||
|
|
|
@ -63,5 +63,9 @@
|
|||
<th>
|
||||
|
||||
Osm kind</th>
|
||||
<th>
|
||||
<i class="bi bi-people"></i>
|
||||
Lieux par habitants
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
4
templates/public/_tags_textarea.html.twig
Normal file
4
templates/public/_tags_textarea.html.twig
Normal file
|
@ -0,0 +1,4 @@
|
|||
{# Partial pour afficher un textarea de tags OSM clé=valeur #}
|
||||
<textarea class="form-control" rows="{{ tags|length > 10 ? 10 : tags|length + 2 }}" readonly style="font-family:monospace;">
|
||||
{% for key, value in tags %}{% if value is not empty %}{{ key }}={{ value }}
|
||||
{% endif %}{% endfor %}</textarea>
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-body">
|
||||
<h1 class="card-title h2 mb-4">{{ 'display.welcome'|trans }} {{ commerce_overpass.tags_converted.name }}</h1>
|
||||
<h1 class="card-title h2 mb-4">{{ 'display.welcome'|trans }} {{ commerce_overpass.tags_converted.name }} - {{ commerce.stats.name }}</h1>
|
||||
<div id="map" style="height: 400px; width: 100%;" class="rounded mb-4"></div>
|
||||
{% include 'public/edit/address.html.twig' %}
|
||||
|
||||
|
@ -29,10 +29,18 @@
|
|||
<div id="images" class="d-none">
|
||||
</div>
|
||||
<div id="images" >
|
||||
<img class="img-fluid img-thumbnail mb-3" src="{{ commerce_overpass.tags_converted.image }}" />
|
||||
{% if commerce_overpass.tags_converted.image is defined and commerce_overpass.tags_converted.image|length > 0 %}
|
||||
<img class="img-fluid img-thumbnail mb-3" style="height: 500px; width: auto;" src="{{ commerce_overpass.tags_converted.image }}" />
|
||||
{% endif %}
|
||||
|
||||
<label for="commerce_tag_value__image" class="form-label">URL de l'image de la façade</label>
|
||||
<input type="text" class="form-control mb-2" id="commerce_tag_value__image" name="commerce_tag_value__image" value="{{ commerce_overpass.tags_converted.image is defined ? commerce_overpass.tags_converted.image : '' }}" placeholder="https://...">
|
||||
{% if commerce_overpass.tags_converted.image is defined and commerce_overpass.tags_converted.image|length > 0 %}
|
||||
<img src="{{ commerce_overpass.tags_converted.image }}" alt="Image de la façade" class="img-fluid img-thumbnail mb-2" style="max-height:200px;">
|
||||
{% endif %}
|
||||
{{ commerce_overpass.tags_converted.image }}
|
||||
|
||||
|
||||
url d'image de la facade : {{ commerce_overpass.tags_converted.image }}
|
||||
{% if commerce_overpass.tags_converted.panoramax is defined or commerce_overpass.tags_converted.wikimedia_commons is defined %}
|
||||
<input type="text" class="form-control" name="commerce_tag_value__image" value="{{ commerce_overpass.tags_converted.image }}">
|
||||
url d'image sur Panoramax : {{ commerce_overpass.tags_converted.panoramax is defined ? commerce_overpass.tags_converted.panoramax : '' }}
|
||||
|
@ -71,25 +79,47 @@
|
|||
</span>
|
||||
{% endif %}
|
||||
{% include 'public/edit/ask_angela.html.twig' %}
|
||||
|
||||
<fieldset class="input-group mb-2 phone-group">
|
||||
|
||||
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text" style="width: 10rem;">
|
||||
<i class="bi bi-phone me-2"></i>
|
||||
Téléphone
|
||||
</span>
|
||||
<input type="text" class="form-control"
|
||||
id="commerce_tag_value__contact:phone"
|
||||
name="commerce_tag_value__contact:phone"
|
||||
value="{{ commerce_overpass.tags_converted['contact:phone'] ?? '' }}"
|
||||
placeholder="+33 1 23 45 67 89">
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
{% include 'public/edit/social_media.html.twig' %}
|
||||
|
||||
|
||||
<div class="input-group mb-2 phone-group">
|
||||
<span class="input-group-text" style="width: 120px;">
|
||||
<i class="bi bi-phone me-2"></i>
|
||||
Téléphone
|
||||
</span>
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
id="commerce_tag_value__contact:phone"
|
||||
name="commerce_tag_value__contact:phone"
|
||||
value="{{ place.tags['contact:phone'] ?? '' }}"
|
||||
placeholder="+33 1 23 45 67 89">
|
||||
</div>
|
||||
<div id="advanced_tags" class="d-none">
|
||||
{% include 'public/edit/tags.html.twig' with { 'excluded_tags_to_render': excluded_tags_to_render,
|
||||
{# {% include 'public/edit/tags.html.twig' with { 'excluded_tags_to_render': excluded_tags_to_render,
|
||||
'commerce_overpass': commerce_overpass,
|
||||
'hide_filled_inputs': hide_filled_inputs } %}
|
||||
#}
|
||||
{% include 'public/edit/tags.html.twig' with { 'excluded_tags_to_render': {},
|
||||
'commerce_overpass': commerce_overpass,
|
||||
'hide_filled_inputs': hide_filled_inputs } %}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<h4>Prévisualisation des tags OSM (texte à copier-coller)</h4>
|
||||
{% set tags_for_textarea = {} %}
|
||||
{% for k, v in commerce_overpass.tags_converted %}
|
||||
{% if v is not empty %}
|
||||
{% set tags_for_textarea = tags_for_textarea|merge({ (k): v }) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% include 'public/_tags_textarea.html.twig' with { 'tags': tags_for_textarea } %}
|
||||
</div>
|
||||
|
||||
<div id="validation_messages" class="alert alert-danger d-none"></div>
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
<h2>{{ 'display.ask_angela'|trans }}</h2>
|
||||
<div class="p-4">
|
||||
<div class="row mb-3">
|
||||
<div class="col-2 col-md-3">
|
||||
<div class="col-2 col-md-4">
|
||||
<img src="https://i0.wp.com/askforangela.co.uk/wp-content/uploads/2022/10/Ask-for-Angela-primary.png?fit=300%2C300&ssl=1" class="img-fluid img-thumbnail mb-3" alt="Image du lieu">
|
||||
<p class="more-info">
|
||||
<a href="https://arretonslesviolences.gouv.fr/focus/plan-angela">{{ 'display.ask_angela_more_info'|trans }}</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="col-12 col-md-8">
|
||||
<p class="description">
|
||||
<label for="custom__ask_angela">
|
||||
{{ 'display.ask_angela_description'|trans }}
|
||||
|
@ -33,4 +33,5 @@
|
|||
</div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -11,13 +11,16 @@
|
|||
'tiktok': { 'icon': 'bi-tiktok', 'label': 'TikTok' },
|
||||
'youtube': { 'icon': 'bi-youtube', 'label': 'YouTube' },
|
||||
'linkedin': { 'icon': 'bi-linkedin', 'label': 'LinkedIn' },
|
||||
'pinterest': { 'icon': 'bi-pinterest', 'label': 'Pinterest' },
|
||||
|
||||
|
||||
} %}
|
||||
|
||||
<div id="social-media-tags">
|
||||
{% for key, social in social_medias %}
|
||||
{% set tag_name = 'contact:' ~ key %}
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text" style="width: 120px;">
|
||||
<span class="input-group-text" style="width: 10rem;">
|
||||
<i class="bi {{ social.icon }} me-2"></i>
|
||||
{{ social.label }}
|
||||
</span>
|
||||
|
@ -25,10 +28,14 @@
|
|||
class="form-control"
|
||||
id="commerce_tag_value__{{ tag_name }}"
|
||||
name="commerce_tag_value__{{ tag_name }}"
|
||||
value="{{ place.tags[tag_name] ?? '' }}"
|
||||
value="{{ commerce_overpass.tags_converted[tag_name] is defined and commerce_overpass.tags_converted[tag_name] |length > 0 ? commerce_overpass.tags_converted[tag_name] : '' }}"
|
||||
placeholder="@compte ou URL complète">
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{# <pre>
|
||||
{{ dump(commerce_overpass.tags_converted) }}
|
||||
</pre> #}
|
||||
</fieldset>
|
||||
{% endblock social_medias %}
|
|
@ -24,11 +24,10 @@
|
|||
{% endif %}
|
||||
<span class="label-translated" title="{{ k }}">{{ ('display.keys.' ~ k)|trans }}</span>
|
||||
</div>
|
||||
<input type="text" class="form-control d-none" name="commerce_tag_key__{{ k }}" value="{{ k }}" title="{{ k }}" readonly>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
{% if k not in excluded_tags_to_render %}
|
||||
{# {% if k not in excluded_tags_to_render %} #}
|
||||
<div class="input-group">
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
|
@ -37,7 +36,7 @@
|
|||
value="{{ v }}"
|
||||
{% if hide_filled_inputs is defined and v %}style="display: none;"{% endif %}>
|
||||
</div>
|
||||
{% endif %}
|
||||
{# {% endif %} #}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
|
|
@ -62,36 +62,28 @@ moyens de paiement proposés
|
|||
médias sociaux
|
||||
</div>
|
||||
<div class="col-12 col-md-9">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:mastodon" value="{{ commerce.tags_converted['contact:mastodon'] is defined ? commerce.tags_converted['contact:mastodon'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:facebook" value="{{ commerce.tags_converted['contact:facebook'] is defined ? commerce.tags_converted['contact:facebook'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:instagram" value="{{ commerce.tags_converted['contact:instagram'] is defined ? commerce.tags_converted['contact:instagram'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:twitter" value="{{ commerce.tags_converted['contact:twitter'] is defined ? commerce.tags_converted['contact:twitter'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:youtube" value="{{ commerce.tags_converted['contact:youtube'] is defined ? commerce.tags_converted['contact:youtube'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:tiktok" value="{{ commerce.tags_converted['contact:tiktok'] is defined ? commerce.tags_converted['contact:tiktok'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:linkedin" value="{{ commerce.tags_converted['contact:linkedin'] is defined ? commerce.tags_converted['contact:linkedin'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:pinterest" value="{{ commerce.tags_converted['contact:pinterest'] is defined ? commerce.tags_converted['contact:pinterest'] : '' }}">
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:snapchat" value="{{ commerce.tags_converted['contact:snapchat'] is defined ? commerce.tags_converted['contact:snapchat'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:mastodon" class="form-control" name="commerce_tag_value__contact:mastodon" value="{{ commerce.tags_converted['contact:mastodon'] is defined ? commerce.tags_converted['contact:mastodon'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:facebook" class="form-control" name="commerce_tag_value__contact:facebook" value="{{ commerce.tags_converted['contact:facebook'] is defined ? commerce.tags_converted['contact:facebook'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:instagram" class="form-control" name="commerce_tag_value__contact:instagram" value="{{ commerce.tags_converted['contact:instagram'] is defined ? commerce.tags_converted['contact:instagram'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:twitter" class="form-control" name="commerce_tag_value__contact:twitter" value="{{ commerce.tags_converted['contact:twitter'] is defined ? commerce.tags_converted['contact:twitter'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:youtube" class="form-control" name="commerce_tag_value__contact:youtube" value="{{ commerce.tags_converted['contact:youtube'] is defined ? commerce.tags_converted['contact:youtube'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:tiktok" class="form-control" name="commerce_tag_value__contact:tiktok" value="{{ commerce.tags_converted['contact:tiktok'] is defined ? commerce.tags_converted['contact:tiktok'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:linkedin" class="form-control" name="commerce_tag_value__contact:linkedin" value="{{ commerce.tags_converted['contact:linkedin'] is defined ? commerce.tags_converted['contact:linkedin'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:pinterest" class="form-control" name="commerce_tag_value__contact:pinterest" value="{{ commerce.tags_converted['contact:pinterest'] is defined ? commerce.tags_converted['contact:pinterest'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:snapchat" class="form-control" name="commerce_tag_value__contact:snapchat" value="{{ commerce.tags_converted['contact:snapchat'] is defined ? commerce.tags_converted['contact:snapchat'] : '' }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="row mb-3">
|
||||
<div class="col-12 col-md-3">
|
||||
téléphone
|
||||
</div>
|
||||
<div class="col-12 col-md-9">
|
||||
contact:phone
|
||||
<input type="text" class="form-control" name="commerce_tag_value__contact:phone" value="{{ commerce.tags_converted['contact:phone'] is defined ? commerce.tags_converted['contact:phone'] : '' }}">
|
||||
<input type="text" id="commerce_tag_value__contact:phone" class="form-control" name="commerce_tag_value__contact:phone" value="{{ commerce.tags_converted['contact:phone'] is defined ? commerce.tags_converted['contact:phone'] : '' }}">
|
||||
<br>
|
||||
phone:
|
||||
<input type="text" class="form-control" name="commerce_tag_value__phone" value="{{ commerce.tags_converted['phone'] is defined ? commerce.tags_converted['phone'] : '' }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-12 col-md-3">
|
||||
|
||||
</div>
|
||||
<div class="col-12 col-md-9">
|
||||
|
||||
<input type="text" id="commerce_tag_value__phone" class="form-control" name="commerce_tag_value__phone" value="{{ commerce.tags_converted['phone'] is defined ? commerce.tags_converted['phone'] : '' }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -13,6 +13,102 @@
|
|||
{% if status == "Les tags ont été mis à jour avec succès" %}
|
||||
<span class="badge bg-success p-4">{{status}}</span>
|
||||
|
||||
{# Tableau comparatif des tags avant/après modification #}
|
||||
{% if tags_before_modif is defined and tags_after_modif is defined %}
|
||||
<h3 class="mt-4">Comparatif des tags avant/après modification</h3>
|
||||
<div class="table-responsive mb-4">
|
||||
<table class="table table-bordered table-sm align-middle">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Avant</th>
|
||||
<th>Après</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{# Construction manuelle de la liste des clés sans filtre unique #}
|
||||
{% set all_keys = [] %}
|
||||
{% for k in tags_before_modif|keys %}{% if k not in all_keys %}{% set all_keys = all_keys|merge([k]) %}{% endif %}{% endfor %}
|
||||
{% for k in tags_after_modif|keys %}{% if k not in all_keys %}{% set all_keys = all_keys|merge([k]) %}{% endif %}{% endfor %}
|
||||
{% set all_keys = all_keys|sort %}
|
||||
{% for key in all_keys %}
|
||||
{% set before = tags_before_modif[key]|default(null) %}
|
||||
{% set after = tags_after_modif[key]|default(null) %}
|
||||
{% if before is not null and (after is null or after == '') %}
|
||||
{# Suppression #}
|
||||
<tr>
|
||||
<td><code>{{ key }}</code></td>
|
||||
<td class="bg-danger text-white">{{ before }}</td>
|
||||
<td class="bg-danger text-white">(supprimé)</td>
|
||||
</tr>
|
||||
{% elseif before is null and after is not null and after != '' %}
|
||||
{# Ajout #}
|
||||
<tr>
|
||||
<td><code>{{ key }}</code></td>
|
||||
<td class="bg-success text-white">(nouveau)</td>
|
||||
<td class="bg-success text-white">{{ after }}</td>
|
||||
</tr>
|
||||
{% elseif before != after and after != '' %}
|
||||
{# Modification #}
|
||||
<tr>
|
||||
<td><code>{{ key }}</code></td>
|
||||
<td class="bg-warning">{{ before }}</td>
|
||||
<td class="bg-warning">{{ after }}</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr>
|
||||
<td><code>{{ key }}</code></td>
|
||||
<td>{{ before }}</td>
|
||||
<td>{{ after }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<small class="text-muted">
|
||||
<span class="bg-danger text-white px-2"> </span> supprimé
|
||||
<span class="bg-warning px-2"> </span> modifié
|
||||
<span class="bg-success text-white px-2"> </span> ajouté
|
||||
</small>
|
||||
</div>
|
||||
{% if excluded_post_fields is defined and excluded_post_fields|length > 0 %}
|
||||
<div class="alert alert-info">
|
||||
<b>Champs du formulaire non pris en compte dans OpenStreetMap :</b>
|
||||
<ul class="mb-0">
|
||||
{% for field in excluded_post_fields %}
|
||||
<li><code>{{ field }}</code></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{# Affichage en lecture seule des nouveaux tags #}
|
||||
<h3 class="mt-4">Nouveaux tags enregistrés</h3>
|
||||
<div class="table-responsive mb-4">
|
||||
<table class="table table-bordered table-sm align-middle">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Valeur</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for key, value in tags_after_modif %}
|
||||
{% if value is not empty %}
|
||||
<tr>
|
||||
<td><code>{{ key }}</code></td>
|
||||
<td>{{ value }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h4 class="mt-4">Tags OSM (texte à copier-coller)</h4>
|
||||
{% include 'public/_tags_textarea.html.twig' with { 'tags': tags_after_modif } %}
|
||||
|
||||
<p class="p-4 col-12 col-lg-8">
|
||||
Merci d'avoir contribué à l'amélioration de la base de données OSM, votre contribution sera visible sur de nombreux sites web et dans la base adresse nationale des lieux et commerces.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue