Daniel Roth
|
11e8a52ec6
|
Add room bottom borders, section start borders, and blank floor separator columns 🟩
|
2026-05-15 15:54:16 +00:00 |
|
Daniel Roth
|
3eaf2011b0
|
Wire _apply_section_borders into headers and data rows; consolidate constants 🟪
|
2026-05-15 15:44:46 +00:00 |
|
Daniel Roth
|
2801756e56
|
Blank separator columns (E, U) carry no header fill 🟩
|
2026-05-15 15:42:24 +00:00 |
|
Daniel Roth
|
a078578122
|
_write_data_rows places door data at cols 22–25 (V–Y) 🟩
|
2026-05-15 15:41:30 +00:00 |
|
Daniel Roth
|
500ec02be2
|
_write_data_rows places door data at cols 22–25 (V–Y) 🟥
|
2026-05-15 15:40:04 +00:00 |
|
Daniel Roth
|
a748260b7d
|
_apply_section_borders sets medium right-border on subtable boundary columns 🟥
|
2026-05-15 15:38:21 +00:00 |
|
Daniel Roth
|
65a40ad371
|
_write_headers uses 25 columns, 2 rows, and "Doors" group label 🟩
|
2026-05-15 15:36:57 +00:00 |
|
Daniel Roth
|
4ba9d64c09
|
_write_headers uses 25 columns, 2 rows, and "Doors" group label 🟥
|
2026-05-15 15:36:16 +00:00 |
|
Daniel Roth
|
70035e6e14
|
AuditRow carries opening and trickle_vent fields, all None on every row 🟩
|
2026-05-15 15:35:04 +00:00 |
|
Daniel Roth
|
f010a360c5
|
AuditRow opening and trickle_vent fields are None on all rows 🟥
|
2026-05-15 15:34:47 +00:00 |
|
Daniel Roth
|
f105c21d35
|
Wire audit_script.py with DB read, row builder, and openpyxl spreadsheet output 🟩
|
2026-05-15 14:49:59 +00:00 |
|
Daniel Roth
|
e6878a821f
|
_build_rows produces correct row groups, window labels, and location fields 🟩
|
2026-05-15 14:48:12 +00:00 |
|
Daniel Roth
|
b6320b745e
|
_build_rows returns structured audit rows from a Plan 🟩
|
2026-05-15 14:47:18 +00:00 |
|
Daniel Roth
|
0ce0228c31
|
_build_rows returns structured audit rows from a Plan 🟥
|
2026-05-15 14:45:10 +00:00 |
|
Daniel Roth
|
509fbf2abf
|
Store uploaded_file_id on magic_plan_plan row 🟩
|
2026-05-13 11:02:46 +00:00 |
|
Daniel Roth
|
265be9849b
|
Store uploaded_file_id on magic_plan_plan row 🟥
|
2026-05-13 10:50:28 +00:00 |
|
Jun-te Kim
|
e458f0a2b7
|
task and sub tasks imrpvoed
|
2026-05-12 16:24:11 +00:00 |
|
Daniel Roth
|
5f77fbf4e4
|
Fetch all pages in get_plans pagination loop 🟪
|
2026-05-12 14:54:14 +00:00 |
|
Daniel Roth
|
0d324f99b2
|
Fetch all pages in get_plans pagination loop 🟩
|
2026-05-12 14:52:46 +00:00 |
|
Daniel Roth
|
6dfca082f8
|
Fetch all pages in get_plans pagination loop 🟥
|
2026-05-12 14:52:31 +00:00 |
|
Daniel Roth
|
f83ddd05a8
|
Paginate get_plans to return flat list[PlanSummary] 🟩
|
2026-05-12 14:46:00 +00:00 |
|
Daniel Roth
|
62acc3ce98
|
Paginate get_plans to return flat list[PlanSummary] 🟥
|
2026-05-12 14:45:09 +00:00 |
|
Daniel Roth
|
8727a78f8b
|
correct magic plan url paths 🟩
|
2026-05-12 14:33:58 +00:00 |
|
Daniel Roth
|
beaf21fdcc
|
correct magic plan url paths
|
2026-05-12 14:32:37 +00:00 |
|
Daniel Roth
|
75d0313934
|
fix broken magicplan handler tests
|
2026-05-12 14:14:37 +00:00 |
|
Daniel Roth
|
04df924146
|
fix local invoker
|
2026-05-12 14:13:12 +00:00 |
|
Daniel Roth
|
3df726937e
|
Remove unused _api_key instance variable now auth is fully header-based 🟪
|
2026-05-12 14:03:07 +00:00 |
|
Daniel Roth
|
eb381a778c
|
_fetch_plan() sends no API key query parameter 🟩
|
2026-05-12 14:02:17 +00:00 |
|
Daniel Roth
|
7752039dbd
|
_fetch_plan() sends no API key query parameter 🟥
|
2026-05-12 14:01:40 +00:00 |
|
Daniel Roth
|
20b32bcda0
|
get_plans() sends no API key query parameter 🟩
|
2026-05-12 14:01:35 +00:00 |
|
Daniel Roth
|
ffcff33dd4
|
get_plans() sends no API key query parameter 🟥
|
2026-05-12 14:00:07 +00:00 |
|
Daniel Roth
|
d59bf2d7cb
|
Set API key as session header on MagicPlanClient construction 🟩
|
2026-05-12 13:59:33 +00:00 |
|
Daniel Roth
|
da4f5f44c0
|
Set API key as session header on MagicPlanClient construction 🟥
|
2026-05-12 13:58:16 +00:00 |
|
Daniel Roth
|
a672c0dea0
|
add localhandler for testing and update requirements
|
2026-05-12 13:51:46 +00:00 |
|
Daniel Roth
|
1243690d10
|
give handler permission to write to s3 bucket
|
2026-05-08 15:41:12 +00:00 |
|
Daniel Roth
|
ce2b61d60b
|
Upload gzip-compressed MagicPlan JSON to S3 - only make one API call 🟪
|
2026-05-08 15:07:09 +00:00 |
|
Daniel Roth
|
9f62e3c31a
|
typehint
|
2026-05-08 14:30:59 +00:00 |
|
Daniel Roth
|
e1972e4349
|
Upload gzip-compressed MagicPlan JSON to S3 🟪
|
2026-05-08 14:23:32 +00:00 |
|
Daniel Roth
|
337474e773
|
Persist UploadedFile record for each MagicPlan S3 upload 🟩
|
2026-05-08 14:20:49 +00:00 |
|
Daniel Roth
|
8ac77ce8b9
|
Persist UploadedFile record for each MagicPlan S3 upload 🟥
|
2026-05-08 14:19:49 +00:00 |
|
Daniel Roth
|
03e8750c1a
|
Upload MagicPlan JSON to S3 using hubspot_deal_id key when UPRN absent 🟩
|
2026-05-08 14:17:51 +00:00 |
|
Daniel Roth
|
14a064fdef
|
Upload gzip-compressed MagicPlan JSON to S3 🟩
|
2026-05-08 14:16:41 +00:00 |
|
Daniel Roth
|
7c9cb5b161
|
Upload gzip-compressed MagicPlan JSON to S3 🟥
|
2026-05-08 14:14:42 +00:00 |
|
Daniel Roth
|
f6c17be70a
|
Expose get_plan_raw method on MagicPlanClient 🟩
|
2026-05-08 14:09:33 +00:00 |
|
Daniel Roth
|
c3aae8fd51
|
Expose get_plan_raw method on MagicPlanClient 🟥
|
2026-05-08 14:08:56 +00:00 |
|
Daniel Roth
|
4a9cabe197
|
Add hubspot_deal_id required field to MagicPlanTriggerRequest 🟩
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-08 13:45:10 +00:00 |
|
Daniel Roth
|
74b3a7f297
|
Add hubspot_deal_id required field to MagicPlanTriggerRequest 🟥
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-08 13:42:57 +00:00 |
|
Daniel Roth
|
e30e06cb6e
|
simplify dockerfile as playwright not used
|
2026-05-08 13:24:04 +00:00 |
|
Daniel Roth
|
feaa1ea680
|
Add MagicPlan Lambda Dockerfile, CI/CD jobs, and SQS IAM wiring in hubspot_deal_etl
|
2026-05-08 13:12:13 +00:00 |
|
Daniel Roth
|
f903fdefe7
|
add TODO
|
2026-05-08 10:20:12 +00:00 |
|