Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This comment has been minimized.
This comment has been minimized.
Codecov Report✅ All modified and coverable lines are covered by tests. 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:
|
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
SummaryThis PR significantly improves the proposals recap screen UX by restructuring the layout and adding comprehensive statistics tracking. The main changes:
Architecture and DesignGood 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 CoverageNo 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 HandlingGraceful 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. PerformanceNo 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 MaintainabilityMagic 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
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. |
Looks like this now: