elevation has worked

This commit is contained in:
Jun-te Kim 2025-06-19 10:29:41 +00:00
parent 68d6dbda44
commit 24d2550cb8
3 changed files with 46 additions and 19 deletions

View file

@ -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")

View file

@ -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}')

View file

@ -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