Optimize dashboard.soon with joins

This commit is contained in:
Ruud committed 2013-03-17 01:14:15 +01:00
1 parent 7b7488ece8
commit 5b4c60ecba
1 file changed
+9
@@ -6,6 +6,7 @@ from couchpotato.core.helpers.variable import splitString, tryInt
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin from couchpotato.core.plugins.base import Plugin
from couchpotato.core.settings.model import Movie from couchpotato.core.settings.model import Movie
from sqlalchemy.orm import joinedload_all
from sqlalchemy.sql.expression import or_ from sqlalchemy.sql.expression import or_
import random import random
import time import time
@@ -75,6 +76,14 @@ class Dashboard(Plugin):
# Get all active movies # Get all active movies
q = db.query(Movie) \ q = db.query(Movie) \
.join(Movie.profile, Movie.library) \ .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']])) \ .filter(or_(*[Movie.status.has(identifier = s) for s in ['active']])) \
.group_by(Movie.id) .group_by(Movie.id)