Skip to content

Sponsor portal: count committee Jira answers in progress, and a support link - #164

Merged
JakeGinnivan merged 2 commits into
mainfrom
jakeginnivan/prefill-social-quote-from-jira
Sep 16, 2026
Merged

JakeGinnivan merged 2 commits into
mainfrom
jakeginnivan/prefill-social-quote-from-jira

Conversation

@JakeGinnivan

Copy link
Copy Markdown
Contributor

Two follow-ups from reviewing the portal against real sponsor data (iCetana, SPN-4).

1. Progress ignored everything the committee put in Jira

sponsorProgress and statusFlipReadiness read the stored profile directly, while the forms beside them ran the same data through prefilledLogistics / prefilledProfileFields. So the dashboard counted only what the sponsor had typed — and contradicted the form sitting next to it.

Checked against real Jira rather than inferred: iCetana has website, social quote and a 55" screen order in Jira, all rendering on the forms, while the checklist read "0 of 3" and "Not started" twice.

The expensive half isn't the checklist. flipWorkstreamStatuses shares that read, so iCetana's quote — in Jira since August — left the social status parked on "Quotes and Logos Pending (Sponsor)", waiting on a sponsor who had already answered the sponsorship team by email. That has been silently holding back a real workstream.

Both now derive from one effectiveAnswers() helper that defers to the two existing prefill functions rather than merging inline, so authority stays per-form and asymmetric: profile fields flip on detailsUpdatedAt, logistics wholesale on logisticsUpdatedAt. Merging in one step would let an hour-old Jira snapshot resurrect a field the sponsor had just cleared — there's a test pinning that.

Adds a dashboardProgress seam to the collaboration harness, so the checklist is assertable end-to-end rather than only as a unit. That is the level at which the last two bugs in this area escaped.

2. A support link on every portal page

Got an issue with our new sponsorship portal? Email sponsorship@dddperth.com

Scoped rather than open-ended: the mailto: carries a prefilled subject naming the portal and the sponsor (Sponsor portal issue — iCetana), because that inbox already takes live sponsorship enquiries and a bare address would drop portal bugs into the same stream with nothing to sort them by.

Lives in the portal layout, so dashboard, company profile and event logistics all get it from one place. Address reads from brand.sponsorshipEmail, so a sister conference fork gets its own.

Verified

542 tests across 49 files, tsc clean, eslint clean.

New coverage: Jira-only values count toward progress; a sponsor's clear still wins after they have submitted; the social status advances on a committee-collected quote; and the support link renders with a correctly encoded subject, same-tab, with no new-tab hint.

Not fixed here, and deliberately so

  • Blurb empty on iCetana is correct — customfield_10140 is genuinely null. The quote in the screenshot is the socials field.
  • Exhibition "0 of 6" is also correct — every exhibition field is null in Jira.
  • Logo round-trip from Jira attachments needs a decision first. addAttachment is upload-only, and SPN-4 carries five attachments (.svg, .png, .eps, a quote .docx and the signed agreement PDF) with nothing marking which is the website logo. Guessing wrong puts a signed contract on the public sponsors page.

…tus flips

sponsorProgress and statusFlipReadiness read the stored profile directly,
while the forms beside them ran the same data through prefilledLogistics /
prefilledProfileFields. So the dashboard measured only what the sponsor had
typed and ignored everything the committee entered in Jira.

iCetana (SPN-4) is the reported case: website, social quote and a 55" screen
order all sat in Jira and all rendered on the forms, while the checklist read
"0 of 3" and "Not started" twice.

The costly half is the status flips, not the checklist. flipWorkstreamStatuses
shares the same read, so a social quote the committee collected in August left
the social status parked on "Quotes and Logos Pending (Sponsor)" — waiting on a
sponsor who had already answered by email.

Both now derive from one effectiveAnswers() helper that defers to the two
existing prefill functions rather than merging inline, so authority stays
per-form and asymmetric: profile fields flip on detailsUpdatedAt, logistics
wholesale on logisticsUpdatedAt. Merging in one step would let an hour-old Jira
snapshot resurrect a field the sponsor had just cleared.

Adds a dashboardProgress seam to the harness so the checklist is assertable
end-to-end, not just as a unit — the level at which the last two bugs escaped.
The portal is new this year, so the sponsorship team should hear about
anything that looks wrong before a sponsor quietly gives up on it.

Scoped rather than open-ended: the mailto carries a prefilled subject naming
the portal and the sponsor, so portal bugs are triageable against the
sponsorship enquiries already landing in that inbox.

Lives in the portal layout, so the dashboard, company profile and event
logistics pages all get it without three copies. Address comes from
brand.sponsorshipEmail, so a sister conference gets its own.
@JakeGinnivan
JakeGinnivan merged commit 21e2376 into main Sep 16, 2026
3 checks passed
@JakeGinnivan
JakeGinnivan deleted the jakeginnivan/prefill-social-quote-from-jira branch September 16, 2026 23:54
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