Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/grumpy:master commit in: backend/lib/
Date: Sun, 04 Dec 2016 06:27:29
Message-Id: 1480832679.a0e5f8b3559f243236d9dd1170a00d4405042631.leio@gentoo
1 commit: a0e5f8b3559f243236d9dd1170a00d4405042631
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Sun Dec 4 06:24:39 2016 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Sun Dec 4 06:24:39 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/grumpy.git/commit/?id=a0e5f8b3
7
8 models: Add association table and ORM relationship between projects and members
9
10 backend/lib/models.py | 12 ++++++++++++
11 1 file changed, 12 insertions(+)
12
13 diff --git a/backend/lib/models.py b/backend/lib/models.py
14 index bc6cd20..f842a8a 100644
15 --- a/backend/lib/models.py
16 +++ b/backend/lib/models.py
17 @@ -31,6 +31,11 @@ class PackageVersion(db.Model):
18 def __repr__(self):
19 return "<PackageVersion '%s/%s-%s'>" % (self.package.category.name, self.package.name, self.version)
20
21 +maintainer_project_membership_rel_table = db.Table('maintainer_project_membership_rel',
22 + db.Column('project_id', db.Integer, db.ForeignKey('maintainer.id')),
23 + db.Column('maintainer_id', db.Integer, db.ForeignKey('maintainer.id')),
24 +)
25 +
26 class Maintainer(db.Model):
27 id = db.Column(db.Integer, primary_key=True)
28 email = db.Column(db.Unicode(50), nullable=False, unique=True)
29 @@ -39,5 +44,12 @@ class Maintainer(db.Model):
30 url = db.Column(db.Unicode())
31 description = db.Column(db.Unicode(500))
32
33 + members = db.relationship("Maintainer",
34 + secondary=maintainer_project_membership_rel_table,
35 + primaryjoin=id==maintainer_project_membership_rel_table.c.project_id,
36 + secondaryjoin=id==maintainer_project_membership_rel_table.c.maintainer_id,
37 + backref='projects')
38 + # projects relationship backref ^^
39 +
40 def __repr__(self):
41 return "<Maintainer %s '%s'>" % ("project" if self.is_project else "individual", self.email)