aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-26 11:28:34 +0100
committerrubenwardy <rw@rubenwardy.com>2018-03-26 11:28:34 +0100
commit05444e8018763def07e034513ec8f232d26bedd4 (patch)
tree1d7e1afd58f642dadae50ef30ee430bd2cc1d4dc /app/models.py
parentc19f93e36db24303b77757d5cfe6c9ec2aaee30e (diff)
downloadcheatdb-05444e8018763def07e034513ec8f232d26bedd4.tar.xz
Add tags
Fixes #4
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/app/models.py b/app/models.py
index f3903ff..ab88fc6 100644
--- a/app/models.py
+++ b/app/models.py
@@ -147,6 +147,10 @@ class PackagePropertyKey(enum.Enum):
issueTracker = "Issue Tracker"
forums = "Forum Topic ID"
+tags = db.Table('tags',
+ db.Column('tag_id', db.Integer, db.ForeignKey('tag.id'), primary_key=True),
+ db.Column('package_id', db.Integer, db.ForeignKey('package.id'), primary_key=True)
+)
class Package(db.Model):
id = db.Column(db.Integer, primary_key=True)
@@ -167,7 +171,10 @@ class Package(db.Model):
issueTracker = db.Column(db.String(200), nullable=True)
forums = db.Column(db.Integer, nullable=False)
- # Releases
+
+ tags = db.relationship('Tag', secondary=tags, lazy='subquery',
+ backref=db.backref('packages', lazy=True))
+
releases = db.relationship("PackageRelease", backref="package",
lazy="dynamic", order_by=db.desc("package_release_releaseDate"))
@@ -266,6 +273,22 @@ class Package(db.Model):
else:
raise Exception("Permission {} is not related to packages".format(perm.name))
+class Tag(db.Model):
+ id = db.Column(db.Integer, primary_key=True)
+ title = db.Column(db.String(100), nullable=False)
+ backgroundColor = db.Column(db.String(6), nullable=False)
+ textColor = db.Column(db.String(6), nullable=False)
+
+ def __init__(self, title, backgroundColor="000000", textColor="ffffff"):
+ self.title = title
+ self.backgroundColor = backgroundColor
+ self.textColor = textColor
+
+ def getName(self):
+ import re
+ regex = re.compile('[^a-z_]')
+ return regex.sub("", self.title.lower().replace(" ", "_"))
+
class PackageRelease(db.Model):
id = db.Column(db.Integer, primary_key=True)