fix: resolve SIDs to readable names in remaining entity views #34

Closed
opened 2026-05-05 08:07:13 +00:00 by casper-stevens · 1 comment
Member

Context

Ref: lhumina_code/home#210

SID-to-name resolution was implemented for Instruments and Contracts. Several other entity detail and list views still display raw internal SIDs where a readable name or title should appear.

Display rules

Every reference to a related record should show:

  • Primary: readable name or title (e.g. "John Smith"), as a clickable link
  • Secondary (optional): SID shown in smaller muted text below (e.g. SID: 0001)

Never show a raw SID as the main display value.

Known locations still showing raw SIDs

Audit and fix all of the following:

  • Contact (/persons) detail — any linked company, deal, or contract shown as SID
  • Interaction (/contacts) detail — linked contact shown as SID
  • Deal detail — linked company, linked contacts shown as SIDs
  • Finance detail — linked company/contact/deal/contract shown as SIDs
  • HR detail — linked contact, company, or contract shown as SIDs
  • Task/Project detail — any linked entity shown as SID
  • List/grid views — where a related entity column shows a SID instead of a name

Implementation pattern

Follow the same approach already used in the Instrument and Contract handlers:

  1. Collect the SIDs from the loaded records
  2. Batch-resolve them to names using the appropriate service call
  3. Pass a sid_to_name: HashMap<String, String> (or equivalent) into the template
  4. Template renders the name (with link) and SID as secondary text

Acceptance criteria

  • No raw SID shown as a primary display value in any entity detail page
  • All resolved names are clickable links to the related entity detail page
  • SIDs may still appear as small secondary text for reference
  • If a name cannot be resolved (record deleted/missing), show the SID with a "not found" indicator rather than crashing
## Context Ref: [lhumina_code/home#210](https://forge.ourworld.tf/lhumina_code/home/issues/210) SID-to-name resolution was implemented for Instruments and Contracts. Several other entity detail and list views still display raw internal SIDs where a readable name or title should appear. ## Display rules Every reference to a related record should show: - **Primary**: readable name or title (e.g. "John Smith"), as a clickable link - **Secondary** (optional): SID shown in smaller muted text below (e.g. `SID: 0001`) Never show a raw SID as the main display value. ## Known locations still showing raw SIDs Audit and fix all of the following: - **Contact (`/persons`) detail** — any linked company, deal, or contract shown as SID - **Interaction (`/contacts`) detail** — linked contact shown as SID - **Deal detail** — linked company, linked contacts shown as SIDs - **Finance detail** — linked company/contact/deal/contract shown as SIDs - **HR detail** — linked contact, company, or contract shown as SIDs - **Task/Project detail** — any linked entity shown as SID - **List/grid views** — where a related entity column shows a SID instead of a name ## Implementation pattern Follow the same approach already used in the Instrument and Contract handlers: 1. Collect the SIDs from the loaded records 2. Batch-resolve them to names using the appropriate service call 3. Pass a `sid_to_name: HashMap<String, String>` (or equivalent) into the template 4. Template renders the name (with link) and SID as secondary text ## Acceptance criteria - No raw SID shown as a primary display value in any entity detail page - All resolved names are clickable links to the related entity detail page - SIDs may still appear as small secondary text for reference - If a name cannot be resolved (record deleted/missing), show the SID with a "not found" indicator rather than crashing
Author
Member

Implemented in commit ec10bf6: Company/contract/opportunity/deal SIDs resolved to clickable names on Person and Contact detail pages.

Implemented in commit ec10bf6: Company/contract/opportunity/deal SIDs resolved to clickable names on Person and Contact detail pages.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_biz#34
No description provided.