← Back to Index

Comms (Advocacy & Internal Comms) — Data-Gap Analysis

Scoping of the Comms document-list screens — Advocacy (PAC + calls to action) and Internal Comms (ALP Mag). Documentation only; no presentation work. (Distinct from Notifications.)

Figma file R6hPjBdjSIn6946qTJasUC · nodes 4877:11274 (Advocacy) · 4867:34739 (Internal Comms / ALP Mag). Source: Figma MCP + codebase (PACMember, CallToAction, DocumentItem, RestService) · Branch docs/comms-screen-data-gap.

Headline — data-complete. Advocacy maps to GetPACMemberInfoAsyncPACMember and GetCallToActionLinksAsyncCallToAction; Internal Comms to the document list (GetDocumentListAsyncDocumentItem). "Submit Meeting Report" is an external web-form link (no in-app submission). Confirm: CallToAction completion status · comms article date/summary fields.
Scaffold shipped for the Internal Comms document list (2026-07-09). Both levels of the design now have a Blazor scaffold at /documents?scope=&category= (DocumentsListPage.razor): the scope level renders the category list as card-sm rows per the Internal Comms screen (node 4565:9260, file owEYzHf7FrHRvWC2u82UOl — quick-list style rows), and a category deep link (also the target of Home Preview's "View All", ?scope=ALPA&category=ALP%20MAG) renders that category's article list as D11 List rows per the ALP Mag screen (4867:34739). Data resolves live when authenticated / mock otherwise. Flagged, not solved: the article row's chevron/navigation live on the page's anchor wrapper (D11 gap); List.razor still hides the D31 heart; the design's heart on category rows has no backend identity to favorite (item types are menu/document/notification only — needs a design/backend answer). (Answered 2026-07-16: a DocumentCategory favorite type (4) was implemented client-first — D62, backend handoff Task AB#2271. Category rows on the dynamic home surfaces now carry the favoritable identity cat-{scope}|{categoryKey} and render D31 hearts when authenticated; the live Favorites API must accept type 4 before the mock→live flip.) The Advocacy screen remains unscaffolded. The Blazor list also keeps the legacy native read/unread dot (DocumentItem.Read lifecycle) even though this screen's render shows none — whether/how unread state should render is now DQ-27 (suggestion on the table: red accent line for unread).
Advocacy
Advocacy (4877:11274)
ALP Mag
Internal Comms / ALP Mag (4867:34739)

1 · Screens & controls

2 · Data-source mapping

ElementDataSource (exists)Status
PAC summaryYTD contribution · club status · donate/info URLsGetPACMemberInfoAsyncPACMember { ContributionYTD, ClubStatus, AllPACContributions, pacDonationPageURL, pacMembershipInfoURL }mapped
Calls to Action listaction title · linkGetCallToActionLinksAsyncCallToActionmapped
CTA completion status"marked here once complete (~48h)"CallToAction.isActedUpon (server-driven; API returns it updated)resolved
Submit Meeting Reportopens report formexternal web form (link out)web-link
Internal Comms / ALP Magarticle date · summary · bodyGetDocumentListAsyncDocumentItem (scope/category)mapped

3 · Confirm items

#ItemQuestion
1CallToAction completion statusResolved (server-driven): CallToAction.isActedUpon (bool) is maintained by the API — the item returned by GetCallToActionLinksAsync carries the updated value after the CTA is completed. Client just reads it; no change.
2Submit Meeting ReportResolved: links out to an online web form — no in-app submission / endpoint needed (same pattern as the web-scoped PDR).
3Comms article fieldsResolved: DocumentItem already carries PublishDate (date) and Description (summary). No change.

4 · New scaffold controls (presentation)

card-notification (Notification/List Card — shared with Notifications) · card-sm (PAC summary variant) · Secondary/Primary buttons. No new scaffolds unique to this set.

5 · Summary

Tracked in screen-mapping.html.