From 4979f81820184994e851f8e6ce7bf88ad3329805 Mon Sep 17 00:00:00 2001 From: Damiano Lombardi Date: Mon, 1 Apr 2024 22:23:30 +0200 Subject: [PATCH 1/2] Remove unexisting get_pk function/ add missing common functions Fix #188 --- plugin/.docker/run-docker-tests.sh | 2 +- ...nterlis_exporter_to_intermediate_schema.py | 243 +++++++++++------- ...nterlis_importer_to_intermediate_schema.py | 143 ++++++----- .../interlis_model_mapping/model_tww_od.py | 2 +- .../teksi_wastewater/tests/test_interlis.py | 4 +- 5 files changed, 226 insertions(+), 168 deletions(-) diff --git a/plugin/.docker/run-docker-tests.sh b/plugin/.docker/run-docker-tests.sh index d715a3f3b..e34af3b75 100755 --- a/plugin/.docker/run-docker-tests.sh +++ b/plugin/.docker/run-docker-tests.sh @@ -20,5 +20,5 @@ set -e pushd /usr/src/plugin DEFAULT_PARAMS='-v' -xvfb-run pytest-3 ${@:-`echo $DEFAULT_PARAMS`} $1 +xvfb-run pytest-3 ${@:-`echo $DEFAULT_PARAMS`} popd diff --git a/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py b/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py index e1e76843c..29bd3fc10 100644 --- a/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py +++ b/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py @@ -765,7 +765,7 @@ def _export_reach_progression_alternative(self): # --- haltung_alternativverlauf --- plantyp=self.get_vl(row.plantype__REL), verlauf=row.progression_geometry, - haltungref=self.get_pk(row.fk_reach__REL), + haltungref=self.get_tid(row.fk_reach__REL), ) self.abwasser_session.add(haltung_alternativverlauf) print(".", end="") @@ -1147,9 +1147,9 @@ def _export_throttle_shut_off_unit(self): subventionen=row.subsidies, drosselorgan_oeffnung_ist=row.throttle_unit_opening_current, drosselorgan_oeffnung_ist_optimiert=row.throttle_unit_opening_current_optimized, - abwasserknotenref=self.get_pk(row.fk_wastewater_node__REL), - steuerungszentraleref=self.get_pk(row.fk_control_center__REL), - ueberlaufref=self.get_pk(row.fk_overflow__REL), + abwasserknotenref=self.get_tid(row.fk_wastewater_node__REL), + steuerungszentraleref=self.get_tid(row.fk_control_center__REL), + ueberlaufref=self.get_tid(row.fk_overflow__REL), ) self.abwasser_session.add(absperr_drosselorgan) print(".", end="") @@ -1164,15 +1164,14 @@ def _export_tank_emptying(self): ) for row in query: beckenentleerung = self.model_classes_interlis.beckenentleerung( - **self.vsa_base_common(row, "beckenentleerung"), - **self.structure_part_common(row), + **self.structure_part_common(row, "beckenentleerung"), # --- tank_emptying --- leistung=row.flow, bruttokosten=row.gross_costs, art=self.get_vl(row.type__REL), ersatzjahr=row.year_of_replacement, - absperr_drosselorganref=self.get_pk(row.fk_throttle_shut_off_unit__REL), - ueberlaufref=self.get_pk(row.fk_overflow__REL), + absperr_drosselorganref=self.get_tid(row.fk_throttle_shut_off_unit__REL), + ueberlaufref=self.get_tid(row.fk_overflow__REL), ) self.abwasser_session.add(beckenentleerung) print(".", end="") @@ -1187,8 +1186,7 @@ def _export_tank_cleaning(self): ) for row in query: beckenreinigung = self.model_classes_interlis.beckenreinigung( - **self.vsa_base_common(row, "beckenreinigung"), - **self.structure_part_common(row), + **self.structure_part_common(row, "beckenreinigung"), # --- tank_cleaning --- bruttokosten=row.gross_costs, art=self.get_vl(row.type__REL), @@ -1207,8 +1205,7 @@ def _export_bio_ecol_assessment(self): ) for row in query: biol_oekol_gesamtbeurteilung = self.model_classes_interlis.biol_oekol_gesamtbeurteilung( - **self.vsa_base_common(row, "biol_oekol_gesamtbeurteilung"), - **self.maintenance_event_common(row), + **self.maintenance_event_common(row, "biol_oekol_gesamtbeurteilung"), # --- bio_ecol_assessment --- vergleich_letzte_untersuchung=self.get_vl(row.comparison_last__REL), datum_letzte_untersuchung=row.date_last_examen, @@ -1239,8 +1236,7 @@ def _export_fountain(self): query = query.filter(self.model_classes_tww_od.fountain.obj_id.in_(self.subset_ids)) for row in query: brunnen = self.model_classes_interlis.brunnen( - **self.vsa_base_common(row, "brunnen"), - **self.connection_object_common(row), + **self.connection_object_common(row, "brunnen"), # --- fountain --- standortname=row.location_name, lage=row.situation_geometry, @@ -1258,8 +1254,7 @@ def _export_param_ca_general(self): ) for row in query: ezg_parameter_allg = self.model_classes_interlis.ezg_parameter_allg( - **self.vsa_base_common(row, "ezg_parameter_allg"), - **self.surface_runoff_parameters_common(row), + **self.surface_runoff_parameters_common(row, "ezg_parameter_allg"), # --- param_ca_general --- trockenwetteranfall=row.dry_wheather_flow, fliessweglaenge=row.flow_path_length, @@ -1280,8 +1275,7 @@ def _export_param_ca_mouse1(self): ) for row in query: ezg_parameter_mouse1 = self.model_classes_interlis.ezg_parameter_mouse1( - **self.vsa_base_common(row, "ezg_parameter_mouse1"), - **self.surface_runoff_parameters_common(row), + **self.surface_runoff_parameters_common(row, "ezg_parameter_mouse1"), # --- param_ca_mouse1 --- trockenwetteranfall=row.dry_wheather_flow, fliessweglaenge=row.flow_path_length, @@ -1303,8 +1297,7 @@ def _export_individual_surface(self): ) for row in query: einzelflaeche = self.model_classes_interlis.einzelflaeche( - **self.vsa_base_common(row, "einzelflaeche"), - **self.connection_object_common(row), + **self.connection_object_common(row, "einzelflaeche"), # --- individual_surface --- funktion=self.get_vl(row.function__REL), neigung=row.inclination, @@ -1356,22 +1349,22 @@ def _export_catchment_area(self): flaeche=row.surface_area, schmutzabwasseranfall_ist=row.waste_water_production_current, schmutzabwasseranfall_geplant=row.waste_water_production_planned, - abwassernetzelement_rw_istref=self.get_pk( + abwassernetzelement_rw_istref=self.get_tid( row.fk_wastewater_networkelement_rw_current__REL ), - abwassernetzelement_rw_geplantref=self.get_pk( + abwassernetzelement_rw_geplantref=self.get_tid( row.fk_wastewater_networkelement_rw_planned__REL ), - abwassernetzelement_sw_geplantref=self.get_pk( + abwassernetzelement_sw_geplantref=self.get_tid( row.fk_wastewater_networkelement_ww_planned__REL ), - abwassernetzelement_sw_istref=self.get_pk( + abwassernetzelement_sw_istref=self.get_tid( row.fk_wastewater_networkelement_ww_current__REL ), - sbw_rw_geplantref=self.get_pk(row.fk_special_building_rw_planned__REL), - sbw_rw_istref=self.get_pk(row.fk_special_building_rw_current__REL), - sbw_sw_geplantref=self.get_pk(row.fk_special_building_ww_planned__REL), - sbw_sw_istref=self.get_pk(row.fk_special_building_ww_current__REL), + sbw_rw_geplantref=self.get_tid(row.fk_special_building_rw_planned__REL), + sbw_rw_istref=self.get_tid(row.fk_special_building_rw_current__REL), + sbw_sw_geplantref=self.get_tid(row.fk_special_building_ww_planned__REL), + sbw_sw_istref=self.get_tid(row.fk_special_building_ww_current__REL), ) self.abwasser_session.add(einzugsgebiet) print(".", end="") @@ -1386,8 +1379,7 @@ def _export_electric_equipment(self): ) for row in query: elektrischeeinrichtung = self.model_classes_interlis.elektrischeeinrichtung( - **self.vsa_base_common(row, "elektrischeeinrichtung"), - **self.structure_part_common(row), + **self.structure_part_common(row, "elektrischeeinrichtung"), # --- electric_equipment --- bruttokosten=row.gross_costs, art=self.get_vl(row.kind__REL), @@ -1406,8 +1398,7 @@ def _export_electromechanical_equipment(self): ) for row in query: elektromechanischeausruestung = self.model_classes_interlis.elektromechanischeausruestung( - **self.vsa_base_common(row, "elektromechanischeausruestung"), - **self.structure_part_common(row), + **self.structure_part_common(row, "elektromechanischeausruestung"), # --- electromechanical_equipment --- bruttokosten=row.gross_costs, art=self.get_vl(row.kind__REL), @@ -1431,9 +1422,9 @@ def _export_disposal(self): entsorgungsort_ist=self.get_vl(row.disposal_place_current__REL), entsorgungsort_geplant=self.get_vl(row.disposal_place_planned__REL), volumenabflusslosegrube=row.volume_pit_without_drain, - versickerungsanlageref=self.get_pk(row.fk_infiltration_installation__REL), - einleitstelleref=self.get_pk(row.fk_discharge_point__REL), - abwasserbauwerkref=self.get_pk(row.fk_wastewater_structure__REL), + versickerungsanlageref=self.get_tid(row.fk_infiltration_installation__REL), + einleitstelleref=self.get_tid(row.fk_discharge_point__REL), + abwasserbauwerkref=self.get_tid(row.fk_wastewater_structure__REL), ) self.abwasser_session.add(entsorgung) print(".", end="") @@ -1448,8 +1439,7 @@ def _export_drainage_system(self): ) for row in query: entwaesserungssystem = self.model_classes_interlis.entwaesserungssystem( - **self.vsa_base_common(row, "entwaesserungssystem"), - **self.zone_common(row), + **self.zone_common(row, "entwaesserungssystem"), # --- drainage_system --- art=self.get_vl(row.kind__REL), perimeter=row.perimeter_geometry, @@ -1467,8 +1457,7 @@ def _export_solids_retention(self): ) for row in query: feststoffrueckhalt = self.model_classes_interlis.feststoffrueckhalt( - **self.vsa_base_common(row, "feststoffrueckhalt"), - **self.structure_part_common(row), + **self.structure_part_common(row, "feststoffrueckhalt"), # --- solids_retention --- dimensionierungswert=row.dimensioning_value, bruttokosten=row.gross_costs, @@ -1487,8 +1476,7 @@ def _export_pump(self): query = query.filter(self.model_classes_tww_od.pump.obj_id.in_(self.subset_ids)) for row in query: foerderaggregat = self.model_classes_interlis.foerderaggregat( - **self.vsa_base_common(row, "foerderaggregat"), - **self.overflow_common(row), + **self.overflow_common(row, "foerderaggregat"), # --- pump --- bauart=self.get_vl(row.construction_type__REL), arbeitspunkt=row.operating_point, @@ -1510,8 +1498,7 @@ def _export_building(self): query = query.filter(self.model_classes_tww_od.building.obj_id.in_(self.subset_ids)) for row in query: gebaeude = self.model_classes_interlis.gebaeude( - **self.vsa_base_common(row, "gebaeude"), - **self.connection_object_common(row), + **self.connection_object_common(row, "gebaeude"), # --- building --- hausnummer=row.house_number, standortname=row.location_name, @@ -1566,8 +1553,8 @@ def _export_building_group(self): sanierungskonzept=row.restructuring_concept, schuleschueler=row.school_students, lage=row.situation_geometry, - # entsorgungref=self.get_pk(row.fk_disposal__REL), # TODO check why not available - massnahmeref=self.get_pk(row.fk_measure__REL), + # entsorgungref=self.get_tid(row.fk_disposal__REL), # TODO check why not available + massnahmeref=self.get_tid(row.fk_measure__REL), ) self.abwasser_session.add(gebaeudegruppe) print(".", end="") @@ -1585,7 +1572,7 @@ def _export_building_group_baugwr(self): **self.vsa_base_common(row, "gebaeudegruppe_baugwr"), # --- building_group_baugwr --- egid=row.egid, - gebaeudegrupperef=self.get_pk(row.fk_building_group__REL), + gebaeudegrupperef=self.get_tid(row.fk_building_group__REL), ) self.abwasser_session.add(gebaeudegruppe_baugwr) print(".", end="") @@ -1615,8 +1602,8 @@ def _export_catchment_area_totals(self): flaeche_red=row.surface_red, flaeche_red_dim=row.surface_red_dim, schmutzabwasseranfall=row.waste_water_production, - einleitstelleref=self.get_pk(row.fk_discharge_point__REL), - hydr_kennwerteref=self.get_pk(row.fk_hydraulic_char_data__REL), + einleitstelleref=self.get_tid(row.fk_discharge_point__REL), + hydr_kennwerteref=self.get_tid(row.fk_hydraulic_char_data__REL), ) self.abwasser_session.add(gesamteinzugsgebiet) print(".", end="") @@ -1634,7 +1621,7 @@ def _export_hq_relation(self): hoehe=row.altitude, abfluss=row.flow, zufluss=row.flow_from, - ueberlaufcharakteristikref=self.get_pk(row.fk_overflow_char__REL), + ueberlaufcharakteristikref=self.get_tid(row.fk_overflow_char__REL), ) self.abwasser_session.add(hq_relation) print(".", end="") @@ -1654,7 +1641,7 @@ def _export_hydr_geom_relation(self): wassertiefe=row.water_depth, wasseroberflaeche=row.water_surface, benetztequerschnittsflaeche=row.wet_cross_section_area, - hydr_geometrieref=self.get_pk(row.fk_hydr_geometry__REL), + hydr_geometrieref=self.get_tid(row.fk_hydr_geometry__REL), ) self.abwasser_session.add(hydr_geomrelation) print(".", end="") @@ -1671,6 +1658,7 @@ def _export_hydr_geometry(self): hydr_geometrie = self.model_classes_interlis.hydr_geometrie( **self.vsa_base_common(row, "hydr_geometrie"), # --- hydr_geometry --- + bezeichnung=row.identifier, bemerkung=row.remark, stauraum=row.storage_volume, nutzinhalt_fangteil=row.usable_capacity_storage, @@ -1695,15 +1683,11 @@ def _export_hydraulic_char_data(self): # --- hydraulic_char_data --- qan=row.qon, bemerkung=row.remark, - status=self.get_vl_code( - self.model_classes_tww_vl.hydraulic_char_data_status, row.astatus - ), + astatus=self.get_vl(row.status__REL), aggregatezahl=row.aggregate_number, foerderhoehe_geodaetisch=row.delivery_height_geodaetic, bezeichnung=row.identifier, - is_overflowing=self.get_vl_code( - self.model_classes_tww_vl.hydraulic_char_data_is_overflowing, row.springt_an - ), + springt_an=self.get_vl(row.is_overflowing__REL), hauptwehrart=self.get_vl(row.main_weir_kind__REL), mehrbelastung=row.overcharge, ueberlaufdauer=row.overflow_duration, @@ -1714,9 +1698,9 @@ def _export_hydraulic_char_data(self): foerderstrommax=row.pump_flow_max, foerderstrommin=row.pump_flow_min, qab=row.q_discharge, - abwasserknotenref=self.get_pk(row.fk_wastewater_node__REL), - ueberlaufcharakteristikref=self.get_pk(row.fk_overflow_char__REL), - primaerrichtungref=self.get_pk(row.fk_primary_direction__REL), + abwasserknotenref=self.get_tid(row.fk_wastewater_node__REL), + ueberlaufcharakteristikref=self.get_tid(row.fk_overflow_char__REL), + primaerrichtungref=self.get_tid(row.fk_primary_direction__REL), ) self.abwasser_session.add(hydr_kennwerte) print(".", end="") @@ -1731,8 +1715,7 @@ def _export_small_treatment_plant(self): ) for row in query: klara = self.model_classes_interlis.klara( - **self.vsa_base_common(row, "klara"), - **self.wastewater_structure_common(row), + **self.wastewater_structure_common(row, "klara"), # --- small_treatment_plant --- bewilligungsnummer=row.approval_number, funktion=self.get_vl(row.function__REL), @@ -1771,7 +1754,7 @@ def _export_farm(self): stallvieh=self.get_vl(row.stable_cattle__REL), stallgrossvieheinheit_fremdvieh=row.stable_cattle_equivalent_other_cattle, stallgrossvieheinheit_eigenesvieh=row.stable_cattle_equivalent_own_cattle, - gebaeudegrupperef=self.get_pk(row.fk_building_group__REL), + gebaeudegrupperef=self.get_tid(row.fk_building_group__REL), ) self.abwasser_session.add(landwirtschaftsbetrieb) print(".", end="") @@ -1784,8 +1767,7 @@ def _export_leapingweir(self): query = query.filter(self.model_classes_tww_od.leapingweir.obj_id.in_(self.subset_ids)) for row in query: leapingwehr = self.model_classes_interlis.leapingwehr( - **self.vsa_base_common(row, "leapingwehr"), - **self.overflow_common(row), + **self.overflow_common(row, "leapingwehr"), # --- leapingweir --- laenge=row.length, oeffnungsform=self.get_vl(row.opening_shape__REL), @@ -1819,8 +1801,8 @@ def _export_measure(self): gesamtkosten=row.total_cost, jahr_umsetzung_effektiv=row.year_implementation_effective, jahr_umsetzung_geplant=row.year_implementation_planned, - traegerschaftref=row.fk_responsible_entity, - verantwortlich_ausloesungref=row.fk_responsible_start, + traegerschaftref=self.get_tid(row.fk_responsible_entity__REL), + verantwortlich_ausloesungref=self.get_tid(row.fk_responsible_start__REL), ) self.abwasser_session.add(massnahme) print(".", end="") @@ -1840,7 +1822,7 @@ def _export_mechanical_pretreatment(self): bezeichnung=row.identifier, art=self.get_vl(row.kind__REL), bemerkung=row.remark, - abwasserbauwerkref=self.get_pk(row.fk_wastewater_structure__REL), + abwasserbauwerkref=self.get_tid(row.fk_wastewater_structure__REL), ) self.abwasser_session.add(mechanischevorreinigung) print(".", end="") @@ -1862,7 +1844,7 @@ def _export_measuring_device(self): bezeichnung=row.identifier, art=self.get_vl(row.kind__REL), bemerkung=row.remark, - messstelleref=self.get_pk(row.fk_measuring_point__REL), + messstelleref=self.get_tid(row.fk_measuring_point__REL), ) self.abwasser_session.add(messgeraet) print(".", end="") @@ -1883,8 +1865,8 @@ def _export_measurement_series(self): bezeichnung=row.identifier, art=self.get_vl(row.kind__REL), bemerkung=row.remark, - messstelleref=self.get_pk(row.fk_measuring_point__REL), - abwassernetzelementref=self.get_pk(row.fk_wastewater_networkelement__REL), + messstelleref=self.get_tid(row.fk_measuring_point__REL), + abwassernetzelementref=self.get_tid(row.fk_wastewater_networkelement__REL), ) self.abwasser_session.add(messreihe) print(".", end="") @@ -1907,8 +1889,8 @@ def _export_measurement_result(self): bemerkung=row.remark, zeit=row.time, wert=row.value, - messgeraetref=self.get_pk(row.fk_measuring_device__REL), - messreiheref=self.get_pk(row.fk_measurement_series__REL), + messgeraetref=self.get_tid(row.fk_measuring_device__REL), + messreiheref=self.get_tid(row.fk_measurement_series__REL), ) self.abwasser_session.add(messresultat) print(".", end="") @@ -1931,9 +1913,9 @@ def _export_measuring_point(self): bezeichnung=row.identifier, art=row.kind, lage=row.situation_geometry, - betreiberref=row.fk_operator, - abwasserreinigungsanlageref=self.get_pk(row.fk_waste_water_treatment_plant__REL), - abwasserbauwerkref=self.get_pk(row.fk_wastewater_structure__REL), + betreiberref=self.get_tid(row.fk_operator__REL), + abwasserreinigungsanlageref=self.get_tid(row.fk_waste_water_treatment_plant__REL), + abwasserbauwerkref=self.get_tid(row.fk_wastewater_structure__REL), ) self.abwasser_session.add(messstelle) print(".", end="") @@ -1970,8 +1952,7 @@ def _export_reservoir(self): query = query.filter(self.model_classes_tww_od.reservoir.obj_id.in_(self.subset_ids)) for row in query: reservoir = self.model_classes_interlis.reservoir( - **self.vsa_base_common(row, "reservoir"), - **self.connection_object_common(row), + **self.connection_object_common(row, "reservoir"), # --- reservoir --- standortname=row.location_name, lage=row.situation_geometry, @@ -1995,7 +1976,7 @@ def _export_retention_body(self): art=self.get_vl(row.kind__REL), bemerkung=row.remark, retention_volumen=row.volume, - versickerungsanlageref=self.get_pk(row.fk_infiltration_installation__REL), + versickerungsanlageref=self.get_tid(row.fk_infiltration_installation__REL), ) self.abwasser_session.add(retentionskoerper) print(".", end="") @@ -2015,7 +1996,7 @@ def _export_profile_geometry(self): reihenfolge=row.sequence, x=row.x, y=row.y, - rohrprofilref=self.get_pk(row.fk_pipe_profile__REL), + rohrprofilref=self.get_tid(row.fk_pipe_profile__REL), ) self.abwasser_session.add(rohrprofil_geometrie) print(".", end="") @@ -2030,14 +2011,13 @@ def _export_backflow_prevention(self): ) for row in query: rueckstausicherung = self.model_classes_interlis.rueckstausicherung( - **self.vsa_base_common(row, "rueckstausicherung"), - **self.structure_part_common(row), + **self.structure_part_common(row, "rueckstausicherung"), # --- backflow_prevention --- bruttokosten=row.gross_costs, art=self.get_vl(row.kind__REL), ersatzjahr=row.year_of_replacement, - fk_throttle_shut_off_unit=self.get_pk(row.absperr_drosselorganref), - fk_pump=self.get_pk(row.foerderaggregatref), + absperr_drosselorganref=self.get_tid(row.fk_throttle_shut_off_unit__REL), + foerderaggregatref=self.get_tid(row.fk_pump__REL), ) self.abwasser_session.add(rueckstausicherung) print(".", end="") @@ -2056,9 +2036,9 @@ def _export_log_card(self): informationsquelle=self.get_vl(row.information_source__REL), sachbearbeiter=row.person_in_charge, bemerkung=row.remark, - paa_knotenref=self.get_pk(row.fk_pwwf_wastewater_node__REL), - bueroref=row.fk_agency, - standortgemeinderef=row.fk_location_municipality, + paa_knotenref=self.get_tid(row.fk_pwwf_wastewater_node__REL), + bueroref=self.get_tid(row.fk_agency__REL), + standortgemeinderef=self.get_tid(row.fk_location_municipality__REL), ) self.abwasser_session.add(stammkarte) print(".", end="") @@ -2071,8 +2051,7 @@ def _export_prank_weir(self): query = query.filter(self.model_classes_tww_od.prank_weir.obj_id.in_(self.subset_ids)) for row in query: streichwehr = self.model_classes_interlis.streichwehr( - **self.vsa_base_common(row, "streichwehr"), - **self.overflow_common(row), + **self.overflow_common(row, "streichwehr"), # --- prank_weir --- hydrueberfalllaenge=row.hydraulic_overflow_length, kotemax=row.level_max, @@ -2110,8 +2089,7 @@ def _export_maintenance(self): query = query.filter(self.model_classes_tww_od.maintenance.obj_id.in_(self.subset_ids)) for row in query: unterhalt = self.model_classes_interlis.unterhalt( - **self.vsa_base_common(row, "unterhalt"), - **self.maintenance_event_common(row), + **self.maintenance_event_common(row, "unterhalt"), # --- maintenance --- art=self.get_vl(row.kind__REL), ) @@ -2128,10 +2106,8 @@ def _export_infiltration_zone(self): ) for row in query: versickerungsbereich = self.model_classes_interlis.versickerungsbereich( - **self.vsa_base_common(row, "versickerungsbereich"), - **self.zone_common(row), + **self.zone_common(row, "versickerungsbereich"), # --- infiltration_zone --- - art=self.get_vl(row.kind__REL), versickerungsmoeglichkeit=self.get_vl(row.infiltration_capacity__REL), perimeter=row.perimeter_geometry, ) @@ -2510,6 +2486,87 @@ def structure_part_common(self, row, type_name): "instandstellung": self.get_vl(row.renovation_demand__REL), } + def maintenance_event_common(self, row, type_name): + """ + Returns common attributes for maintenance_event + """ + return { + **self.vsa_base_common(row, type_name), + "ausfuehrender": row.operator, + "bemerkung": row.remark, + "bezeichnung": row.identifier, + "datengrundlage": row.base_data, + "dauer": row.duration, + "detaildaten": row.data_details, + "ergebnis": row.result, + "grund": row.reason, + "kosten": row.cost, + "astatus": self.get_vl(row.status__REL), + "zeitpunkt": row.time_point, + "ausfuehrende_firmaref": self.get_tid(row.fk_operating_company__REL), + "massnahmeref": self.get_tid(row.fk_measure__REL), + } + + def connection_object_common(self, row, type_name): + """ + Returns common attributes for connection_object + """ + return { + **self.vsa_base_common(row, type_name), + "bezeichnung": row.identifier, + "bemerkung": row.remark, + "fremdwasseranfall": row.sewer_infiltration_water_production, + } + + def surface_runoff_parameters_common(self, row, type_name): + """ + Returns common attributes for surface_runoff_parameters + """ + return { + **self.vsa_base_common(row, type_name), + "verdunstungsverlust": row.evaporation_loss, + "bezeichnung": row.identifier, + "versickerungsverlust": row.infiltration_loss, + "bemerkung": row.remark, + "muldenverlust": row.surface_storage, + "benetzungsverlust": row.wetting_loss, + "einzugsgebietref": self.get_tid(row.fk_catchment_area__REL), + } + + def zone_common(self, row, type_name): + """ + Returns common attributes for zone + """ + return { + **self.vsa_base_common(row, type_name), + "bemerkung": row.remark, + "bezeichnung": row.identifier, + } + + def overflow_common(self, row, type_name): + """ + Returns common attributes for overflow + """ + return { + **self.vsa_base_common(row, type_name), + "bezeichnung": row.identifier, + "bemerkung": row.remark, + "antrieb": self.get_vl(row.actuation__REL), + "verstellbarkeit": self.get_vl(row.adjustability__REL), + "fabrikat": row.brand, + "steuerung": self.get_vl(row.control__REL), + "einleitstelle": row.discharge_point, + "funktion": self.get_vl(row.function__REL), + "bruttokosten": row.gross_costs, + "qan_dim": row.qon_dim, + "signaluebermittlung": self.get_vl(row.signal_transmission__REL), + "subventionen": row.subsidies, + "abwasserknotenref": self.get_tid(row.fk_wastewater_node__REL), + "ueberlaufnachref": self.get_tid(row.fk_overflow_to__REL), + "ueberlaufcharakteristikref": self.get_tid(row.fk_overflow_char__REL), + "steuerungszentraleref": self.get_tid(row.fk_control_center__REL), + } + def _textpos_common(self, row, t_type, geojson_crs_def): """ Returns common attributes for textpos diff --git a/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_importer_to_intermediate_schema.py b/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_importer_to_intermediate_schema.py index da2355344..749cd9d18 100644 --- a/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_importer_to_intermediate_schema.py +++ b/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_importer_to_intermediate_schema.py @@ -82,295 +82,295 @@ def _tww_import(self, skip_closing_tww_session): self.close_sessions(skip_closing_tww_session=skip_closing_tww_session) def _import_sia405_abwasser(self): - logger.info("Importing ABWASSER.organisation -> TWW.organisation") + logger.info("\nImporting ABWASSER.organisation -> TWW.organisation") self._import_organisation() self._check_for_stop() - logger.info("Importing ABWASSER.kanal -> TWW.channel") + logger.info("\nImporting ABWASSER.kanal -> TWW.channel") self._import_kanal() self._check_for_stop() - logger.info("Importing ABWASSER.normschacht -> TWW.manhole") + logger.info("\nImporting ABWASSER.normschacht -> TWW.manhole") self._import_normschacht() self._check_for_stop() - logger.info("Importing ABWASSER.einleitstelle -> TWW.discharge_point") + logger.info("\nImporting ABWASSER.einleitstelle -> TWW.discharge_point") self._import_einleitstelle() self._check_for_stop() - logger.info("Importing ABWASSER.spezialbauwerk -> TWW.special_structure") + logger.info("\nImporting ABWASSER.spezialbauwerk -> TWW.special_structure") self._import_spezialbauwerk() self._check_for_stop() - logger.info("Importing ABWASSER.versickerungsanlage -> TWW.infiltration_installation") + logger.info("\nImporting ABWASSER.versickerungsanlage -> TWW.infiltration_installation") self._import_versickerungsanlage() self._check_for_stop() - logger.info("Importing ABWASSER.rohrprofil -> TWW.pipe_profile") + logger.info("\nImporting ABWASSER.rohrprofil -> TWW.pipe_profile") self._import_rohrprofil() self._check_for_stop() - logger.info("Importing ABWASSER.abwasserknoten -> TWW.wastewater_node") + logger.info("\nImporting ABWASSER.abwasserknoten -> TWW.wastewater_node") self._import_abwasserknoten() self._check_for_stop() - logger.info("Importing ABWASSER.haltung -> TWW.reach") + logger.info("\nImporting ABWASSER.haltung -> TWW.reach") self._import_haltung() self._check_for_stop() logger.info( - "Importing ABWASSER.haltung_alternativverlauf -> TWW.reach_progression_alternative" + "\nImporting ABWASSER.haltung_alternativverlauf -> TWW.reach_progression_alternative" ) self._import_haltung_alternativverlauf() self._check_for_stop() - logger.info("Importing ABWASSER.haltungspunkt -> TWW.reach_point") + logger.info("\nImporting ABWASSER.haltungspunkt -> TWW.reach_point") self._import_haltungspunkt() self._check_for_stop() - logger.info("Importing ABWASSER.trockenwetterfallrohr -> TWW.dryweather_downspout") + logger.info("\nImporting ABWASSER.trockenwetterfallrohr -> TWW.dryweather_downspout") self._import_trockenwetterfallrohr() self._check_for_stop() - logger.info("Importing ABWASSER.einstiegshilfe -> TWW.access_aid") + logger.info("\nImporting ABWASSER.einstiegshilfe -> TWW.access_aid") self._import_einstiegshilfe() self._check_for_stop() - logger.info("Importing ABWASSER.trockenwetterrinne -> TWW.dryweather_flume") + logger.info("\nImporting ABWASSER.trockenwetterrinne -> TWW.dryweather_flume") self._import_trockenwetterrinne() self._check_for_stop() - logger.info("Importing ABWASSER.deckel -> TWW.cover") + logger.info("\nImporting ABWASSER.deckel -> TWW.cover") self._import_deckel() self._check_for_stop() - logger.info("Importing ABWASSER.bankett -> TWW.benching") + logger.info("\nImporting ABWASSER.bankett -> TWW.benching") self._import_bankett() self._check_for_stop() - logger.info("Importing ABWASSER.Spuelstutzen -> TWW.flushing_nozzle") + logger.info("\nImporting ABWASSER.Spuelstutzen -> TWW.flushing_nozzle") self._import_spuelstutzen() self._check_for_stop() def _import_dss(self): logger.info( - "Importing ABWASSER.abwasserreinigungsanlage -> TWW.waste_water_treatment_plant" + "\nImporting ABWASSER.abwasserreinigungsanlage -> TWW.waste_water_treatment_plant" ) self._import_abwasserreinigungsanlage() self._check_for_stop() - logger.info("Importing ABWASSER.araenergienutzung -> TWW.wwtp_energy_use") + logger.info("\nImporting ABWASSER.araenergienutzung -> TWW.wwtp_energy_use") self._import_araenergienutzung() self._check_for_stop() - logger.info("Importing ABWASSER.abwasserbehandlung -> TWW.waste_water_treatment") + logger.info("\nImporting ABWASSER.abwasserbehandlung -> TWW.waste_water_treatment") self._import_abwasserbehandlung() self._check_for_stop() - logger.info("Importing ABWASSER.schlammbehandlung -> TWW.sludge_treatment") + logger.info("\nImporting ABWASSER.schlammbehandlung -> TWW.sludge_treatment") self._import_schlammbehandlung() self._check_for_stop() - logger.info("Importing ABWASSER.arabauwerk -> TWW.wwtp_structure") + logger.info("\nImporting ABWASSER.arabauwerk -> TWW.wwtp_structure") self._import_arabauwerk() self._check_for_stop() - logger.info("Importing ABWASSER.steuerungszentrale -> TWW.control_center") + logger.info("\nImporting ABWASSER.steuerungszentrale -> TWW.control_center") self._import_steuerungszentrale() self._check_for_stop() - logger.info("Importing ABWASSER.Abflusslose_Toilette -> TWW.drainless_toilet") + logger.info("\nImporting ABWASSER.Abflusslose_Toilette -> TWW.drainless_toilet") self._import_abflusslose_toilette() self._check_for_stop() - logger.info("Importing ABWASSER.Absperr_Drosselorgan -> TWW.throttle_shut_off_unit") + logger.info("\nImporting ABWASSER.Absperr_Drosselorgan -> TWW.throttle_shut_off_unit") self._import_absperr_drosselorgan() self._check_for_stop() - logger.info("Importing ABWASSER.Beckenentleerung -> TWW.tank_emptying") + logger.info("\nImporting ABWASSER.Beckenentleerung -> TWW.tank_emptying") self._import_beckenentleerung() self._check_for_stop() - logger.info("Importing ABWASSER.Beckenreinigung -> TWW.tank_cleaning") + logger.info("\nImporting ABWASSER.Beckenreinigung -> TWW.tank_cleaning") self._import_beckenreinigung() self._check_for_stop() - logger.info("Importing ABWASSER.Biol_oekol_Gesamtbeurteilung -> TWW.bio_ecol_assessment") + logger.info("\nImporting ABWASSER.Biol_oekol_Gesamtbeurteilung -> TWW.bio_ecol_assessment") self._import_biol_oekol_gesamtbeurteilung() self._check_for_stop() - logger.info("Importing ABWASSER.Brunnen -> TWW.fountain") + logger.info("\nImporting ABWASSER.Brunnen -> TWW.fountain") self._import_brunnen() self._check_for_stop() - logger.info("Importing ABWASSER.EZG_PARAMETER_ALLG -> TWW.param_ca_general") + logger.info("\nImporting ABWASSER.EZG_PARAMETER_ALLG -> TWW.param_ca_general") self._import_ezg_parameter_allg() self._check_for_stop() - logger.info("Importing ABWASSER.EZG_PARAMETER_MOUSE1 -> TWW.param_ca_mouse1") + logger.info("\nImporting ABWASSER.EZG_PARAMETER_MOUSE1 -> TWW.param_ca_mouse1") self._import_ezg_parameter_mouse1() self._check_for_stop() - logger.info("Importing ABWASSER.Einzelflaeche -> TWW.individual_surface") + logger.info("\nImporting ABWASSER.Einzelflaeche -> TWW.individual_surface") self._import_einzelflaeche() self._check_for_stop() - logger.info("Importing ABWASSER.Einzugsgebiet -> TWW.catchment_area") + logger.info("\nImporting ABWASSER.Einzugsgebiet -> TWW.catchment_area") self._import_einzugsgebiet() self._check_for_stop() - logger.info("Importing ABWASSER.ElektrischeEinrichtung -> TWW.electric_equipment") + logger.info("\nImporting ABWASSER.ElektrischeEinrichtung -> TWW.electric_equipment") self._import_elektrischeeinrichtung() self._check_for_stop() logger.info( - "Importing ABWASSER.ElektromechanischeAusruestung -> TWW.electromechanical_equipment" + "\nImporting ABWASSER.ElektromechanischeAusruestung -> TWW.electromechanical_equipment" ) self._import_elektromechanischeausruestung() self._check_for_stop() - logger.info("Importing ABWASSER.Entsorgung -> TWW.disposal") + logger.info("\nImporting ABWASSER.Entsorgung -> TWW.disposal") self._import_entsorgung() self._check_for_stop() - logger.info("Importing ABWASSER.Entwaesserungssystem -> TWW.drainage_system") + logger.info("\nImporting ABWASSER.Entwaesserungssystem -> TWW.drainage_system") self._import_entwaesserungssystem() self._check_for_stop() - logger.info("Importing ABWASSER.Feststoffrueckhalt -> TWW.solids_retention") + logger.info("\nImporting ABWASSER.Feststoffrueckhalt -> TWW.solids_retention") self._import_feststoffrueckhalt() self._check_for_stop() - logger.info("Importing ABWASSER.FoerderAggregat -> TWW.") + logger.info("\nImporting ABWASSER.FoerderAggregat -> TWW.") self._import_foerderaggregat() self._check_for_stop() - logger.info("Importing ABWASSER.Gebaeude -> TWW.building") + logger.info("\nImporting ABWASSER.Gebaeude -> TWW.building") self._import_gebaeude() self._check_for_stop() - logger.info("Importing ABWASSER.Gebaeudegruppe -> TWW.building_group") + logger.info("\nImporting ABWASSER.Gebaeudegruppe -> TWW.building_group") self._import_gebaeudegruppe() self._check_for_stop() - logger.info("Importing ABWASSER.Gebaeudegruppe_BAUGWR -> TWW.building_group_baugwr") + logger.info("\nImporting ABWASSER.Gebaeudegruppe_BAUGWR -> TWW.building_group_baugwr") self._import_gebaeudegruppe_baugwr() self._check_for_stop() - logger.info("Importing ABWASSER.Gesamteinzugsgebiet -> TWW.catchment_area_totals") + logger.info("\nImporting ABWASSER.Gesamteinzugsgebiet -> TWW.catchment_area_totals") self._import_gesamteinzugsgebiet() self._check_for_stop() - logger.info("Importing ABWASSER.HQ_Relation -> TWW.hq_relation") + logger.info("\nImporting ABWASSER.HQ_Relation -> TWW.hq_relation") self._import_hq_relation() self._check_for_stop() - logger.info("Importing ABWASSER.Hydr_GeomRelation -> TWW.hydr_geom_relation") + logger.info("\nImporting ABWASSER.Hydr_GeomRelation -> TWW.hydr_geom_relation") self._import_hydr_geomrelation() self._check_for_stop() - logger.info("Importing ABWASSER.Hydr_Geometrie -> TWW.hydr_geometry") + logger.info("\nImporting ABWASSER.Hydr_Geometrie -> TWW.hydr_geometry") self._import_hydr_geometrie() self._check_for_stop() - logger.info("Importing ABWASSER.Hydr_Kennwerte -> TWW.hydraulic_char_data") + logger.info("\nImporting ABWASSER.Hydr_Kennwerte -> TWW.hydraulic_char_data") self._import_hydr_kennwerte() self._check_for_stop() - logger.info("Importing ABWASSER.KLARA -> TWW.small_treatment_plant") + logger.info("\nImporting ABWASSER.KLARA -> TWW.small_treatment_plant") self._import_klara() self._check_for_stop() - logger.info("Importing ABWASSER.Landwirtschaftsbetrieb -> TWW.farm") + logger.info("\nImporting ABWASSER.Landwirtschaftsbetrieb -> TWW.farm") self._import_landwirtschaftsbetrieb() self._check_for_stop() - logger.info("Importing ABWASSER.Leapingwehr -> TWW.leapingweir") + logger.info("\nImporting ABWASSER.Leapingwehr -> TWW.leapingweir") self._import_leapingwehr() self._check_for_stop() - logger.info("Importing ABWASSER.Massnahme -> TWW.measure") + logger.info("\nImporting ABWASSER.Massnahme -> TWW.measure") self._import_massnahme() self._check_for_stop() - logger.info("Importing ABWASSER.MechanischeVorreinigung -> TWW.mechanical_pretreatment") + logger.info("\nImporting ABWASSER.MechanischeVorreinigung -> TWW.mechanical_pretreatment") self._import_mechanischevorreinigung() self._check_for_stop() - logger.info("Importing ABWASSER.Messgeraet -> TWW.measuring_device") + logger.info("\nImporting ABWASSER.Messgeraet -> TWW.measuring_device") self._import_messgeraet() self._check_for_stop() - logger.info("Importing ABWASSER.Messreihe -> TWW.measurement_series") + logger.info("\nImporting ABWASSER.Messreihe -> TWW.measurement_series") self._import_messreihe() self._check_for_stop() - logger.info("Importing ABWASSER.Messresultat -> TWW.measurement_result") + logger.info("\nImporting ABWASSER.Messresultat -> TWW.measurement_result") self._import_messresultat() self._check_for_stop() - logger.info("Importing ABWASSER.Messstelle -> TWW.measuring_point") + logger.info("\nImporting ABWASSER.Messstelle -> TWW.measuring_point") self._import_messstelle() self._check_for_stop() - logger.info("Importing ABWASSER.Mutation -> TWW.mutation") + logger.info("\nImporting ABWASSER.Mutation -> TWW.mutation") self._import_mutation() self._check_for_stop() - logger.info("Importing ABWASSER.Reservoir -> TWW.reservoir") + logger.info("\nImporting ABWASSER.Reservoir -> TWW.reservoir") self._import_reservoir() self._check_for_stop() - logger.info("Importing ABWASSER.Retentionskoerper -> TWW.retention_body") + logger.info("\nImporting ABWASSER.Retentionskoerper -> TWW.retention_body") self._import_retentionskoerper() self._check_for_stop() - logger.info("Importing ABWASSER.Rohrprofil_Geometrie -> TWW.profile_geometry") + logger.info("\nImporting ABWASSER.Rohrprofil_Geometrie -> TWW.profile_geometry") self._import_rohrprofil_geometrie() self._check_for_stop() - logger.info("Importing ABWASSER.Rueckstausicherung -> TWW.backflow_prevention") + logger.info("\nImporting ABWASSER.Rueckstausicherung -> TWW.backflow_prevention") self._import_rueckstausicherung() self._check_for_stop() - logger.info("Importing ABWASSER.Stammkarte -> TWW.log_card") + logger.info("\nImporting ABWASSER.Stammkarte -> TWW.log_card") self._import_stammkarte() self._check_for_stop() - logger.info("Importing ABWASSER.Streichwehr -> TWW.prank_weir") + logger.info("\nImporting ABWASSER.Streichwehr -> TWW.prank_weir") self._import_streichwehr() self._check_for_stop() - logger.info("Importing ABWASSER.Ueberlaufcharakteristik -> TWW.overflow_char") + logger.info("\nImporting ABWASSER.Ueberlaufcharakteristik -> TWW.overflow_char") self._import_ueberlaufcharakteristik() self._check_for_stop() - logger.info("Importing ABWASSER.Unterhalt -> TWW.maintenance") + logger.info("\nImporting ABWASSER.Unterhalt -> TWW.maintenance") self._import_unterhalt() self._check_for_stop() - logger.info("Importing ABWASSER.Versickerungsbereich -> TWW.infiltration_zone") + logger.info("\nImporting ABWASSER.Versickerungsbereich -> TWW.infiltration_zone") self._import_versickerungsbereich() self._check_for_stop() def _import_vsa_kek(self): - logger.info("Importing ABWASSER.untersuchung -> TWW.examination") + logger.info("\nImporting ABWASSER.untersuchung -> TWW.examination") self._import_untersuchung() self._check_for_stop() - logger.info("Importing ABWASSER.normschachtschaden -> TWW.damage_manhole") + logger.info("\nImporting ABWASSER.normschachtschaden -> TWW.damage_manhole") self._import_normschachtschaden() self._check_for_stop() - logger.info("Importing ABWASSER.kanalschaden -> TWW.damage_channel") + logger.info("\nImporting ABWASSER.kanalschaden -> TWW.damage_channel") self._import_kanalschaden() self._check_for_stop() - logger.info("Importing ABWASSER.datentraeger -> TWW.data_media") + logger.info("\nImporting ABWASSER.datentraeger -> TWW.data_media") self._import_datentraeger() self._check_for_stop() - logger.info("Importing ABWASSER.datei -> TWW.file") + logger.info("\nImporting ABWASSER.datei -> TWW.file") self._import_datei() self._check_for_stop() @@ -1436,6 +1436,7 @@ def _import_hydr_geometrie(self): self.model_classes_tww_od.hydr_geometry, **self.base_common(row), # --- hydr_geometry --- + identifier=row.bezeichnung, remark=row.bemerkung, storage_volume=row.stauraum, usable_capacity_storage=row.nutzinhalt_fangteil, diff --git a/plugin/teksi_wastewater/interlis/interlis_model_mapping/model_tww_od.py b/plugin/teksi_wastewater/interlis/interlis_model_mapping/model_tww_od.py index 3c05fca59..d0b9c76c5 100644 --- a/plugin/teksi_wastewater/interlis/interlis_model_mapping/model_tww_od.py +++ b/plugin/teksi_wastewater/interlis/interlis_model_mapping/model_tww_od.py @@ -219,7 +219,7 @@ class catchment_area(self.Base): ModelTwwOd.catchment_area = catchment_area - class surface_runoff_parameters(catchment_area): + class surface_runoff_parameters(self.Base): __tablename__ = "surface_runoff_parameters" __table_args__ = {"schema": config.TWW_OD_SCHEMA} diff --git a/plugin/teksi_wastewater/tests/test_interlis.py b/plugin/teksi_wastewater/tests/test_interlis.py index 8f11b10ef..dba88347f 100644 --- a/plugin/teksi_wastewater/tests/test_interlis.py +++ b/plugin/teksi_wastewater/tests/test_interlis.py @@ -12,9 +12,9 @@ # Display logging in unittest output logger = logging.getLogger() -logger.setLevel(logging.WARNING) +logger.setLevel(logging.DEBUG) handler = logging.StreamHandler(sys.stdout) -handler.setLevel(logging.WARNING) +handler.setLevel(logging.DEBUG) logger.addHandler(handler) From 6bb7f59cf0bd2f595889fc682aece4508927c89f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 11 Apr 2024 20:22:16 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../interlis_exporter_to_intermediate_schema.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py b/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py index 29bd3fc10..a839e305b 100644 --- a/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py +++ b/plugin/teksi_wastewater/interlis/interlis_model_mapping/interlis_exporter_to_intermediate_schema.py @@ -2532,7 +2532,7 @@ def surface_runoff_parameters_common(self, row, type_name): "benetzungsverlust": row.wetting_loss, "einzugsgebietref": self.get_tid(row.fk_catchment_area__REL), } - + def zone_common(self, row, type_name): """ Returns common attributes for zone @@ -2542,7 +2542,7 @@ def zone_common(self, row, type_name): "bemerkung": row.remark, "bezeichnung": row.identifier, } - + def overflow_common(self, row, type_name): """ Returns common attributes for overflow