X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=d9ab4cb847b3b9ef2b58cebf8c83af98d4acb267;hb=d48e4be67b4efe86133bdff6a310eb3e071c9f51;hp=e320a78f0da17d9e4b0adbfd863ae7d0c988126d;hpb=70e3e18a44c235b8c39d4504af10f5253d34ba9d;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index e320a78f..d9ab4cb8 100644 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -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,