From 364634151d756ce28060e9a982019e7f7bdb17cc Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Thu, 7 May 2026 00:21:24 -0700 Subject: Add rewatch history to film detail page 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 --- routers/films.py | 16 +++++++++++++++- templates/detail.html | 31 +++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/routers/films.py b/routers/films.py index e432a5c..c85d811 100644 --- a/routers/films.py +++ b/routers/films.py @@ -443,10 +443,24 @@ def get_films_partial( async def film_detail(film_id: int, request: Request, db: Session = Depends(get_db)): film = _get_film_or_404(db, film_id) tmdb_context = await _film_tmdb_context(film) + + rewatch_history = ( + db.query(Film) + .filter(Film.title == film.title, Film.shelf == "diary") + .order_by(Film.date_watched.asc()) + .all() + ) + return templates.TemplateResponse( request=request, name="detail.html", - context={"request": request, "film": film, "active_shelf": film.shelf, "tmdb_context": tmdb_context}, + context={ + "request": request, + "film": film, + "active_shelf": film.shelf, + "tmdb_context": tmdb_context, + "rewatch_history": rewatch_history, + }, ) diff --git a/templates/detail.html b/templates/detail.html index 156dec2..325b0c1 100644 --- a/templates/detail.html +++ b/templates/detail.html @@ -87,6 +87,37 @@ + {% if rewatch_history and 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 %} +

+
+ {% if loop.length > 1 and 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 }}) + {% endif %} + {% endif %} + + {% endif %} +
+ {% endfor %} +
+
+ {% endif %} + {% if tmdb_context %}

Summary

-- cgit v1.3-2-g0d8e