Introduce client-side localization helper and en/fr locale bundles.
Route admin control, picks, movies, stats, winners and settings UIs through i18n keys instead of hardcoded text.
Remove French text from the English UI and standardize shared messages (saving, network errors, confirmations).
Update .gitignore to ignore editor metadata and localization helper artifacts.
- Rename "Statistiques" to "Stats" in navbar across all pages
- Fix Admin button showing yellow border on click
- Fix toggle switch background to blend with dark mode container
Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add runtime field to Movie model and display formatted duration (e.g., 2h 22min) on movie cards
- Add bulk "Refresh OMDb" button in admin panel for selected movies
- Add runtime field to movie edit modal in admin panel
- Implement first-time setup flow: show admin creation form on login page when no admin exists
- Block registration page until initial setup is complete
Co-Authored-By: Claude Opus 4.5 <[email protected]>
The toggle button for "Films non regardés seulement" was invisible
in dark mode. Added specific styles for the form-switch component
with proper background colors and slider visibility.
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Issues fixed:
- #87: Extend video session cookie to 24h and add keep-alive refresh every
30 minutes during playback to prevent expiration while watching long movies
- #88: Rank checklist completers by completion datetime (earliest first)
in both the 100% tab and main stats ranking as tiebreaker
- #89: Add confirmation modal when unchecking a movie from the checklist
to prevent accidental removal
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Persist last applied theme in session storage to avoid light-mode flash and toggle flicker when navigating between pages (notably player.html). Also revert README preview back to preview.png for now.
Enable toggling ratings off by re-clicking the same star in the player and movie list, and tighten the movies card layout around rating and categories.
Store per-user 5-star ratings with averages and surface them in the player. Refresh movie list layout to show ratings and details in a cleaner card layout.
Include low-quality video file paths in movie settings, expose them through the admin UI, and add a player toggle that streams /api/video with quality=low when available. Extend both Node and Python video endpoints to serve the low-quality file.
Test: not run (mark for testing)
- Main README.md:
- Reorganized features into User Features and Admin Features sections
- Added missing features: Oscar picks system, category management, winner management, view all picks, database backup/restore
- Updated database models section to list all 6 models
- Simplified Python video server section to reference detailed README
- Kept preview image and existing structure
- python_video_server/README.md:
- Enhanced Endpoints section with response codes and detailed descriptions
- Added comprehensive Functions Reference section:
- Public Endpoints: create_video_session, stream_video, healthz
- Helper Functions: all 16 internal functions documented with descriptions
- Verified all features, environment variables, and endpoints match actual code
- No content removed, only additions for better documentation
- Fix category editing: Added GET /api/categories/:categoryId endpoint to fetch single category by ID, fixing 'Category not found' error when editing categories for active year
- Fix picks handling: Filter out picks for deleted categories when submitting, loading, and calculating scores to prevent errors
- Fix scores display: Always calculate scores from pickDetails instead of stored score value to ensure accuracy when categories are removed
- Add picks cleanup: Automatically clean up picks for deleted categories in database when categories are deleted or scores are fetched
- Fix winner clearing: Allow clearing winners by accepting empty/null winnerName in PUT /api/categories/:categoryId/winner
- Enable category number editing: Made category number editable in edit modal with validation and conflict checking; automatically updates all related picks when category number changes
- Add bulk category management: Added bulk select and delete functionality in Liste tab with select all checkbox and bulk delete button
- Remove import feature: Completely removed PDF/image import functionality including OCR, file upload, and all related UI components
- Update dependencies: Removed unused packages (tesseract.js, sharp, pdfjs-dist, canvas) after removing import feature
- Improve file cleanup: Added retry logic for file deletion to handle Windows file locking issues
* feat: Add movie playback progress display and API
Co-authored-by: mathieumoran1 <[email protected]>
* Add padding to bottom of movies page
Co-authored-by: mathieumoran1 <[email protected]>
* Fix: Hide resume/progress bar when near end of video
Co-authored-by: mathieumoran1 <[email protected]>
---------
Co-authored-by: Cursor Agent <[email protected]>
* feat: Add modal to display watched movies with details
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor movie modal: remove search, improve category display
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor movie category display to use details element
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor movie playback and add clickability to stats
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor: Improve movie linking and player logic
Co-authored-by: mathieumoran1 <[email protected]>
* Prevent caching of sensitive and dynamic API data
Co-authored-by: mathieumoran1 <[email protected]>
* feat: Prevent caching of sensitive admin data
Co-authored-by: mathieumoran1 <[email protected]>
* feat: Add no-cache headers to API requests
Co-authored-by: mathieumoran1 <[email protected]>
* Remove unused movie sorting functionality
The movie sorting dropdown and its associated logic were removed as they are no longer needed.
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor admin settings to use tabs instead of accordion
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor: Adjust button layout for active year selection
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor active year selection UI
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor: Improve admin settings layout for better responsiveness
Co-authored-by: mathieumoran1 <[email protected]>
* Remove redundant completion explanation from user-stat.html
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor user stats page to display year in ranking tab badge
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor: Rename 'Finisseur(s)' column to 'Nombre'
Co-authored-by: mathieumoran1 <[email protected]>
* Refactor: Remove redundant completer count column
Co-authored-by: mathieumoran1 <[email protected]>
---------
Co-authored-by: Cursor Agent <[email protected]>