Skip to content

Make sponsor header tappable in job listings#262

Merged
JacobCoffee merged 1 commit intomainfrom
feat/job-listing-sponsor-link
Apr 18, 2026
Merged

Make sponsor header tappable in job listings#262
JacobCoffee merged 1 commit intomainfrom
feat/job-listing-sponsor-link

Conversation

@JacobCoffee
Copy link
Copy Markdown
Member

Summary

Each sponsor row on the Job Listings page now links to that sponsor's detail page — no dead headers.

  • `.sponsor-header` becomes an `` with `routerLink` to `/app/tabs/sponsors/sponsor-detail/`, reusing the slug scheme from the Sponsors page
  • Adds a right-side chevron to signal tappability, mirroring the role rows below it
  • Threads a structured-postings code path through `processListings` / `parseRoles` / `filterListings` so listings that carry explicit `postings: [{title, location, url}]` render directly (with location shown) instead of going through markdown parsing; falls back to the existing HTML parser when no structured data is present

Test plan

  • Tap a sponsor header in Job Listings → navigates to that sponsor's detail page
  • Sponsor logo area also registers as a tap (single anchor wraps logo + name + level badge)
  • Role rows underneath still open their external URL and don't trigger header navigation
  • Sponsors whose API response includes `postings` render each posting as its own row with title + location
  • Sponsors without structured postings still render via markdown parsing as before

PyCon-site's /schedule/conference.json now includes a postings[] array on
each job-listings entry, with {title, location, url} per row from the
SponsorJobPosting model. Use those rows directly instead of regex-parsing
description_html — cleaner, more reliable, and surfaces location for the
first time.

Fallback preserved: sponsors who haven't migrated to the split-field
form widget on python.org still ship only description_html, and the
existing parseRoles regex path handles those.

- processListings prefers postings[] when present, falls back to
  parseRoles(description_html) when empty.
- Search haystack now includes role location.
- Template renders location as a subtitle under the role title.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@JacobCoffee
Copy link
Copy Markdown
Member Author

image

@JacobCoffee JacobCoffee merged commit 1603c26 into main Apr 18, 2026
2 checks passed
@JacobCoffee JacobCoffee deleted the feat/job-listing-sponsor-link branch April 18, 2026 05:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant