From 65466fd5c645e546707ce699b4ea289f894fea20 Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Sat, 9 May 2026 01:14:57 -0700 Subject: Auto-select today's date on add form; clean up rewatch history panel - 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 --- routers/films.py | 5 ++++- static/app.js | 5 +++++ static/styles.css | 50 ++++++++++++++++++++++++++++++++++++++++++++++ templates/detail.html | 20 +++++++++---------- templates/form.html | 3 ++- templates/year_review.html | 2 +- 6 files changed, 72 insertions(+), 13 deletions(-) diff --git a/routers/films.py b/routers/films.py index c85d811..333eaef 100644 --- a/routers/films.py +++ b/routers/films.py @@ -444,9 +444,12 @@ async def film_detail(film_id: int, request: Request, db: Session = Depends(get_ film = _get_film_or_404(db, film_id) tmdb_context = await _film_tmdb_context(film) + rewatch_filter = ( + Film.tmdb_id == film.tmdb_id if film.tmdb_id is not None else Film.title == film.title + ) rewatch_history = ( db.query(Film) - .filter(Film.title == film.title, Film.shelf == "diary") + .filter(rewatch_filter, Film.shelf == "diary") .order_by(Film.date_watched.asc()) .all() ) diff --git a/static/app.js b/static/app.js index fae2dbd..db3e694 100644 --- a/static/app.js +++ b/static/app.js @@ -1,3 +1,8 @@ +const dateDefault = document.querySelector("[data-default-today]"); +if (dateDefault) { + dateDefault.value = new Date().toLocaleDateString("en-CA"); +} + // Hamburger menu toggle const menuToggle = document.querySelector("#menu-toggle"); const navActions = document.querySelector("#nav-actions"); diff --git a/static/styles.css b/static/styles.css index 9507439..24340e7 100644 --- a/static/styles.css +++ b/static/styles.css @@ -488,6 +488,52 @@ h2 { margin-bottom: 10px; } +.rewatch-list { + display: flex; + flex-direction: column; + gap: 12px; +} + +.rewatch-row { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 12px; + border-bottom: 1px solid var(--line); +} + +.rewatch-meta { + margin: 0 0 4px; + color: var(--muted); + font-size: 0.9rem; +} + +.rewatch-rating { + margin: 0; + display: flex; + align-items: center; + gap: 8px; +} + +.rewatch-stars { + color: var(--accent); +} + +.rewatch-companion { + color: var(--muted); + font-size: 0.9rem; +} + +.rewatch-delta { + color: var(--subtle); + font-size: 0.85rem; + text-align: right; +} + +.rewatch-delta-rating { + color: var(--accent); +} + .detail-tagline { margin: 0 0 12px; color: var(--accent-strong); @@ -895,6 +941,10 @@ textarea:focus { grid-column: 1 / -1; } +.review-panel-spaced { + margin-top: 24px; +} + .year-bars { display: grid; gap: 10px; diff --git a/templates/detail.html b/templates/detail.html index 325b0c1..83bd26a 100644 --- a/templates/detail.html +++ b/templates/detail.html @@ -87,27 +87,27 @@ - {% if rewatch_history and rewatch_history|length > 1 %} + {% if rewatch_history|length > 1 %}

Rewatches

-
+
{% for entry in rewatch_history %} -
+
-

{{ entry.date_watched }}

-

- {% for _ in range(entry.stars) %}✦{% endfor %} - {% if entry.watched_with %}with {{ entry.watched_with }}{% endif %} +

{{ entry.date_watched }}

+

+ {% for _ in range(entry.stars) %}✦{% endfor %} + {% if entry.watched_with %}with {{ entry.watched_with }}{% endif %}

- {% if loop.length > 1 and not loop.first %} - + {% if not loop.first %} + {% set prev_entry = rewatch_history[loop.index - 2] %} {% if prev_entry.date_watched %} {% set days = (entry.date_watched - prev_entry.date_watched).days %} {{ days }}d {% if entry.stars != prev_entry.stars %} - ({{ prev_entry.stars }}→{{ entry.stars }}) + ({{ prev_entry.stars }}→{{ entry.stars }}) {% endif %} {% endif %} diff --git a/templates/form.html b/templates/form.html index 489d9c6..fce5e48 100644 --- a/templates/form.html +++ b/templates/form.html @@ -68,7 +68,8 @@
- +
diff --git a/templates/year_review.html b/templates/year_review.html index 2a75f5b..82d372c 100644 --- a/templates/year_review.html +++ b/templates/year_review.html @@ -111,7 +111,7 @@
-
+

Highlights

{% if highlight_films.highest_rated %} -- cgit v1.3-2-g0d8e