aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-26 15:17:39 +0100
committerrubenwardy <rw@rubenwardy.com>2018-03-26 15:17:42 +0100
commit743d1d909fbfb704185475c162f6ae2396272c75 (patch)
treec3008fc31cceb2e3823f6e00a2f9e0e6beb4c68a
parent28d967e3e274c1afe797c753c3e996b1c3a710f5 (diff)
downloadcheatdb-743d1d909fbfb704185475c162f6ae2396272c75.tar.xz
Add ability to suggest tag changes using edit requests
Fixes #36
-rw-r--r--app/models.py15
-rw-r--r--app/templates/packages/editrequest_create.html1
-rw-r--r--app/views/packages.py4
3 files changed, 17 insertions, 3 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
diff --git a/app/templates/packages/editrequest_create.html b/app/templates/packages/editrequest_create.html
index d0c592a..cdf5cfa 100644
--- a/app/templates/packages/editrequest_create.html
+++ b/app/templates/packages/editrequest_create.html
@@ -14,6 +14,7 @@
{{ render_field(form.shortDesc) }}
{{ render_field(form.desc) }}
{{ render_field(form.type) }}
+ {{ render_field(form.tags) }}
{{ render_field(form.repo) }}
{{ render_field(form.website) }}
{{ render_field(form.issueTracker) }}
diff --git a/app/views/packages.py b/app/views/packages.py
index d9f0717..e532d3f 100644
--- a/app/views/packages.py
+++ b/app/views/packages.py
@@ -265,8 +265,8 @@ def create_editrequest_page(ptype, author, name):
change = EditRequestChange()
change.request = erequest
change.key = e
- change.oldValue = str(oldValue)
- change.newValue = str(newValue)
+ change.oldValue = e.convert(oldValue)
+ change.newValue = e.convert(newValue)
db.session.add(change)
wasChangeMade = True