Skip to content

Commit 8fb1995

Browse files
committed
fix: Update category sections to use entry.item structure
The Movies, TV Shows, and Anime category sections were still using the old flat item structure (selectattr on watchlist directly), which broke after updating the route to return {item, priority, date_added} dictionaries. Changes: - Replace selectattr filters with manual loops checking entry.item.media_type - Update all category loops from 'for item in category' to 'for entry in category' - Add '{% set item = entry.item %}' at start of each loop - Ensures category filtering works with the new data structure This fixes the '(0)' count issue where categories weren't showing any items.
1 parent e3fe923 commit 8fb1995

2 files changed

Lines changed: 60 additions & 24 deletions

File tree

templates/watchlist.html

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,17 @@ <h3 class="font-bold text-lg mb-1 truncate">{{ item.title }}</h3>
233233

234234
<!-- Movies Section -->
235235
<div class="category-section hidden" data-category="movie">
236-
{% set movies = watchlist|selectattr('media_type', 'equalto', 'movie')|list %}
236+
{% set movies = [] %}
237+
{% for entry in watchlist %}
238+
{% if entry.item.media_type == 'movie' %}
239+
{% set _ = movies.append(entry) %}
240+
{% endif %}
241+
{% endfor %}
237242
<h2 class="text-2xl font-bold mb-4">Movies ({{ movies|length }})</h2>
238243
{% if movies %}
239244
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
240-
{% for item in movies %}
245+
{% for entry in movies %}
246+
{% set item = entry.item %}
241247
<div class="media-card bg-gray-800 rounded-lg overflow-hidden shadow-lg">
242248
<a href="/{{ item.media_type }}/{{ item.tmdb_id }}">
243249
{% if item.poster_path %}
@@ -316,10 +322,15 @@ <h3 class="text-xl font-semibold mb-2">No movies in your watchlist</h3>
316322

317323
<!-- TV Shows Section -->
318324
<div class="category-section hidden" data-category="tv">
319-
{% set tv_shows = watchlist|selectattr('media_type', 'equalto', 'tv')|list %}
325+
{% set tv_shows = [] %}
326+
{% for entry in watchlist %}
327+
{% if entry.item.media_type == 'tv' %}
328+
{% set _ = tv_shows.append(entry) %}
329+
{% endif %}
330+
{% endfor %}
320331
{% set non_anime_tv = [] %}
321-
{% for item in tv_shows %}
322-
{% set title_lower = item.title|lower %}
332+
{% for entry in tv_shows %}
333+
{% set title_lower = entry.item.title|lower %}
323334
{% set is_anime = (
324335
'anime' in title_lower or
325336
'studio ghibli' in title_lower or
@@ -348,13 +359,14 @@ <h3 class="text-xl font-semibold mb-2">No movies in your watchlist</h3>
348359
'kiki' in title_lower
349360
) %}
350361
{% if not is_anime %}
351-
{% set _ = non_anime_tv.append(item) %}
362+
{% set _ = non_anime_tv.append(entry) %}
352363
{% endif %}
353364
{% endfor %}
354365
<h2 class="text-2xl font-bold mb-4">TV Shows ({{ non_anime_tv|length }})</h2>
355366
{% if non_anime_tv %}
356367
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
357-
{% for item in non_anime_tv %}
368+
{% for entry in non_anime_tv %}
369+
{% set item = entry.item %}
358370
<div class="media-card bg-gray-800 rounded-lg overflow-hidden shadow-lg">
359371
<a href="/{{ item.media_type }}/{{ item.tmdb_id }}">
360372
{% if item.poster_path %}
@@ -433,10 +445,15 @@ <h3 class="text-xl font-semibold mb-2">No TV shows in your watchlist</h3>
433445

434446
<!-- Anime Section -->
435447
<div class="category-section hidden" data-category="anime">
436-
{% set tv_shows = watchlist|selectattr('media_type', 'equalto', 'tv')|list %}
448+
{% set tv_shows = [] %}
449+
{% for entry in watchlist %}
450+
{% if entry.item.media_type == 'tv' %}
451+
{% set _ = tv_shows.append(entry) %}
452+
{% endif %}
453+
{% endfor %}
437454
{% set anime_items = [] %}
438-
{% for item in tv_shows %}
439-
{% set title_lower = item.title|lower %}
455+
{% for entry in tv_shows %}
456+
{% set title_lower = entry.item.title|lower %}
440457
{% set is_anime = (
441458
'anime' in title_lower or
442459
'studio ghibli' in title_lower or
@@ -465,13 +482,14 @@ <h3 class="text-xl font-semibold mb-2">No TV shows in your watchlist</h3>
465482
'kiki' in title_lower
466483
) %}
467484
{% if is_anime %}
468-
{% set _ = anime_items.append(item) %}
485+
{% set _ = anime_items.append(entry) %}
469486
{% endif %}
470487
{% endfor %}
471488
<h2 class="text-2xl font-bold mb-4">Anime ({{ anime_items|length }})</h2>
472489
{% if anime_items %}
473490
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
474-
{% for item in anime_items %}
491+
{% for entry in anime_items %}
492+
{% set item = entry.item %}
475493
<div class="media-card bg-gray-800 rounded-lg overflow-hidden shadow-lg">
476494
<a href="/{{ item.media_type }}/{{ item.tmdb_id }}">
477495
{% if item.poster_path %}

templates/wishlist.html

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,17 @@ <h3 class="font-bold text-lg mb-1 truncate">{{ item.title }}</h3>
181181

182182
<!-- Movies Section -->
183183
<div class="category-section hidden" data-category="movie">
184-
{% set movies = wishlist|selectattr('media_type', 'equalto', 'movie')|list %}
184+
{% set movies = [] %}
185+
{% for entry in wishlist %}
186+
{% if entry.item.media_type == 'movie' %}
187+
{% set _ = movies.append(entry) %}
188+
{% endif %}
189+
{% endfor %}
185190
<h2 class="text-2xl font-bold mb-4">Movies ({{ movies|length }})</h2>
186191
{% if movies %}
187192
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
188-
{% for item in movies %}
193+
{% for entry in movies %}
194+
{% set item = entry.item %}
189195
<div class="media-card bg-gray-800 rounded-lg overflow-hidden shadow-lg">
190196
<a href="/{{ item.media_type }}/{{ item.tmdb_id }}">
191197
{% if item.poster_path %}
@@ -264,10 +270,15 @@ <h3 class="text-xl font-semibold mb-2">No movies in your wishlist</h3>
264270

265271
<!-- TV Shows Section -->
266272
<div class="category-section hidden" data-category="tv">
267-
{% set tv_shows = wishlist|selectattr('media_type', 'equalto', 'tv')|list %}
273+
{% set tv_shows = [] %}
274+
{% for entry in wishlist %}
275+
{% if entry.item.media_type == 'tv' %}
276+
{% set _ = tv_shows.append(entry) %}
277+
{% endif %}
278+
{% endfor %}
268279
{% set non_anime_tv = [] %}
269-
{% for item in tv_shows %}
270-
{% set title_lower = item.title|lower %}
280+
{% for entry in tv_shows %}
281+
{% set title_lower = entry.item.title|lower %}
271282
{% set is_anime = (
272283
'anime' in title_lower or
273284
'studio ghibli' in title_lower or
@@ -296,13 +307,14 @@ <h3 class="text-xl font-semibold mb-2">No movies in your wishlist</h3>
296307
'kiki' in title_lower
297308
) %}
298309
{% if not is_anime %}
299-
{% set _ = non_anime_tv.append(item) %}
310+
{% set _ = non_anime_tv.append(entry) %}
300311
{% endif %}
301312
{% endfor %}
302313
<h2 class="text-2xl font-bold mb-4">TV Shows ({{ non_anime_tv|length }})</h2>
303314
{% if non_anime_tv %}
304315
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
305-
{% for item in non_anime_tv %}
316+
{% for entry in non_anime_tv %}
317+
{% set item = entry.item %}
306318
<div class="media-card bg-gray-800 rounded-lg overflow-hidden shadow-lg">
307319
<a href="/{{ item.media_type }}/{{ item.tmdb_id }}">
308320
{% if item.poster_path %}
@@ -381,10 +393,15 @@ <h3 class="text-xl font-semibold mb-2">No TV shows in your wishlist</h3>
381393

382394
<!-- Anime Section -->
383395
<div class="category-section hidden" data-category="anime">
384-
{% set tv_shows = wishlist|selectattr('media_type', 'equalto', 'tv')|list %}
396+
{% set tv_shows = [] %}
397+
{% for entry in wishlist %}
398+
{% if entry.item.media_type == 'tv' %}
399+
{% set _ = tv_shows.append(entry) %}
400+
{% endif %}
401+
{% endfor %}
385402
{% set anime_items = [] %}
386-
{% for item in tv_shows %}
387-
{% set title_lower = item.title|lower %}
403+
{% for entry in tv_shows %}
404+
{% set title_lower = entry.item.title|lower %}
388405
{% set is_anime = (
389406
'anime' in title_lower or
390407
'studio ghibli' in title_lower or
@@ -413,13 +430,14 @@ <h3 class="text-xl font-semibold mb-2">No TV shows in your wishlist</h3>
413430
'kiki' in title_lower
414431
) %}
415432
{% if is_anime %}
416-
{% set _ = anime_items.append(item) %}
433+
{% set _ = anime_items.append(entry) %}
417434
{% endif %}
418435
{% endfor %}
419436
<h2 class="text-2xl font-bold mb-4">Anime ({{ anime_items|length }})</h2>
420437
{% if anime_items %}
421438
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
422-
{% for item in anime_items %}
439+
{% for entry in anime_items %}
440+
{% set item = entry.item %}
423441
<div class="media-card bg-gray-800 rounded-lg overflow-hidden shadow-lg">
424442
<a href="/{{ item.media_type }}/{{ item.tmdb_id }}">
425443
{% if item.poster_path %}

0 commit comments

Comments
 (0)