From 98a0c3e5f99ecacaed0ec03232fb90d28e65b43c Mon Sep 17 00:00:00 2001 From: DariusIII Date: Mon, 9 Mar 2026 10:15:55 +0100 Subject: [PATCH] Fix N+1 query for failed releases --- app/Http/Controllers/SeriesController.php | 4 ++++ resources/views/series/viewseries.blade.php | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/SeriesController.php b/app/Http/Controllers/SeriesController.php index 20f0a6ead..948921e66 100644 --- a/app/Http/Controllers/SeriesController.php +++ b/app/Http/Controllers/SeriesController.php @@ -10,6 +10,7 @@ use App\Models\Video; use App\Services\EpisodeHydrationService; use App\Services\Releases\ReleaseSearchService; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Http\Request; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Cache; @@ -67,6 +68,9 @@ class SeriesController extends BasePageController $myshows = UserSerie::getShow($this->userdata->id, $show['id']); $this->episodeHydrationService->hydrateEpisodeMetadata($rel); + if ($rel instanceof EloquentCollection && $rel->isNotEmpty()) { + $rel->loadCount('failed'); + } // Sort releases by season, episode, date posted. $series = $episode = $posted = []; diff --git a/resources/views/series/viewseries.blade.php b/resources/views/series/viewseries.blade.php index 40de36f73..26cfb4fda 100644 --- a/resources/views/series/viewseries.blade.php +++ b/resources/views/series/viewseries.blade.php @@ -269,10 +269,10 @@ class="text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 font-medium wrap-break-word break-all"> {{ $release->searchname }} - @if(!empty($release->failed) && $release->failed->count() > 0) + @if(($release->failed_count ?? 0) > 0) - Failed ({{ $release->failed->count() }}) + title="{{ $release->failed_count }} user(s) reported download failure"> + Failed ({{ $release->failed_count }}) @endif