[copr] bkabrda-workspace: Extract logic from waiting builds (1fcb1a3)
bkabrda at fedorahosted.org
bkabrda at fedorahosted.org
Mon Nov 19 10:44:14 UTC 2012
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : bkabrda-workspace
>---------------------------------------------------------------
commit 1fcb1a3a18e5ad471cbe285430531f158d8ed9fa
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date: Mon Nov 19 11:44:06 2012 +0100
Extract logic from waiting builds
>---------------------------------------------------------------
wsgi/coprs/logic/builds_logic.py | 13 +++++++++++++
wsgi/coprs/views/backend_ns/backend_general.py | 11 ++++-------
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/wsgi/coprs/logic/builds_logic.py b/wsgi/coprs/logic/builds_logic.py
index 07831c2..35c2c9d 100644
--- a/wsgi/coprs/logic/builds_logic.py
+++ b/wsgi/coprs/logic/builds_logic.py
@@ -34,6 +34,19 @@ class BuildsLogic(object):
return query
@classmethod
+ def get_waiting_builds(cls, user):
+ # this has very different goal then get_multiple, so implement it alone
+ query = models.Build.query.join(models.Build.copr).\
+ join(models.User).\
+ options(db.contains_eager(models.Build.copr)).\
+ options(db.contains_eager('copr.owner')).\
+ filter(models.Build.started_on == None).\
+ filter(models.Build.canceled != True).\
+ order_by(models.Build.submitted_on.asc())
+ return query
+
+
+ @classmethod
def new(cls, user, build, copr, check_authorized = True):
if check_authorized:
if not user.can_build_in(copr):
diff --git a/wsgi/coprs/views/backend_ns/backend_general.py b/wsgi/coprs/views/backend_ns/backend_general.py
index 01e4829..7b92e56 100644
--- a/wsgi/coprs/views/backend_ns/backend_general.py
+++ b/wsgi/coprs/views/backend_ns/backend_general.py
@@ -3,18 +3,15 @@ import flask
from coprs import db
from coprs import models
+from coprs.logic import builds_logic
+
from coprs.views.backend_ns import backend_ns
@backend_ns.route('/waiting_builds/')
def waiting_builds():
- query = db.session.query(models.Build, models.Copr, models.User).\
- join(models.Build.copr).\
- join(models.Copr.owner).\
- filter(models.Build.started_on == None).\
- filter(models.Build.canceled != True).\
- order_by(models.Build.submitted_on.asc())[0:10]
+ query = builds_logic.BuildsLogic.get_waiting_builds(None)
- builds = map(lambda x: x[0], query)
+ builds = query[0:10]
return flask.jsonify({'builds': [build.to_dict(options = {'copr': {'owner': {'__columns_except__': ['openid_name', 'proven'] },
'__columns_except__': ['chroots', 'repos'],
'__included_ids__': False},
More information about the copr-devel
mailing list