aboutsummaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-05-27 17:58:09 +0100
committerrubenwardy <rw@rubenwardy.com>2018-05-27 18:52:23 +0100
commit5e4613a6ef78180f208b0cd58aeffb63f1e19853 (patch)
treec874ceae225b17159328abbf7194da040ab704e0 /app/views
parentf4c9348b7f36b31980f7629478fdc8b2877801cc (diff)
downloadcheatdb-5e4613a6ef78180f208b0cd58aeffb63f1e19853.tar.xz
Add ability to edit provides
Diffstat (limited to 'app/views')
-rw-r--r--app/views/packages/__init__.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py
index 5735d5a..e5a515d 100644
--- a/app/views/packages/__init__.py
+++ b/app/views/packages/__init__.py
@@ -106,6 +106,7 @@ class PackageForm(FlaskForm):
desc = TextAreaField("Long Description", [Optional(), Length(0,10000)])
type = SelectField("Type", [InputRequired()], choices=PackageType.choices(), coerce=PackageType.coerce, default=PackageType.MOD)
license = QuerySelectField("License", [InputRequired()], query_factory=lambda: License.query, get_pk=lambda a: a.id, get_label=lambda a: a.name)
+ provides_str = StringField("Provides", [InputRequired(), Length(1,1000)])
tags = QuerySelectMultipleField('Tags', query_factory=lambda: Tag.query.order_by(db.asc(Tag.name)), get_pk=lambda a: a.id, get_label=lambda a: a.title)
repo = StringField("Repo URL", [Optional(), URL()])
website = StringField("Website URL", [Optional(), URL()])
@@ -144,6 +145,9 @@ def create_edit_package_page(author=None, name=None):
form = PackageForm(formdata=request.form, obj=package)
# Initial form class from post data and default data
+ if request.method == "GET" and package is not None:
+ form.provides_str.data = MetaPackage.ListToSpec(package.provides)
+
if request.method == "POST" and form.validate():
wasNew = False
if not package:
@@ -164,6 +168,12 @@ def create_edit_package_page(author=None, name=None):
form.populate_obj(package) # copy to row
+ mpackage_cache = {}
+ package.provides.clear()
+ mpackages = MetaPackage.SpecToList(form.provides_str.data, mpackage_cache)
+ for m in mpackages:
+ package.provides.append(m)
+
package.tags.clear()
for tag in form.tags.raw_data:
package.tags.append(Tag.query.get(tag))