From 93f37d874e64b98e50aed231acc22f6fa9cb67a2 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 15 Jul 2026 22:35:48 +0200 Subject: [PATCH] Separate flood hazards from surface water theme --- backend/tests/test_sprint208_vmm_flood_hazard.py | 2 ++ frontend/src/components/map/MapWorkspace.tsx | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/backend/tests/test_sprint208_vmm_flood_hazard.py b/backend/tests/test_sprint208_vmm_flood_hazard.py index 7473c402..d8543475 100644 --- a/backend/tests/test_sprint208_vmm_flood_hazard.py +++ b/backend/tests/test_sprint208_vmm_flood_hazard.py @@ -366,3 +366,5 @@ def test_flood_hazard_runtime_contract_is_packaged() -> None: assert "COPY scripts/provision_mol_flood_hazards.py" in dockerfile assert "Overstromingsscenario" in frontend assert "floodHazardImageUrl" in frontend + assert "dataset.source_name === 'vmm_flood_hazard'" in frontend + assert "return theme.id === 'flood_hazard'" in frontend diff --git a/frontend/src/components/map/MapWorkspace.tsx b/frontend/src/components/map/MapWorkspace.tsx index f2a5a61b..93440b56 100644 --- a/frontend/src/components/map/MapWorkspace.tsx +++ b/frontend/src/components/map/MapWorkspace.tsx @@ -147,6 +147,15 @@ function datasetSearchText(dataset: DatasetCreateResponse): string { } function datasetMatchesTheme(dataset: DatasetCreateResponse, theme: DataTheme): boolean { + // Governed raster products have one unambiguous semantic theme. Matching + // them by generic substrings (for example "water" in "waterdiepte") would + // make a flood scenario replace the permanent surface-water layer. + if (dataset.source_name === 'vmm_flood_hazard') { + return theme.id === 'flood_hazard' + } + if (dataset.source_name === 'digitaal_vlaanderen_dhmv') { + return theme.id === 'elevation' + } const searchText = datasetSearchText(dataset) return theme.tokens.some((token) => searchText.includes(token)) }