Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion spp_mis_demo_v2/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"name": "OpenSPP MIS Demo V2",
"summary": "Demo Generator V2 for SP-MIS programs with fixed stories and volume generation",
"category": "OpenSPP",
"version": "19.0.2.0.1",
"version": "19.0.2.0.2",
"sequence": 1,
"author": "OpenSPP.org",
"website": "https://github.com/OpenSPP/OpenSPP2",
Expand All @@ -20,6 +20,8 @@
"spp_demo",
# GIS Reports for geographic visualization
"spp_gis_report",
# Demographic dimensions referenced by demo GIS report disaggregation
"spp_metric_service",
# Registrant GPS coordinates for QGIS plugin demo
"spp_registrant_gis",
# Indicators and analytics for demo indicators
Expand Down
21 changes: 17 additions & 4 deletions spp_mis_demo_v2/data/demo_gis_reports.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,12 @@
<field name="color_scheme_id" ref="spp_gis.scheme_viridis" />
<field name="threshold_mode">auto_quartile</field>
<field name="bucket_count">5</field>
<field name="disaggregate_by_gender">True</field>
<field
name="dimension_ids"
eval="[Command.set([ref('spp_metric_service.dimension_gender')])]"
/>
<!-- Report filters on groups; expand to members so gender is read off individuals. -->
<field name="member_expansion">expand</field>
<field name="refresh_mode">scheduled</field>
<field name="refresh_interval">daily</field>
</record>
Expand Down Expand Up @@ -60,7 +65,12 @@
<field name="color_scheme_id" ref="spp_gis.scheme_blues" />
<field name="threshold_mode">auto_jenks</field>
<field name="bucket_count">5</field>
<field name="disaggregate_by_gender">True</field>
<field
name="dimension_ids"
eval="[Command.set([ref('spp_metric_service.dimension_gender')])]"
/>
<!-- Report filters on groups; expand to members so gender is read off individuals. -->
<field name="member_expansion">expand</field>
<field name="refresh_mode">scheduled</field>
<field name="refresh_interval">daily</field>
</record>
Expand Down Expand Up @@ -89,8 +99,11 @@
<field name="color_scheme_id" ref="spp_gis.scheme_viridis" />
<field name="threshold_mode">auto_quartile</field>
<field name="bucket_count">4</field>
<field name="disaggregate_by_age">True</field>
<field name="disaggregate_by_gender">True</field>
<!-- Report already filters on individuals, so no member expansion is needed. -->
<field
name="dimension_ids"
eval="[Command.set([ref('spp_metric_service.dimension_age_group'), ref('spp_metric_service.dimension_gender')])]"
/>
<field name="refresh_mode">scheduled</field>
<field name="refresh_interval">weekly</field>
</record>
Expand Down
35 changes: 21 additions & 14 deletions spp_mis_demo_v2/models/mis_demo_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -3872,72 +3872,79 @@ def _load_geographic_data(self, stats):
# Keys: story_id -> {locale: area_xmlid}
STORY_AREA_MAP = {
"juan_dela_cruz": {
"fil_PH": "spp_demo.area_phl_calamba",
"fil_PH": "spp_demo.area_phl_ph0403405", # City of Calamba, Laguna
"fr_TG": "spp_demo.area_tgo_lome_tokoin",
"si_LK": "spp_demo.area_lka_moratuwa",
},
"maria_santos": {
"fil_PH": "spp_demo.area_phl_santa_rosa",
"fil_PH": "spp_demo.area_phl_ph0403428", # City of Santa Rosa, Laguna
"fr_TG": "spp_demo.area_tgo_aflao",
"si_LK": "spp_demo.area_lka_kolonnawa",
},
"jose_reyes_multigenerational": {
"fil_PH": "spp_demo.area_phl_san_pablo",
"fil_PH": "spp_demo.area_phl_ph0403424", # San Pablo City, Laguna
"fr_TG": "spp_demo.area_tgo_kpalime",
"si_LK": "spp_demo.area_lka_kandy_ds",
},
"ibrahim_hassan": {
"fil_PH": "spp_demo.area_phl_antipolo",
"fil_PH": "spp_demo.area_phl_ph0405802", # City of Antipolo, Rizal
"fr_TG": "spp_demo.area_tgo_sokode",
"si_LK": "spp_demo.area_lka_galle_ds",
},
"david_sofia_martinez": {
"fil_PH": "spp_demo.area_phl_makati",
"fil_PH": "spp_demo.area_phl_ph1307602", # City of Makati, NCR
"fr_TG": "spp_demo.area_tgo_lome",
"si_LK": "spp_demo.area_lka_dehiwala",
},
"rosa_garcia": {
"fil_PH": "spp_demo.area_phl_quezon_city",
"fil_PH": "spp_demo.area_phl_ph1307404", # Quezon City, NCR
"fr_TG": "spp_demo.area_tgo_lome_be",
"si_LK": "spp_demo.area_lka_colombo_fort",
},
"mary_johnson": {
"fil_PH": "spp_demo.area_phl_pasig",
"fil_PH": "spp_demo.area_phl_ph1307403", # City of Pasig, NCR
"fr_TG": "spp_demo.area_tgo_lome_nyekonakpoe",
"si_LK": "spp_demo.area_lka_colombo_pettah",
},
"ahmed_said": {
"fil_PH": "spp_demo.area_phl_taguig",
"fil_PH": "spp_demo.area_phl_ph1307607", # Taguig City, NCR
"fr_TG": "spp_demo.area_tgo_lome_adidogome",
"si_LK": "spp_demo.area_lka_dehiwala_gn",
},
"nguyen_extended_family": {
"fil_PH": "spp_demo.area_phl_bacoor",
# Bacoor is not in the curated PSGC dataset; Imus is the nearest available city in Cavite.
"fil_PH": "spp_demo.area_phl_ph0402109", # Imus City, Cavite
"fr_TG": "spp_demo.area_tgo_baguida_centre",
"si_LK": "spp_demo.area_lka_hikkaduwa",
},
"amina_osman_household": {
"fil_PH": "spp_demo.area_phl_manila",
"fil_PH": "spp_demo.area_phl_ph1303901", # City of Manila, NCR
"fr_TG": "spp_demo.area_tgo_kpalime_centre",
"si_LK": "spp_demo.area_lka_mount_lavinia_gn",
},
"carlos_elena_morales": {
"fil_PH": "spp_demo.area_phl_dasmarinas",
"fil_PH": "spp_demo.area_phl_ph0402106", # City of Dasmariñas, Cavite
"fr_TG": "spp_demo.area_tgo_kpalime_tove",
"si_LK": "spp_demo.area_lka_galle_fort",
},
"chen_large_family": {
"fil_PH": "spp_demo.area_phl_qc_commonwealth",
# Commonwealth barangay (Quezon City) is not in the municipality-level dataset;
# assigned a distinct NCR city to keep areas spread across the demo map.
"fil_PH": "spp_demo.area_phl_ph1307501", # Caloocan City, NCR
"fr_TG": "spp_demo.area_tgo_zio",
"si_LK": "spp_demo.area_lka_gampaha",
},
"grace_okonkwo": {
"fil_PH": "spp_demo.area_phl_makati_poblacion",
# Poblacion barangay (Makati) is not in the municipality-level dataset;
# assigned a distinct NCR city to keep areas spread across the demo map.
"fil_PH": "spp_demo.area_phl_ph1307603", # City of Muntinlupa, NCR
"fr_TG": "spp_demo.area_tgo_ogou",
"si_LK": "spp_demo.area_lka_kalutara",
},
"luis_fernandez": {
"fil_PH": "spp_demo.area_phl_calamba_real",
# Real barangay (Calamba) is not in the municipality-level dataset;
# assigned a distinct Laguna city to keep areas spread across the demo map.
"fil_PH": "spp_demo.area_phl_ph0403403", # City of Biñan, Laguna
"fr_TG": "spp_demo.area_tgo_lacs",
"si_LK": "spp_demo.area_lka_matara",
},
Expand Down
13 changes: 13 additions & 0 deletions spp_mis_demo_v2/readme/HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
### 19.0.2.0.2

- Update demo GIS reports to the new disaggregation model: replace the removed
`disaggregate_by_gender`/`disaggregate_by_age` boolean flags with
`dimension_ids` referencing the `gender` and `age_group` demographic
dimensions, and set `member_expansion` on group-filtered reports
- Remap the Philippine story areas in `STORY_AREA_MAP` to the curated PSGC
p-code area external IDs; stories referencing barangays or a city absent from
the curated dataset are assigned distinct municipalities to keep areas spread
across the demo map
- Add an explicit dependency on `spp_metric_service` for the demographic
dimension records referenced by the demo GIS reports

### 19.0.2.0.0

- Initial migration to OpenSPP2
Loading