Skip to content

feat: add Visa & Invitation Letters system for international attendees#58

Merged
JacobCoffee merged 1 commit intomainfrom
feat/visa-invitation-letters
Mar 19, 2026
Merged

feat: add Visa & Invitation Letters system for international attendees#58
JacobCoffee merged 1 commit intomainfrom
feat/visa-invitation-letters

Conversation

@JacobCoffee
Copy link
Copy Markdown
Owner

Summary

  • LetterRequest model with status workflow (SUBMITTED → UNDER_REVIEW → APPROVED → GENERATED → SENT, plus REJECTED) and validated state machine transitions
  • PDF generation service using reportlab with formal letterhead, attendee passport details, and travel information
  • Attendee-facing views: request form (with duplicate prevention via IntegrityError handling) and status detail page with authenticated PDF download
  • Staff manage dashboard: list with status filtering/counts, review page with approve/reject/generate/send actions and inline PDF preview via iframe
  • Visa letters report: nationality breakdown, processing time metrics, completion rate, status charts, and CSV export
  • Seed data: 15 demo letter requests across all statuses with real generated PDFs
  • 62 tests covering model, form, service, registration views, and manage views
  • Security fixes from Codex review: feature flag registration, authenticated PDF downloads (no direct media URL IDOR), state machine enforcement via transition_to(), race condition handling on duplicate submissions
  • Bonus fixes: reports dashboard revenue decimal formatting ($13153.700000000000$13153.70), KPI card height alignment

Test plan

  • make ci passes (62 new tests, 1965 total passing; 1 pre-existing failure in voucher bulk views)
  • make dev seeds 15 letter requests visible in manage dashboard
  • Manage UI: navigate to Visa Letters via sidebar, review/approve/generate/download flow works
  • Reports: Visa & Invitation Letters report accessible from reports dashboard
  • Attendee flow: request form creates letter, detail page shows status

🤖 Generated with Claude Code

#19)

LetterRequest model with status workflow (submit → review → approve → generate PDF → send),
reportlab-based PDF generation service, attendee-facing request form + detail views,
staff manage dashboard with review/approve/reject/generate/send actions and inline PDF preview,
visa letters report with nationality breakdown and CSV export, seed data with 15 demo requests
across all statuses, and 62 tests covering model, form, service, and view layers.

Also fixes: reports dashboard revenue decimal formatting, KPI card height alignment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 19, 2026 18:02
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@JacobCoffee JacobCoffee merged commit d6f812c into main Mar 19, 2026
13 of 15 checks passed
@JacobCoffee JacobCoffee review requested due to automatic review settings March 19, 2026 18:04
@JacobCoffee JacobCoffee deleted the feat/visa-invitation-letters branch March 19, 2026 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant