mirror of
https://github.com/Hestia-Homes/survey-extraction.git
synced 2026-06-08 11:17:29 +00:00
compelted section 2
This commit is contained in:
parent
2b618e49ee
commit
23e97789f1
2 changed files with 98 additions and 7 deletions
|
|
@ -10,7 +10,8 @@ from etl.transform.preSiteNoteTypes import (
|
|||
)
|
||||
from etl.transform.conditionReportTypes import (
|
||||
ConditionReport, AssessorDetails, InspectionAndProject, TheProperty,
|
||||
MainElevation, Elevation, ElevationInfo
|
||||
MainElevation, Elevation, ElevationInfo, PropertyAccess, ExternalElevation, ExternalElevationFront,
|
||||
ExternalElevationGableOne, ExternalElevationGableTwo, ExternalElevationRear, ConservatoryOrOutbuilding
|
||||
)
|
||||
from datetime import datetime
|
||||
from pprint import pprint
|
||||
|
|
@ -24,6 +25,11 @@ class SiteNotesExtractor():
|
|||
except IndexError:
|
||||
return None # Return None if the value does not occur twice
|
||||
|
||||
def get_x_value(self, lst, value, x=1):
|
||||
index = self.get_x_occurance(lst, value, x)
|
||||
return lst[index+1]
|
||||
|
||||
|
||||
def get_next_value(self, lst, value, avoid=[]):
|
||||
get_value = lambda key: None if lst[lst.index(value) + 1] in avoid else lst[lst.index(key) + 1]
|
||||
return get_value(value)
|
||||
|
|
@ -158,11 +164,96 @@ class ConditionReport(SiteNotesExtractor):
|
|||
)
|
||||
|
||||
def get_section_2(self):
|
||||
self.get_property_access()
|
||||
_ = self.get_property_access()
|
||||
_,_,_,_ = self.get_external_elevation()
|
||||
self.get_conservatory_or_outbuilding()
|
||||
|
||||
|
||||
def get_property_access(self):
|
||||
pprint(self.raw_data)
|
||||
pass
|
||||
data = self.get_data_between("2.1 Property Access", "2.2 External Elevations")
|
||||
property_access = PropertyAccess(
|
||||
are_there_any_road_restriction_in_the_locality=True if self.get_next_value(data, "locality?").lower() == "yes" else False,
|
||||
is_on_street_parking_available=True if self.get_next_value(data, "Is on-street parking available?").lower() == "yes" else False,
|
||||
are_there_any_overhead_wires_or_cables=True if self.get_next_value(data, "Are there any overhead wires or cables?") == "yes" else False,
|
||||
is_the_access_gated=True if self.get_next_value(data, "Is the access gated?").lower() == "yes" else False,
|
||||
is_there_restricted_space_for_contractors_to_access_the_wall_area=True if self.get_next_value(data, "area?").lower() == "yes" else False,
|
||||
is_there_restricted_space_for_contractors_to_access_the_roof_area=True if self.get_x_value(data, "area?", 1).lower() == "yes" else False,
|
||||
is_there_more_than_1_point_5_meters_in_width_to_fence_or_neighbouring_boundary_along_the_full_gable_elevation=True if self.get_next_value(data, "boundary along the full gable elevation?").lower() == "yes" else False,
|
||||
is_access_to_the_rear_provided_by_use_of_a_ginnel=True if self.get_next_value(data, "Is access to the rear provided by use of a ginnel?").lower() == "yes" else False,
|
||||
is_access_to_the_rear_provided_by_use_of_a_secured_alleyway=True if self.get_next_value(data, "Is access to the rear provided by use of a secured alleyway?").lower() == "yes" else False,
|
||||
)
|
||||
return property_access
|
||||
|
||||
def get_external_elevation(self):
|
||||
# Front
|
||||
data = self.get_data_between("2.2.1. External Elevation - Front", '2.2.2. External Elevation - Gable 1')
|
||||
front = ExternalElevation(
|
||||
structural_defects_of_elevation=self.get_next_value(data, "Structural defects of elevation"),
|
||||
does_any_structural_defect_need_resolving_before_retrofit=True if self.get_next_value(data,"Does any structural defect need resolving before retrofit?").lower() == "yes" else False,
|
||||
are_there_any_signs_of_water_penetration_caused_by_failed_rainwater_goods_or_pipework=True if self.get_next_value(data, "rainwater goods or pipework?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_movement=True if self.get_next_value(data, "Are there any visible signs of movement?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_cracking_to_the_existing_external_finish=True if self.get_next_value(data, "external finish?").lower() == "yes" else False,
|
||||
)
|
||||
# Gable 1
|
||||
data = self.get_data_between("2.2.2. External Elevation - Gable 1", "2.2.3. External Elevation - Rear")
|
||||
state = True if self.get_next_value(data, "cracking)").lower() == "yes" else False
|
||||
if state:
|
||||
gable_one = ExternalElevationGableOne(
|
||||
do_all_answers_for_the_front_elevation_apply_to_this_wall=state
|
||||
)
|
||||
else:
|
||||
gable_one_elevation = ExternalElevation(
|
||||
structural_defects_of_elevation=self.get_next_value(data, "Structural defects of elevation"),
|
||||
does_any_structural_defect_need_resolving_before_retrofit=True if self.get_next_value(data,"Does any structural defect need resolving before retrofit?").lower() == "yes" else False,
|
||||
are_there_any_signs_of_water_penetration_caused_by_failed_rainwater_goods_or_pipework=True if self.get_next_value(data, "rainwater goods or pipework?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_movement=True if self.get_next_value(data, "Are there any visible signs of movement?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_cracking_to_the_existing_external_finish=True if self.get_next_value(data, "external finish?").lower() == "yes" else False,
|
||||
)
|
||||
gable_one = ExternalElevationGableOne(
|
||||
do_all_answers_for_the_front_elevation_apply_to_this_wall=state,
|
||||
external_elevation=gable_one_elevation
|
||||
)
|
||||
# Rear
|
||||
data = self.get_data_between("2.2.3. External Elevation - Rear", "2.2.4. External Elevation - Gable 2")
|
||||
state = True if self.get_next_value(data, "cracking)").lower() == "yes" else False
|
||||
if state:
|
||||
rear = ExternalElevationRear(do_all_answers_for_the_front_elevation_apply_to_this_wall=state)
|
||||
else:
|
||||
elevation = ExternalElevation(
|
||||
structural_defects_of_elevation=self.get_next_value(data, "Structural defects of elevation"),
|
||||
does_any_structural_defect_need_resolving_before_retrofit=True if self.get_next_value(data,"Does any structural defect need resolving before retrofit?").lower() == "yes" else False,
|
||||
are_there_any_signs_of_water_penetration_caused_by_failed_rainwater_goods_or_pipework=True if self.get_next_value(data, "rainwater goods or pipework?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_movement=True if self.get_next_value(data, "Are there any visible signs of movement?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_cracking_to_the_existing_external_finish=True if self.get_next_value(data, "external finish?").lower() == "yes" else False,
|
||||
)
|
||||
rear = ExternalElevationRear(
|
||||
do_all_answers_for_the_front_elevation_apply_to_this_wall=state,
|
||||
external_elevation=elevation
|
||||
)
|
||||
|
||||
# Gable 2
|
||||
data = self.get_data_between("2.2.4. External Elevation - Gable 2", "2.3. Conservatory or Outbuilding")
|
||||
pprint(self.raw_data)
|
||||
state = True if self.get_next_value(data, "Is there a 4th external elevation?").lower() == "yes" else False
|
||||
if state is False:
|
||||
gable_two = ExternalElevationGableTwo(is_there_a_fourth_external_elevation=state)
|
||||
else:
|
||||
gable_two_elevation = ExternalElevation(
|
||||
structural_defects_of_elevation=self.get_next_value(data, "Structural defects of elevation"),
|
||||
does_any_structural_defect_need_resolving_before_retrofit=True if self.get_next_value(data,"Does any structural defect need resolving before retrofit?").lower() == "yes" else False,
|
||||
are_there_any_signs_of_water_penetration_caused_by_failed_rainwater_goods_or_pipework=True if self.get_next_value(data, "rainwater goods or pipework?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_movement=True if self.get_next_value(data, "Are there any visible signs of movement?").lower() == "yes" else False,
|
||||
are_there_any_visible_signs_of_cracking_to_the_existing_external_finish=True if self.get_next_value(data, "external finish?").lower() == "yes" else False,
|
||||
)
|
||||
gable_two = ExternalElevationGableTwo(
|
||||
is_there_a_fourth_external_elevation=state,
|
||||
external_elevation=gable_two_elevation
|
||||
)
|
||||
|
||||
return front, gable_one, rear, gable_two
|
||||
|
||||
def get_conservatory_or_outbuilding(self):
|
||||
data = self.get_data_between("2.3. Conservatory or Outbuilding", "3. Rooms")
|
||||
|
||||
|
||||
class QuidosSiteNotesExtractor(SiteNotesExtractor):
|
||||
|
|
|
|||
|
|
@ -66,15 +66,15 @@ class ExternalElevationFront(BaseModel):
|
|||
|
||||
class ExternalElevationGableOne(BaseModel):
|
||||
do_all_answers_for_the_front_elevation_apply_to_this_wall: bool
|
||||
external_elevation: Optional[ExternalElevation]
|
||||
external_elevation: Optional[ExternalElevation] = None
|
||||
|
||||
class ExternalElevationRear(BaseModel):
|
||||
do_all_answers_for_the_front_elevation_apply_to_this_wall: bool
|
||||
external_elevation: Optional[ExternalElevation]
|
||||
external_elevation: Optional[ExternalElevation] = None
|
||||
|
||||
class ExternalElevationGableTwo(BaseModel):
|
||||
is_there_a_fourth_external_elevation: bool
|
||||
external_elevation: Optional[ExternalElevation]
|
||||
external_elevation: Optional[ExternalElevation] = None
|
||||
|
||||
class ConservatoryOrOutbuilding(BaseModel):
|
||||
is_there_a_conservatory: bool
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue