diff --git a/backend/tests/test_sprint237_flanders_thematic_on_demand.py b/backend/tests/test_sprint237_flanders_thematic_on_demand.py index 65dae822..bb038bbe 100644 --- a/backend/tests/test_sprint237_flanders_thematic_on_demand.py +++ b/backend/tests/test_sprint237_flanders_thematic_on_demand.py @@ -29,12 +29,13 @@ def test_flanders_workspace_exposes_governed_thematic_products_on_demand() -> No assert "/datasets/thematic-raster/acquire" in api -def test_selection_runs_all_available_themes_and_refreshes_persisted_datasets() -> None: +def test_selection_reads_persisted_themes_but_acquires_only_the_active_theme() -> None: workspace = read("frontend/src/components/map/MapWorkspace.tsx") app = read("frontend/src/App.tsx") selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts") assert "for (const theme of DATA_THEMES)" in workspace + assert ".filter((product) => product.theme === activeThemeId)" in workspace assert "await loadThemeInsights(bbox, availableThemes, areaId)" in workspace assert "!regionalPartitionedThemeActive && !onDemandThemeActive" in workspace assert "onRefreshProjectData" in workspace diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index 469e783c..a99cb48b 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -24,6 +24,11 @@ - The complete repository gate passed 1,052 backend tests, 22 frontend tests, frontend typecheck/build, one Alembic head and all readiness checks before live deployment. +- Live browser acceptance exposed an existing orchestration problem: one + selected theme also launched every unrelated not-yet-materialized regional + product. The selection flow still summarizes every persisted theme, but now + acquires only the actively selected on-demand theme so one slow provider + cannot block the requested result. - Added explicit administrative and maritime themes for persisted NGI/RBINS reference data and made readiness depend on analyzable themes rather than a raw Dataset count. diff --git a/docs/TODO.md b/docs/TODO.md index 242f9beb..73b69923 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -61,7 +61,9 @@ geen open productroadmap meer. selecteerbaar werkgebied; een technische project- of regioselectie is niet vereist. - [x] Kies een begrijpbaar datathema, teken een rechthoek of gebruik het - volledige werkgebied en analyseer alle 15 beschikbare thema's uit PostGIS. + volledige werkgebied en analyseer alle reeds beschikbare thema's uit + PostGIS; alleen het actief gekozen thema mag een nieuwe begrensde + on-demandbron ophalen. - [x] Gebruik voor getekende en handmatig ingevoerde rechthoeken overal `bbox ∩ Area`; een bbox rond het volledige werkgebied resolveert naar de exacte persistente Area-geometrie en activeert pas dan de full-Area fast path. diff --git a/frontend/src/components/map/MapWorkspace.tsx b/frontend/src/components/map/MapWorkspace.tsx index c9f0a241..4a7c9247 100644 --- a/frontend/src/components/map/MapWorkspace.tsx +++ b/frontend/src/components/map/MapWorkspace.tsx @@ -1702,7 +1702,7 @@ export function MapWorkspace({ resolvedZones = resolvedCoverage.intersected_zones } const resolvedProducts = analysisMode === 'current' - ? onDemandProductsForZones(resolvedZones) + ? onDemandProductsForZones(resolvedZones).filter((product) => product.theme === activeThemeId) : [] const availableThemes: Array> = [] for (const theme of DATA_THEMES) {