diff options
| author | rubenwardy <rw@rubenwardy.com> | 2018-03-21 17:42:43 +0000 |
|---|---|---|
| committer | rubenwardy <rw@rubenwardy.com> | 2018-03-21 17:42:43 +0000 |
| commit | 49a2a9192f683720d4480eb013cfabe9bb07662f (patch) | |
| tree | a80e9b331a074d0cab799c8e7a2bfa93bdb65fef /app | |
| parent | a8edae1da0e8c2a266bc358e7440c49519c4473d (diff) | |
| download | cheatdb-49a2a9192f683720d4480eb013cfabe9bb07662f.tar.xz | |
Add package validation
Diffstat (limited to 'app')
| -rw-r--r-- | app/models.py | 4 | ||||
| -rw-r--r-- | app/templates/package_details.html | 2 | ||||
| -rw-r--r-- | app/views/packages.py | 21 |
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') |
