From c86fb5fb707f2e0ec9be1a81f167636fe94419e6 Mon Sep 17 00:00:00 2001 From: kdeterme Date: Mon, 27 Jul 2026 10:07:21 +0200 Subject: [PATCH] feat(buildings): add dedicated edit form, view, permission checks and template for PublicBuilding --- streetup/assets/forms.py | 70 ++++- .../assets/locale/en/LC_MESSAGES/django.mo | Bin 72473 -> 73213 bytes .../assets/locale/en/LC_MESSAGES/django.po | 218 ++++++++++----- .../assets/locale/fr/LC_MESSAGES/django.mo | Bin 72508 -> 72452 bytes .../assets/locale/fr/LC_MESSAGES/django.po | 224 ++++++++++----- .../assets/locale/nl/LC_MESSAGES/django.mo | Bin 74773 -> 75508 bytes .../assets/locale/nl/LC_MESSAGES/django.po | 218 ++++++++++----- .../buildings/publicbuilding_detail.html | 12 +- .../assets/buildings/publicbuilding_form.html | 259 ++++++++++++++++++ .../assets/buildings/publicbuilding_list.html | 8 +- streetup/assets/tests.py | 68 +++++ streetup/assets/urls.py | 1 + streetup/assets/views/buildings.py | 48 +++- 13 files changed, 910 insertions(+), 216 deletions(-) create mode 100644 streetup/assets/templates/assets/buildings/publicbuilding_form.html diff --git a/streetup/assets/forms.py b/streetup/assets/forms.py index e9ad790..c1040a4 100644 --- a/streetup/assets/forms.py +++ b/streetup/assets/forms.py @@ -4,6 +4,7 @@ from assets.models import TrafficLightIntersectionDocument, PublicLightingStreet from assets.models import SignStreetDocument, RoadStreetDocument, ITSLocationDocument from assets.models import TrafficLightIntersection from assets.models.its import ITSLocation +from assets.models.buildings import PublicBuilding from assets.models.trafficlights import TL_INTERSECTION_STATUS_CHOICES, TL_VOLTAGE_CHOICES @@ -270,4 +271,71 @@ LOCATION_FORM_REGISTRY = { 'thematic_code': 'its', 'label': 'Localisation ITS', }, -} \ No newline at end of file +} + + +class PublicBuildingForm(forms.ModelForm): + """Formulaire de création et d'édition d'un Bâtiment Public.""" + + class Meta: + model = PublicBuilding + fields = [ + 'code', 'name_fr', 'name_nl', 'address', 'description', + 'owner', 'manager', 'occupant_entity', + 'usage_type', 'building_status', + 'construction_year', 'floors_count', 'basement_count', + 'total_surface_m2', 'usable_surface_m2', + 'is_erp', 'erp_category', 'erp_type', 'max_capacity', 'pmr_accessible', + 'dpe_rating', 'ges_rating', 'has_asbestos_diag', 'has_lead_diag', + 'lat', 'lon', + ] + widgets = { + 'code': forms.TextInput(attrs={'class': 'form-control'}), + 'name_fr': forms.TextInput(attrs={'class': 'form-control'}), + 'name_nl': forms.TextInput(attrs={'class': 'form-control'}), + 'address': forms.TextInput(attrs={'class': 'form-control'}), + 'description': forms.Textarea(attrs={'class': 'form-control', 'rows': 3}), + 'owner': forms.TextInput(attrs={'class': 'form-control'}), + 'manager': forms.Select(attrs={'class': 'form-select'}), + 'occupant_entity': forms.TextInput(attrs={'class': 'form-control'}), + 'usage_type': forms.Select(attrs={'class': 'form-select'}), + 'building_status': forms.Select(attrs={'class': 'form-select'}), + 'construction_year': forms.NumberInput(attrs={'class': 'form-control'}), + 'floors_count': forms.NumberInput(attrs={'class': 'form-control'}), + 'basement_count': forms.NumberInput(attrs={'class': 'form-control'}), + 'total_surface_m2': forms.NumberInput(attrs={'class': 'form-control', 'step': 'any'}), + 'usable_surface_m2': forms.NumberInput(attrs={'class': 'form-control', 'step': 'any'}), + 'is_erp': forms.CheckboxInput(attrs={'class': 'form-check-input'}), + 'erp_category': forms.Select(attrs={'class': 'form-select'}), + 'erp_type': forms.Select(attrs={'class': 'form-select'}), + 'max_capacity': forms.NumberInput(attrs={'class': 'form-control'}), + 'pmr_accessible': forms.CheckboxInput(attrs={'class': 'form-check-input'}), + 'dpe_rating': forms.Select(attrs={'class': 'form-select'}), + 'ges_rating': forms.Select(attrs={'class': 'form-select'}), + 'has_asbestos_diag': forms.CheckboxInput(attrs={'class': 'form-check-input'}), + 'has_lead_diag': forms.CheckboxInput(attrs={'class': 'form-check-input'}), + 'lat': forms.NumberInput(attrs={'class': 'form-control', 'step': 'any'}), + 'lon': forms.NumberInput(attrs={'class': 'form-control', 'step': 'any'}), + } + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields['name_fr'].required = False + self.fields['name_nl'].required = False + self.fields['address'].required = False + self.fields['description'].required = False + self.fields['owner'].required = False + self.fields['manager'].required = False + self.fields['occupant_entity'].required = False + self.fields['construction_year'].required = False + self.fields['floors_count'].required = False + self.fields['basement_count'].required = False + self.fields['total_surface_m2'].required = False + self.fields['usable_surface_m2'].required = False + self.fields['erp_category'].required = False + self.fields['erp_type'].required = False + self.fields['max_capacity'].required = False + self.fields['dpe_rating'].required = False + self.fields['ges_rating'].required = False + self.fields['lat'].required = False + self.fields['lon'].required = False \ No newline at end of file diff --git a/streetup/assets/locale/en/LC_MESSAGES/django.mo b/streetup/assets/locale/en/LC_MESSAGES/django.mo index 6a2d2c9c2be99b20b7569b4bce97d96751e18691..18256ff2a1e878bc064c44b3374cf4e428ec6aa1 100644 GIT binary patch delta 25857 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 delta 25214 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 Be3JkG diff --git a/streetup/assets/locale/en/LC_MESSAGES/django.po b/streetup/assets/locale/en/LC_MESSAGES/django.po index e660366..c9024b4 100644 --- a/streetup/assets/locale/en/LC_MESSAGES/django.po +++ b/streetup/assets/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-27 09:58+0200\n" +"POT-Creation-Date: 2026-07-27 10:06+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -180,101 +180,123 @@ msgid "Emprise cartographique" msgstr "Map footprint" #: streetup/assets/models/buildings.py:96 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:63 msgid "Adresse complète" msgstr "Full address" #: streetup/assets/models/buildings.py:97 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:68 #: streetup/assets/templates/assets/components/asset_model_card.html:38 msgid "Description" msgstr "Description" #: streetup/assets/models/buildings.py:100 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:102 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:104 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:84 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:99 msgid "Propriétaire" msgstr "Owner" #: streetup/assets/models/buildings.py:101 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:106 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:108 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:89 msgid "Gestionnaire référent" msgstr "Referent manager" #: streetup/assets/models/buildings.py:102 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:94 msgid "Direction / Service occupant" msgstr "Department / Occupant service" #: streetup/assets/models/buildings.py:105 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:110 msgid "Type d'usage principal" msgstr "Main usage type" #: streetup/assets/models/buildings.py:106 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:115 msgid "Statut d'occupation" msgstr "Occupancy status" #: streetup/assets/models/buildings.py:109 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:123 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:125 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:120 msgid "Année de construction" msgstr "Construction year" #: streetup/assets/models/buildings.py:110 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:125 msgid "Nombre d'étages hors-sol" msgstr "Number of above-ground floors" #: streetup/assets/models/buildings.py:111 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:130 msgid "Nombre de niveaux en sous-sol" msgstr "Number of basement levels" #: streetup/assets/models/buildings.py:112 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:135 msgid "Surface brute totale (m²)" msgstr "Total gross area (m²)" #: streetup/assets/models/buildings.py:113 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:140 msgid "Surface utile (m²)" msgstr "Usable area (m²)" #: streetup/assets/models/buildings.py:116 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:151 msgid "Accueil & Sécurité du Public (ERP / PMR)" msgstr "Public Reception & Safety (ERP / PRM)" #: streetup/assets/models/buildings.py:117 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:172 msgid "Catégorie d'accueil / ERP" msgstr "Reception Category / ERP" #: streetup/assets/models/buildings.py:118 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:177 msgid "Type d'établissement / ERP" msgstr "Establishment Type / ERP" #: streetup/assets/models/buildings.py:119 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:182 msgid "Jauge maximale d'accueil du public" msgstr "Maximum public capacity" #: streetup/assets/models/buildings.py:122 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:198 msgid "Performance Énergétique (PEB / DPE / EPC)" msgstr "Energy Performance (PEB / DPE / EPC)" #: streetup/assets/models/buildings.py:123 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:203 msgid "Émissions de Carbone & GES" msgstr "Carbon & GHG Emissions" #: streetup/assets/models/buildings.py:124 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:211 msgid "Diagnostic Amiante réalisé" msgstr "Asbestos Inspection completed" #: streetup/assets/models/buildings.py:125 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:219 msgid "Diagnostic Plomb réalisé" msgstr "Lead Inspection completed" #: streetup/assets/models/buildings.py:126 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:167 msgid "Accessible PMR" msgstr "PRM Accessible" #: streetup/assets/models/buildings.py:129 -#: streetup/assets/views/buildings.py:100 streetup/assets/views/core.py:407 +#: streetup/assets/views/buildings.py:103 streetup/assets/views/core.py:407 msgid "Bâtiment public" msgstr "Public building" #: streetup/assets/models/buildings.py:130 #: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:18 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:13 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:4 #: streetup/assets/views/core.py:782 msgid "Bâtiments publics" @@ -337,12 +359,12 @@ msgid "Pièces / Locaux" msgstr "Rooms / Locaux" #: streetup/assets/models/buildings.py:191 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:318 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:320 msgid "Local" msgstr "Room" #: streetup/assets/models/buildings.py:192 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:317 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:319 #: streetup/assets/templates/assets/components/add_asset_modal.html:47 #: streetup/assets/templates/assets/trafficlights_intersection_detail.html:1002 msgid "Type d'équipement" @@ -993,7 +1015,7 @@ msgid "(vide)" msgstr "(empty)" #: streetup/assets/models/history.py:325 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:362 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:364 #: streetup/assets/templates/assets/clean_index.html:65 #: streetup/assets/templates/assets/clean_index.html:71 #: streetup/assets/templates/assets/clean_location_detail.html:158 @@ -1016,17 +1038,19 @@ msgid "Code" msgstr "Code" #: streetup/assets/models/history.py:326 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:53 msgid "Nom (FR)" msgstr "Name (FR)" #: streetup/assets/models/history.py:327 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:58 msgid "Nom (NL)" msgstr "Name (NL)" #: streetup/assets/models/history.py:328 #: streetup/assets/templates/assets/artworks_index.html:8 #: streetup/assets/templates/assets/artworks_index.html:36 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:365 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:367 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:42 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:79 #: streetup/assets/templates/assets/controlcenters_location_detail.html:245 @@ -1170,12 +1194,14 @@ msgid "Structure" msgstr "Structure" #: streetup/assets/models/history.py:342 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:240 #: streetup/assets/templates/assets/detail_generic.html:672 #: streetup/assets/views/export.py:109 msgid "Longitude" msgstr "Longitude" #: streetup/assets/models/history.py:343 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:235 #: streetup/assets/templates/assets/detail_generic.html:683 #: streetup/assets/views/export.py:110 msgid "Latitude" @@ -2390,7 +2416,7 @@ msgid "Retour à la vue Artworks" msgstr "Back to Artworks view" #: streetup/assets/templates/assets/artworks_street_detail.html:27 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:167 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:169 msgid "Niveau" msgstr "Level" @@ -2400,7 +2426,7 @@ msgstr "Monuments" #: streetup/assets/templates/assets/artworks_street_detail.html:51 #: streetup/assets/templates/assets/artworks_street_detail.html:78 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:372 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:374 #: streetup/assets/templates/assets/controlcenters_location_detail.html:251 #: streetup/assets/templates/assets/its_location_detail.html:175 #: streetup/assets/templates/assets/nature_locations_detail.html:81 @@ -2631,6 +2657,8 @@ msgid "Choisissez le format d'export :" msgstr "Choose export format:" #: streetup/assets/templates/assets/base_assets_index.html:320 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:24 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:251 #: streetup/assets/templates/assets/components/add_asset_modal.html:138 #: streetup/assets/templates/assets/components/asset_documents.html:87 #: streetup/assets/templates/assets/components/asset_location_link.html:75 @@ -2661,27 +2689,35 @@ msgstr "Choose export format:" msgid "Annuler" msgstr "Cancel" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:24 -msgid "Modifier dans l'admin" -msgstr "Edit in admin" +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:25 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:15 +#: streetup/assets/templates/assets/permissions/panel.html:69 +#: streetup/assets/templates/assets/permissions/panel.html:111 +#: streetup/assets/templates/assets/permissions/panel.html:211 +#: streetup/assets/templates/assets/permissions/type_page.html:71 +#: streetup/assets/templates/assets/permissions/type_page.html:157 +#: streetup/assets/templates/assets/permissions/type_page.html:238 +#: streetup/assets/templates/assets/permissions/type_page.html:360 +msgid "Modifier" +msgstr "Edit" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:27 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:29 msgid "Retour à la liste" msgstr "Back to list" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:40 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:42 msgid "Adresse non renseignée" msgstr "Address not specified" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:71 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:73 msgid "Vue d'ensemble" msgstr "Overview" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:76 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:78 msgid "Équipements" msgstr "Equipments" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:81 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:83 #: streetup/assets/templates/assets/clean_location_detail.html:147 #: streetup/assets/templates/assets/controlcenters_location_detail.html:231 #: streetup/assets/templates/assets/its_location_detail.html:155 @@ -2695,39 +2731,39 @@ msgstr "Equipments" msgid "Interventions" msgstr "Interventions" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:98 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:100 msgid "Propriété & Responsables" msgstr "Ownership & Managers" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:110 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:112 msgid "Service occupant" msgstr "Occupant department" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:119 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:121 msgid "Caractéristiques physiques &" msgstr "Physical characteristics &" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:127 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:129 msgid "Étages / Sous-sols" msgstr "Floors / Basements" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:128 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:130 msgid "étage(s)" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:128 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:130 msgid "sous-sol(s)" msgstr "Floors / Basements" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:131 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:133 msgid "Surface Utile / Brut" msgstr "Net / Gross Floor Area" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:139 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:141 msgid "Accessibilité PMR" msgstr "PRM Accessibility" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:142 #: streetup/assets/templates/assets/detail_generic.html:432 #: streetup/assets/templates/assets/trafficlights_index.html:35 #: streetup/assets/templatetags/asset_tags.py:129 @@ -2736,7 +2772,7 @@ msgstr "PRM Accessibility" msgid "Oui" msgstr "Yes" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:142 #: streetup/assets/templates/assets/detail_generic.html:433 #: streetup/assets/templates/assets/trafficlights_index.html:39 #: streetup/assets/templatetags/asset_tags.py:129 @@ -2745,48 +2781,48 @@ msgstr "Yes" msgid "Non" msgstr "No" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:149 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:151 msgid "Arborescence du bâtiment" msgstr "Building hierarchy" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:150 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:152 msgid "niveau(x)" msgstr "level(s)" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:170 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:172 msgid "local(aux)" msgstr "room(s)" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:199 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:201 msgid "équipement(s)" msgstr "equipment(s)" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:224 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:226 msgid "Aucun local enregistré pour ce niveau." msgstr "No room registered for this level." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:230 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:232 msgid "Aucun niveau enregistré pour ce bâtiment." msgstr "No level registered for this building." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:244 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:246 msgid "Localisation & Carte" msgstr "Location & Map" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:258 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:260 msgid "Adresse" msgstr "Address" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:258 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:260 msgid "Non renseignée" msgstr "Not specified" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:271 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:273 #: streetup/assets/templates/assets/components/asset_documents.html:6 msgid "Documents associés" msgstr "Associated documents" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:273 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:275 #: streetup/assets/templates/assets/cleanlitterbin_detail.html:23 #: streetup/assets/templates/assets/components/asset_documents.html:14 #: streetup/assets/templates/assets/controlcenters_location_detail.html:46 @@ -2810,56 +2846,102 @@ msgstr "Associated documents" msgid "Ajouter" msgstr "Add" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:285 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:287 #: streetup/assets/templates/assets/document_version_history_list.html:50 msgid "Télécharger" msgstr "Download" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:289 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:291 msgid "Fichier indisponible" msgstr "File unavailable" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:296 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:298 msgid "Aucun document associé." msgstr "No associated document." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:316 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:318 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:74 msgid "Code / Nom" msgstr "Code / Name" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:319 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:321 msgid "Prochain contrôle" msgstr "Next control" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:326 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:328 msgid "Détail de l\\" msgstr "Detail of " -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:339 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:341 msgid "Aucun équipement technique enregistré." msgstr "No technical equipment registered." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:352 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:354 msgid "Interventions & Maintenance" msgstr "Interventions & Maintenance" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:354 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:356 msgid "Nouvelle intervention" msgstr "New intervention" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:363 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:365 msgid "Titre / Objet" msgstr "Title / Subject" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:364 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:366 msgid "Date de début" msgstr "Start date" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:385 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:387 msgid "Aucune intervention enregistrée pour ce bâtiment." msgstr "No intervention registered for this building." +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:4 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:19 +msgid "Modifier le bâtiment" +msgstr "Edit building" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:35 +msgid "Certains champs contiennent des erreurs." +msgstr "Some fields contain errors." + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:35 +msgid "Veuillez vérifier les informations ci-dessous." +msgstr "Please check the information below." + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:43 +#: streetup/assets/templates/assets/detail_generic.html:204 +msgid "Informations générales" +msgstr "General information" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:48 +msgid "Code du bâtiment" +msgstr "Building code" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:79 +msgid "Propriété & Gestion" +msgstr "Ownership & Management" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:105 +msgid "Usage & Caractéristiques physiques" +msgstr "Usage & Physical Characteristics" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:159 +msgid "Bâtiment recevant du public (ERP / PMR)" +msgstr "Public reception building (ERP / PRM)" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:193 +msgid "Diagnostics & Énergie" +msgstr "Diagnostics & Energy" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:230 +msgid "Coordonnées géographiques (GPS WGS84)" +msgstr "Geographic Coordinates (GPS WGS84)" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:254 +msgid "Enregistrer les modifications" +msgstr "Save changes" + #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:11 msgid "Gestion des Bâtiments Publics" msgstr "Public Buildings Management" @@ -2933,13 +3015,13 @@ msgstr "" msgid "Voir détails" msgstr "Details" -#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:131 +#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:132 #: streetup/assets/templates/assets/detail_generic.html:144 #: streetup/assets/templates/assets/detail_generic.html:188 msgid "Éditer" msgstr "Edit" -#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:142 msgid "Aucun bâtiment public ne correspond à vos critères." msgstr "" @@ -3882,10 +3964,6 @@ msgstr "Asset" msgid "Sauvegarder" msgstr "Save" -#: streetup/assets/templates/assets/detail_generic.html:204 -msgid "Informations générales" -msgstr "General information" - #: streetup/assets/templates/assets/detail_generic.html:277 #: streetup/assets/templates/assets/unified_index.html:212 msgid "Statut de validation" @@ -4367,16 +4445,6 @@ msgstr "" msgid "Voir" msgstr "View" -#: streetup/assets/templates/assets/permissions/panel.html:69 -#: streetup/assets/templates/assets/permissions/panel.html:111 -#: streetup/assets/templates/assets/permissions/panel.html:211 -#: streetup/assets/templates/assets/permissions/type_page.html:71 -#: streetup/assets/templates/assets/permissions/type_page.html:157 -#: streetup/assets/templates/assets/permissions/type_page.html:238 -#: streetup/assets/templates/assets/permissions/type_page.html:360 -msgid "Modifier" -msgstr "Edit" - #: streetup/assets/templates/assets/permissions/panel.html:71 msgid "Champs" msgstr "Fields" @@ -5923,6 +5991,17 @@ msgstr "User required." msgid "Utilisateur introuvable." msgstr "User not found." +#: streetup/assets/views/buildings.py:253 +#, fuzzy +#| msgid "Vous n'avez pas la permission de modifier cet asset" +msgid "Vous n'avez pas la permission de modifier ce bâtiment." +msgstr "You do not have permission to edit this asset" + +#: streetup/assets/views/buildings.py:259 +#, python-format +msgid "Le bâtiment '%s' a été mis à jour avec succès." +msgstr "" + #: streetup/assets/views/clean.py:259 msgid "Locations" msgstr "Locations" @@ -6367,6 +6446,9 @@ msgstr "" msgid "Aucune localisation GIEP trouvée à proximité" msgstr "No location found" +#~ msgid "Modifier dans l'admin" +#~ msgstr "Edit in admin" + #, fuzzy #~| msgid "Changer le modèle" #~ msgid "Charger le plan" diff --git a/streetup/assets/locale/fr/LC_MESSAGES/django.mo b/streetup/assets/locale/fr/LC_MESSAGES/django.mo index 1df7b9e4c66a4e4323171084ac18f1c225abbf48..b0db5b13d22bfc03684e47dd38f8aeebd45b8caa 100644 GIT binary patch delta 22096 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\n" "Language-Team: LANGUAGE \n" @@ -179,101 +179,123 @@ msgid "Emprise cartographique" msgstr "" #: streetup/assets/models/buildings.py:96 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:63 msgid "Adresse complète" msgstr "À compléter" #: streetup/assets/models/buildings.py:97 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:68 #: streetup/assets/templates/assets/components/asset_model_card.html:38 msgid "Description" msgstr "Description" #: streetup/assets/models/buildings.py:100 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:102 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:104 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:84 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:99 msgid "Propriétaire" msgstr "Propreté" #: streetup/assets/models/buildings.py:101 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:106 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:108 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:89 msgid "Gestionnaire référent" msgstr "" #: streetup/assets/models/buildings.py:102 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:94 msgid "Direction / Service occupant" msgstr "" #: streetup/assets/models/buildings.py:105 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:110 msgid "Type d'usage principal" msgstr "Type d'asset inconnu" #: streetup/assets/models/buildings.py:106 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:115 msgid "Statut d'occupation" msgstr "Statut de validation" #: streetup/assets/models/buildings.py:109 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:123 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:125 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:120 msgid "Année de construction" msgstr "Numéro de contrat" #: streetup/assets/models/buildings.py:110 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:125 msgid "Nombre d'étages hors-sol" msgstr "Nombre de brins" #: streetup/assets/models/buildings.py:111 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:130 msgid "Nombre de niveaux en sous-sol" msgstr "" #: streetup/assets/models/buildings.py:112 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:135 msgid "Surface brute totale (m²)" msgstr "Surface (m²)" #: streetup/assets/models/buildings.py:113 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:140 msgid "Surface utile (m²)" msgstr "Surface (m²)" #: streetup/assets/models/buildings.py:116 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:151 msgid "Accueil & Sécurité du Public (ERP / PMR)" msgstr "" #: streetup/assets/models/buildings.py:117 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:172 msgid "Catégorie d'accueil / ERP" msgstr "" #: streetup/assets/models/buildings.py:118 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:177 msgid "Type d'établissement / ERP" msgstr "Type d'élément" #: streetup/assets/models/buildings.py:119 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:182 msgid "Jauge maximale d'accueil du public" msgstr "" #: streetup/assets/models/buildings.py:122 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:198 msgid "Performance Énergétique (PEB / DPE / EPC)" msgstr "" #: streetup/assets/models/buildings.py:123 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:203 msgid "Émissions de Carbone & GES" msgstr "" #: streetup/assets/models/buildings.py:124 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:211 msgid "Diagnostic Amiante réalisé" msgstr "" #: streetup/assets/models/buildings.py:125 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:219 msgid "Diagnostic Plomb réalisé" msgstr "" #: streetup/assets/models/buildings.py:126 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:167 msgid "Accessible PMR" msgstr "Accessoire" #: streetup/assets/models/buildings.py:129 -#: streetup/assets/views/buildings.py:100 streetup/assets/views/core.py:407 +#: streetup/assets/views/buildings.py:103 streetup/assets/views/core.py:407 msgid "Bâtiment public" msgstr "" #: streetup/assets/models/buildings.py:130 #: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:18 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:13 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:4 #: streetup/assets/views/core.py:782 msgid "Bâtiments publics" @@ -336,12 +358,12 @@ msgid "Pièces / Locaux" msgstr "" #: streetup/assets/models/buildings.py:191 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:318 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:320 msgid "Local" msgstr "Location" #: streetup/assets/models/buildings.py:192 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:317 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:319 #: streetup/assets/templates/assets/components/add_asset_modal.html:47 #: streetup/assets/templates/assets/trafficlights_intersection_detail.html:1002 msgid "Type d'équipement" @@ -994,7 +1016,7 @@ msgid "(vide)" msgstr "(vide)" #: streetup/assets/models/history.py:325 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:362 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:364 #: streetup/assets/templates/assets/clean_index.html:65 #: streetup/assets/templates/assets/clean_index.html:71 #: streetup/assets/templates/assets/clean_location_detail.html:158 @@ -1017,17 +1039,19 @@ msgid "Code" msgstr "Code" #: streetup/assets/models/history.py:326 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:53 msgid "Nom (FR)" msgstr "Nom (FR)" #: streetup/assets/models/history.py:327 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:58 msgid "Nom (NL)" msgstr "Nom (NL)" #: streetup/assets/models/history.py:328 #: streetup/assets/templates/assets/artworks_index.html:8 #: streetup/assets/templates/assets/artworks_index.html:36 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:365 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:367 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:42 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:79 #: streetup/assets/templates/assets/controlcenters_location_detail.html:245 @@ -1171,12 +1195,14 @@ msgid "Structure" msgstr "Structure" #: streetup/assets/models/history.py:342 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:240 #: streetup/assets/templates/assets/detail_generic.html:672 #: streetup/assets/views/export.py:109 msgid "Longitude" msgstr "Longitude" #: streetup/assets/models/history.py:343 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:235 #: streetup/assets/templates/assets/detail_generic.html:683 #: streetup/assets/views/export.py:110 msgid "Latitude" @@ -2391,7 +2417,7 @@ msgid "Retour à la vue Artworks" msgstr "Retour à la vue Artworks" #: streetup/assets/templates/assets/artworks_street_detail.html:27 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:167 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:169 msgid "Niveau" msgstr "Niveau" @@ -2401,7 +2427,7 @@ msgstr "Monuments" #: streetup/assets/templates/assets/artworks_street_detail.html:51 #: streetup/assets/templates/assets/artworks_street_detail.html:78 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:372 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:374 #: streetup/assets/templates/assets/controlcenters_location_detail.html:251 #: streetup/assets/templates/assets/its_location_detail.html:175 #: streetup/assets/templates/assets/nature_locations_detail.html:81 @@ -2632,6 +2658,8 @@ msgid "Choisissez le format d'export :" msgstr "Choisissez le format d'export :" #: streetup/assets/templates/assets/base_assets_index.html:320 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:24 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:251 #: streetup/assets/templates/assets/components/add_asset_modal.html:138 #: streetup/assets/templates/assets/components/asset_documents.html:87 #: streetup/assets/templates/assets/components/asset_location_link.html:75 @@ -2662,27 +2690,35 @@ msgstr "Choisissez le format d'export :" msgid "Annuler" msgstr "Annuler" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:24 -msgid "Modifier dans l'admin" -msgstr "Modifier l'accès" +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:25 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:15 +#: streetup/assets/templates/assets/permissions/panel.html:69 +#: streetup/assets/templates/assets/permissions/panel.html:111 +#: streetup/assets/templates/assets/permissions/panel.html:211 +#: streetup/assets/templates/assets/permissions/type_page.html:71 +#: streetup/assets/templates/assets/permissions/type_page.html:157 +#: streetup/assets/templates/assets/permissions/type_page.html:238 +#: streetup/assets/templates/assets/permissions/type_page.html:360 +msgid "Modifier" +msgstr "Modifier" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:27 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:29 msgid "Retour à la liste" msgstr "Retour à la vue Artworks" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:40 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:42 msgid "Adresse non renseignée" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:71 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:73 msgid "Vue d'ensemble" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:76 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:78 msgid "Équipements" msgstr "Type d'élément" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:81 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:83 #: streetup/assets/templates/assets/clean_location_detail.html:147 #: streetup/assets/templates/assets/controlcenters_location_detail.html:231 #: streetup/assets/templates/assets/its_location_detail.html:155 @@ -2696,39 +2732,39 @@ msgstr "Type d'élément" msgid "Interventions" msgstr "Interventions" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:98 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:100 msgid "Propriété & Responsables" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:110 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:112 msgid "Service occupant" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:119 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:121 msgid "Caractéristiques physiques &" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:127 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:129 msgid "Étages / Sous-sols" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:128 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:130 msgid "étage(s)" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:128 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:130 msgid "sous-sol(s)" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:131 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:133 msgid "Surface Utile / Brut" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:139 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:141 msgid "Accessibilité PMR" msgstr "Accessibilité" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:142 #: streetup/assets/templates/assets/detail_generic.html:432 #: streetup/assets/templates/assets/trafficlights_index.html:35 #: streetup/assets/templatetags/asset_tags.py:129 @@ -2737,7 +2773,7 @@ msgstr "Accessibilité" msgid "Oui" msgstr "Oui" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:142 #: streetup/assets/templates/assets/detail_generic.html:433 #: streetup/assets/templates/assets/trafficlights_index.html:39 #: streetup/assets/templatetags/asset_tags.py:129 @@ -2746,48 +2782,48 @@ msgstr "Oui" msgid "Non" msgstr "Non" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:149 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:151 msgid "Arborescence du bâtiment" msgstr "Arborescence" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:150 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:152 msgid "niveau(x)" msgstr "Niveau" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:170 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:172 msgid "local(aux)" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:199 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:201 msgid "équipement(s)" msgstr "Type d'élément" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:224 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:226 msgid "Aucun local enregistré pour ce niveau." msgstr "Aucune modification enregistrée pour cet asset." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:230 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:232 msgid "Aucun niveau enregistré pour ce bâtiment." msgstr "Aucune modification enregistrée pour cet asset." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:244 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:246 msgid "Localisation & Carte" msgstr "Localisation parente:" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:258 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:260 msgid "Adresse" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:258 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:260 msgid "Non renseignée" msgstr "Non identifié" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:271 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:273 #: streetup/assets/templates/assets/components/asset_documents.html:6 msgid "Documents associés" msgstr "Documents associés" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:273 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:275 #: streetup/assets/templates/assets/cleanlitterbin_detail.html:23 #: streetup/assets/templates/assets/components/asset_documents.html:14 #: streetup/assets/templates/assets/controlcenters_location_detail.html:46 @@ -2811,56 +2847,108 @@ msgstr "Documents associés" msgid "Ajouter" msgstr "Ajouter" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:285 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:287 #: streetup/assets/templates/assets/document_version_history_list.html:50 msgid "Télécharger" msgstr "Télécharger" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:289 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:291 msgid "Fichier indisponible" msgstr "Aucun champ disponible" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:296 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:298 msgid "Aucun document associé." msgstr "Aucun contrat associé." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:316 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:318 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:74 msgid "Code / Nom" msgstr "Code EAN" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:319 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:321 msgid "Prochain contrôle" msgstr "Aucun contrôleur" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:326 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:328 msgid "Détail de l\\" msgstr "Détail" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:339 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:341 msgid "Aucun équipement technique enregistré." msgstr "Aucun équipement trouvé" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:352 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:354 msgid "Interventions & Maintenance" msgstr "Interventions" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:354 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:356 msgid "Nouvelle intervention" msgstr "No interventions" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:363 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:365 msgid "Titre / Objet" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:364 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:366 msgid "Date de début" msgstr "Date de déinstallation" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:385 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:387 msgid "Aucune intervention enregistrée pour ce bâtiment." msgstr "Aucune modification enregistrée pour cet asset." +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:4 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:19 +#, fuzzy +#| msgid "Modifier les contrats" +msgid "Modifier le bâtiment" +msgstr "Modifier les contrats" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:35 +msgid "Certains champs contiennent des erreurs." +msgstr "" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:35 +msgid "Veuillez vérifier les informations ci-dessous." +msgstr "" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:43 +#: streetup/assets/templates/assets/detail_generic.html:204 +msgid "Informations générales" +msgstr "Informations générales" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:48 +#, fuzzy +#| msgid "Document de bâtiment" +msgid "Code du bâtiment" +msgstr "Documents des assets" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:79 +msgid "Propriété & Gestion" +msgstr "" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:105 +msgid "Usage & Caractéristiques physiques" +msgstr "" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:159 +msgid "Bâtiment recevant du public (ERP / PMR)" +msgstr "" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:193 +msgid "Diagnostics & Énergie" +msgstr "" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:230 +msgid "Coordonnées géographiques (GPS WGS84)" +msgstr "" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:254 +#, fuzzy +#| msgid "Historique des modifications" +msgid "Enregistrer les modifications" +msgstr "Historique des modifications" + #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:11 msgid "Gestion des Bâtiments Publics" msgstr "" @@ -2934,13 +3022,13 @@ msgstr "" msgid "Voir détails" msgstr "Détails" -#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:131 +#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:132 #: streetup/assets/templates/assets/detail_generic.html:144 #: streetup/assets/templates/assets/detail_generic.html:188 msgid "Éditer" msgstr "Éditer" -#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:142 msgid "Aucun bâtiment public ne correspond à vos critères." msgstr "" @@ -3888,10 +3976,6 @@ msgstr "Asset" msgid "Sauvegarder" msgstr "Sauvegarder" -#: streetup/assets/templates/assets/detail_generic.html:204 -msgid "Informations générales" -msgstr "Informations générales" - #: streetup/assets/templates/assets/detail_generic.html:277 #: streetup/assets/templates/assets/unified_index.html:212 msgid "Statut de validation" @@ -4375,16 +4459,6 @@ msgstr "" msgid "Voir" msgstr "Voir" -#: streetup/assets/templates/assets/permissions/panel.html:69 -#: streetup/assets/templates/assets/permissions/panel.html:111 -#: streetup/assets/templates/assets/permissions/panel.html:211 -#: streetup/assets/templates/assets/permissions/type_page.html:71 -#: streetup/assets/templates/assets/permissions/type_page.html:157 -#: streetup/assets/templates/assets/permissions/type_page.html:238 -#: streetup/assets/templates/assets/permissions/type_page.html:360 -msgid "Modifier" -msgstr "Modifier" - #: streetup/assets/templates/assets/permissions/panel.html:71 msgid "Champs" msgstr "Champs" @@ -5946,6 +6020,17 @@ msgstr "Utilisateur requis." msgid "Utilisateur introuvable." msgstr "Utilisateur introuvable." +#: streetup/assets/views/buildings.py:253 +#, fuzzy +#| msgid "Vous n'avez pas la permission de modifier cet asset" +msgid "Vous n'avez pas la permission de modifier ce bâtiment." +msgstr "Vous n'avez pas la permission de modifier cet asset" + +#: streetup/assets/views/buildings.py:259 +#, python-format +msgid "Le bâtiment '%s' a été mis à jour avec succès." +msgstr "" + #: streetup/assets/views/clean.py:259 msgid "Locations" msgstr "Locations" @@ -6390,6 +6475,9 @@ msgstr "" msgid "Aucune localisation GIEP trouvée à proximité" msgstr "Aucune localisation trouvée" +#~ msgid "Modifier dans l'admin" +#~ msgstr "Modifier l'accès" + #, fuzzy #~| msgid "Changer le modèle" #~ msgid "Charger le plan" diff --git a/streetup/assets/locale/nl/LC_MESSAGES/django.mo b/streetup/assets/locale/nl/LC_MESSAGES/django.mo index 20859a208f705c6329f8115636e5d82397813d23..7fc1e66d5ed415252d943a7d0de3065c5664c0ac 100644 GIT binary patch delta 26082 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%0AS2UPvOmOlpdmd&*EXW4oGi<7a+3NE4= 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

dcuT#4cz}+YQTJEk$FQY!mW}e(@M+bRGfj$ zX;+1?i~Qq+q{NHUW+*{VCqgpvKOtR|`pJpw$%*MT%gkhcMZ#kZf=T~I{s@dA|7Y?S z5bluPO!$bhs^tHRXR#O|h7y0KVq?rqU5)R1E>m$Q zK~HAFUo<*O`YiFKglB|mG|=;m4pQNL)bpHrEvR49+P@(06`={`cd!;AA7z2G54JwO zpnlf?#xG@^Q0IT1kEpbRR0k@ZrTlNJ)1Lew!oTEaBCm+$Cz954g!Eem8b+OoRyKvQ z(ZmN6GEi2QvO0tm#G~{#MS4<`p{KbuN>9284S#U6egEuC-T*6CMjJYKK>9cQkg`g| z6A0%CM{Ppyns+2J(#BBUPC|F;mDHd0^qjB;H;FGMY@ky;H3;>sY!-Dp5IWLuBO#KI zowC2Iu4A^K&2aLolAccJZS8-e{yIX|clD{~TYm@{8>w`i!dqlEB;A04N)w++7)a1F zm^yvksPmHechrA|!FUa?P?iGqe2Q^y)X8djN{%M}J)t6PvgyzN^K1tSm>*iB!kQ&{ zHK?d(2F6%?0A*EFZckNf`-t+7Y_NrtbtGPfyk6AZKzak|B%}lXr)?enwTVO$!ek0Z z;#fNSkoa4Io=q-}KV?11OKNdyh>05L3HR)q92*_qGbTE*>bNWZq4Ci@V+JO~N5^~m(y(7#_n00r zQC$;a;$jCThE5unVeY2Si~j%7=K3wpka+j=bZGSqiQV`7l_h^OZCP|5PeNRD&#tk3qWi}5?&Ikh-7Rj=kpH!hjV`|S z3u_tIuU|~hXwTs2zTKl^J>A&&gajfz;s!yH#Cn&%^be}*YaA8VJv#CBl^*{2>PBk= zd&CTk>J`o2@7o;TJtnrRn!Uf7jjuls2&on0+fKGC+*8~3vi9wE{;Au<^d275GbXkt zt>O~r-@TiD?kBH{C3A;L{NeRqsRC+5_ln*!FUYTI`cSgt2gUTElRE5Fbf0KXpXk_r x(eeCq{;5#EN8vTO0r7EtquHzO(Vn>2?$PlB6S{Uq&;RUObdfFlv->p<{D0ZQ5B2~6 delta 25401 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\n" "Language-Team: LANGUAGE \n" @@ -179,101 +179,123 @@ msgid "Emprise cartographique" msgstr "Cartografische omtrek" #: streetup/assets/models/buildings.py:96 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:63 msgid "Adresse complète" msgstr "Volledig adres" #: streetup/assets/models/buildings.py:97 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:68 #: streetup/assets/templates/assets/components/asset_model_card.html:38 msgid "Description" msgstr "Beschrijving" #: streetup/assets/models/buildings.py:100 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:102 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:104 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:84 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:99 msgid "Propriétaire" msgstr "Netheid" #: streetup/assets/models/buildings.py:101 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:106 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:108 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:89 msgid "Gestionnaire référent" msgstr "" #: streetup/assets/models/buildings.py:102 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:94 msgid "Direction / Service occupant" msgstr "" #: streetup/assets/models/buildings.py:105 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:110 msgid "Type d'usage principal" msgstr "Hoofdgebruikstype" #: streetup/assets/models/buildings.py:106 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:115 msgid "Statut d'occupation" msgstr "Bezettingsstatus" #: streetup/assets/models/buildings.py:109 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:123 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:125 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:120 msgid "Année de construction" msgstr "Bouwjaar" #: streetup/assets/models/buildings.py:110 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:125 msgid "Nombre d'étages hors-sol" msgstr "Aantal bovengrondse verdiepingen" #: streetup/assets/models/buildings.py:111 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:130 msgid "Nombre de niveaux en sous-sol" msgstr "Aantal kelderniveaus" #: streetup/assets/models/buildings.py:112 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:135 msgid "Surface brute totale (m²)" msgstr "Totale bruto oppervlakte (m²)" #: streetup/assets/models/buildings.py:113 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:140 msgid "Surface utile (m²)" msgstr "Nuttige oppervlakte (m²)" #: streetup/assets/models/buildings.py:116 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:151 msgid "Accueil & Sécurité du Public (ERP / PMR)" msgstr "Publieksontvangst & Veiligheid (ERP / PMR)" #: streetup/assets/models/buildings.py:117 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:172 msgid "Catégorie d'accueil / ERP" msgstr "Ontvangstcategorie / ERP" #: streetup/assets/models/buildings.py:118 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:177 msgid "Type d'établissement / ERP" msgstr "Type inrichting / ERP" #: streetup/assets/models/buildings.py:119 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:182 msgid "Jauge maximale d'accueil du public" msgstr "Maximale publiekscapaciteit" #: streetup/assets/models/buildings.py:122 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:198 msgid "Performance Énergétique (PEB / DPE / EPC)" msgstr "Energieprestatie (PEB / DPE / EPC)" #: streetup/assets/models/buildings.py:123 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:203 msgid "Émissions de Carbone & GES" msgstr "Koolstofemissies & BKG" #: streetup/assets/models/buildings.py:124 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:211 msgid "Diagnostic Amiante réalisé" msgstr "Asbestdiagnose uitgevoerd" #: streetup/assets/models/buildings.py:125 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:219 msgid "Diagnostic Plomb réalisé" msgstr "Looddiagnose uitgevoerd" #: streetup/assets/models/buildings.py:126 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:167 msgid "Accessible PMR" msgstr "Accessoire" #: streetup/assets/models/buildings.py:129 -#: streetup/assets/views/buildings.py:100 streetup/assets/views/core.py:407 +#: streetup/assets/views/buildings.py:103 streetup/assets/views/core.py:407 msgid "Bâtiment public" msgstr "Openbaar gebouw" #: streetup/assets/models/buildings.py:130 #: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:18 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:13 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:4 #: streetup/assets/views/core.py:782 msgid "Bâtiments publics" @@ -336,12 +358,12 @@ msgid "Pièces / Locaux" msgstr "Ruimten / Lokalen" #: streetup/assets/models/buildings.py:191 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:318 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:320 msgid "Local" msgstr "Lokaal" #: streetup/assets/models/buildings.py:192 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:317 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:319 #: streetup/assets/templates/assets/components/add_asset_modal.html:47 #: streetup/assets/templates/assets/trafficlights_intersection_detail.html:1002 msgid "Type d'équipement" @@ -992,7 +1014,7 @@ msgid "(vide)" msgstr "(leeg)" #: streetup/assets/models/history.py:325 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:362 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:364 #: streetup/assets/templates/assets/clean_index.html:65 #: streetup/assets/templates/assets/clean_index.html:71 #: streetup/assets/templates/assets/clean_location_detail.html:158 @@ -1015,17 +1037,19 @@ msgid "Code" msgstr "Code" #: streetup/assets/models/history.py:326 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:53 msgid "Nom (FR)" msgstr "Naam (FR)" #: streetup/assets/models/history.py:327 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:58 msgid "Nom (NL)" msgstr "Naam (NL)" #: streetup/assets/models/history.py:328 #: streetup/assets/templates/assets/artworks_index.html:8 #: streetup/assets/templates/assets/artworks_index.html:36 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:365 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:367 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:42 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:79 #: streetup/assets/templates/assets/controlcenters_location_detail.html:245 @@ -1169,12 +1193,14 @@ msgid "Structure" msgstr "Structuur" #: streetup/assets/models/history.py:342 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:240 #: streetup/assets/templates/assets/detail_generic.html:672 #: streetup/assets/views/export.py:109 msgid "Longitude" msgstr "Lengtegraad" #: streetup/assets/models/history.py:343 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:235 #: streetup/assets/templates/assets/detail_generic.html:683 #: streetup/assets/views/export.py:110 msgid "Latitude" @@ -2389,7 +2415,7 @@ msgid "Retour à la vue Artworks" msgstr "Terug naar Kunstwerken overzicht" #: streetup/assets/templates/assets/artworks_street_detail.html:27 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:167 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:169 msgid "Niveau" msgstr "Niveau" @@ -2399,7 +2425,7 @@ msgstr "Monumenten" #: streetup/assets/templates/assets/artworks_street_detail.html:51 #: streetup/assets/templates/assets/artworks_street_detail.html:78 -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:372 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:374 #: streetup/assets/templates/assets/controlcenters_location_detail.html:251 #: streetup/assets/templates/assets/its_location_detail.html:175 #: streetup/assets/templates/assets/nature_locations_detail.html:81 @@ -2626,6 +2652,8 @@ msgid "Choisissez le format d'export :" msgstr "Kies exportformaat:" #: streetup/assets/templates/assets/base_assets_index.html:320 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:24 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:251 #: streetup/assets/templates/assets/components/add_asset_modal.html:138 #: streetup/assets/templates/assets/components/asset_documents.html:87 #: streetup/assets/templates/assets/components/asset_location_link.html:75 @@ -2656,27 +2684,35 @@ msgstr "Kies exportformaat:" msgid "Annuler" msgstr "Annuleren" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:24 -msgid "Modifier dans l'admin" -msgstr "Bewerken in admin" +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:25 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:15 +#: streetup/assets/templates/assets/permissions/panel.html:69 +#: streetup/assets/templates/assets/permissions/panel.html:111 +#: streetup/assets/templates/assets/permissions/panel.html:211 +#: streetup/assets/templates/assets/permissions/type_page.html:71 +#: streetup/assets/templates/assets/permissions/type_page.html:157 +#: streetup/assets/templates/assets/permissions/type_page.html:238 +#: streetup/assets/templates/assets/permissions/type_page.html:360 +msgid "Modifier" +msgstr "Bewerken" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:27 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:29 msgid "Retour à la liste" msgstr "Terug naar lijst" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:40 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:42 msgid "Adresse non renseignée" msgstr "Adres niet opgegeven" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:71 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:73 msgid "Vue d'ensemble" msgstr "Overzicht" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:76 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:78 msgid "Équipements" msgstr "Uitrusting" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:81 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:83 #: streetup/assets/templates/assets/clean_location_detail.html:147 #: streetup/assets/templates/assets/controlcenters_location_detail.html:231 #: streetup/assets/templates/assets/its_location_detail.html:155 @@ -2690,39 +2726,39 @@ msgstr "Uitrusting" msgid "Interventions" msgstr "Interventies" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:98 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:100 msgid "Propriété & Responsables" msgstr "Eigendom & Verantwoordelijken" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:110 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:112 msgid "Service occupant" msgstr "Gebruikersdienst" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:119 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:121 msgid "Caractéristiques physiques &" msgstr "Fysieke kenmerken &" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:127 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:129 msgid "Étages / Sous-sols" msgstr "Verdiepingen / Kelders" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:128 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:130 msgid "étage(s)" msgstr "" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:128 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:130 msgid "sous-sol(s)" msgstr "Verdiepingen / Kelders" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:131 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:133 msgid "Surface Utile / Brut" msgstr "Nuttige / Bruto oppervlakte" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:139 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:141 msgid "Accessibilité PMR" msgstr "Toegankelijkheid beperkte mobiliteit" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:142 #: streetup/assets/templates/assets/detail_generic.html:432 #: streetup/assets/templates/assets/trafficlights_index.html:35 #: streetup/assets/templatetags/asset_tags.py:129 @@ -2731,7 +2767,7 @@ msgstr "Toegankelijkheid beperkte mobiliteit" msgid "Oui" msgstr "Ja" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:142 #: streetup/assets/templates/assets/detail_generic.html:433 #: streetup/assets/templates/assets/trafficlights_index.html:39 #: streetup/assets/templatetags/asset_tags.py:129 @@ -2740,48 +2776,48 @@ msgstr "Ja" msgid "Non" msgstr "Nee" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:149 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:151 msgid "Arborescence du bâtiment" msgstr "Gebouwstructuur" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:150 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:152 msgid "niveau(x)" msgstr "niveau(s)" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:170 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:172 msgid "local(aux)" msgstr "lokaal/lokalen" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:199 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:201 msgid "équipement(s)" msgstr "uitrusting(en)" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:224 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:226 msgid "Aucun local enregistré pour ce niveau." msgstr "Geen lokaal geregistreerd voor dit niveau." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:230 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:232 msgid "Aucun niveau enregistré pour ce bâtiment." msgstr "Geen niveau geregistreerd voor dit gebouw." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:244 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:246 msgid "Localisation & Carte" msgstr "Locatie & Kaart" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:258 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:260 msgid "Adresse" msgstr "Adres" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:258 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:260 msgid "Non renseignée" msgstr "Niet opgegeven" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:271 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:273 #: streetup/assets/templates/assets/components/asset_documents.html:6 msgid "Documents associés" msgstr "Gekoppelde documenten" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:273 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:275 #: streetup/assets/templates/assets/cleanlitterbin_detail.html:23 #: streetup/assets/templates/assets/components/asset_documents.html:14 #: streetup/assets/templates/assets/controlcenters_location_detail.html:46 @@ -2805,56 +2841,102 @@ msgstr "Gekoppelde documenten" msgid "Ajouter" msgstr "Toevoegen" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:285 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:287 #: streetup/assets/templates/assets/document_version_history_list.html:50 msgid "Télécharger" msgstr "Downloaden" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:289 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:291 msgid "Fichier indisponible" msgstr "Bestand niet beschikbaar" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:296 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:298 msgid "Aucun document associé." msgstr "Geen gekoppeld document." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:316 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:318 #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:74 msgid "Code / Nom" msgstr "Code / Naam" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:319 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:321 msgid "Prochain contrôle" msgstr "Volgende controle" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:326 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:328 msgid "Détail de l\\" msgstr "Detail van " -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:339 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:341 msgid "Aucun équipement technique enregistré." msgstr "Geen technische uitrusting geregistreerd." -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:352 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:354 msgid "Interventions & Maintenance" msgstr "Interventies & Onderhoud" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:354 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:356 msgid "Nouvelle intervention" msgstr "Nieuwe interventie" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:363 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:365 msgid "Titre / Objet" msgstr "Titel / Onderwerp" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:364 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:366 msgid "Date de début" msgstr "Startdatum" -#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:385 +#: streetup/assets/templates/assets/buildings/publicbuilding_detail.html:387 msgid "Aucune intervention enregistrée pour ce bâtiment." msgstr "Geen interventie geregistreerd voor dit gebouw." +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:4 +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:19 +msgid "Modifier le bâtiment" +msgstr "Gebouw bewerken" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:35 +msgid "Certains champs contiennent des erreurs." +msgstr "Sommige velden bevatten fouten." + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:35 +msgid "Veuillez vérifier les informations ci-dessous." +msgstr "Controleer de onderstaande informatie." + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:43 +#: streetup/assets/templates/assets/detail_generic.html:204 +msgid "Informations générales" +msgstr "Algemene informatie" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:48 +msgid "Code du bâtiment" +msgstr "Gebouwcode" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:79 +msgid "Propriété & Gestion" +msgstr "Eigendom & Beheer" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:105 +msgid "Usage & Caractéristiques physiques" +msgstr "Gebruik & Fysieke kenmerken" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:159 +msgid "Bâtiment recevant du public (ERP / PMR)" +msgstr "Publiek toegankelijk gebouw (ERP / PMR)" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:193 +msgid "Diagnostics & Énergie" +msgstr "Diagnoses & Energie" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:230 +msgid "Coordonnées géographiques (GPS WGS84)" +msgstr "Geografische coördinaten (GPS WGS84)" + +#: streetup/assets/templates/assets/buildings/publicbuilding_form.html:254 +msgid "Enregistrer les modifications" +msgstr "Wijzigingen opslaan" + #: streetup/assets/templates/assets/buildings/publicbuilding_list.html:11 msgid "Gestion des Bâtiments Publics" msgstr "Beheer van Openbare Gebouwen" @@ -2928,13 +3010,13 @@ msgstr "" msgid "Voir détails" msgstr "Details" -#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:131 +#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:132 #: streetup/assets/templates/assets/detail_generic.html:144 #: streetup/assets/templates/assets/detail_generic.html:188 msgid "Éditer" msgstr "Bewerken" -#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:140 +#: streetup/assets/templates/assets/buildings/publicbuilding_list.html:142 msgid "Aucun bâtiment public ne correspond à vos critères." msgstr "" @@ -3877,10 +3959,6 @@ msgstr "Asset" msgid "Sauvegarder" msgstr "Opslaan" -#: streetup/assets/templates/assets/detail_generic.html:204 -msgid "Informations générales" -msgstr "Algemene informatie" - #: streetup/assets/templates/assets/detail_generic.html:277 #: streetup/assets/templates/assets/unified_index.html:212 msgid "Statut de validation" @@ -4365,16 +4443,6 @@ msgstr "" msgid "Voir" msgstr "Bekijken" -#: streetup/assets/templates/assets/permissions/panel.html:69 -#: streetup/assets/templates/assets/permissions/panel.html:111 -#: streetup/assets/templates/assets/permissions/panel.html:211 -#: streetup/assets/templates/assets/permissions/type_page.html:71 -#: streetup/assets/templates/assets/permissions/type_page.html:157 -#: streetup/assets/templates/assets/permissions/type_page.html:238 -#: streetup/assets/templates/assets/permissions/type_page.html:360 -msgid "Modifier" -msgstr "Bewerken" - #: streetup/assets/templates/assets/permissions/panel.html:71 msgid "Champs" msgstr "Velden" @@ -5917,6 +5985,17 @@ msgstr "Gebruiker vereist." msgid "Utilisateur introuvable." msgstr "Gebruiker niet gevonden." +#: streetup/assets/views/buildings.py:253 +#, fuzzy +#| msgid "Vous n'avez pas la permission de modifier cet asset" +msgid "Vous n'avez pas la permission de modifier ce bâtiment." +msgstr "Je hebt geen toestemming om dit asset te bewerken" + +#: streetup/assets/views/buildings.py:259 +#, python-format +msgid "Le bâtiment '%s' a été mis à jour avec succès." +msgstr "" + #: streetup/assets/views/clean.py:259 msgid "Locations" msgstr "Locaties" @@ -6361,6 +6440,9 @@ msgstr "" msgid "Aucune localisation GIEP trouvée à proximité" msgstr "Geen locatie gevonden." +#~ msgid "Modifier dans l'admin" +#~ msgstr "Bewerken in admin" + #, fuzzy #~| msgid "Changer le modèle" #~ msgid "Charger le plan" diff --git a/streetup/assets/templates/assets/buildings/publicbuilding_detail.html b/streetup/assets/templates/assets/buildings/publicbuilding_detail.html index 2694e0a..7d62db1 100644 --- a/streetup/assets/templates/assets/buildings/publicbuilding_detail.html +++ b/streetup/assets/templates/assets/buildings/publicbuilding_detail.html @@ -19,10 +19,12 @@

-
- - {% translate "Modifier dans l'admin" %} - +
+ {% if can_edit %} + + {% translate "Modifier" %} + + {% endif %} {% translate "Retour à la liste" %} @@ -104,7 +106,7 @@ {% translate "Gestionnaire référent" %} : - {{ building.manager.get_full_name|default:building.manager.username|default:"-" }} + {% if building.manager %}{{ building.manager.get_full_name|default:building.manager.username }}{% else %}-{% endif %} {% translate "Service occupant" %} : diff --git a/streetup/assets/templates/assets/buildings/publicbuilding_form.html b/streetup/assets/templates/assets/buildings/publicbuilding_form.html new file mode 100644 index 0000000..9ceba1e --- /dev/null +++ b/streetup/assets/templates/assets/buildings/publicbuilding_form.html @@ -0,0 +1,259 @@ +{% extends "base.html" %} +{% load static i18n %} + +{% block title %}{% translate "Modifier le bâtiment" %} {{ building.code }} | StreetUp{% endblock %} + +{% block content %} +
+ +
+
+ +

+ {% translate "Modifier le bâtiment" %} {{ building.code }} +

+
+ +
+ +
+ {% csrf_token %} + + {% if form.errors %} + + {% endif %} + + +
+
+ {% translate "Informations générales" %} +
+
+
+
+ + {{ form.code }} + {% if form.code.errors %}
{{ form.code.errors.0 }}
{% endif %} +
+
+ + {{ form.name_fr }} + {% if form.name_fr.errors %}
{{ form.name_fr.errors.0 }}
{% endif %} +
+
+ + {{ form.name_nl }} + {% if form.name_nl.errors %}
{{ form.name_nl.errors.0 }}
{% endif %} +
+
+ + {{ form.address }} + {% if form.address.errors %}
{{ form.address.errors.0 }}
{% endif %} +
+
+ + {{ form.description }} + {% if form.description.errors %}
{{ form.description.errors.0 }}
{% endif %} +
+
+
+
+ + +
+
+ {% translate "Propriété & Gestion" %} +
+
+
+
+ + {{ form.owner }} + {% if form.owner.errors %}
{{ form.owner.errors.0 }}
{% endif %} +
+
+ + {{ form.manager }} + {% if form.manager.errors %}
{{ form.manager.errors.0 }}
{% endif %} +
+
+ + {{ form.occupant_entity }} + {% if form.occupant_entity.errors %}
{{ form.occupant_entity.errors.0 }}
{% endif %} +
+
+
+
+ + +
+
+ {% translate "Usage & Caractéristiques physiques" %} +
+
+
+
+ + {{ form.usage_type }} + {% if form.usage_type.errors %}
{{ form.usage_type.errors.0 }}
{% endif %} +
+
+ + {{ form.building_status }} + {% if form.building_status.errors %}
{{ form.building_status.errors.0 }}
{% endif %} +
+
+ + {{ form.construction_year }} + {% if form.construction_year.errors %}
{{ form.construction_year.errors.0 }}
{% endif %} +
+
+ + {{ form.floors_count }} + {% if form.floors_count.errors %}
{{ form.floors_count.errors.0 }}
{% endif %} +
+
+ + {{ form.basement_count }} + {% if form.basement_count.errors %}
{{ form.basement_count.errors.0 }}
{% endif %} +
+
+ + {{ form.total_surface_m2 }} + {% if form.total_surface_m2.errors %}
{{ form.total_surface_m2.errors.0 }}
{% endif %} +
+
+ + {{ form.usable_surface_m2 }} + {% if form.usable_surface_m2.errors %}
{{ form.usable_surface_m2.errors.0 }}
{% endif %} +
+
+
+
+ + +
+
+ {% translate "Accueil & Sécurité du Public (ERP / PMR)" %} +
+
+
+
+
+ {{ form.is_erp }} + +
+
+
+
+ {{ form.pmr_accessible }} + +
+
+
+ + {{ form.erp_category }} + {% if form.erp_category.errors %}
{{ form.erp_category.errors.0 }}
{% endif %} +
+
+ + {{ form.erp_type }} + {% if form.erp_type.errors %}
{{ form.erp_type.errors.0 }}
{% endif %} +
+
+ + {{ form.max_capacity }} + {% if form.max_capacity.errors %}
{{ form.max_capacity.errors.0 }}
{% endif %} +
+
+
+
+ + +
+
+ {% translate "Diagnostics & Énergie" %} +
+
+
+
+ + {{ form.dpe_rating }} + {% if form.dpe_rating.errors %}
{{ form.dpe_rating.errors.0 }}
{% endif %} +
+
+ + {{ form.ges_rating }} + {% if form.ges_rating.errors %}
{{ form.ges_rating.errors.0 }}
{% endif %} +
+
+
+ {{ form.has_asbestos_diag }} + +
+
+
+
+ {{ form.has_lead_diag }} + +
+
+
+
+
+ + +
+
+ {% translate "Coordonnées géographiques (GPS WGS84)" %} +
+
+
+
+ + {{ form.lat }} + {% if form.lat.errors %}
{{ form.lat.errors.0 }}
{% endif %} +
+
+ + {{ form.lon }} + {% if form.lon.errors %}
{{ form.lon.errors.0 }}
{% endif %} +
+
+
+
+ + +
+ + {% translate "Annuler" %} + + +
+
+
+{% endblock %} diff --git a/streetup/assets/templates/assets/buildings/publicbuilding_list.html b/streetup/assets/templates/assets/buildings/publicbuilding_list.html index 77c661d..78993ec 100644 --- a/streetup/assets/templates/assets/buildings/publicbuilding_list.html +++ b/streetup/assets/templates/assets/buildings/publicbuilding_list.html @@ -128,9 +128,11 @@ - - - + {% if b.can_edit %} + + + + {% endif %} {% empty %} diff --git a/streetup/assets/tests.py b/streetup/assets/tests.py index bd6579b..cb3b631 100644 --- a/streetup/assets/tests.py +++ b/streetup/assets/tests.py @@ -2434,6 +2434,74 @@ class PublicBuildingTestCase(TestCase): self.assertEqual(eq.equipment_type, "hvac") +class PublicBuildingEditViewTest(TestCase): + def setUp(self): + self.thematic = Thematic.objects.create( + code="publicbuildings", + name_fr="Bâtiments Publics", + name_nl="Openbare Gebouwen" + ) + self.building = PublicBuilding.objects.create( + code="BAT-999", + name_fr="Bâtiment de Test", + owner="Commune Test" + ) + + # User without edit permissions + self.viewer_user = User.objects.create_user(username="viewer", password="password123") + self.viewer_config = UserConfig.objects.create(user=self.viewer_user) + UserThematics.objects.create( + user_config=self.viewer_config, + thematic=self.thematic, + can_view_assets=True, + can_edit_assets=False + ) + + # User with edit permissions + self.editor_user = User.objects.create_user(username="editor", password="password123") + self.editor_config = UserConfig.objects.create(user=self.editor_user) + UserThematics.objects.create( + user_config=self.editor_config, + thematic=self.thematic, + can_view_assets=True, + can_edit_assets=True + ) + + def test_publicbuilding_edit_permission_denied_for_viewer(self): + self.client.login(username="viewer", password="password123") + url = reverse('assets:publicbuilding_edit', kwargs={'pk': self.building.pk}) + response = self.client.get(url) + self.assertEqual(response.status_code, 403) + + def test_publicbuilding_edit_allowed_for_editor(self): + self.client.login(username="editor", password="password123") + url = reverse('assets:publicbuilding_edit', kwargs={'pk': self.building.pk}) + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertContains(response, "BAT-999") + + def test_publicbuilding_edit_post_updates_building(self): + self.client.login(username="editor", password="password123") + url = reverse('assets:publicbuilding_edit', kwargs={'pk': self.building.pk}) + post_data = { + 'code': 'BAT-999', + 'name_fr': 'Bâtiment Modifié', + 'name_nl': 'Gewijzigd Gebouw', + 'address': 'Rue du Test 123', + 'owner': 'Nouveau Propriétaire', + 'usage_type': 'administrative', + 'building_status': 'in_service', + 'is_erp': True, + } + response = self.client.post(url, post_data) + self.assertRedirects(response, reverse('assets:publicbuilding_detail', kwargs={'pk': self.building.pk})) + + self.building.refresh_from_db() + self.assertEqual(self.building.name_fr, 'Bâtiment Modifié') + self.assertEqual(self.building.address, 'Rue du Test 123') + self.assertEqual(self.building.owner, 'Nouveau Propriétaire') + + diff --git a/streetup/assets/urls.py b/streetup/assets/urls.py index 935eb99..cd3a2d5 100644 --- a/streetup/assets/urls.py +++ b/streetup/assets/urls.py @@ -7,6 +7,7 @@ urlpatterns = [ path("", core.unified_assets_index, name="index"), path("buildings/", buildings.buildings_index, name="buildings_index"), path("buildings//", buildings.building_detail, name="publicbuilding_detail"), + path("buildings//edit/", buildings.publicbuilding_edit, name="publicbuilding_edit"), path("buildings///", buildings.publicbuildings_assets_detail, name="publicbuildings_assets_detail"), path("export/", export.export_assets, name="export_assets"), diff --git a/streetup/assets/views/buildings.py b/streetup/assets/views/buildings.py index 947993c..67eb655 100644 --- a/streetup/assets/views/buildings.py +++ b/streetup/assets/views/buildings.py @@ -1,14 +1,17 @@ import json from django.shortcuts import render, get_object_or_404, redirect +from django.contrib import messages from django.contrib.auth.decorators import login_required from django.db.models import Q, F -from django.http import JsonResponse +from django.http import JsonResponse, HttpResponseForbidden from django.urls import reverse from django.utils.translation import gettext as _, get_language from django.contrib.gis.geos import GEOSGeometry from common.models import UserThematics -from common.utils import check_thematic_access +from common.utils import check_thematic_access, get_regional_terms +from assets.permissions import can_edit_asset +from assets.forms import PublicBuildingForm from assets.models.buildings import ( PublicBuilding, BuildingLevel, BuildingRoom, BuildingEquipment, PublicBuildingDocument, USAGE_TYPE_CHOICES, BUILDING_STATUS_CHOICES, DPE_RATING_CHOICES, ERP_CATEGORY_CHOICES @@ -165,8 +168,13 @@ def buildings_index(request): if dpe_filter: buildings = buildings.filter(dpe_rating=dpe_filter) + building_list = [] + for b in buildings: + b.can_edit = can_edit_asset(request.user, b) + building_list.append(b) + context = { - 'buildings': buildings, + 'buildings': building_list, 'search_query': search_query, 'usage_type_choices': USAGE_TYPE_CHOICES, 'building_status_choices': BUILDING_STATUS_CHOICES, @@ -190,6 +198,9 @@ def building_detail(request, pk): from interventions.permissions import filter_viewable_interventions_for_user building = get_object_or_404(PublicBuilding, pk=pk) + can_edit = can_edit_asset(request.user, building) + regional_terms = get_regional_terms(getattr(building, '_regional_standard', 'BE')) + levels = building.levels.all().prefetch_related('rooms') rooms = building.rooms.all() equipments = building.equipments.all() @@ -216,6 +227,8 @@ def building_detail(request, pk): context = { 'building': building, + 'can_edit': can_edit, + 'regional_terms': regional_terms, 'levels': levels, 'rooms': rooms, 'equipments': equipments, @@ -229,6 +242,35 @@ def building_detail(request, pk): return render(request, 'assets/buildings/publicbuilding_detail.html', context) +@login_required +def publicbuilding_edit(request, pk): + """ + Vue d'édition d'un Bâtiment Public réservée aux utilisateurs autorisés. + """ + building = get_object_or_404(PublicBuilding, pk=pk) + + if not can_edit_asset(request.user, building): + return HttpResponseForbidden(_("Vous n'avez pas la permission de modifier ce bâtiment.")) + + if request.method == 'POST': + form = PublicBuildingForm(request.POST, instance=building) + if form.is_valid(): + saved_building = form.save() + messages.success(request, _("Le bâtiment '%s' a été mis à jour avec succès.") % saved_building.code) + return redirect('assets:publicbuilding_detail', pk=saved_building.pk) + else: + form = PublicBuildingForm(instance=building) + + regional_terms = get_regional_terms(getattr(building, '_regional_standard', 'BE')) + + context = { + 'building': building, + 'form': form, + 'regional_terms': regional_terms, + } + return render(request, 'assets/buildings/publicbuilding_form.html', context) + + @login_required def publicbuildings_assets_detail(request, asset_model, asset_id): """