Motivation
The admin Data Health dashboard (/admin/data-health/) is meant to keep admins one click away from fixing flagged rows. Today that's inconsistent: only 3 of 10 checks render a per-row Action link; the other 7 carry the model's id but never build the link, so the admin has to navigate to the changelist manually.
Separately, two common data-entry gaps aren't surfaced at all:
- Conference papers almost always have a recorded talk, but talk-less ones are invisible.
- Poster publications should have a linked Poster artifact (
Publication.poster).
Scope
A. Standardize action links
- Add a default
row_link() to HealthCheck driven by two class attrs (link_model, link_id_key) that deep-links each row to its admin change page.
- Wire it into the 7 linkless checks (publication-quality, duplicate-people, url-name-collisions, position-integrity, news-health, project-health, project-leadership). The 3 existing custom
row_links are unchanged.
- Result: every flagged row, on every page, gets an "Open →" action.
B. Flag publications missing an expected companion artifact
Two separate checks (distinct dashboard entries / counts, since the corrective actions differ), sharing a small base class:
- Conference papers without a talk —
pub_venue_type == Conference, not an extended abstract, talk is null.
- Poster papers without a linked poster —
pub_venue_type == Poster, poster is null.
Both exclude pre-Makeability-Lab work (DATE_MAKEABILITYLAB_FORMED, same convention as the unlinked-artifacts check) and future/to-appear papers (the companion usually isn't recorded until presented), to avoid permanent false positives. Action link → the publication's edit page, where the FK is set.
C. Tests
- Assert every registered check produces an action link (pins the standardization).
- Regression tests for both new checks: positive cases flagged; posters/demos, to-appear, and already-linked papers not flagged.
No model/DB or template/view changes required — the detail template already renders the Action column generically via has_links.
Motivation
The admin Data Health dashboard (
/admin/data-health/) is meant to keep admins one click away from fixing flagged rows. Today that's inconsistent: only 3 of 10 checks render a per-row Action link; the other 7 carry the model'sidbut never build the link, so the admin has to navigate to the changelist manually.Separately, two common data-entry gaps aren't surfaced at all:
Publication.poster).Scope
A. Standardize action links
row_link()toHealthCheckdriven by two class attrs (link_model,link_id_key) that deep-links each row to its admin change page.row_links are unchanged.B. Flag publications missing an expected companion artifact
Two separate checks (distinct dashboard entries / counts, since the corrective actions differ), sharing a small base class:
pub_venue_type == Conference, not an extended abstract,talkis null.pub_venue_type == Poster,posteris null.Both exclude pre-Makeability-Lab work (
DATE_MAKEABILITYLAB_FORMED, same convention as the unlinked-artifacts check) and future/to-appear papers (the companion usually isn't recorded until presented), to avoid permanent false positives. Action link → the publication's edit page, where the FK is set.C. Tests
No model/DB or template/view changes required — the detail template already renders the Action column generically via
has_links.