| Age | Commit message (Collapse) | Author |
|
- Default date_watched to today when adding a new film (JS, en-CA locale)
- Match rewatch history by tmdb_id when available, fall back to title
- Replace inline styles in rewatch section with CSS classes
- Simplify redundant Jinja conditions (rewatch_history and, loop.length > 1)
- Move review-panel margin-top hack to .review-panel-spaced class
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Add margin-top to highlights section to match grid gap (24px). Remove margin-bottom from review-panel and rely on grid gap for internal spacing.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Solo watches aren't relevant to the companions breakdown.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Gives detail panels proper spacing from each other on film detail page.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Prevents year review panels from touching the bottom of the page.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Display all watches for a film with dates, ratings, and companions. Show time elapsed between rewatches and highlight when rating changed.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
The rewatch rate (percentage of films rewatched) is less useful than the detailed rewatch patterns panel. Removed the metric section from both the template and backend payload.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Changed rewatch patterns panel from stats-panel-wide to regular stats-panel so it displays in the two-column grid next to the rewatch rate metric.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Adds a "Rewatches" section to /stats that displays films you've watched multiple times, grouped by title. For each rewatched film, shows:
- Watch count (e.g., "3×")
- Rating history (e.g., ✦ → ✦✦ → ✦) with accent highlight when ratings drift
- Days between first and last watch
Changes:
- routers/stats.py: Group films by title in _build_stats_payload, compute rewatch details (ratings, days between, rating change flag), add rewatch_patterns key
- templates/stats.html: Add "Rewatches" panel HTML and JS renderer (renderLists)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
|
|
Introduces a public-facing /about page that explains the 1-3 star rating rubric with real examples pulled from the diary. Each star tier displays 3 randomly-selected, unique films (deduplicated by title to avoid rewatch duplicates).
Changes:
- New routers/about.py: GET /about queries films by stars, dedupes, randomizes
- New templates/about.html: Page with eyebrow, h1, three tier sections with example film cards, closing philosophy, and View Profile button
- main.py: Import about router, register it, add /about to public_paths in AuthMiddleware
- templates/base.html: Add About nav link after Stats
- templates/profile.html: Add About link to /tyler nav
- templates/login.html: Add About and View Profile buttons in footer, plus "Made with Lumière" repo link
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Adds genre field to Film model with TMDB enrichment. Genres populate from
TMDB detail fetch during add/edit and bulk enrichment. Genre metadata displays
on film cards, detail page (Production section), stats page (top genres panel),
and year-in-review (by decade and genre breakdowns).
Auto-detects rewatches when adding films via TMDB autocomplete - if a film with
the same TMDB ID already exists in diary, pre-fills rewatch checkbox and count.
Rewatch count now displays on film cards as "Rewatch #N".
Stats page now shows:
- Top genres (most watched)
- Film decades (sorted chronologically)
- Already shows: directors, companions, star distribution, rewatch rate
Year-in-review shows decades and genres alongside monthly activity and companions.
Bulk enrichment endpoint (/data/enrich-posters) now fetches missing genre
metadata along with posters and TMDB IDs.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- New movie_images() async function in services/tmdb.py fetches poster
URLs from TMDB /movie/{id}/images endpoint, filtering for English
and no-text posters only
- New GET /tmdb/posters endpoint returns list of available posters for
a TMDB ID
- New POST /films/{film_id}/poster endpoint to save selected poster
(mirrors the stars endpoint pattern)
- Add "Change Poster" button on detail page (only shown if film has a
TMDB ID) that opens a 3-column grid of posters
- Selected poster gets accent border, main image updates instantly, no
page reload needed
- Posters are cached per load to avoid refetching on re-open
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- Add _SORT_COLUMNS dict to routers/films.py with 8 sort options
- Extend _get_shelf_query to accept q (search) and sort parameters
- Update /films/partial endpoint to accept q/sort query params and pass
search_active to template to suppress month grouping when searching
- Add filter bar (search input + sort select) to templates/index.html
- Add data-shelf attribute to #film-feed for JS to read current shelf
- Rewrite infinite scroll JS to support debounced search (300ms),
feed reset on filter/sort change, and pass params on all fetches
Filters text search by title OR director (case-insensitive ilike).
Sort options: date watched (newest/oldest), title (A-Z/Z-A), year,
stars. Month grouping disabled when search is active.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Filter out 'solo' entries from the watched_with_breakdown on the stats
page so only companions are shown.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Scale down heatmap cells and gaps on mobile (8px cells, 2px gaps
instead of 13px/4px). Reduce stats bar row label width from 64px to
40px. Make stats list single column on mobile to improve spacing.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Set menu-toggle to display: none by default so it only appears on
mobile (max-width: 760px) where it's explicitly shown.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Use visibility and opacity instead of max-height/overflow to completely
hide the mobile menu when closed. Prevents elements from peeking out.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Hide nav-actions on mobile (<= 760px) and show a hamburger menu button
instead. Menu opens/closes on click and closes when a link is clicked
or when clicking outside. Hamburger icon created with CSS pseudo-elements.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Add /films/partial to public paths so unauthenticated users can load
all films on /tyler public profile. The All Films tab now works
without requiring login.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- Use person details endpoint instead of search to get full biography
- Search endpoint only returns truncated/partial biography
- Now correctly fetches complete biography from TMDB
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- Fetch director profile image and biography from TMDB API
- Display image next to director name with lazy loading
- Show biography below director name
- Gracefully handle missing data (image/biography optional)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- Add tab navigation for switching between overview stats and full filmography
- All Films tab loads diary entries with infinite scroll
- Lazy load films only when tab is selected
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- Create gold cinema-themed SVG favicon
- Add to base.html and profile.html templates
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
|
|
|
|
- Implement session-based auth with argon2 password hashing
- Add login form and logout button in nav
- Create public /tyler profile page with curated stats
- Implement infinite scroll for film lists (load 20 at a time)
- Add lazy loading for poster images
- Fix profile page CSS to use dark theme variables
- Use consistent star character (✦) across all pages
- Add /films/partial endpoint for pagination
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
|
|
|
|
|