From 7833413c8b2881a01fa608ee2a74397ebf679315 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 16 Apr 2026 14:24:41 +0000 Subject: [PATCH] =?UTF-8?q?Load=20Ventilation=20from=20SiteNotes=20JSON=20?= =?UTF-8?q?=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/documents_parser/extractor.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/backend/documents_parser/extractor.py b/backend/documents_parser/extractor.py index 41111a9b..9fffcf5a 100644 --- a/backend/documents_parser/extractor.py +++ b/backend/documents_parser/extractor.py @@ -296,7 +296,23 @@ class PasHubRdSapSiteNotesExtractor: ) def extract_ventilation(self) -> Ventilation: - raise NotImplementedError + v_section = self._section("Ventilation", "Conservatories") + return Ventilation( + ventilation_type=self._get_in(v_section, "Ventilation type:") or "", + has_fixed_air_conditioning=self._bool_in(v_section, "Has fixed air conditioning?"), + number_of_open_flues=int(self._get_in(v_section, "Number of open flues:") or 0), + number_of_closed_flues=int(self._get_in(v_section, "Number of closed flues:") or 0), + number_of_boiler_flues=int(self._get_in(v_section, "Number of boiler flues:") or 0), + number_of_other_flues=int(self._get_in(v_section, "Number of other flues:") or 0), + number_of_extract_fans=int(self._get_in(v_section, "Number of extract fans:") or 0), + number_of_passive_vents=int(self._get_in(v_section, "Number of passive vents:") or 0), + number_of_flueless_gas_fires=int(self._get_in(v_section, "Number of flueless gas fires:") or 0), + pressure_test=self._get_in(v_section, "Pressure test:") or "", + draught_lobby=self._bool_in(v_section, "Is there a draught lobby?"), + ventilation_in_pcdf_database=self._optional_bool_in( + v_section, "Is the ventilation in the PCDF database?" + ), + ) def _parse_main_heating(self, data: List[str]) -> MainHeating: return MainHeating(