diff options
author | rubenwardy <rw@rubenwardy.com> | 2018-03-26 15:17:39 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2018-03-26 15:17:42 +0100 |
commit | 743d1d909fbfb704185475c162f6ae2396272c75 (patch) | |
tree | c3008fc31cceb2e3823f6e00a2f9e0e6beb4c68a /app/models.py | |
parent | 28d967e3e274c1afe797c753c3e996b1c3a710f5 (diff) | |
download | cheatdb-743d1d909fbfb704185475c162f6ae2396272c75.tar.xz |
Add ability to suggest tag changes using edit requests
Fixes #36
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/app/models.py b/app/models.py index 0c9b2f2..444d606 100644 --- a/app/models.py +++ b/app/models.py @@ -142,11 +142,18 @@ class PackagePropertyKey(enum.Enum): shortDesc = "Short Description" desc = "Description" type = "Type" + tags = "Tags" repo = "Repository" website = "Website" issueTracker = "Issue Tracker" forums = "Forum Topic ID" + def convert(self, value): + if self == PackagePropertyKey.tags: + return ','.join([t.title for t in value]) + else: + return str(value) + 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) @@ -370,7 +377,13 @@ class EditRequestChange(db.Model): newValue = db.Column(db.Text, nullable=True) def apply(self, package): - setattr(package, self.key.name, self.newValue) + if self.key == PackagePropertyKey.tags: + package.tags.clear() + for tagTitle in self.newValue.split(","): + tag = Tag.query.filter_by(title=tagTitle.strip()).first() + package.tags.append(tag) + else: + setattr(package, self.key.name, self.newValue) # Setup Flask-User db_adapter = SQLAlchemyAdapter(db, User) # Register the User model |