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>
Order form revision (docs/lucid "(1)" PDFs):
- Purple Envelope: reordered stock/permit questions, renamed postage-only to
state-permit-only, added colors question and blue-envelope-provider
cross-sell
- Blue Envelope: reworked permit flow with KCI-vs-own-organization
ownership and nonprofit-status branching
- Mailing Service: real per-piece pricing, new Presort Standard tier,
estimated-quantity question, fixed pickup-date list, removed the
ballot-sorting question
- Additional Items: added a special-requests field
- Added db/migrations/20260804153857_revise_order_details_columns.asp
(additive only - columns retired by the revision are left in place,
not dropped, since the table has real test data)
Tester feedback:
- Fixed "Spectrom" typo to "Spectrum" (value code + label + validation)
- Corrected First Class postage rate to $0.721/pc.
- Marked nearly every survey question required so SurveyJS blocks
page navigation on missing answers
Color picker for envelope colors:
- Replaced free-text color entry with a modal image picker sourced from
public/images/Purple_ballot_envelopes colors/*.bmp, converted to PNG
in public/images/purple-envelope-colors/ (23MB -> 245KB)
Cleanup pass:
- Removed the redundant "KCI's blue envelopes or another provider's"
question (redundant with the preceding yes/no)
- Removed the purple-envelope delivery-date picker in favor of a static
lead-time note
- Trimmed the Mailing Service page title
- Fixed the post-submission message to stop showing SurveyJS's default
"survey" wording
RouteKit Classic ASP MVC starter for the Purple Envelope election-materials
order site: request-order flow, token-based order continuation, SurveyJS
order-details form with server-side validation and a themed confirmation
email, plus the framework core, generators, and dev-only aspunit test harness.