diff options
| author | rubenwardy <rw@rubenwardy.com> | 2019-01-28 20:48:07 +0000 |
|---|---|---|
| committer | rubenwardy <rw@rubenwardy.com> | 2019-01-28 20:48:07 +0000 |
| commit | d77403c0be04a79693fca4b0a8c6a5b3e06a6177 (patch) | |
| tree | defb75c7be510e99c0b246edf0220c7e1352d905 /app | |
| parent | e9fe936aa98e9325034750f2f327ad4271c7e55d (diff) | |
| download | cheatdb-d77403c0be04a79693fca4b0a8c6a5b3e06a6177.tar.xz | |
Add min and max Minetest version support
Diffstat (limited to 'app')
| -rw-r--r-- | app/models.py | 18 | ||||
| -rw-r--r-- | app/templates/packages/release_edit.html | 5 | ||||
| -rw-r--r-- | app/templates/packages/release_new.html | 6 | ||||
| -rw-r--r-- | app/views/packages/releases.py | 16 |
4 files changed, 45 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py index 20c3e60..30dc27d 100644 --- a/app/models.py +++ b/app/models.py @@ -612,6 +612,18 @@ class Tag(db.Model): regex = re.compile("[^a-z_]") self.name = regex.sub("", self.title.lower().replace(" ", "_")) + +class MinetestRelease(db.Model): + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(100), unique=True, nullable=False) + + def __init__(self, name=None): + self.name = name + + def getActual(self): + return None if self.name == "None" else self + + class PackageRelease(db.Model): id = db.Column(db.Integer, primary_key=True) @@ -623,6 +635,12 @@ class PackageRelease(db.Model): task_id = db.Column(db.String(37), nullable=True) commit_hash = db.Column(db.String(41), nullable=True, default=None) + min_rel_id = db.Column(db.Integer, db.ForeignKey("minetest_release.id"), nullable=True, server_default=None) + min_rel = db.relationship("MinetestRelease", foreign_keys=[min_rel_id]) + + max_rel_id = db.Column(db.Integer, db.ForeignKey("minetest_release.id"), nullable=True, server_default=None) + max_rel = db.relationship("MinetestRelease", foreign_keys=[max_rel_id]) + def getEditURL(self): return url_for("edit_release_page", diff --git a/app/templates/packages/release_edit.html b/app/templates/packages/release_edit.html index c309dac..32df306 100644 --- a/app/templates/packages/release_edit.html +++ b/app/templates/packages/release_edit.html @@ -39,6 +39,11 @@ Approved: {{ release.approved }} {% endif %} {% endif %} + + <div class="row"> + {{ render_field(form.min_rel, class_="col-sm-6") }} + {{ render_field(form.max_rel, class_="col-sm-6") }} + </div> {{ render_submit_field(form.submit) }} </form> diff --git a/app/templates/packages/release_new.html b/app/templates/packages/release_new.html index 2f3bf68..32cc8d8 100644 --- a/app/templates/packages/release_new.html +++ b/app/templates/packages/release_new.html @@ -18,6 +18,12 @@ {% endif %} {{ render_field(form.fileUpload, fieldclass="form-control-file") }} + + <div class="row"> + {{ render_field(form.min_rel, class_="col-sm-6") }} + {{ render_field(form.max_rel, class_="col-sm-6") }} + </div> + {{ render_submit_field(form.submit) }} </form> {% endblock %} diff --git a/app/views/packages/releases.py b/app/views/packages/releases.py index b314b81..98a72a1 100644 --- a/app/views/packages/releases.py +++ b/app/views/packages/releases.py @@ -27,12 +27,18 @@ from celery import uuid from flask_wtf import FlaskForm from wtforms import * from wtforms.validators import * +from wtforms.ext.sqlalchemy.fields import QuerySelectField + class CreatePackageReleaseForm(FlaskForm): title = StringField("Title", [InputRequired(), Length(1, 30)]) uploadOpt = RadioField ("Method", choices=[("upload", "File Upload")], default="upload") vcsLabel = StringField("VCS Commit or Branch", default="master") fileUpload = FileField("File Upload") + min_rel = QuerySelectField("Minimum Minetest Version", [InputRequired()], + query_factory=lambda: MinetestRelease.query.order_by(db.asc(MinetestRelease.id)), get_pk=lambda a: a.id, get_label=lambda a: a.name) + max_rel = QuerySelectField("Maximum Minetest Version", [InputRequired()], + query_factory=lambda: MinetestRelease.query.order_by(db.asc(MinetestRelease.id)), get_pk=lambda a: a.id, get_label=lambda a: a.name) submit = SubmitField("Save") class EditPackageReleaseForm(FlaskForm): @@ -40,6 +46,10 @@ class EditPackageReleaseForm(FlaskForm): url = StringField("URL", [URL]) task_id = StringField("Task ID") approved = BooleanField("Is Approved") + min_rel = QuerySelectField("Minimum Minetest Version", [InputRequired()], + query_factory=lambda: MinetestRelease.query.order_by(db.asc(MinetestRelease.id)), get_pk=lambda a: a.id, get_label=lambda a: a.name) + max_rel = QuerySelectField("Maximum Minetest Version", [InputRequired()], + query_factory=lambda: MinetestRelease.query.order_by(db.asc(MinetestRelease.id)), get_pk=lambda a: a.id, get_label=lambda a: a.name) submit = SubmitField("Save") @app.route("/packages/<author>/<name>/releases/new/", methods=["GET", "POST"]) @@ -63,6 +73,8 @@ def create_release_page(package): rel.title = form["title"].data rel.url = "" rel.task_id = uuid() + rel.min_rel = form["min_rel"].data.getActual() + rel.max_rel = form["max_rel"].data.getActual() db.session.add(rel) db.session.commit() @@ -80,6 +92,8 @@ def create_release_page(package): rel.package = package rel.title = form["title"].data rel.url = uploadedPath + rel.min_rel = form["min_rel"].data.getActual() + rel.max_rel = form["max_rel"].data.getActual() db.session.add(rel) db.session.commit() @@ -128,6 +142,8 @@ def edit_release_page(package, id): wasApproved = release.approved if canEdit: release.title = form["title"].data + release.min_rel = form["min_rel"].data.getActual() + release.max_rel = form["max_rel"].data.getActual() if package.checkPerm(current_user, Permission.CHANGE_RELEASE_URL): release.url = form["url"].data |
