docs: add next-section prompt for Reports (Envelope, Phone Book variants, Rolodex Info); confirm TODO next step pending run/test

This commit is contained in:
HotSwapp
2025-10-07 17:40:02 -05:00
parent f649b3c4f1
commit 684b947651
3 changed files with 53 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,53 @@
## Next Section Prompt — Reports: Envelope, Phone Book (variants), Rolodex Info
Implement the next set of reports building on existing report infrastructure.
Context:
- Phone Book HTML/CSV/PDF is already implemented at `/reports/phone-book` using `build_phone_book_pdf` and `report_phone_book.html`.
- Bulk selection from `rolodex.html` posts to `/reports/phone-book`.
Goals:
1) Envelope report (PDF)
- Endpoint: `GET /reports/envelope?client_ids=...&q=...&format=pdf`
- Input: either selected `client_ids` (from rolodex bulk) or current filter `q`.
- Output: PDF of #10 envelope mailing blocks, one per client, paginated. Address format:
- Line 1: `First Last` (or `Company` if present and person name is blank)
- Line 2: `Company` (optional if name already used)
- Line 3: `Address`
- Line 4: `City, ST ZIP`
- Implementation: `build_envelope_pdf(clients)` in `app/reporting.py` using fpdf2 with sensible margins and font sizes.
2) Phone Book — Address & Phone variant (HTML/CSV/PDF)
- Extend existing `GET /reports/phone-book` to support `variant=address_phone`.
- Columns: Name, Company, Address, City, State, Zip, Phone Type, Phone Number.
- CSV: include all columns above.
- PDF: tabular layout similar to current phone book, trimmed to fit page width.
3) Rolodex Info report (PDF)
- Endpoint: `GET /reports/rolodex-info?client_ids=...&q=...&format=pdf`
- Output: Per-client summary blocks showing key details:
- Name (Last, First), Company
- Address, City/State/Zip
- All phone numbers (type + number)
- Implementation: `build_rolodex_info_pdf(clients)` in `app/reporting.py`, multi-column or stacked blocks with clear headings and light separators.
UI wiring:
- In `rolodex.html` bulk actions, add buttons/links for:
- Envelope (Selected) → POST to `/reports/envelope` or GET with `client_ids`
- Phone Book CSV/PDF (Current Filter) with `variant=address_phone`
- Rolodex Info (Selected)
Acceptance Criteria:
- All endpoints require auth; respect `client_ids` or `q` filtering similar to phone book.
- CSV downloads set `Content-Disposition` with meaningful filenames.
- PDFs render at least one page with legible typography and pagination.
- Logging: add structured logs for render/export start/end with counts.
Non-goals (for this pass):
- Advanced formatting (duplex, custom fonts), i18n, or bulk email generation.
Test notes:
- Use existing seed/import flows to populate clients and phones.
- Validate downloads via browser and ensure no server errors in logs.