Skip to content

Member page: dynamic load-more, vertical papers, bio expand, section nav (#1110)#1314

Merged
jonfroehlich merged 2 commits into
masterfrom
1110-member-page-load-more
Jun 16, 2026
Merged

Member page: dynamic load-more, vertical papers, bio expand, section nav (#1110)#1314
jonfroehlich merged 2 commits into
masterfrom
1110-member-page-load-more

Conversation

@jonfroehlich

@jonfroehlich jonfroehlich commented Jun 16, 2026

Copy link
Copy Markdown
Member

Closes #1110.

Reworks the member profile page so prolific members' pages stay usable, picking up the AJAX "load more" idea from #1110 (follow-up to #1106).

What's in here

  • Per-section "Load more" / "Load all" controls, backed by a new member_artifacts AJAX endpoint that renders the same snippet templates (so appended cards are byte-for-byte identical and accessible). Initial counts raised to 8 projects / 6 papers / 6 videos / 8 talks (4/3/3/4 on mobile via a CSS cap — first tap reveals the already-rendered rest with no network; further loads hit the server). Labels show the exact next count, e.g. "Load 6 more papers".
  • Recent-projects ordering fix: projects are now sorted by most-recent-artifact date, descending. Previously the order was lost (routed through a set) and re-sorted by the project's own start_date, which surfaced stale projects.
  • Vertical paper layout: members with many papers get the scannable vertical list (like /publications) instead of a giant 3-up card grid; few-paper members keep the compact grid.
  • Bio "Show more / Show less" for over-long bios (collapses past ~3 lines).
  • Sticky section nav with scroll-spy, the person's name revealed once the <h1> scrolls away, and live (loaded/total) counts. Section headings now read Projects (8/95) etc. — the "Recent X" wording is gone.
  • Floating "Back to top" button on long pages.
  • Idempotency guard on citationPopover so re-init (after AJAX appends) only binds new triggers.

Production requirements.txt / Docker image are unchanged.

Testing

  • Unit / integration (website/tests/test_member_artifacts.py): project ordering, the AJAX endpoint (paging/has_more/all=1/404s), all three publication layout branches, and the section-nav render. Run with the standard shim:
    python manage.py test website --settings=makeabilitylab.settings_test
  • Browser e2e (website/tests/test_member_e2e.py, Playwright): load more/all, vertical papers, projects-controls-hidden, bio toggle, section nav highlight/jump, name reveal, live counts, back-to-top. Self-skips when no browser is installed (so the normal suite stays green), and runs in a new parallel, report-only CI job (e2e in test.yml) via requirements-dev.txt.

Screenshots

image image image

🤖 Generated with Claude Code

jonfroehlich and others added 2 commits June 16, 2026 14:02
… nav (#1110)

Rework the member profile page so prolific members' pages stay navigable.

- Per-section "Load more"/"Load all" controls backed by a new member_artifacts
  AJAX endpoint that renders the same snippet templates. Initial counts raised
  to 8/6/6/8 (4/3/3/4 on mobile via a CSS cap; first tap reveals the rest with
  no network, further loads hit the server).
- Fix the recent-projects ordering: sort visible projects by most-recent
  artifact date, descending (was sorting a set by project start_date).
- Publications switch from the 3-up card grid to the scannable vertical list
  once a member has many papers.
- Bio "Show more / Show less" toggle for over-long bios.
- Sticky section nav: scroll-spy, the person's name revealed once the heading
  scrolls away, and live loaded/total counts. Section headings now read
  "Projects (8/95)" etc. -- no more "Recent" wording.
- Floating "Back to top" button.
- Idempotency guard on citationPopover so re-init (after AJAX appends) only
  binds new triggers and attaches global listeners once.

Tests: unit/integration in website/tests/test_member_artifacts.py; browser
end-to-end in website/tests/test_member_e2e.py (Playwright, self-skips when no
browser is present) wired into a new parallel, report-only CI job via
requirements-dev.txt. Production requirements/image are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jonfroehlich jonfroehlich merged commit 47c43bd into master Jun 16, 2026
2 checks passed
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.

New member page only shows recent artifacts

1 participant