[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