]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/dbconn.py
daklib/utils.py (poolify): no longer include component
[dak.git] / daklib / dbconn.py
index e320a78f0da17d9e4b0adbfd863ae7d0c988126d..d9ab4cb847b3b9ef2b58cebf8c83af98d4acb267 100644 (file)
@@ -1440,6 +1440,13 @@ class PoolFile(ORMObject):
         af = session.query(ArchiveFile).join(Archive).filter(ArchiveFile.file == self).first()
         return af.path
 
+    @property
+    def component(self):
+        session = DBConn().session().object_session(self)
+        component_id = session.query(ArchiveFile.component_id).filter(ArchiveFile.file == self) \
+                              .group_by(ArchiveFile.component_id).one()
+        return session.query(Component).get(component_id)
+
     @property
     def basename(self):
         return os.path.basename(self.filename)
@@ -3397,7 +3404,7 @@ class DBConn(object):
                                  arch_id = self.tbl_binaries.c.architecture,
                                  architecture = relation(Architecture),
                                  poolfile_id = self.tbl_binaries.c.file,
-                                 poolfile = relation(PoolFile, backref=backref('binary', uselist = False)),
+                                 poolfile = relation(PoolFile),
                                  binarytype = self.tbl_binaries.c.type,
                                  fingerprint_id = self.tbl_binaries.c.sig_fpr,
                                  fingerprint = relation(Fingerprint),
@@ -3585,7 +3592,7 @@ class DBConn(object):
                                  version = self.tbl_source.c.version,
                                  maintainer_id = self.tbl_source.c.maintainer,
                                  poolfile_id = self.tbl_source.c.file,
-                                 poolfile = relation(PoolFile, backref=backref('source', uselist = False)),
+                                 poolfile = relation(PoolFile),
                                  fingerprint_id = self.tbl_source.c.sig_fpr,
                                  fingerprint = relation(Fingerprint),
                                  changedby_id = self.tbl_source.c.changedby,