Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : bkabrda-workspace
---------------------------------------------------------------
commit 4637aa1d3debc35586220cfd68aab4f81410367b
Author: Bohuslav Kabrda <bkabrda(a)redhat.com>
Date: Fri Nov 23 10:21:30 2012 +0100
Don't use with_permissions for getting a copr (using .first() on it results in
just one permission)
---------------------------------------------------------------
wsgi/coprs/logic/coprs_logic.py | 11 ++++++-----
wsgi/coprs/views/coprs_ns/coprs_general.py | 10 ++++++----
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/wsgi/coprs/logic/coprs_logic.py b/wsgi/coprs/logic/coprs_logic.py
index c2b967d..f378de8 100644
--- a/wsgi/coprs/logic/coprs_logic.py
+++ b/wsgi/coprs/logic/coprs_logic.py
@@ -7,7 +7,6 @@ class CoprsLogic(object):
@classmethod
def get(cls, user, username, coprname, **kwargs):
with_builds = kwargs.get('with_builds', False)
- with_permissions = kwargs.get('with_permissions', False)
query = db.session.query(models.Copr).\
join(models.Copr.owner).\
@@ -20,10 +19,6 @@ class CoprsLogic(object):
options(db.contains_eager(models.Copr.builds)).\
order_by(models.Build.submitted_on.desc())
- if with_permissions:
- query = query.outerjoin(models.Copr.copr_permissions).\
- options(db.contains_eager(models.Copr.copr_permissions))
-
return query
@classmethod
@@ -77,6 +72,12 @@ class CoprsPermissionLogic(object):
return query
@classmethod
+ def get_for_copr(cls, user, copr):
+ query = models.CoprPermission.query.filter(models.CoprPermission.copr == copr)
+
+ return query
+
+ @classmethod
def new(cls, user, copr_permission):
db.session.add(copr_permission)
diff --git a/wsgi/coprs/views/coprs_ns/coprs_general.py
b/wsgi/coprs/views/coprs_ns/coprs_general.py
index a281019..c22fc6f 100644
--- a/wsgi/coprs/views/coprs_ns/coprs_general.py
+++ b/wsgi/coprs/views/coprs_ns/coprs_general.py
@@ -72,24 +72,26 @@ def copr_new():
def copr_detail(username, coprname):
form = forms.BuildForm()
try: # query[0:10][0] will raise an index error, if Copr doesn't exist
- query = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname, with_builds
= True, with_permissions = True)
+ query = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname, with_builds
= True)
copr = query[0:10][0]# we retrieved all builds, but we got one copr in a list...
except IndexError:
return page_not_found('Copr with name {0} does not
exist.'.format(coprname))
- return flask.render_template('coprs/detail.html', copr = copr, form = form,
permissions = copr.copr_permissions)
+ permissions = coprs_logic.CoprsPermissionLogic.get_for_copr(flask.g.user,
copr).all()
+ return flask.render_template('coprs/detail.html', copr = copr, form = form,
permissions = permissions)
@coprs_ns.route('/detail/<username>/<coprname>/edit/')
@login_required
def copr_edit(username, coprname):
- query = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname, with_permissions
= True)
+ query = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname)
copr = query.first()
+
if not copr:
return page_not_found('Copr with name {0} does not
exist.'.format(coprname))
form = forms.CoprForm(obj = copr)
- permissions = copr.copr_permissions
+ permissions = coprs_logic.CoprsPermissionLogic.get_for_copr(flask.g.user,
copr).all()
permissions_form =
forms.DynamicPermissionsFormFactory.create_form_cls(permissions)()
return flask.render_template('coprs/edit.html',