diff options
| author | rubenwardy <rw@rubenwardy.com> | 2018-03-26 12:42:35 +0100 |
|---|---|---|
| committer | rubenwardy <rw@rubenwardy.com> | 2018-03-26 12:42:40 +0100 |
| commit | 536da2add2062a9bf76029c7409319d717e6ed6a (patch) | |
| tree | 7a57aa9f59ccc662e758043413a3c79008d3a399 /app/views | |
| parent | 39ef7128177c6e16434201ce2e8e3513a8d82cb7 (diff) | |
| download | cheatdb-536da2add2062a9bf76029c7409319d717e6ed6a.tar.xz | |
Add tag selecting in edit package
Fixes #35
Diffstat (limited to 'app/views')
| -rw-r--r-- | app/views/packages.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/app/views/packages.py b/app/views/packages.py index c9ad24f..dfe7af0 100644 --- a/app/views/packages.py +++ b/app/views/packages.py @@ -9,6 +9,7 @@ from .utils import * from flask_wtf import FlaskForm from wtforms import * from wtforms.validators import * +from wtforms.ext.sqlalchemy.fields import QuerySelectMultipleField # TODO: the following could be made into one route, except I"m not sure how @@ -134,6 +135,7 @@ class PackageForm(FlaskForm): shortDesc = StringField("Short Description", [InputRequired(), Length(1,200)]) desc = TextAreaField("Long Description", [Optional(), Length(0,10000)]) type = SelectField("Type", [InputRequired()], choices=PackageType.choices(), coerce=PackageType.coerce, default=PackageType.MOD) + tags = QuerySelectMultipleField('Tags', query_factory=lambda: Tag.query, get_pk=lambda a: a.id, get_label=lambda a: a.title) repo = StringField("Repo URL", [Optional(), URL()]) website = StringField("Website URL", [Optional(), URL()]) issueTracker = StringField("Issue Tracker URL", [Optional(), URL()]) @@ -164,6 +166,10 @@ def create_edit_package_page(type=None, author=None, name=None): package.author = current_user # package.approved = package.checkPerm(current_user, Permission.APPROVE_NEW) + package.tags.clear() + for tag in form.tags.raw_data: + package.tags.append(Tag.query.get(tag)) + form.populate_obj(package) # copy to row db.session.commit() # save return redirect(package.getDetailsURL()) # redirect |
