Add notes about min/max, and hide invalid options

This commit is contained in:
rubenwardy 2019-01-28 22:28:47 +00:00
parent 5cd8b35d1f
commit 034315d421
5 changed files with 81 additions and 8 deletions

View File

@ -0,0 +1,18 @@
var min = $("#min_rel");
var max = $("#max_rel");
var none = $("#min_rel option:first-child").attr("value");
var warning = $("#minmax_warning");
function ver_check() {
var minv = min.val();
var maxv = max.val();
if (minv != none && maxv != none && minv > maxv) {
warning.show();
} else {
warning.hide();
}
}
min.change(ver_check);
max.change(ver_check);

View File

@ -24,6 +24,21 @@
{{ render_field(form.max_rel, class_="col-sm-10") }}
</div>
<p id="minmax_warning" style="color:#f00; display: none;">
Maximum must be greater than or equal to the minimum!
</p>
<p>
Note: Min and max versions will be used to hide the package on
platforms not within the range.
You cannot selected the oldest version for min or the newest version
for max as this does not make sense - you can't predict the future.
</p>
{{ render_submit_field(form.submit) }}
</form>
{% endblock %}
{% block scriptextra %}
<script src="/static/release_minmax.js?v=1"></script>
{% endblock %}

View File

@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}
Create a release | {{ package.title }}
Edit release | {{ package.title }}
{% endblock %}
{% block content %}
@ -39,12 +39,27 @@
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>
<p id="minmax_warning" style="color:#f00; display: none;">
Maximum must be greater than or equal to the minimum!
</p>
<p>
Note: Min and max versions will be used to hide the package on
platforms not within the range.
You cannot selected the oldest version for min or the newest version
for max as this does not make sense - you can't predict the future.
</p>
{{ render_submit_field(form.submit) }}
</form>
{% endblock %}
{% block scriptextra %}
<script src="/static/release_minmax.js?v=1"></script>
{% endblock %}

View File

@ -24,6 +24,21 @@
{{ render_field(form.max_rel, class_="col-sm-6") }}
</div>
<p id="minmax_warning" style="color:#f00; display: none;">
Maximum must be greater than or equal to the minimum!
</p>
<p>
Note: Min and max versions will be used to hide the package on
platforms not within the range.
You cannot selected the oldest version for min or the newest version
for max as this does not make sense - you can't predict the future.
</p>
{{ render_submit_field(form.submit) }}
</form>
{% endblock %}
{% block scriptextra %}
<script src="/static/release_minmax.js?v=1"></script>
{% endblock %}

View File

@ -30,15 +30,25 @@ from wtforms.validators import *
from wtforms.ext.sqlalchemy.fields import QuerySelectField
def get_mt_releases(is_max):
query = MinetestRelease.query.order_by(db.asc(MinetestRelease.id))
if is_max:
query = query.limit(query.count() - 1)
else:
query = query.filter(MinetestRelease.name != "0.4.17")
return query
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)
query_factory=lambda: get_mt_releases(False), 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)
query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name)
submit = SubmitField("Save")
class EditPackageReleaseForm(FlaskForm):
@ -47,9 +57,9 @@ class EditPackageReleaseForm(FlaskForm):
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)
query_factory=lambda: get_mt_releases(False), 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)
query_factory=lambda: get_mt_releases(True), 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"])
@ -166,10 +176,10 @@ def edit_release_page(package, id):
class BulkReleaseForm(FlaskForm):
set_min = BooleanField("Set Min")
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)
query_factory=lambda: get_mt_releases(False), get_pk=lambda a: a.id, get_label=lambda a: a.name)
set_max = BooleanField("Set Max")
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)
query_factory=lambda: get_mt_releases(True), get_pk=lambda a: a.id, get_label=lambda a: a.name)
submit = SubmitField("Update")