From 43a1684f222cb9caead941f5db741a5280dadd53 Mon Sep 17 00:00:00 2001 From: Francis Secada Date: Wed, 4 Feb 2026 21:24:59 -0500 Subject: [PATCH] feat(pdf): move executive summary to top of report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Reorder PDF sections to place Executive Summary first - Executive Summary now appears immediately after header - Added extra spacing between Executive Summary and SWOT sections - All other sections (Strengths, Weaknesses, Opportunities, Threats) remain in same order New structure: 1. Header 2. Executive Summary ⬆️ (moved from bottom) 3. SWOT Analysis sections (S, W, O, T) Improves report readability by presenting key insights first. Co-Authored-By: Claude Sonnet 4.5 --- src/backend/core/pdf_service.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/backend/core/pdf_service.py b/src/backend/core/pdf_service.py index 190e9e9..3c48421 100644 --- a/src/backend/core/pdf_service.py +++ b/src/backend/core/pdf_service.py @@ -298,7 +298,12 @@ class SwotPDFGenerator: # Header self._add_header(story) + # Executive Summary (placed first for prominence) + story.append(Spacer(1, 0.2 * inch)) + self._add_executive_summary(story) + # SWOT Categories + story.append(Spacer(1, 0.3 * inch)) story.append(Paragraph("SWOT Analysis", self.styles["SectionHeader"])) story.append(Spacer(1, 0.15 * inch)) @@ -318,10 +323,6 @@ class SwotPDFGenerator: story, "Threats", self.analysis.threats, SWOT_THREAT ) - # Executive Summary - story.append(Spacer(1, 0.2 * inch)) - self._add_executive_summary(story) - # Build PDF doc.build(story)