diff options
Diffstat (limited to 'app/views/packages.py')
-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 |