refactor: standardize terminology to "public space", update email templates, and improve organization branding logic.

This commit is contained in:
kdeterme 2026-07-29 08:23:54 +02:00
parent 9c822719b5
commit 3c7547ba5d
18 changed files with 99 additions and 128 deletions

View file

@ -104,8 +104,8 @@ class RoadAuthorization(models.Model):
class Meta: class Meta:
ordering = ['status', '-code'] ordering = ['status', '-code']
verbose_name = _('Autorisation de voirie') verbose_name = _("Autorisation d'occupation de l'espace public")
verbose_name_plural = _('Autorisations de voirie') verbose_name_plural = _("Autorisations d'occupation de l'espace public")
# Maps AUTH_TYPE values to their 2-digit code prefix # Maps AUTH_TYPE values to their 2-digit code prefix
TYPE_PREFIX = { TYPE_PREFIX = {

View file

@ -52,7 +52,7 @@
<div class="d-flex justify-content-between align-items-center mb-3"> <div class="d-flex justify-content-between align-items-center mb-3">
<h1 class="h4 mb-0"> <h1 class="h4 mb-0">
<i class="bi bi-file-earmark-text me-2"></i>{% translate "Demandes d'autorisation de voirie" %} <i class="bi bi-file-earmark-text me-2"></i>{% translate "Demandes d'autorisation d'occupation de l'espace public" %}
</h1> </h1>
<a href="{% url 'authorizations:new_authorization' %}" class="btn btn-sm btn-outline-primary" target="_blank" rel="noopener"> <a href="{% url 'authorizations:new_authorization' %}" class="btn btn-sm btn-outline-primary" target="_blank" rel="noopener">
<i class="bi bi-box-arrow-up-right"></i> {% translate "Formulaire public" %} <i class="bi bi-box-arrow-up-right"></i> {% translate "Formulaire public" %}

View file

@ -6,7 +6,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% translate "Demande enregistrée" %} – Brussels Mobility</title> <title>{% translate "Demande enregistrée" %}{% if organization_name %} – {{ organization_name }}{% endif %}</title>
<link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet">
<style> <style>
@ -22,10 +22,10 @@
<body> <body>
<header class="page-header mb-5"> <header class="page-header mb-5">
<div class="container d-flex align-items-center gap-3"> <div class="container d-flex align-items-center gap-3">
<img src="{% static 'common/android-192.png' %}" alt="Brussels Mobility"> <img src="{% static organization_logo_header %}" alt="{{ organization_name }}">
<div> <div>
<div class="fw-bold fs-5">Brussels Mobility</div> <div class="fw-bold fs-5">{{ organization_name }}</div>
<div class="fs-6 opacity-75">{% translate "Demande d'occupation de voirie régionale" %}</div> <div class="fs-6 opacity-75">{% translate "Demande d'occupation de l'espace public" %}</div>
</div> </div>
</div> </div>
</header> </header>
@ -47,13 +47,13 @@
<p class="text-center text-muted"> <p class="text-center text-muted">
{% if just_verified %} {% if just_verified %}
{% blocktranslate trimmed %} {% blocktranslate trimmed %}
Votre adresse email a été confirmée et votre demande d'autorisation d'occupation de voirie régionale a bien été enregistrée. Votre adresse email a été confirmée et votre demande d'autorisation d'occupation de l'espace public a bien été enregistrée.
Un accusé de réception vous a été envoyé par email. Un accusé de réception vous a été envoyé par email.
Nos services prendront contact avec vous dans les meilleurs délais. Nos services prendront contact avec vous dans les meilleurs délais.
{% endblocktranslate %} {% endblocktranslate %}
{% else %} {% else %}
{% blocktranslate trimmed %} {% blocktranslate trimmed %}
Votre demande d'autorisation d'occupation de voirie régionale a bien été enregistrée. Votre demande d'autorisation d'occupation de l'espace public a bien été enregistrée.
Un accusé de réception vous a été envoyé par email. Un accusé de réception vous a été envoyé par email.
Nos services prendront contact avec vous dans les meilleurs délais. Nos services prendront contact avec vous dans les meilleurs délais.
{% endblocktranslate %} {% endblocktranslate %}

View file

@ -6,7 +6,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% translate "Lien invalide" %} – Brussels Mobility</title> <title>{% translate "Lien invalide" %}{% if organization_name %} – {{ organization_name }}{% endif %}</title>
<link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet">
<style> <style>
@ -22,10 +22,10 @@
<body> <body>
<header class="page-header mb-5"> <header class="page-header mb-5">
<div class="container d-flex align-items-center gap-3"> <div class="container d-flex align-items-center gap-3">
<img src="{% static 'common/android-192.png' %}" alt="Brussels Mobility"> <img src="{% static organization_logo_header %}" alt="{{ organization_name }}">
<div> <div>
<div class="fw-bold fs-5">Brussels Mobility</div> <div class="fw-bold fs-5">{{ organization_name }}</div>
<div class="fs-6 opacity-75">{% translate "Demande d'occupation de voirie régionale" %}</div> <div class="fs-6 opacity-75">{% translate "Demande d'occupation de l'espace public" %}</div>
</div> </div>
</div> </div>
</header> </header>

View file

@ -6,7 +6,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% translate "Confirmation de votre email" %} – Brussels Mobility</title> <title>{% translate "Confirmation de votre email" %}{% if organization_name %} – {{ organization_name }}{% endif %}</title>
<link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet">
<style> <style>
@ -22,10 +22,10 @@
<body> <body>
<header class="page-header mb-5"> <header class="page-header mb-5">
<div class="container d-flex align-items-center gap-3"> <div class="container d-flex align-items-center gap-3">
<img src="{% static 'common/android-192.png' %}" alt="Brussels Mobility"> <img src="{% static organization_logo_header %}" alt="{{ organization_name }}">
<div> <div>
<div class="fw-bold fs-5">Brussels Mobility</div> <div class="fw-bold fs-5">{{ organization_name }}</div>
<div class="fs-6 opacity-75">{% translate "Demande d'occupation de voirie régionale" %}</div> <div class="fs-6 opacity-75">{% translate "Demande d'occupation de l'espace public" %}</div>
</div> </div>
</div> </div>
</header> </header>

View file

@ -6,7 +6,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% translate "Vérification de votre email" %} – Brussels Mobility</title> <title>{% translate "Vérification de votre email" %}{% if organization_name %} – {{ organization_name }}{% endif %}</title>
<link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap-icons.min.css' %}" rel="stylesheet">
<style> <style>
@ -29,10 +29,10 @@
<body> <body>
<header class="page-header mb-5"> <header class="page-header mb-5">
<div class="container d-flex align-items-center gap-3"> <div class="container d-flex align-items-center gap-3">
<img src="{% static 'common/android-192.png' %}" alt="Brussels Mobility"> <img src="{% static organization_logo_header %}" alt="{{ organization_name }}">
<div> <div>
<div class="fw-bold fs-5">Brussels Mobility</div> <div class="fw-bold fs-5">{{ organization_name }}</div>
<div class="fs-6 opacity-75">{% translate "Demande d'occupation de voirie régionale" %}</div> <div class="fs-6 opacity-75">{% translate "Demande d'occupation de l'espace public" %}</div>
</div> </div>
</div> </div>
</header> </header>

View file

@ -1,7 +1,7 @@
Madame, Monsieur, Madame, Monsieur,
Nous avons bien reçu votre demande d'autorisation d'occupation de la voirie. Nous avons bien reçu votre demande d'autorisation d'occupation de l'espace public.
{% load settings_tags %}Votre dossier est traité par la Direction Gestion et Inspection de {% get_setting "ORGANIZATION_NAME_FR" "Bruxelles Mobilité" %}. {% load settings_tags %}Votre dossier est traité par {% get_setting "ORGANIZATION_NAME_FR" "l'Administration" %}.
Numéro de référence : {{ authorization.code }} Numéro de référence : {{ authorization.code }}
@ -37,15 +37,10 @@ Vous trouverez ci-dessous une copie des informations que vous avez transmises vi
• Cet e-mail est un accusé de réception. • Cet e-mail est un accusé de réception.
• Il ne vaut pas autorisation. • Il ne vaut pas autorisation.
• Vous ne pouvez pas commencer l'occupation de la voirie tant que vous n'avez pas reçu une décision officielle. • Vous ne pouvez pas commencer l'occupation tant que vous n'avez pas reçu une décision officielle.
📧 Contact
Pour toute question, vous pouvez nous écrire à :
{% get_setting "EMAIL_AUTHORIZATIONS_BCC" "autorisation.voiries@sprb.brussels" %}
Cordialement, Cordialement,
{% get_setting "ORGANIZATION_NAME_FR" "Bruxelles Mobilité" %} {% get_setting "ORGANIZATION_NAME_FR" "l'Administration" %}
Direction Gestion et Inspection Service des Autorisations – Occupation de l'espace public
Autorisations – Occupation de la voirie

View file

@ -1,8 +1,8 @@
{% autoescape off %} {% autoescape off %}
Dear {{ authorization.applicant_name }}, Dear {{ authorization.applicant_name }},
We have received your application for authorisation to use the public road. We have received your application for authorisation to use the public space.
{% load settings_tags %}Your application is handled by the Management and Inspection Department of {% get_setting "ORGANIZATION_NAME" "Brussels Mobility" %}. {% load settings_tags %}Your application is handled by {% get_setting "ORGANIZATION_NAME" "the Administration" %}.
Reference number: {{ authorization.code }} Reference number: {{ authorization.code }}
@ -38,16 +38,10 @@ You will find below a copy of the information you submitted via the online form.
• This e-mail is an acknowledgement of receipt. • This e-mail is an acknowledgement of receipt.
• It does not constitute an authorisation. • It does not constitute an authorisation.
• You may not begin using the public road until you have received an official decision. • You may not begin using the public space until you have received an official decision.
📧 Contact
For any questions, please contact us at:
{% get_setting "EMAIL_AUTHORIZATIONS_BCC" "autorisation.voiries@sprb.brussels" %}
Yours sincerely, Yours sincerely,
{% get_setting "ORGANIZATION_NAME" "Brussels Mobility" %} {% get_setting "ORGANIZATION_NAME" "the Administration" %}
Management and Inspection Department Authorisations Department – Use of public space
Authorisations – Use of public road
{% endautoescape %} {% endautoescape %}

View file

@ -1,7 +1,7 @@
{% autoescape off %} {% autoescape off %}
Dear {{ applicant_name }}, Dear {{ applicant_name }},
Thank you for your application for authorisation to use the public road. Thank you for your application for authorisation to use the public space.
To finalise your application, please enter the verification code below on the confirmation page: To finalise your application, please enter the verification code below on the confirmation page:
@ -15,6 +15,6 @@ Confirmation page:
If you did not submit this application, you can ignore this message. If you did not submit this application, you can ignore this message.
--- ---
Brussels Mobility {% load settings_tags %}{% get_setting "ORGANIZATION_NAME" "the Administration" %}
Management and Inspection Department – Road authorisations Authorisations Department – Use of public space
{% endautoescape %} {% endautoescape %}

View file

@ -1,8 +1,8 @@
{% autoescape off %} {% autoescape off %}
Madame, Monsieur, Madame, Monsieur,
Nous avons bien reçu votre demande d'autorisation d'occupation de la voirie. Nous avons bien reçu votre demande d'autorisation d'occupation de l'espace public.
{% load settings_tags %}Votre dossier est traité par la Direction Gestion et Inspection de {% get_setting "ORGANIZATION_NAME_FR" "Bruxelles Mobilité" %}. {% load settings_tags %}Votre dossier est traité par {% get_setting "ORGANIZATION_NAME_FR" "l'Administration" %}.
Numéro de référence : {{ authorization.code }} Numéro de référence : {{ authorization.code }}
@ -38,16 +38,10 @@ Vous trouverez ci-dessous une copie des informations que vous avez transmises vi
• Cet e-mail est un accusé de réception. • Cet e-mail est un accusé de réception.
• Il ne vaut pas autorisation. • Il ne vaut pas autorisation.
• Vous ne pouvez pas commencer l'occupation de la voirie tant que vous n'avez pas reçu une décision officielle. • Vous ne pouvez pas commencer l'occupation tant que vous n'avez pas reçu une décision officielle.
📧 Contact
Pour toute question, vous pouvez nous écrire à :
{% get_setting "EMAIL_AUTHORIZATIONS_BCC" "autorisation.voiries@sprb.brussels" %}
Cordialement, Cordialement,
{% get_setting "ORGANIZATION_NAME_FR" "Bruxelles Mobilité" %} {% get_setting "ORGANIZATION_NAME_FR" "l'Administration" %}
Direction Gestion et Inspection Service des Autorisations – Occupation de l'espace public
Autorisations – Occupation de la voirie
{% endautoescape %} {% endautoescape %}

View file

@ -1,7 +1,7 @@
{% autoescape off %} {% autoescape off %}
Bonjour {{ applicant_name }}, Bonjour {{ applicant_name }},
Merci pour votre demande d'autorisation d'occupation de voirie régionale. Merci pour votre demande d'autorisation d'occupation de l'espace public.
Pour finaliser votre demande, saisissez le code de vérification ci-dessous sur la page de confirmation : Pour finaliser votre demande, saisissez le code de vérification ci-dessous sur la page de confirmation :
@ -15,6 +15,6 @@ Page de confirmation :
Si vous n'êtes pas à l'origine de cette demande, vous pouvez ignorer ce message. Si vous n'êtes pas à l'origine de cette demande, vous pouvez ignorer ce message.
--- ---
Brussels Mobility {% load settings_tags %}{% get_setting "ORGANIZATION_NAME_FR" "l'Administration" %}
Direction Infrastructure Routière – Autorisations de voirie Service des Autorisations – Occupation de l'espace public
{% endautoescape %} {% endautoescape %}

View file

@ -1,8 +1,8 @@
{% autoescape off %} {% autoescape off %}
Geachte {{ authorization.applicant_name }}, Geachte {{ authorization.applicant_name }},
Wij hebben uw aanvraag voor een vergunning tot inname van de openbare weg goed ontvangen. Wij hebben uw aanvraag voor een vergunning tot inname van het openbaar domein goed ontvangen.
{% load settings_tags %}Uw dossier wordt behandeld door de Directie Beheer en Inspectie van {% get_setting "ORGANIZATION_NAME_NL" "Brussel Mobiliteit" %}. {% load settings_tags %}Uw dossier wordt behandeld door {% get_setting "ORGANIZATION_NAME_NL" "de Administratie" %}.
Referentienummer : {{ authorization.code }} Referentienummer : {{ authorization.code }}
@ -38,16 +38,10 @@ U vindt hieronder een kopie van de informatie die u via het online formulier hee
• Dit e-mailbericht is een ontvangstbewijs. • Dit e-mailbericht is een ontvangstbewijs.
• Het geldt niet als vergunning. • Het geldt niet als vergunning.
• U mag de openbare weg niet innemen zolang u geen officiële beslissing heeft ontvangen. • U mag het openbaar domein niet innemen zolang u geen officiële beslissing heeft ontvangen.
📧 Contact
Voor vragen kunt u ons bereiken op :
{% get_setting "EMAIL_AUTHORIZATIONS_BCC" "autorisation.voiries@sprb.brussels" %}
Met vriendelijke groeten, Met vriendelijke groeten,
{% get_setting "ORGANIZATION_NAME_NL" "Brussel Mobiliteit" %} {% get_setting "ORGANIZATION_NAME_NL" "de Administratie" %}
Directie Beheer en Inspectie Dienst Vergunningen – Inname van het openbaar domein
Vergunningen – Inname van de openbare weg
{% endautoescape %} {% endautoescape %}

View file

@ -1,7 +1,7 @@
{% autoescape off %} {% autoescape off %}
Geachte {{ applicant_name }}, Geachte {{ applicant_name }},
Bedankt voor uw aanvraag voor een vergunning tot inname van de openbare weg. Bedankt voor uw aanvraag voor een vergunning tot inname van het openbaar domein.
Om uw aanvraag te voltooien, voert u de verificatiecode hieronder in op de bevestigingspagina : Om uw aanvraag te voltooien, voert u de verificatiecode hieronder in op de bevestigingspagina :
@ -15,6 +15,6 @@ Bevestigingspagina :
Als u deze aanvraag niet heeft ingediend, kunt u dit bericht negeren. Als u deze aanvraag niet heeft ingediend, kunt u dit bericht negeren.
--- ---
Brussel Mobiliteit {% load settings_tags %}{% get_setting "ORGANIZATION_NAME_NL" "de Administratie" %}
Directie Beheer en Inspectie – Vergunningen openbare weg Dienst Vergunningen – Inname van het openbaar domein
{% endautoescape %} {% endautoescape %}

View file

@ -1,6 +1,6 @@
Bonjour {{ applicant_name }}, Bonjour {{ applicant_name }},
Merci pour votre demande d'autorisation d'occupation de voirie régionale. Merci pour votre demande d'autorisation d'occupation de l'espace public.
Pour finaliser votre demande, saisissez le code de vérification ci-dessous sur la page de confirmation : Pour finaliser votre demande, saisissez le code de vérification ci-dessous sur la page de confirmation :
@ -12,5 +12,6 @@ Ce code est valable {{ validity_minutes }} minutes à compter de la réception d
Si vous n'êtes pas à l'origine de cette demande, vous pouvez ignorer ce message. Si vous n'êtes pas à l'origine de cette demande, vous pouvez ignorer ce message.
--- ---
Brussels Mobility {% load settings_tags %}{% get_setting "ORGANIZATION_NAME_FR" "l'Administration" %}
Direction Infrastructure Routière – Autorisations de voirie Service des Autorisations – Occupation de l'espace public

View file

@ -6,7 +6,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% translate "Demande d'occupation de voirie régionale" %} – Brussels Mobility</title> <title>{% translate "Demande d'occupation de l'espace public" %}{% if organization_name %} – {{ organization_name }}{% endif %}</title>
<!-- Bootstrap 5.3 --> <!-- Bootstrap 5.3 -->
<link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet"> <link href="{% static 'common/bootstrap.min.css' %}" rel="stylesheet">
@ -93,10 +93,10 @@
<!-- Header --> <!-- Header -->
<header class="page-header mb-4"> <header class="page-header mb-4">
<div class="container d-flex align-items-center gap-3"> <div class="container d-flex align-items-center gap-3">
<img src="{% static 'common/android-192.png' %}" alt="{% translate "Brussels Mobility" %}"> <img src="{% static organization_logo_header %}" alt="{{ organization_name }}">
<div> <div>
<div class="fw-bold fs-5">{% translate "Brussels Mobility" %}</div> <div class="fw-bold fs-5">{{ organization_name }}</div>
<div class="fs-6 opacity-75">{% translate "Demande d'occupation de voirie régionale" %}</div> <div class="fs-6 opacity-75">{% translate "Demande d'occupation de l'espace public" %}</div>
</div> </div>
<div class="ms-auto d-flex align-items-center gap-1" id="lang-switcher"> <div class="ms-auto d-flex align-items-center gap-1" id="lang-switcher">
<i class="bi bi-globe2 me-1" style="color:rgba(255,255,255,0.6);font-size:1.05rem;"></i> <i class="bi bi-globe2 me-1" style="color:rgba(255,255,255,0.6);font-size:1.05rem;"></i>
@ -114,31 +114,17 @@
<div class="card-body"> <div class="card-body">
<p class="mb-2"> <p class="mb-2">
{% blocktranslate trimmed %} {% blocktranslate trimmed %}
Toute occupation de l'espace public doit faire l'objet d'une autorisation de la part du gestionnaire de voiries. Toute occupation de l'espace public (terrasse, affichage, événement, mobilier, etc.) doit faire l'objet d'une autorisation préalable de la part de l'administration.
En Région de Bruxelles-Capitale, les axes principaux sont gérés par la Région
(<a href="https://mobilite-mobiliteit.brussels/fr/qui-sommes-nous" target="_blank" rel="noopener">Bruxelles Mobilité</a>),
tandis que les autres voiries sont gérées par les communes.
Les voiries régionales sont représentées en <strong style="color:#cc0000;">rouge</strong> sur la carte ci-dessous.
{% endblocktranslate %} {% endblocktranslate %}
</p> </p>
<p class="mb-2"> <p class="mb-2">
{% blocktranslate trimmed %} {% blocktranslate trimmed %}
Ce formulaire ne concerne que les autorisations sur <strong>voiries régionales</strong>. Veuillez compléter ce formulaire et délimiter la zone concernée sur la carte ci-dessous ainsi que la période souhaitée.
Veuillez vous adresser à votre commune pour les autres autorisations ou documents.
{% endblocktranslate %} {% endblocktranslate %}
</p> </p>
<p class="mb-0 fst-italic text-muted"> <p class="mb-0 text-muted">
{% blocktranslate trimmed %} {% blocktranslate trimmed %}
Pour les demandes liées à des chantiers, veuillez utiliser le système Si vous éprouvez des difficultés ou avez des questions, vous pouvez contacter nos services.
<a href="https://my.osiris.brussels/" target="_blank" rel="noopener">Osiris</a>.
Les demandes pour le placement de conteneurs, d'échafaudages ou les déménagements se font également via ce système.
{% endblocktranslate %}
</p>
<p class="mb-0 mt-2 text-muted">
{% blocktranslate trimmed %}
Si vous éprouvez des difficultés, contactez-nous par mail
(<a href="mailto:mobilite@sprb.brussels">mobilite@sprb.brussels</a>)
ou par téléphone (<a href="tel:+3280094001">0800 94 001</a>).
{% endblocktranslate %} {% endblocktranslate %}
</p> </p>
</div> </div>
@ -386,10 +372,8 @@
</main> </main>
<footer class="mt-5"> <footer class="mt-5">
<div class="container text-center"> <div class="container text-center text-muted">
<a href="{% translate 'https://servicepublic.brussels/politique-de-confidentialite/' %}" target="_blank" rel="noopener"> {% translate "Demande d'occupation de l'espace public" %}
{% translate "Politique de confidentialité" %}
</a>
</div> </div>
</footer> </footer>
@ -404,6 +388,7 @@
<script> <script>
window.MAP_STYLE_LIGHT = "{{ MAP_STYLE_LIGHT|escapejs }}"; window.MAP_STYLE_LIGHT = "{{ MAP_STYLE_LIGHT|escapejs }}";
window.MAP_STYLE_STANDARD = "{{ MAP_STYLE_STANDARD|escapejs }}"; window.MAP_STYLE_STANDARD = "{{ MAP_STYLE_STANDARD|escapejs }}";
window.MAP_OVERLAY_WMS_URL = "{{ map_overlay_wms_url|escapejs }}";
(function () { (function () {
'use strict'; 'use strict';
@ -413,7 +398,6 @@
let map, drawing = false, vertices = [], markers = []; let map, drawing = false, vertices = [], markers = [];
const MAPTILER_STYLE = window.MAP_STYLE_LIGHT; const MAPTILER_STYLE = window.MAP_STYLE_LIGHT;
const REGIONAL_ROADS_WMS = 'https://data.mobility.brussels/geoserver/bm_network/wms?';
function initMap() { function initMap() {
map = new maplibregl.Map({ map = new maplibregl.Map({
@ -426,23 +410,25 @@
map.addControl(new maplibregl.NavigationControl(), 'top-left'); map.addControl(new maplibregl.NavigationControl(), 'top-left');
map.on('load', function () { map.on('load', function () {
// Regional roads overlay (Bruxelles Mobilité) // Optional overlay WMS layer (e.g., regional roads if configured via MAP_OVERLAY_WMS_URL)
map.addSource('regional-roads', { if (window.MAP_OVERLAY_WMS_URL) {
type: 'raster', const wmsUrl = window.MAP_OVERLAY_WMS_URL +
tiles: [ (window.MAP_OVERLAY_WMS_URL.includes('?') ? '&' : '?') +
REGIONAL_ROADS_WMS +
'SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap' + 'SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap' +
'&LAYERS=Regional_roads&FORMAT=image/png&TRANSPARENT=true' + '&LAYERS=Regional_roads&FORMAT=image/png&TRANSPARENT=true' +
'&SRS=EPSG:3857&WIDTH=256&HEIGHT=256&BBOX={bbox-epsg-3857}' '&SRS=EPSG:3857&WIDTH=256&HEIGHT=256&BBOX={bbox-epsg-3857}';
], map.addSource('overlay-wms', {
tileSize: 256, type: 'raster',
}); tiles: [wmsUrl],
map.addLayer({ tileSize: 256,
id: 'regional-roads-layer', });
type: 'raster', map.addLayer({
source: 'regional-roads', id: 'overlay-wms-layer',
paint: { 'raster-opacity': 0.5 }, type: 'raster',
}); source: 'overlay-wms',
paint: { 'raster-opacity': 0.5 },
});
}
// Polygon preview sources // Polygon preview sources
map.addSource('poly-preview', { map.addSource('poly-preview', {

View file

@ -75,12 +75,12 @@ _VERIFY_SUBJECTS = {
} }
_ACK_SUBJECTS = { _ACK_SUBJECTS = {
'fr': "{code} – Accusé de réception de votre demande – Occupation de voirie régionale", 'fr': "{code} – Accusé de réception de votre demande – Occupation de l'espace public",
'nl': "{code} – Ontvangstbewijs van uw aanvraag – Inname van het openbaar domein", 'nl': "{code} – Ontvangstbewijs van uw aanvraag – Inname van het openbaar domein",
'en': "{code} – Acknowledgement of your application – Use of public road", 'en': "{code} – Acknowledgement of your application – Use of public space",
} }
_BCC_ADDRESS = getattr(settings, 'EMAIL_AUTHORIZATIONS_BCC', 'autorisation.voiries@sprb.brussels') _BCC_ADDRESS = getattr(settings, 'EMAIL_AUTHORIZATIONS_BCC', '')
def _send_verification_email(request, authorization, token_obj): def _send_verification_email(request, authorization, token_obj):
@ -95,8 +95,8 @@ def _send_verification_email(request, authorization, token_obj):
'verify_page_url': verify_page_url, 'verify_page_url': verify_page_url,
'validity_minutes': EmailVerificationToken.TOKEN_VALIDITY_MINUTES, 'validity_minutes': EmailVerificationToken.TOKEN_VALIDITY_MINUTES,
} }
org_name = getattr(settings, 'ORGANIZATION_NAME', 'Brussels Mobility') org_name = getattr(settings, 'ORGANIZATION_NAME', 'StreetUp')
org_name_nl = getattr(settings, 'ORGANIZATION_NAME_NL', 'Brussel Mobiliteit') org_name_nl = getattr(settings, 'ORGANIZATION_NAME_NL', 'StreetUp')
org = org_name_nl if lang == 'nl' else org_name org = org_name_nl if lang == 'nl' else org_name
subject = _VERIFY_SUBJECTS.get(lang, _VERIFY_SUBJECTS['fr']).format(code=authorization.code, org=org) subject = _VERIFY_SUBJECTS.get(lang, _VERIFY_SUBJECTS['fr']).format(code=authorization.code, org=org)
body = render_to_string(f'authorizations/emails/{lang}/verify_email.txt', context) body = render_to_string(f'authorizations/emails/{lang}/verify_email.txt', context)
@ -129,7 +129,7 @@ def _send_acknowledgment_email(request, authorization):
recipients = _resolve_recipients([authorization.applicant_email]) recipients = _resolve_recipients([authorization.applicant_email])
# BCC uniquement en production (pas en mode override) # BCC uniquement en production (pas en mode override)
override = getattr(settings, 'EMAIL_OVERRIDE', None) override = getattr(settings, 'EMAIL_OVERRIDE', None)
bcc = [] if override else [_BCC_ADDRESS] bcc = [] if override else ([_BCC_ADDRESS] if _BCC_ADDRESS else [])
if not _is_smtp_available(): if not _is_smtp_available():
logger.warning("SMTP non disponible – accusé de réception non envoyé pour %s", authorization.code) logger.warning("SMTP non disponible – accusé de réception non envoyé pour %s", authorization.code)
return return
@ -234,7 +234,10 @@ def new_authorization(request):
if lang_for_render in ('fr', 'nl', 'en'): if lang_for_render in ('fr', 'nl', 'en'):
translation.activate(lang_for_render) translation.activate(lang_for_render)
return render(request, 'authorizations/new_authorization.html', { return render(request, [
'authorizations/new_authorization.html',
'authorizations/new_authorization_default.html',
], {
'form': form, 'form': form,
'doc_formset': doc_formset, 'doc_formset': doc_formset,
'date_formset': date_formset, 'date_formset': date_formset,

View file

@ -143,12 +143,13 @@ def organization_info(request):
""" """
return { return {
'product_name': getattr(settings, 'PRODUCT_NAME', 'StreetUp'), 'product_name': getattr(settings, 'PRODUCT_NAME', 'StreetUp'),
'organization_name': getattr(settings, 'ORGANIZATION_NAME', 'Brussels Mobility'), 'organization_name': getattr(settings, 'ORGANIZATION_NAME', 'StreetUp'),
'organization_logo_header': getattr(settings, 'ORGANIZATION_LOGO_HEADER', 'common/android-192.png'), 'organization_logo_header': getattr(settings, 'ORGANIZATION_LOGO_HEADER', 'common/android-192.png'),
'organization_primary_color': getattr(settings, 'ORGANIZATION_PRIMARY_COLOR_HEX', '#2f3e8b'), 'organization_primary_color': getattr(settings, 'ORGANIZATION_PRIMARY_COLOR_HEX', '#2f3e8b'),
'map_default_center': [getattr(settings, 'MAP_DEFAULT_CENTER_LON', 4.3572), getattr(settings, 'MAP_DEFAULT_CENTER_LAT', 50.8477)], 'map_default_center': [getattr(settings, 'MAP_DEFAULT_CENTER_LON', 4.3572), getattr(settings, 'MAP_DEFAULT_CENTER_LAT', 50.8477)],
'map_default_zoom': getattr(settings, 'MAP_DEFAULT_ZOOM', 11), 'map_default_zoom': getattr(settings, 'MAP_DEFAULT_ZOOM', 11),
'map_default_extent': getattr(settings, 'MAP_DEFAULT_EXTENT', None), 'map_default_extent': getattr(settings, 'MAP_DEFAULT_EXTENT', None),
'map_overlay_wms_url': getattr(settings, 'MAP_OVERLAY_WMS_URL', ''),
'map_ortho_wms_url': getattr(settings, 'MAP_ORTHO_WMS_URL', ''), 'map_ortho_wms_url': getattr(settings, 'MAP_ORTHO_WMS_URL', ''),
'map_ortho_wms_name': getattr(settings, 'MAP_ORTHO_WMS_NAME', ''), 'map_ortho_wms_name': getattr(settings, 'MAP_ORTHO_WMS_NAME', ''),
'map_ortho_wms_attribution': getattr(settings, 'MAP_ORTHO_WMS_ATTRIBUTION', ''), 'map_ortho_wms_attribution': getattr(settings, 'MAP_ORTHO_WMS_ATTRIBUTION', ''),

View file

@ -368,7 +368,10 @@ MAP_DEFAULT_EXTENT = _parse_extent(getenv("MAP_DEFAULT_EXTENT"))
EMAIL_TECH_SUPPORT = getenv("EMAIL_TECH_SUPPORT", "bm.perm.tech@sprb.brussels") EMAIL_TECH_SUPPORT = getenv("EMAIL_TECH_SUPPORT", "bm.perm.tech@sprb.brussels")
EMAIL_TECH_SUPPORT_PHONE = getenv("EMAIL_TECH_SUPPORT_PHONE", "02/204.22.86") EMAIL_TECH_SUPPORT_PHONE = getenv("EMAIL_TECH_SUPPORT_PHONE", "02/204.22.86")
EMAIL_INTERNAL_FOLLOWUP = getenv("EMAIL_INTERNAL_FOLLOWUP", "kdeterme@sprb.brussels") EMAIL_INTERNAL_FOLLOWUP = getenv("EMAIL_INTERNAL_FOLLOWUP", "kdeterme@sprb.brussels")
EMAIL_AUTHORIZATIONS_BCC = getenv("EMAIL_AUTHORIZATIONS_BCC", "autorisation.voiries@sprb.brussels") EMAIL_AUTHORIZATIONS_BCC = getenv("EMAIL_AUTHORIZATIONS_BCC", "")
# WMS Overlay Layer Configuration (Optional overlay for maps, e.g. regional roads)
MAP_OVERLAY_WMS_URL = getenv("MAP_OVERLAY_WMS_URL", "")
# Orthophoto WMS Layer Configuration # Orthophoto WMS Layer Configuration
MAP_ORTHO_WMS_URL = getenv("MAP_ORTHO_WMS_URL", "https://geoservices-urbis.irisnet.be/geoserver/urbisgrid/wms?service=WMS&version=1.3.0&request=GetMap&layers=Ortho&styles=&format=image/png&transparent=true&width=256&height=256&crs=EPSG:3857&bbox={bbox-epsg-3857}") MAP_ORTHO_WMS_URL = getenv("MAP_ORTHO_WMS_URL", "https://geoservices-urbis.irisnet.be/geoserver/urbisgrid/wms?service=WMS&version=1.3.0&request=GetMap&layers=Ortho&styles=&format=image/png&transparent=true&width=256&height=256&crs=EPSG:3857&bbox={bbox-epsg-3857}")