From 1f0fffe8af6022d54043415005a06a41bcbc04b7 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Tue, 30 Jun 2026 09:59:37 +0000 Subject: [PATCH] =?UTF-8?q?Write=20total=20trickle=20vent=20area=20to=20co?= =?UTF-8?q?lumn=20O;=20shift=20door=20columns=20to=20Q/R/S/T=20?= =?UTF-8?q?=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- ...aster Sero Template - Data Extraction.xlsx | Bin 21128 -> 15415 bytes domain/magicplan/ventilation_audit.py | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/applications/audit_generator/Master Sero Template - Data Extraction.xlsx b/applications/audit_generator/Master Sero Template - Data Extraction.xlsx index 15bc8d3ab374c1472748ea464b817efa07f9959e..2416b11f2062a1b8bf72f611455fcf0bcec39019 100644 GIT binary patch literal 15415 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 G`~Lt9dc55L literal 21128 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 z None: pct = vent.pct_openable if vent else None _write_cell(sheet, row, "L", (pct / 100) if pct is not None else 0) # M = formula =I*L — do not write - _write_cell(sheet, row, "N", vent.trickle_vent_area_mm2 if vent else 0) - _write_cell(sheet, row, "O", vent.num_trickle_vents if vent else 0) - # P = formula =N*O — do not write + _write_cell(sheet, row, "N", vent.num_trickle_vents if vent else 0) + _write_cell(sheet, row, "O", vent.trickle_vent_area_mm2 if vent else 0) + # P = unused gap — do not write for i, (room_name, door) in enumerate(doors): row = _DATA_START_ROW + i vent = door.ventilation - _write_cell(sheet, row, "R", room_name) - _write_cell(sheet, row, "S", door.width_mm) - _write_cell(sheet, row, "T", vent.undercut_mm if vent else 0) - # U = formula =S*T — do not write + _write_cell(sheet, row, "Q", room_name) + _write_cell(sheet, row, "R", door.width_mm) + _write_cell(sheet, row, "S", vent.undercut_mm if vent else 0) + # T = formula =R*S — do not write _apply_column_y_formatting(sheet)