[copr] master: Use association proxy for copr<->mock_chroot relation (ba77b9a)
bkabrda at fedoraproject.org
bkabrda at fedoraproject.org
Tue Jan 22 14:06:30 UTC 2013
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit ba77b9a438c8f4e39b6e0262b6c8705665bc62f5
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date: Tue Jan 22 14:44:30 2013 +0100
Use association proxy for copr<->mock_chroot relation
>---------------------------------------------------------------
coprs_frontend/coprs/models.py | 15 +++------------
1 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/coprs_frontend/coprs/models.py b/coprs_frontend/coprs/models.py
index 49e8aee..8b99942 100644
--- a/coprs_frontend/coprs/models.py
+++ b/coprs_frontend/coprs/models.py
@@ -1,5 +1,7 @@
import datetime
+from sqlalchemy.ext.associationproxy import association_proxy
+
from coprs import constants
from coprs import db
from coprs import helpers
@@ -116,6 +118,7 @@ class Copr(db.Model, Serializer):
# relations
owner_id = db.Column(db.Integer, db.ForeignKey('user.id'))
owner = db.relationship('User', backref = db.backref('coprs'))
+ mock_chroots = association_proxy('copr_chroots', 'mock_chroot')
@property
def repos_list(self):
@@ -129,18 +132,6 @@ class Copr(db.Model, Serializer):
def instructions_or_not_filled(self):
return self.instructions or 'Instructions not filled in by author.'
- @property
- def mock_chroots(self):
- if not hasattr(self, '_mock_chroots'):
- self._mock_chroots = MockChroot.query.join(CoprChroot).\
- filter(CoprChroot.copr_id==self.id).\
- filter(MockChroot.is_active==True).all()
- self._mock_chroots.sort(cmp=lambda x,y: cmp(x.chroot_name, y.chroot_name))
-
- return self._mock_chroots
-
- __mapper_args__ = {'order_by': id.desc()}
-
class CoprPermission(db.Model, Serializer):
# 0 = nothing, 1 = asked for, 2 = approved
# not using enum, as that translates to varchar on some DBs
More information about the copr-devel
mailing list