From df59de8e7380d99ef7f5762fe6435a591d0d3401 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 11:00:18 +0000 Subject: [PATCH 01/11] clearer error messages when submitting answers fails --- anatomy/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/anatomy/views.py b/anatomy/views.py index 7bc47e1a..339c812a 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -281,12 +281,12 @@ def loadJsonAnswer(answer): if (not isinstance(answer["cid"], int)) or ( not isinstance(answer["eid"], int) or (not isinstance(answer["ans"], str)) ): - return JsonResponse({"success": False}) + return JsonResponse({"success": False, "error": "cid or eid or answers not defined"}) # The model should catch invalid data but this should be less intensive max_int = 10000000 if answer["cid"] > max_int or answer["eid"] > max_int: - return JsonResponse({"success": False}) + return JsonResponse({"success": False, "error": "invalid cid"}) exam = get_object_or_404(Exam, pk=answer["eid"]) From eaa3d11107500d35e8ad4bd6e3224782e1b34fb6 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 11:02:49 +0000 Subject: [PATCH 02/11] raise maximum cid when submitting answers --- anatomy/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anatomy/views.py b/anatomy/views.py index 339c812a..cb3b1b1d 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -284,7 +284,7 @@ def loadJsonAnswer(answer): return JsonResponse({"success": False, "error": "cid or eid or answers not defined"}) # The model should catch invalid data but this should be less intensive - max_int = 10000000 + max_int = 999999999999999999999 if answer["cid"] > max_int or answer["eid"] > max_int: return JsonResponse({"success": False, "error": "invalid cid"}) From 4007de199385964be51f8ab55ef387636fd840a7 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 13:10:18 +0000 Subject: [PATCH 03/11] covert cid to bigintegerfield --- anatomy/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anatomy/models.py b/anatomy/models.py index b9082712..af01e257 100644 --- a/anatomy/models.py +++ b/anatomy/models.py @@ -297,7 +297,7 @@ class UserAnswer(models.Model): settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL ) - cid = models.IntegerField(blank=True, null=True) + cid = models.BigIntegerField(blank=True, null=True) # Each user answer is associated with a particular exam exam = models.ForeignKey( From 9530c9153a4c5bf6d6018594483fc137a440be1d Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 13:11:27 +0000 Subject: [PATCH 04/11] . --- anatomy/migrations/0016_auto_20210104_1310.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 anatomy/migrations/0016_auto_20210104_1310.py diff --git a/anatomy/migrations/0016_auto_20210104_1310.py b/anatomy/migrations/0016_auto_20210104_1310.py new file mode 100644 index 00000000..6d6d08a6 --- /dev/null +++ b/anatomy/migrations/0016_auto_20210104_1310.py @@ -0,0 +1,25 @@ +# Generated by Django 3.1.2 on 2021-01-04 13:10 + +import anatomy.models +import django.core.files.storage +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('anatomy', '0015_auto_20201228_2235'), + ] + + operations = [ + migrations.AlterField( + model_name='anatomyquestion', + name='image', + field=models.ImageField(storage=django.core.files.storage.FileSystemStorage(base_url='http://penracourses.org.uk//media/anatomy/', location='/home/ross/sites/rad/media//anatomy/'), upload_to=anatomy.models.image_directory_path), + ), + migrations.AlterField( + model_name='useranswer', + name='cid', + field=models.BigIntegerField(blank=True, null=True), + ), + ] From 28fa81259c4e216303da8760f774734bb660cdf8 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 13:54:08 +0000 Subject: [PATCH 05/11] . --- anatomy/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anatomy/models.py b/anatomy/models.py index af01e257..34d5620c 100644 --- a/anatomy/models.py +++ b/anatomy/models.py @@ -297,7 +297,7 @@ class UserAnswer(models.Model): settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL ) - cid = models.BigIntegerField(blank=True, null=True) + cid = models.BigIntegerField(blank=True, null=True, help_text="Candidate ID (limitied by BigIntegerField size)") # Each user answer is associated with a particular exam exam = models.ForeignKey( From 894472d6ea4ae3c4b7e2e7b10083f71754f786ed Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 13:55:04 +0000 Subject: [PATCH 06/11] . --- anatomy/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anatomy/models.py b/anatomy/models.py index 34d5620c..8b14ca2e 100644 --- a/anatomy/models.py +++ b/anatomy/models.py @@ -331,7 +331,7 @@ class CidUserAnswer(models.Model): ) answer = models.TextField(max_length=500, blank=True) - cid = models.IntegerField(blank=True, null=True) + cid = models.BigIntegerField(blank=True, null=True, help_text="Candidate ID (limitied by BigIntegerField size)") # Each user answer is associated with a particular exam exam = models.ForeignKey( From 28641e1c70f45f9d40e5eb95685e8410c4b0a8aa Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 14:08:25 +0000 Subject: [PATCH 07/11] . --- anatomy/migrations/0017_auto_20210104_1355.py | 23 +++++++++++++++++++ anatomy/static/css/anatomy.css | 4 ++++ anatomy/static/js/anatomy.js | 1 + anatomy/templates/anatomy/mark.html | 1 + anatomy/templates/anatomy/mark_overview.html | 2 +- 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 anatomy/migrations/0017_auto_20210104_1355.py diff --git a/anatomy/migrations/0017_auto_20210104_1355.py b/anatomy/migrations/0017_auto_20210104_1355.py new file mode 100644 index 00000000..c7cca477 --- /dev/null +++ b/anatomy/migrations/0017_auto_20210104_1355.py @@ -0,0 +1,23 @@ +# Generated by Django 3.1.2 on 2021-01-04 13:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('anatomy', '0016_auto_20210104_1310'), + ] + + operations = [ + migrations.AlterField( + model_name='ciduseranswer', + name='cid', + field=models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True), + ), + migrations.AlterField( + model_name='useranswer', + name='cid', + field=models.BigIntegerField(blank=True, help_text='Candidate ID (limitied by BigIntegerField size)', null=True), + ), + ] diff --git a/anatomy/static/css/anatomy.css b/anatomy/static/css/anatomy.css index 47e07434..ba8b57c6 100644 --- a/anatomy/static/css/anatomy.css +++ b/anatomy/static/css/anatomy.css @@ -27,6 +27,7 @@ a, a:link { .answer-list .correct { color: green; + color: blue; } .answer-list .correct::after{ @@ -66,6 +67,7 @@ a, a:link { .answered { color: green; + color: blue; } .unanswered { @@ -324,6 +326,7 @@ img.uploading:hover { .user-answer-score-2 { color: green; + color: blue; } td.user-answer-score-0::after { @@ -384,6 +387,7 @@ td.user-answer-score-2::after { .answer-1 { color: green; + color: blue; } .answer-0 { diff --git a/anatomy/static/js/anatomy.js b/anatomy/static/js/anatomy.js index 24d974b5..75a85c4a 100644 --- a/anatomy/static/js/anatomy.js +++ b/anatomy/static/js/anatomy.js @@ -31,6 +31,7 @@ $(document).ready(function () { if($(".post-form").length > 0) { $(".post-form").get(0).addEventListener("submit", function (e) { + console.log(e); if($(".not-marked").length > 0) { e.preventDefault(); // before the code alert("Ensure all answers are marked first"); diff --git a/anatomy/templates/anatomy/mark.html b/anatomy/templates/anatomy/mark.html index 89b6e4bc..90420b1c 100644 --- a/anatomy/templates/anatomy/mark.html +++ b/anatomy/templates/anatomy/mark.html @@ -38,6 +38,7 @@ {% if question_details.current >= question_details.total %} {% else %} + {% endif %} diff --git a/anatomy/templates/anatomy/mark_overview.html b/anatomy/templates/anatomy/mark_overview.html index c7c97465..ed2619b4 100644 --- a/anatomy/templates/anatomy/mark_overview.html +++ b/anatomy/templates/anatomy/mark_overview.html @@ -3,7 +3,7 @@ {% block content %}

Marking exam: {{ exam.name }}

- Question order may be different on the test system (as json order is not guaranteed to be maintained) + You can start marking from a particular question by clicking on it below.
From 1afe6419315955d2ca346441e561434a3e63984d Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 14:17:16 +0000 Subject: [PATCH 08/11] . --- anatomy/static/css/anatomy.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/anatomy/static/css/anatomy.css b/anatomy/static/css/anatomy.css index ba8b57c6..bf02a29a 100644 --- a/anatomy/static/css/anatomy.css +++ b/anatomy/static/css/anatomy.css @@ -26,7 +26,7 @@ a, a:link { } .answer-list .correct { - color: green; + /* color: green; */ color: blue; } @@ -66,7 +66,7 @@ a, a:link { } .answered { - color: green; + /* color: green; */ color: blue; } @@ -325,7 +325,7 @@ img.uploading:hover { } .user-answer-score-2 { - color: green; + /* color: green; */ color: blue; } @@ -386,7 +386,7 @@ td.user-answer-score-2::after { } .answer-1 { - color: green; + /* color: green; */ color: blue; } From eafe6ea051ac4469c4833d4e8f2eafd38e7076f7 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 14:33:46 +0000 Subject: [PATCH 09/11] . --- anatomy/static/css/anatomy.css | 8 ++++---- anatomy/static/js/anatomy.js | 3 +-- anatomy/views.py | 4 ++++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/anatomy/static/css/anatomy.css b/anatomy/static/css/anatomy.css index bf02a29a..17e773ec 100644 --- a/anatomy/static/css/anatomy.css +++ b/anatomy/static/css/anatomy.css @@ -27,7 +27,7 @@ a, a:link { .answer-list .correct { /* color: green; */ - color: blue; + color: lightblue; } .answer-list .correct::after{ @@ -67,7 +67,7 @@ a, a:link { .answered { /* color: green; */ - color: blue; + color: lightblue; } .unanswered { @@ -326,7 +326,7 @@ img.uploading:hover { .user-answer-score-2 { /* color: green; */ - color: blue; + color: lightblue; } td.user-answer-score-0::after { @@ -387,7 +387,7 @@ td.user-answer-score-2::after { .answer-1 { /* color: green; */ - color: blue; + color: lightblue; } .answer-0 { diff --git a/anatomy/static/js/anatomy.js b/anatomy/static/js/anatomy.js index 75a85c4a..765530c0 100644 --- a/anatomy/static/js/anatomy.js +++ b/anatomy/static/js/anatomy.js @@ -31,8 +31,7 @@ $(document).ready(function () { if($(".post-form").length > 0) { $(".post-form").get(0).addEventListener("submit", function (e) { - console.log(e); - if($(".not-marked").length > 0) { + if($(".not-marked").length > 0 && e.submitter.name != "skip") { e.preventDefault(); // before the code alert("Ensure all answers are marked first"); } diff --git a/anatomy/views.py b/anatomy/views.py index cb3b1b1d..6e23bcf6 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -420,6 +420,10 @@ def mark(request, pk, sk): # TODO: convert to JSON request # ******************************* if form.is_valid(): + # If skip button is pressed skip the question without marking + if "skip" in request.POST: + return redirect("anatomy:mark", pk=pk, sk=n + 1) + cd = form.cleaned_data # correct = cd.get("correct") # half_correct = cd.get("half_correct") From 6f18496382fc157a93fa63ede7caaf5688916b32 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 15:07:28 +0000 Subject: [PATCH 10/11] . --- anatomy/static/css/anatomy.css | 2 +- anatomy/templates/anatomy/exam_overview.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/anatomy/static/css/anatomy.css b/anatomy/static/css/anatomy.css index 17e773ec..ffd0220f 100644 --- a/anatomy/static/css/anatomy.css +++ b/anatomy/static/css/anatomy.css @@ -54,7 +54,7 @@ a, a:link { } .answer-list .not-marked { - color: lightblue; + color: white; } .key { diff --git a/anatomy/templates/anatomy/exam_overview.html b/anatomy/templates/anatomy/exam_overview.html index 1958779f..36e730d8 100644 --- a/anatomy/templates/anatomy/exam_overview.html +++ b/anatomy/templates/anatomy/exam_overview.html @@ -26,7 +26,7 @@
{{ question.question_type }}: {{ question.GetPrimaryAnswer }}
- Modality: {{ question.modality }}, View + Modality: {{ question.modality }}, View, Mark {% endfor %} From 5fcdc56ca33e0f986f1d80e36637d7124a1206ca Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 4 Jan 2021 16:44:54 +0000 Subject: [PATCH 11/11] . --- anatomy/static/css/anatomy.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anatomy/static/css/anatomy.css b/anatomy/static/css/anatomy.css index ffd0220f..52a39c91 100644 --- a/anatomy/static/css/anatomy.css +++ b/anatomy/static/css/anatomy.css @@ -321,7 +321,7 @@ img.uploading:hover { } .user-answer-score-1 { - color: greenyellow; + color: yellow; } .user-answer-score-2 {