aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-21 17:42:43 +0000
committerrubenwardy <rw@rubenwardy.com>2018-03-21 17:42:43 +0000
commit49a2a9192f683720d4480eb013cfabe9bb07662f (patch)
treea80e9b331a074d0cab799c8e7a2bfa93bdb65fef /app
parenta8edae1da0e8c2a266bc358e7440c49519c4473d (diff)
downloadcheatdb-49a2a9192f683720d4480eb013cfabe9bb07662f.tar.xz
Add package validation
Diffstat (limited to 'app')
-rw-r--r--app/models.py4
-rw-r--r--app/templates/package_details.html2
-rw-r--r--app/views/packages.py21
3 files changed, 14 insertions, 13 deletions
diff --git a/app/models.py b/app/models.py
index c386428..d24c218 100644
--- a/app/models.py
+++ b/app/models.py
@@ -98,7 +98,7 @@ class Package(db.Model):
author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
name = db.Column(db.String(100), nullable=False)
title = db.Column(db.String(100), nullable=False)
- shortDesc = db.Column(db.Text, nullable=True)
+ shortDesc = db.Column(db.String(200), nullable=False)
desc = db.Column(db.Text, nullable=True)
type = db.Column(db.Enum(PackageType))
@@ -106,7 +106,7 @@ class Package(db.Model):
repo = db.Column(db.String(200), nullable=True)
website = db.Column(db.String(200), nullable=True)
issueTracker = db.Column(db.String(200), nullable=True)
- forums = db.Column(db.String(200), nullable=False)
+ forums = db.Column(db.Integer, nullable=False)
# Releases
releases = db.relationship('PackageRelease', backref='package',
diff --git a/app/templates/package_details.html b/app/templates/package_details.html
index ec54f5f..58facbc 100644
--- a/app/templates/package_details.html
+++ b/app/templates/package_details.html
@@ -29,7 +29,7 @@
<ul class="buttonset linedbuttonset">
{% if package.repo %}<li><a href="{{ package.repo }}">View Source</a></li>{% endif %}
- {% if package.forums %}<li><a href="{{ package.forums }}">Forums</a></li>{% endif %}
+ {% if package.forums %}<li><a href="https://forum.minetest.net/viewtopic.php?t={{ package.forums }}">Forums</a></li>{% endif %}
{% if package.issueTracker %}<li><a href="{{ package.issueTracker }}">Issue Tracker</a></li>{% endif %}
{% if package.website %}<li><a href="{{ package.website }}">Website</a></li>{% endif %}
{% if package.checkPerm(current_user, "EDIT_PACKAGE") %}
diff --git a/app/views/packages.py b/app/views/packages.py
index 33013ea..7474af1 100644
--- a/app/views/packages.py
+++ b/app/views/packages.py
@@ -6,6 +6,7 @@ from app.models import *
from flask_wtf import FlaskForm
from wtforms import *
+from wtforms.validators import *
# TODO: the following could be made into one route, except I'm not sure how
@@ -58,15 +59,15 @@ def package_page(type, author, name):
class PackageForm(FlaskForm):
- name = StringField("Name")
- title = StringField("Title")
- shortDesc = StringField("Short Description")
- desc = StringField("Long Description")
- type = SelectField("Type", choices=PackageType.choices(), coerce=PackageType.coerce, default=PackageType.MOD)
- repo = StringField("Repo URL")
- website = StringField("Website URL")
- issueTracker = StringField("Issue Tracker URL")
- forums = StringField("Forum Topic ID")
+ 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)
+ 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')
@menu.register_menu(app, '.new', 'Create', order=20)
@@ -110,7 +111,7 @@ class CreatePackageReleaseForm(FlaskForm):
class EditPackageReleaseForm(FlaskForm):
name = StringField("Name")
title = StringField("Title")
- url = StringField("URL")
+ url = StringField("URL", [URL])
approved = BooleanField("Is Approved")
submit = SubmitField('Save')