Skip to content

Commit

Permalink
Merge pull request #807 from nrybowski/fix_806
Browse files Browse the repository at this point in the history
[templates/edit_tabs] Fix radio selection condition
  • Loading branch information
anthonygego committed May 3, 2022
2 parents f28ad8d + 5a413e5 commit 4994c32
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
17 changes: 16 additions & 1 deletion inginious/frontend/pages/course_admin/task_edit.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,8 @@ def POST_AUTH(self, courseid, taskid): # pylint: disable=arguments-differ
data["weight"] = float(data["weight"])
except:
return json.dumps({"status": "error", "message": _("Grade weight must be a floating-point number")})
if data["weight"] < 0:
return json.dumps({"status": "error", "message": _("Grade weight must be positive!")})

# Groups
if "groups" in data:
Expand All @@ -176,7 +178,7 @@ def POST_AUTH(self, courseid, taskid): # pylint: disable=arguments-differ
data["stored_submissions"] = 0 if data["store_all"] == "true" else int(stored_submissions)
except:
return json.dumps(
{"status": "error", "message": _("The number of stored submission must be positive!")})
{"status": "error", "message": _("The number of stored submission must be an integer!")})

if data["store_all"] == "false" and data["stored_submissions"] <= 0:
return json.dumps({"status": "error", "message": _("The number of stored submission must be positive!")})
Expand All @@ -195,9 +197,14 @@ def POST_AUTH(self, courseid, taskid): # pylint: disable=arguments-differ
else:
try:
result = {"amount": int(data["submission_limit_soft_0"]), "period": int(data["submission_limit_soft_1"])}
if result['period'] < 0:
return json.dumps({"status": "error", "message": _("The soft limit period must be positive!")})
except:
return json.dumps({"status": "error", "message": _("Invalid submission limit!")})

if data['submission_limit'] != 'none' and result['amount'] < 0:
return json.dumps({"status": "error", "message": _("The submission limit must be positive!")})

del data["submission_limit_hard"]
del data["submission_limit_soft_0"]
del data["submission_limit_soft_1"]
Expand All @@ -218,6 +225,14 @@ def POST_AUTH(self, courseid, taskid): # pylint: disable=arguments-differ
except Exception as message:
return json.dumps({"status": "error", "message": _("Invalid task accessibility ({})").format(message)})

# Random inputs
try:
data['input_random'] = int(data['input_random'])
except:
return json.dumps({"status": "error", "message": _("The number of random inputs must be an integer!")})
if data['input_random'] < 0:
return json.dumps({"status": "error", "message": _("The number of random inputs must be positive!")})

# Checkboxes
if data.get("responseIsHTML"):
data["responseIsHTML"] = True
Expand Down
10 changes: 5 additions & 5 deletions inginious/frontend/templates/course_admin/edit_tabs/basic.html
Original file line number Diff line number Diff line change
Expand Up @@ -114,17 +114,17 @@
<div class="col-xs-12 col-lg-3">
<label>
<input type="radio" value="hard" name="submission_limit"
{{ 'checked="checked"'|safe if submission_limit["period"] == -1 and submission_limit['amount'] > 0 }} />
{{ _("Hard limit: {nbr_submissions} submission(s)").format(nbr_submissions='</label></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-2"><input name="submission_limit_hard" class="form-control input-xs" style="height:20px;padding: 0 10px;" value="' + (submission_limit['amount'] if submission_limit['period'] == -1 and submission_limit['amount'] > 0 else '')|string + '" placeholder="5" type="number"></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-3"><label>') | safe }}
{{ 'checked="checked"'|safe if submission_limit["period"] == -1 and submission_limit['amount'] >= 0 }} />
{{ _("Hard limit: {nbr_submissions} submission(s)").format(nbr_submissions='</label></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-2"><input name="submission_limit_hard" class="form-control input-xs" style="height:20px;padding: 0 10px;" value="' + (submission_limit['amount'] if submission_limit['period'] == -1 and submission_limit['amount'] >= 0 else '')|string + '" placeholder="5" type="number"></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-3"><label>') | safe }}
</label>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-lg-3">
<label>
<input type="radio" value="soft" name="submission_limit"
{{ 'checked="checked"'|safe if submission_limit['period'] > 0 }} />
{{ _("Soft limit: {nbr_submissions} submission(s) every {nbr_hours} hour(s)").format(nbr_submissions='</label></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-2"><input name="submission_limit_soft_0" class="form-control input-xs" style="height:20px;padding: 0 10px;" value="' + (submission_limit['amount'] if submission_limit['amount'] > 0 and submission_limit['period'] > 0 else '')|string + '" placeholder="5" type="number"></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-3"><label>', nbr_hours='</label></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-2"><input name="submission_limit_soft_1" class="form-control input-xs" style="height:20px;padding: 0 10px;" value="' + (submission_limit['period'] if submission_limit['period'] > 0 else '')|string + '" placeholder="5" type="number"></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-1"><label>') | safe }}
{{ 'checked="checked"'|safe if submission_limit['period'] >= 0 }} />
{{ _("Soft limit: {nbr_submissions} submission(s) every {nbr_hours} hour(s)").format(nbr_submissions='</label></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-2"><input name="submission_limit_soft_0" class="form-control input-xs" style="height:20px;padding: 0 10px;" value="' + (submission_limit['amount'] if submission_limit['amount'] >= 0 and submission_limit['period'] > 0 else '')|string + '" placeholder="5" type="number"></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-3"><label>', nbr_hours='</label></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-2"><input name="submission_limit_soft_1" class="form-control input-xs" style="height:20px;padding: 0 10px;" value="' + (submission_limit['period'] if submission_limit['period'] > 0 else '')|string + '" placeholder="5" type="number"></div><div class="col-xs-offset-1 col-lg-offset-0 col-xs-11 col-lg-1"><label>') | safe }}
</label>
</div>
</div>
Expand Down Expand Up @@ -229,4 +229,4 @@
{{ 'checked="checked"'|safe if task_data.get('regenerate_input_random',False) }} />
</div>
</div>
</div>
</div>

0 comments on commit 4994c32

Please sign in to comment.