aboutsummaryrefslogtreecommitdiff
path: root/app/views/packages.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-05-21 22:20:28 +0100
committerrubenwardy <rw@rubenwardy.com>2018-05-21 22:20:28 +0100
commitacad90c3123a3a879c8d5cda040a4702114d19b0 (patch)
treed60b4044f99a0e3060a83c98cbf578ab1e03141a /app/views/packages.py
parent47432ea7e4e7abda7021e3e125d6347fbe6534e0 (diff)
downloadcheatdb-acad90c3123a3a879c8d5cda040a4702114d19b0.tar.xz
Add dependency support
Diffstat (limited to 'app/views/packages.py')
-rw-r--r--app/views/packages.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/app/views/packages.py b/app/views/packages.py
index 087a83f..c7af289 100644
--- a/app/views/packages.py
+++ b/app/views/packages.py
@@ -118,18 +118,20 @@ def package_download_page(package):
class PackageForm(FlaskForm):
- name = StringField("Name", [InputRequired(), Length(1, 20), Regexp("^[a-z0-9_]", 0, "Lower case letters (a-z), digits (0-9), and underscores (_) only")])
- title = StringField("Title", [InputRequired(), Length(3, 50)])
- 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)
- license = QuerySelectField("License", [InputRequired()], query_factory=lambda: License.query, get_pk=lambda a: a.id, get_label=lambda a: a.name)
- 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()])
- forums = IntegerField("Forum Topic ID", [InputRequired(), NumberRange(0,999999)])
- submit = SubmitField("Save")
+ name = StringField("Name", [InputRequired(), Length(1, 20), Regexp("^[a-z0-9_]", 0, "Lower case letters (a-z), digits (0-9), and underscores (_) only")])
+ title = StringField("Title", [InputRequired(), Length(3, 50)])
+ 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)
+ license = QuerySelectField("License", [InputRequired()], query_factory=lambda: License.query, get_pk=lambda a: a.id, get_label=lambda a: a.name)
+ tags = QuerySelectMultipleField('Tags', query_factory=lambda: Tag.query, get_pk=lambda a: a.id, get_label=lambda a: a.title)
+ harddeps = QuerySelectMultipleField('Dependencies', query_factory=lambda: Package.query, get_pk=lambda a: a.id, get_label=lambda a: a.title + " by " + a.author.display_name)
+ softdeps = QuerySelectMultipleField('Soft Dependencies', query_factory=lambda: Package.query, get_pk=lambda a: a.id, get_label=lambda a: a.title + " by " + a.author.display_name)
+ repo = StringField("Repo URL", [Optional(), URL()])
+ website = StringField("Website URL", [Optional(), URL()])
+ issueTracker = StringField("Issue Tracker URL", [Optional(), URL()])
+ forums = IntegerField("Forum Topic ID", [InputRequired(), NumberRange(0,999999)])
+ submit = SubmitField("Save")
@app.route("/packages/new/", methods=["GET", "POST"])
@app.route("/packages/<author>/<name>/edit/", methods=["GET", "POST"])