mirror of
https://github.com/Hestia-Homes/survey-extraction.git
synced 2026-06-08 11:17:29 +00:00
elevation has worked
This commit is contained in:
parent
68d6dbda44
commit
24d2550cb8
3 changed files with 46 additions and 19 deletions
|
|
@ -26,25 +26,28 @@ class TheProperty(BaseModel, table=True):
|
|||
exposure_zone: str
|
||||
main_wall_construction: str
|
||||
|
||||
|
||||
class ElevationInfo(BaseModel, table=True):
|
||||
elevation_type: str
|
||||
cavity_wall_depth: str
|
||||
is_insulation_present: bool
|
||||
insulation_type: str
|
||||
|
||||
elevation_table: Optional["MainElevation"] = Relationship(back_populates="elevation_info")
|
||||
main_elevation: Optional["MainElevation"] = Relationship(back_populates="elevation_info")
|
||||
|
||||
elevation_id: Optional[uuid.UUID] = Field(foreign_key="elevation.id")
|
||||
elevation_table: Optional["Elevation"] = Relationship(back_populates="info")
|
||||
|
||||
|
||||
class MainElevation(BaseModel, table=True):
|
||||
elevation_info_id: uuid.UUID = Field(foreign_key="elevationinfo.id")
|
||||
|
||||
#SQLAlcemy things
|
||||
elevation_info: ElevationInfo = Relationship(back_populates="elevation_table")
|
||||
elevation_info: ElevationInfo = Relationship(back_populates="main_elevation")
|
||||
|
||||
class Elevation(BaseModel):
|
||||
class Elevation(BaseModel, table=True):
|
||||
protected_conservatory_or_aonb: bool
|
||||
material_type: str
|
||||
visible_signs_of_existing_wall_insulation: str
|
||||
ground_level_bridge_the_dpc: bool
|
||||
|
||||
info: List[ElevationInfo] = Relationship(back_populates="")
|
||||
|
||||
info: List["ElevationInfo"] = Relationship(back_populates="elevation_table")
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ from etl.models.conditionReport import (
|
|||
AssessorDetails,
|
||||
InspectionAndProject,
|
||||
TheProperty, ElevationInfo,
|
||||
MainElevation
|
||||
MainElevation,
|
||||
Elevation,
|
||||
)
|
||||
|
||||
from etl.models.topLevel import(
|
||||
|
|
@ -112,13 +113,17 @@ class surveyedDataProcessor():
|
|||
)
|
||||
|
||||
# Main elevation
|
||||
elevation_info = self.condition_report.master_obj.general_information.main_elevation.elevation_info.model_dump()
|
||||
elevation_info = self.upsert_record(
|
||||
db_session=db_session,
|
||||
model_class=ElevationInfo,
|
||||
data_dict=elevation_info,
|
||||
lookup_field=None
|
||||
)
|
||||
def upload_elevation_and_return_elevation(data):
|
||||
return self.upsert_record(
|
||||
db_session=db_session,
|
||||
model_class=ElevationInfo,
|
||||
data_dict=data,
|
||||
lookup_field=None
|
||||
)
|
||||
|
||||
elevation_data = self.condition_report.master_obj.general_information.main_elevation.elevation_info.model_dump()
|
||||
elevation_info = upload_elevation_and_return_elevation(elevation_data)
|
||||
|
||||
main_elevation = self.upsert_record(
|
||||
db_session=db_session,
|
||||
model_class=MainElevation,
|
||||
|
|
@ -128,11 +133,27 @@ class surveyedDataProcessor():
|
|||
lookup_field=None
|
||||
)
|
||||
|
||||
# elevations multiple
|
||||
for i, elevation in enumerate()
|
||||
# Other elevations
|
||||
# elevations multiple, elevation definition first then elevationInfo
|
||||
elevations_data = self.condition_report.master_obj.general_information.elevations.model_dump()
|
||||
|
||||
elevations = self.upsert_record(
|
||||
db_session=db_session,
|
||||
model_class=Elevation,
|
||||
data_dict={
|
||||
"protected_conservatory_or_aonb": elevations_data.get("protected_conservatory_or_aonb"),
|
||||
"material_type": elevations_data.get("material_type"),
|
||||
"visible_signs_of_existing_wall_insulation": elevations_data.get("are_there_any_visible_signs_of_existing_wall_insulation"),
|
||||
"ground_level_bridge_the_dpc": elevations_data.get("does_the_existing_ground_level_on_any_elevation_bridge_the_dpc"),
|
||||
},
|
||||
lookup_field=None,
|
||||
)
|
||||
|
||||
for i, elevation in enumerate(self.condition_report.master_obj.general_information.elevations.info):
|
||||
data = elevation.model_dump()
|
||||
data.update({"elevation_id": elevations.id})
|
||||
elevation_info = upload_elevation_and_return_elevation(data)
|
||||
|
||||
print(elevations.info)
|
||||
print("Check database please")
|
||||
|
||||
def load_pre_site_notes_summary_table(self, db_session):
|
||||
|
|
@ -505,6 +526,7 @@ class surveyedDataProcessor():
|
|||
# Merge additional fields if provided
|
||||
if additional_fields:
|
||||
clean_data.update(additional_fields)
|
||||
print(clean_data)
|
||||
|
||||
if lookup_field is not None:
|
||||
lookup_value = clean_data.get(lookup_field)
|
||||
|
|
@ -526,6 +548,7 @@ class surveyedDataProcessor():
|
|||
|
||||
# Filter out invalid fields that don't exist in the model class
|
||||
valid_fields = [field for field in clean_data if hasattr(model_class, field)]
|
||||
print(f"valid fields {valid_fields}")
|
||||
clean_data = {field: clean_data[field] for field in valid_fields}
|
||||
|
||||
print(f'clean data is {clean_data}')
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#poetry run alembic revision --autogenerate -m "delete everythign and start again"
|
||||
poetry run alembic upgrade +1
|
||||
#poetry run alembic revision --autogenerate -m "added new column"
|
||||
|
||||
poetry run alembic upgrade head
|
||||
|
||||
# See which hash I'm at
|
||||
#poetry run alembic current
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue