Skip to content

Improve proposals recap screen#4549

Merged
patrick91 merged 3 commits intomainfrom
improve/review
Feb 2, 2026
Merged

Improve proposals recap screen#4549
patrick91 merged 3 commits intomainfrom
improve/review

Conversation

@patrick91
Copy link
Member

@patrick91 patrick91 commented Feb 2, 2026

Looks like this now:

image

@vercel
Copy link

vercel bot commented Feb 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pycon Ready Ready Preview Feb 2, 2026 0:44am

@patrick91 patrick91 marked this pull request as ready for review February 2, 2026 12:05
@claude

This comment has been minimized.

@codecov
Copy link

codecov bot commented Feb 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.15%. Comparing base (8e4618c) to head (1801e3c).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4549   +/-   ##
=======================================
  Coverage   94.15%   94.15%           
=======================================
  Files         353      353           
  Lines       10342    10342           
  Branches      761      761           
=======================================
  Hits         9738     9738           
  Misses        502      502           
  Partials      102      102           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@marcoacierno marcoacierno changed the title Improve recap screen Improve proposals recap screen Feb 2, 2026
Promote duration, type, and audience level from the collapsible
"Additional info" section to dedicated table columns. Add compact
column styling and reduce header padding for a denser layout.
…score

- Add language column with flag emojis and gender column (M/F/Other)
- Merge status and pending status into one column with arrow and tooltip
- Remove details wrapper, show additional info directly
- Truncate score to 2 decimal places
- Fix header padding
@claude
Copy link
Contributor

claude bot commented Feb 2, 2026

Summary

This PR significantly improves the proposals recap screen UX by restructuring the layout and adding comprehensive statistics tracking. The main changes:

  • Moved stats to a collapsible right sidebar (mirroring Django admin left nav pattern) instead of a toggleable bottom bar
  • Added detailed breakdown statistics: gender distribution and submission type counts by language
  • Enhanced table columns: Added Duration, Type, Level, Language, and Gender columns for at-a-glance information
  • Streamlined status display: Combined current and pending status into one column with visual indicator
  • Improved visual density: Made better use of screen space with narrower columns and sidebar layout

Architecture and Design

Good separation of concerns: The template handles presentation while the adapter provides necessary context (submission_types, audience_levels).

Minor concern - Layout manipulation via JS: The sidebar/toggle elements are moved into #main via JavaScript (lines 314-333). While functional, this DOM manipulation could be fragile if Django admin structure changes. Consider if this can be achieved through Django template inheritance instead.

Proper use of localStorage: Sidebar collapsed state is persisted appropriately.


Testing and Coverage

No tests included: This is a significant UX change with substantial JavaScript logic additions. Consider adding JavaScript tests for the stats calculation logic (lines 422-524), tests verifying gender and type counters update correctly, and tests for sidebar toggle persistence.

Data accuracy: The stats computation relies on client-side JavaScript aggregation of proposal data. Verify that the speakerGender field is always populated and the gender counting logic correctly handles all possible values from the database.


Error Handling

Graceful fallbacks: The code uses safe defaults (unknown for missing gender, or 0 for missing counts).

Silent failures: If DOM elements are not found (lines 300-307), the UI may break silently. Consider adding console warnings when refs are missing.


Performance

No N+1 concerns: This is frontend-only; the backend adapter already uses proper prefetching.

Efficient client-side aggregation: Single pass through submissions array with proper accumulation (lines 428-470).

Minor optimization opportunity: The gender/type stats updates loop through DOM queries multiple times (lines 507-524). Consider batching these or using a more efficient lookup pattern if the number of types/genders grows.


Code Quality and Maintainability

Magic strings: Gender keys are hardcoded (male, female, other, not_say, unknown) on line 425. If the backend model changes these values, the frontend will break silently. Consider documenting the contract between backend and frontend or fetching these values from Django context.

Improved readability: The table is now much more scannable with dedicated columns vs nested lists.

Removed toggle functionality: The old bottom bar toggle logic (lines 410-433 deleted) provided user control. Verify users are happy with the always-visible bottom bar approach.


Recommendations

  1. Add JavaScript tests for the stats calculation logic
  2. Add error handling for missing DOM elements
  3. Document the gender/type value contract between backend and frontend
  4. Consider template-based layout instead of JS DOM manipulation for the sidebar
  5. Verify with users that the always-visible bottom bar is preferred over the toggleable version

Overall, this is a solid UX improvement that makes the recap screen more informative and efficient. The main concerns are around test coverage and the fragility of client-side DOM manipulation.

@patrick91 patrick91 merged commit 6616891 into main Feb 2, 2026
8 checks passed
@patrick91 patrick91 deleted the improve/review branch February 2, 2026 12:52
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