From 5b4c60ecba044b361ac561a5d6316b39a4790283 Mon Sep 17 00:00:00 2001 From: Ruud Date: Sun, 17 Mar 2013 01:14:15 +0100 Subject: [PATCH] Optimize dashboard.soon with joins --- couchpotato/core/plugins/dashboard/main.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/couchpotato/core/plugins/dashboard/main.py b/couchpotato/core/plugins/dashboard/main.py index 814b9d6c..e4e7b997 100644 --- a/couchpotato/core/plugins/dashboard/main.py +++ b/couchpotato/core/plugins/dashboard/main.py @@ -6,6 +6,7 @@ from couchpotato.core.helpers.variable import splitString, tryInt from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin from couchpotato.core.settings.model import Movie +from sqlalchemy.orm import joinedload_all from sqlalchemy.sql.expression import or_ import random import time @@ -75,6 +76,14 @@ class Dashboard(Plugin): # Get all active movies q = db.query(Movie) \ .join(Movie.profile, Movie.library) \ + .options(joinedload_all('releases')) \ + .options(joinedload_all('releases.files')) \ + .options(joinedload_all('releases.info')) \ + .options(joinedload_all('profile.types')) \ + .options(joinedload_all('library.titles')) \ + .options(joinedload_all('library.files')) \ + .options(joinedload_all('status')) \ + .options(joinedload_all('files')) \ .filter(or_(*[Movie.status.has(identifier = s) for s in ['active']])) \ .group_by(Movie.id)