Blue AV Envelope (Q3) no longer asks for a nonprofit authorization code
after confirming nonprofit status - it wasn't needed there. Ballot
Mailing Service (Q4) gains the same follow-up instead, with an "I don't
know my authorization code" checkbox that lets the applicant skip it.
Adds MailingNonprofitAuthCode and MailingNonprofitAuthCodeUnknown
columns to OrderDetails via migration, wired through the model,
repository, answers mapper, and confirmation email by hand rather than
via GenerateRepo.vbs, since regenerating would have dropped existing
fixups (leading-zero-preserving text fields, nullable boolean/date
guards) already baked into those files.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Implement Election Materials order-form revisions (docs/lucid *(2).pdf):
new "permanent ballot list" question, and a Yes/No/Unsure nonprofit-status
question now asked on both blue-envelope permit-ownership branches, with
a matching migration, model/repository regen, and validation updates.
- Box the /request-order form and heading in the site's form-panel style.
- Shrink the site footer.
- After request-order and order submission, redirect to / with a flash
message instead of re-rendering the form page inline.
- Skin the continuation and order-confirmation emails to match the site's
branding (logo, navy header/footer, purple accents) instead of plain
unstyled HTML.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Extract email sending into OrderMailer, answer-to-model mapping into
OrderDetailsAnswersMapper, label mapping into OrderDetailsLabels, and
generic dictionary-based field validation into core/lib.Validations.asp
(alongside a small lib.JsonResponse helper), replacing the private
helpers previously duplicated inline in OrderApiController and
RequestOrderController.