Two related admin-only additions around grants.
1. Links to the official UW grant tracking systems
UW CSE (a SharePoint "Financial Reporting and Projections" folder) and UW central
(the Award Portal) each host an authoritative view of the PI's grants. There is no
link to either from our admin today, so getting there means digging through
bookmarks.
These URLs embed per-PI SharePoint sharing tokens and this repo is public, so
they must NOT be committed to source. Instead, add a small GrantTrackingLink
model (label / url / notes / display order) that the superuser fills in through
/admin, rendered as a link bar at the top of the Grant changelist (already
superuser-gated — the correct audience for personal financial-reporting links,
unlike the admin dashboard, which every staff user sees).
2. UW internal tracking codes on each grant
UW/Workday identifies a grant by a grant worktag (GR…), plus an award
number and award name. Sponsored-programs staff ask for these constantly and
there's nowhere to record them. Add three nullable fields to Grant:
uw_grant_id — the worktag (comma-separated if an award spans several)
uw_award_number
uw_award_name
Shown in a "UW Internal Tracking" fieldset, with uw_grant_id as a changelist
column and all three searchable.
These are internal administrative codes and must never reach the public site or
the REST API. GrantSerializer.Meta.fields is an explicit allowlist so they're
excluded structurally; a regression test in test_api.py pins that (same shape as
the existing funding_amount / Person.email exclusions).
Naming note
Grant.grant_id already exists and means the sponsor's award ID (NSF-style
1302338). It is public and is serialized at /api/v1/grants/. It stays exactly
as-is — hence the uw_ prefix on the new field.
Two related admin-only additions around grants.
1. Links to the official UW grant tracking systems
UW CSE (a SharePoint "Financial Reporting and Projections" folder) and UW central
(the Award Portal) each host an authoritative view of the PI's grants. There is no
link to either from our admin today, so getting there means digging through
bookmarks.
These URLs embed per-PI SharePoint sharing tokens and this repo is public, so
they must NOT be committed to source. Instead, add a small
GrantTrackingLinkmodel (label / url / notes / display order) that the superuser fills in through
/admin, rendered as a link bar at the top of the Grant changelist (alreadysuperuser-gated — the correct audience for personal financial-reporting links,
unlike the admin dashboard, which every staff user sees).
2. UW internal tracking codes on each grant
UW/Workday identifies a grant by a grant worktag (
GR…), plus an awardnumber and award name. Sponsored-programs staff ask for these constantly and
there's nowhere to record them. Add three nullable fields to
Grant:uw_grant_id— the worktag (comma-separated if an award spans several)uw_award_numberuw_award_nameShown in a "UW Internal Tracking" fieldset, with
uw_grant_idas a changelistcolumn and all three searchable.
These are internal administrative codes and must never reach the public site or
the REST API.
GrantSerializer.Meta.fieldsis an explicit allowlist so they'reexcluded structurally; a regression test in
test_api.pypins that (same shape asthe existing
funding_amount/Person.emailexclusions).Naming note
Grant.grant_idalready exists and means the sponsor's award ID (NSF-style1302338). It is public and is serialized at/api/v1/grants/. It stays exactlyas-is — hence the
uw_prefix on the new field.