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.)
GetPACMemberInfoAsync →
PACMember and GetCallToActionLinksAsync → CallToAction; Internal Comms to the
document list (GetDocumentListAsync → DocumentItem). "Submit Meeting Report" is an
external web-form link (no in-app submission). Confirm:
CallToAction completion status · comms article date/summary fields.
/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).


card-sm (Total Contribution · member status · Donate & Join · info links) + "Submit Meeting Report" Primary button + "Calls to Action" list of card-notification (with a "marked here once complete" status note).card-notification articles (date · summary · chevron → detail).| Element | Data | Source (exists) | Status |
|---|---|---|---|
| PAC summary | YTD contribution · club status · donate/info URLs | GetPACMemberInfoAsync → PACMember { ContributionYTD, ClubStatus, AllPACContributions, pacDonationPageURL, pacMembershipInfoURL } | mapped |
| Calls to Action list | action title · link | GetCallToActionLinksAsync → CallToAction | mapped |
| CTA completion status | "marked here once complete (~48h)" | CallToAction.isActedUpon (server-driven; API returns it updated) | resolved |
| Submit Meeting Report | opens report form | external web form (link out) | web-link |
| Internal Comms / ALP Mag | article date · summary · body | GetDocumentListAsync → DocumentItem (scope/category) | mapped |
| # | Item | Question |
|---|---|---|
| 1 | CallToAction completion status | Resolved (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. |
| 2 | Submit Meeting Report | Resolved: links out to an online web form — no in-app submission / endpoint needed (same pattern as the web-scoped PDR). |
| 3 | Comms article fields | Resolved: DocumentItem already carries PublishDate (date) and Description (summary). No change. |
card-notification (Notification/List Card — shared with Notifications) · card-sm (PAC summary variant) · Secondary/Primary buttons. No new scaffolds unique to this set.
isActedUpon, server-driven) · comms article date/summary (DocumentItem.PublishDate/Description). No open backend confirms.