diff --git a/src/hapi_schema/db_humanitarian_needs.py b/src/hapi_schema/db_humanitarian_needs.py index afd2ed8..0e056af 100644 --- a/src/hapi_schema/db_humanitarian_needs.py +++ b/src/hapi_schema/db_humanitarian_needs.py @@ -33,6 +33,13 @@ class DBHumanitarianNeeds(Base): admin2_ref: Mapped[int] = mapped_column( ForeignKey("admin2.id", onupdate="CASCADE"), nullable=False ) + population_status_code: Mapped[str] = mapped_column( + ForeignKey("population_status.code", onupdate="CASCADE"), + nullable=True, + ) + population_group_code: Mapped[str] = mapped_column( + ForeignKey("population_group.code", onupdate="CASCADE"), nullable=True + ) sector_code: Mapped[str] = mapped_column( ForeignKey("sector.code", onupdate="CASCADE"), nullable=True ) @@ -45,13 +52,6 @@ class DBHumanitarianNeeds(Base): disabled_marker: Mapped[bool] = mapped_column( Boolean, nullable=True, server_default=text("NULL") ) - population_group_code: Mapped[str] = mapped_column( - ForeignKey("population_group.code", onupdate="CASCADE"), nullable=True - ) - population_status_code: Mapped[str] = mapped_column( - ForeignKey("population_status.code", onupdate="CASCADE"), - nullable=True, - ) population: Mapped[int] = mapped_column( Integer, nullable=False, index=True ) diff --git a/src/hapi_schema/db_operational_presence.py b/src/hapi_schema/db_operational_presence.py index 63a1f05..b0dc17d 100644 --- a/src/hapi_schema/db_operational_presence.py +++ b/src/hapi_schema/db_operational_presence.py @@ -34,12 +34,12 @@ class DBOperationalPresence(Base): admin2_ref: Mapped[int] = mapped_column( ForeignKey("admin2.id", onupdate="CASCADE"), nullable=False ) - sector_code: Mapped[str] = mapped_column( - ForeignKey("sector.code", onupdate="CASCADE"), nullable=False - ) org_ref: Mapped[str] = mapped_column( ForeignKey("org.id", onupdate="CASCADE"), nullable=False ) + sector_code: Mapped[str] = mapped_column( + ForeignKey("sector.code", onupdate="CASCADE"), nullable=False + ) reference_period_start: Mapped[datetime] = mapped_column( DateTime, nullable=False, index=True ) @@ -50,8 +50,8 @@ class DBOperationalPresence(Base): resource = relationship("DBResource") admin2 = relationship("DBAdmin2") - sector = relationship("DBSector") org = relationship("DBOrg") + sector = relationship("DBSector") view_params_operational_presence = ViewParams( @@ -75,11 +75,11 @@ class DBOperationalPresence(Base): DBAdmin2.code.label("admin2_code"), DBAdmin2.name.label("admin2_name"), DBAdmin2.is_unspecified.label("admin2_is_unspecified"), - DBSector.name.label("sector_name"), DBOrg.acronym.label("org_acronym"), DBOrg.name.label("org_name"), DBOrg.org_type_code.label("org_type_code"), - DBOrgType.description.label("org_type_description") + DBOrgType.description.label("org_type_description"), + DBSector.name.label("sector_name") ).select_from( # Join op to admin2 to admin1 to loc DBOperationalPresence.__table__.join( @@ -108,12 +108,6 @@ class DBOperationalPresence(Base): DBResource.dataset_ref == DBDataset.id, isouter=True, ) - # Join op to sector - .join( - DBSector.__table__, - DBOperationalPresence.sector_code == DBSector.code, - isouter=True, - ) # Join op to org to org type .join( DBOrg.__table__, @@ -125,5 +119,11 @@ class DBOperationalPresence(Base): DBOrg.org_type_code == DBOrgType.code, isouter=True, ) + # Join op to sector + .join( + DBSector.__table__, + DBOperationalPresence.sector_code == DBSector.code, + isouter=True, + ) ), ) diff --git a/tests/conftest.py b/tests/conftest.py index 78811dc..3a20cc4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -57,15 +57,15 @@ def engine(): session.execute(insert(DBLocation), data_location) session.execute(insert(DBAdmin1), data_admin1) session.execute(insert(DBAdmin2), data_admin2) - session.execute(insert(DBSector), data_sector) - session.execute(insert(DBGender), data_gender) - session.execute(insert(DBAgeRange), data_age_range) + session.execute(insert(DBPopulationStatus), data_population_status) + session.execute(insert(DBPopulationGroup), data_population_group) session.execute(insert(DBOrg), data_org) session.execute(insert(DBOrgType), data_org_type) - session.execute(insert(DBPopulationGroup), data_population_group) - session.execute(insert(DBPopulationStatus), data_population_status) + session.execute(insert(DBSector), data_sector) session.execute(insert(DBIpcPhase), data_ipc_phase) session.execute(insert(DBIpcType), data_ipc_type) + session.execute(insert(DBGender), data_gender) + session.execute(insert(DBAgeRange), data_age_range) session.execute(insert(DBPopulation), data_population) session.execute(insert(DBOperationalPresence), data_operational_presence) session.execute(insert(DBFoodSecurity), data_food_security) diff --git a/tests/test_humanitarian_needs_view.py b/tests/test_humanitarian_needs_view.py index d24136c..d944e26 100644 --- a/tests/test_humanitarian_needs_view.py +++ b/tests/test_humanitarian_needs_view.py @@ -19,11 +19,11 @@ def test_humanitarian_needs_view(run_view_test): view_humanitarian_needs.c.admin2_code == "FOO-001-XXX", view_humanitarian_needs.c.admin1_code == "FOO-001", view_humanitarian_needs.c.location_code == "FOO", - view_humanitarian_needs.c.gender_code == "f", - view_humanitarian_needs.c.disabled_marker == True, # noqa: E712 + view_humanitarian_needs.c.population_status_code == "inneed", + view_humanitarian_needs.c.population_group_code == "idps", view_humanitarian_needs.c.sector_name == "Water Sanitation Hygiene", - view_humanitarian_needs.c.population_group_code == "idps", - view_humanitarian_needs.c.population_status_code == "inneed", + view_humanitarian_needs.c.gender_code == "f", + view_humanitarian_needs.c.disabled_marker == True, # noqa: E712 ), )