summaryrefslogtreecommitdiffstats
path: root/leafymiracle/models.py
diff options
context:
space:
mode:
authorLuke Macken <lmacken@redhat.com>2011-04-12 21:35:04 -0400
committerLuke Macken <lmacken@redhat.com>2011-04-12 21:35:04 -0400
commitef0f36eee50df5081280edd069ff452573c0f679 (patch)
tree91fb6c62687d2c3c5107e3dc8c97cc2819768792 /leafymiracle/models.py
parent79380e187bfa4b1ee5db7f017adb9c6fae3b13ad (diff)
parent13d9a8971b2a0113ee4535e5a6f3e644032cb8fe (diff)
downloadleafymiracle-ef0f36eee50df5081280edd069ff452573c0f679.tar.gz
leafymiracle-ef0f36eee50df5081280edd069ff452573c0f679.tar.xz
leafymiracle-ef0f36eee50df5081280edd069ff452573c0f679.zip
Merge branch 'dependencies'
Conflicts: .gitignore README.txt
Diffstat (limited to 'leafymiracle/models.py')
-rw-r--r--leafymiracle/models.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/leafymiracle/models.py b/leafymiracle/models.py
index 0e86aa1..0edbdd4 100644
--- a/leafymiracle/models.py
+++ b/leafymiracle/models.py
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from sqlalchemy import Integer, Column, Unicode, UnicodeText, ForeignKey
+from sqlalchemy import Integer, Column, Unicode, UnicodeText, ForeignKey, Table
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, scoped_session, sessionmaker
@@ -115,6 +115,22 @@ class Package(Base):
""".format(**self.__dict__)
}
+dependencies_mapping = Table(
+ 'packages_dependencies_mapping', Base.metadata,
+ Column('depender_id', Integer,
+ ForeignKey('packages.id'), primary_key=True),
+ Column('dependee_id', Integer,
+ ForeignKey('packages.id'), primary_key=True))
+
+Package.__mapper__.add_property('dependencies', relationship(
+ Package,
+ primaryjoin=Package.id==dependencies_mapping.c.dependee_id,
+ secondaryjoin=dependencies_mapping.c.depender_id==Package.id,
+ secondary=dependencies_mapping,
+ doc="List of this packages' dependencies!",
+))
+
+
def initialize_sql(engine):
DBSession.configure(bind=engine)