This commit is contained in:
Tykayn 2025-05-29 16:50:25 +02:00 committed by tykayn
parent 9ae7c0d3e4
commit a1c5647b43
9 changed files with 172 additions and 83 deletions

View file

@ -4,27 +4,24 @@
{% block body %}
<div class="container">
<div class="card mt-4 p-4">
<h1 class="card-title">{{ 'display.stats'|trans }}</h1>
<div class="mt-4 p-4">
<h1 class="title">{{ 'display.stats'|trans }}</h1>
<p>
{{ stats.zone }}
</p>
<p>
{# {{ dump(stats) }} #}
</p>
{{ stats.getCompletionPercent() }} % complété sur les critères donnés.
<br>
{{ stats.getPlacesCount() }} commerces dans la zone.
<i class="bi bi-building"></i> {{ stats.getPlacesCount() }} commerces dans la zone.
<br>
{{ stats.getAvecHoraires() }} commerces avec horaires.
<i class="bi bi-clock"></i> {{ stats.getAvecHoraires() }} commerces avec horaires.
<br>
{{ stats.getAvecAdresse() }} commerces avec adresse.
<i class="bi bi-map"></i> {{ stats.getAvecAdresse() }} commerces avec adresse.
<br>
{{ stats.getAvecSite() }} commerces avec site web renseigné.
<i class="bi bi-globe"></i> {{ stats.getAvecSite() }} commerces avec site web renseigné.
<br>
{{ stats.getAvecAccessibilite() }} commerces avec accessibilité renseignée.
<i class="bi bi-wheelchair"></i> {{ stats.getAvecAccessibilite() }} commerces avec accessibilité renseignée.
<br>
{{ stats.getAvecNote() }} commerces avec note renseignée.
<i class="bi bi-chat-dots"></i> {{ stats.getAvecNote() }} commerces avec note renseignée.
<br>
</div>

View file

@ -47,14 +47,7 @@
</div>
</header>
<div id="completion_progress" class="d-none">
<div class="container">
<div id="completion_display" class="mb-2"></div>
<div class="progress" role="progressbar" aria-label="Progression de complétion" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
<div class="progress-bar" style="width: 0%"></div>
</div>
</div>
</div>
<main class="body-landing">
{% block body %}{% endblock %}
@ -86,6 +79,11 @@
<a href="https://www.openstreetmap.org/copyright">Sources du logiciel</a>
</p>
<div id="userChangesHistory"></div>
<div id="qr-share">
partagez cette page :
<br>
<div id="qrcode"></div>
</div>
</div>
</div>
</div>
@ -94,6 +92,17 @@
{% block javascripts %}
{{ encore_entry_script_tags('app') }}
<script src="{{ asset('js/main.js') }}"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" integrity="sha512-CNgIRecGo7nphbeZ04Sc13ka07paqdeTu0WR1IM4kNcpmBAUSHSQX0FslNhTDadL4O5SAGapGt4FodqL8My0mA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
const qrcode = new QRCode(document.getElementById('qrcode'), {
text: window.location.href,
width: 100,
height: 100,
colorDark : '#000000',
colorLight : '#ffffff',
correctLevel : QRCode.CorrectLevel.H
});
</script>
{% endblock %}
</body>
</html>

View file

@ -30,29 +30,11 @@
{% if commerce_overpass is not empty %}
<form action="{{ path('app_public_submit', {'osm_object_id': commerce_overpass['@attributes'].id, 'version': commerce_overpass['@attributes'].version, 'changesetID': commerce_overpass['@attributes'].changeset }) }}" method="post" class="needs-validation">
<input type="hidden" name="osm_kind" value="{{ osm_kind }}">
<div class="mb-4">
<label for="commerce_id" class="form-label">{{ 'display.modify_commerce'|trans }}:
<strong>
{% if commerce_overpass.tags_converted.name is defined %}
{{ commerce_overpass.tags_converted.name }}
{% elseif commerce_overpass['@attributes'].name is defined %}
{{ commerce_overpass['@attributes'].name }}
{% else %}
{{ 'display.unknown'|trans }}
{% endif %}
</strong>
</label>
<div class="mt-2">
<a class="btn btn-info" href="{{ path('app_public_index') }}">{{ 'display.contact_humans'|trans }}</a>
</div>
</div>
{% if commerce.tags_converted.image is defined %}
<img class="img-fluid mb-4" src="{{ commerce.tags_converted.image }}" alt="Image du lieu">
{% endif %}
<h2 class="h3 mb-3">{{ 'display.attributes'|trans }}</h2>
{# nom #}
<div class="row g-3 mb-4">
<div class="d-none">
{{ dump(commerce_overpass.tags_converted) }}
</div>
<div class="col-12 col-md-4">
<label for="commerce_tag_value__name" class="form-label">{{'display.keys.name'|trans}}</label>
</div>
@ -61,6 +43,18 @@
</div>
</div>
{# {{ dump(commerce_overpass.tags_converted) }} #}
{% if commerce_overpass.tags_converted.image is defined %}
<img class="img-fluid img-thumbnail mb-3" src="{{ commerce_overpass.tags_converted.image }}" />
<input type="text" class="form-control" name="commerce_tag_value__image" value="{{ commerce_overpass.tags_converted.image }}">
<input type="text" class="form-control" name="commerce_tag_value__panoramax" value="{{ commerce_overpass.tags_converted.panoramax is defined ? commerce_overpass.tags_converted.panoramax : '' }}">
{% endif %}
{% if hide_filled_inputs and
(commerce_overpass.tags_converted['addr:street']) is defined and commerce_overpass.tags_converted['addr:street'] is empty
and (commerce_overpass.tags_converted['addr:housenumber']) is defined and commerce_overpass.tags_converted['addr:housenumber'] is empty
@ -112,6 +106,9 @@
<div class="row">
<div class="col-12 mt-4">
<div class="actions-modification">
<a class="btn btn-info" href="{{ path('app_public_index') }}">{{ 'display.contact_humans'|trans }}</a>
<button id="showAllFields" class="btn btn-secondary mx-4">
<i class="bi bi-eye"></i>
Voir aussi les champs déjà remplis
@ -152,6 +149,15 @@
</div>
</div>
</div>
<div id="completion_progress" class="">
<div class="container">
<div id="completion_display" class="mb-2"></div>
<div class="progress" role="progressbar" aria-label="Progression de complétion" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
<div class="progress-bar" style="width: 0%"></div>
</div>
</div>
</div>
</div>
{% block javascripts %}
@ -210,33 +216,6 @@
.addTo(map);
{% endif %}
function updateCompletionProgress() {
const inputs = document.querySelectorAll('input[type="text"]');
let filledInputs = 0;
let totalInputs = inputs.length;
inputs.forEach(input => {
if (input.value.trim() !== '') {
filledInputs++;
}
});
const completionPercentage = (filledInputs / totalInputs) * 100;
const progressBar = document.querySelector('#completion_progress .progress-bar');
progressBar.style.width = completionPercentage + '%';
progressBar.setAttribute('aria-valuenow', completionPercentage);
document.querySelector('#completion_display').innerHTML = `Votre commerce est complété à ${Math.round(completionPercentage)}%`;
}
document.querySelectorAll('input[type="text"]').forEach(input => {
input.addEventListener('blur', updateCompletionProgress);
});
document.querySelector('form').addEventListener('submit', check_validity);
document.addEventListener('DOMContentLoaded', updateCompletionProgress);
</script>
{% endblock %}
{% endblock %}

View file

@ -3,14 +3,20 @@
<fieldset >
<h2>{{ 'display.ask_angela'|trans }}</h2>
<div class="p-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="description"><label for="custom__ask_angela">{{ 'display.ask_angela_description'|trans }} </label></p>
<div class="row mb-3">
<div class="col-md-5">
<div class="col-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" target="_blank">{{ 'display.ask_angela_more_info'|trans }}</a>
</p>
</div>
<div class="col-6">
<p class="description"><label for="custom__ask_angela">{{ 'display.ask_angela_description'|trans }} </label></p>
<div class="form-check">
<input class="form-check-input" type="radio" name="custom__ask_angela" id="ask_angela_yes" value="ask_angela" {% if commerce_overpass.tags_converted.harassment_prevention is defined and commerce_overpass.tags_converted.harassment_prevention == 'ask_angela' %}checked{% endif %}>
<label class="form-check-label" for="ask_angela_yes">
@ -28,9 +34,7 @@
</div>
</div>
<p class="more-info">
<a href="https://www.openstreetmap.fr/contact/" target="_blank">{{ 'display.ask_angela_more_info'|trans }}</a>
</p>
</div>
</fieldset>