From 05ba86e6581b3bca64fd6633caa83b826e112cce Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 16 Aug 2021 17:44:57 +0100 Subject: [PATCH] . --- longs/urls.py | 120 ++++++++++++---- longs/views.py | 4 +- rapids/tables.py | 2 +- rapids/templates/rapids/base.html | 3 + .../rapids/question_user_answers.html | 2 +- rapids/urls.py | 134 ++++++++++++------ rapids/views.py | 4 +- 7 files changed, 196 insertions(+), 73 deletions(-) diff --git a/longs/urls.py b/longs/urls.py index 68b41867..52b76b74 100755 --- a/longs/urls.py +++ b/longs/urls.py @@ -11,18 +11,50 @@ urlpatterns = [ path("question/", views.LongView.as_view(), name="long_view"), path("series/", views.LongSeriesView.as_view(), name="long_series_view"), path("series/", views.long_series_detail, name="long_series_detail"), - path("series//order_dicom", views.long_series_order_dicom, name="long_series_order_dicom"), - path("series//download", views.SeriesImagesZipView.as_view(), name="long_series_download"), - path("series//order_dicom_instance", views.long_series_order_dicom_instance, name="long_series_order_dicom_instance"), - path("series//order_dicom_SeriesInstanceUID", views.long_series_order_dicom_SeriesInstanceUID, name="long_series_order_dicom_SeriesInstanceUID"), - path("series//order_upload_filename", views.long_series_order_upload_filename, name="long_series_order_upload_filename"), - path("series//delete", views.LongSeriesDelete.as_view(), name="long_series_delete"), + path( + "series//order_dicom", + views.long_series_order_dicom, + name="long_series_order_dicom", + ), + path( + "series//download", + views.SeriesImagesZipView.as_view(), + name="long_series_download", + ), + path( + "series//order_dicom_instance", + views.long_series_order_dicom_instance, + name="long_series_order_dicom_instance", + ), + path( + "series//order_dicom_SeriesInstanceUID", + views.long_series_order_dicom_SeriesInstanceUID, + name="long_series_order_dicom_SeriesInstanceUID", + ), + path( + "series//order_upload_filename", + views.long_series_order_upload_filename, + name="long_series_order_upload_filename", + ), + path( + "series//delete", + views.LongSeriesDelete.as_view(), + name="long_series_delete", + ), # path("unchecked/", views.unchecked_list, name="unchecked_list"), # path("verified//", views.verified_detail, name="verified_detail"), path("question//", views.question_detail, name="question_detail"), path("question//json", views.question_json, name="question_json"), - path("question//json/unbased", views.question_json_unbased, name="question_json_unbased"), - path("question//json/recreate", views.question_json_recreate, name="question_json_recreate"), + path( + "question//json/unbased", + views.question_json_unbased, + name="question_json_unbased", + ), + path( + "question//json/recreate", + views.question_json_recreate, + name="question_json_recreate", + ), path("question//split", views.long_split, name="long_split"), path("question//clone", views.LongClone.as_view(), name="long_clone"), # path("verified/", views.verified, name="verified"), @@ -39,8 +71,16 @@ urlpatterns = [ name="exam_question_detail", ), path("exam//", views.LongExamViews.exam_overview, name="exam_overview"), - path("exam//json_edit", views.LongExamViews.exam_json_edit, name="exam_json_edit"), - path("exam//question_json_refresh", views.refresh_exam_question_json, name="refresh_exam_question_json"), + path( + "exam//json_edit", + views.LongExamViews.exam_json_edit, + name="exam_json_edit", + ), + path( + "exam//question_json_refresh", + views.refresh_exam_question_json, + name="refresh_exam_question_json", + ), path("exam//scores", views.exam_scores_cid, name="exam_scores_cid"), path( "exam//scores//", @@ -57,7 +97,9 @@ urlpatterns = [ views.LongExamViews.exam_toggle_results_published, name="exam_toggle_results_published", ), - path("exam/submit", views.LongExamViews.postExamAnswers, name="exam_answers_submit"), + path( + "exam/submit", views.LongExamViews.postExamAnswers, name="exam_answers_submit" + ), path("exam/", views.LongExamViews.exam_list, name="exam_list"), path("exam/all", views.LongExamViews.exam_list_all, name="exam_list_all"), path("exam/create", views.ExamCreate.as_view(), name="exam_create"), @@ -65,9 +107,21 @@ urlpatterns = [ path("exam//delete", views.ExamDelete.as_view(), name="exam_delete"), path("exam/json/", views.LongExamViews.active_exams, name="active_exams"), path("exam/json/", views.LongExamViews.exam_json, name="exam_json"), - path("exam/json//unbased", views.LongExamViews.exam_json_unbased, name="exam_json_unbased"), - path("exam/json//", views.LongExamViews.exam_question_json, name="exam_question_json"), - path("exam/json//unbased/", views.LongExamViews.exam_question_json_unbased, name="exam_question_json_unbased"), + path( + "exam/json//unbased", + views.LongExamViews.exam_json_unbased, + name="exam_json_unbased", + ), + path( + "exam/json//", + views.LongExamViews.exam_question_json, + name="exam_question_json", + ), + path( + "exam/json//unbased/", + views.LongExamViews.exam_question_json_unbased, + name="exam_question_json_unbased", + ), path( "exam/json//recreate", views.LongExamViews.exam_json_recreate, @@ -85,14 +139,14 @@ urlpatterns = [ views.LongCreationDefaultView.as_view(), name="long_create_defaults", ), -# path("region/create/", views.create_region, name="create_region"), -# path("region/ajax/get_region_id", views.get_region_id, name="get_region_id"), -# path("abnormality/create/", views.create_abnormality, name="create_abnormality"), -# path( -# "abnormality/ajax/get_abnormality_id", -# views.get_abnormality_id, -# name="get_abnormality_id", -# ), + # path("region/create/", views.create_region, name="create_region"), + # path("region/ajax/get_region_id", views.get_region_id, name="get_region_id"), + # path("abnormality/create/", views.create_abnormality, name="create_abnormality"), + # path( + # "abnormality/ajax/get_abnormality_id", + # views.get_abnormality_id, + # name="get_abnormality_id", + # ), path("examination/create/", views.create_examination, name="create_examination"), path( "examination/ajax/get_examination_id", @@ -110,8 +164,22 @@ urlpatterns = [ name="long_series_update", ), path("/add_note", views.AddNote.as_view(), name="long_add_note"), - path("user_answers/", views.UserAnswerTableView.as_view(), name="user_answer_table_view"), - path("user_answers/", views.UserAnswerView.as_view(), name="user_answer_view"), - path("user_answers//delete", views.UserAnswerDelete.as_view(), name="user_answer_delete"), - path("user_answers/delete", views.user_answer_delete_multiple, name="user_answer_delete_multiple"), + path( + "user_answers/", + views.UserAnswerTableView.as_view(), + name="user_answer_table_view", + ), + path( + "user_answers/", views.UserAnswerView.as_view(), name="user_answer_view" + ), + path( + "user_answers//delete", + views.UserAnswerDelete.as_view(), + name="user_answer_delete", + ), + path( + "user_answers/delete", + views.user_answer_delete_multiple, + name="user_answer_delete_multiple", + ), ] diff --git a/longs/views.py b/longs/views.py index a6dad1e9..edd2ab21 100755 --- a/longs/views.py +++ b/longs/views.py @@ -1064,8 +1064,8 @@ def user_answer_delete_multiple(request): # We could probably delete them all at once.... for id in answer_ids: CidUserAnswer.objects.get(pk=id).delete() - return HttpResponseRedirect(request.path_info) - return HttpResponse("/") + return JsonResponse({"status": "success"}) + return JsonResponse({"status": "error"}) @user_passes_test(lambda u: u.is_superuser) diff --git a/rapids/tables.py b/rapids/tables.py index 9df09751..4f2fe64f 100755 --- a/rapids/tables.py +++ b/rapids/tables.py @@ -62,7 +62,7 @@ class RapidUserAnswerTable(tables.Table): delete = tables.LinkColumn( "rapids:user_answer_delete", text="Delete", args=[A("pk")], orderable=False ) - view = tables.LinkColumn('rapids:rapid_user_answer_view', + view = tables.LinkColumn('rapids:user_answer_view', text='View', args=[A('pk')], orderable=False) diff --git a/rapids/templates/rapids/base.html b/rapids/templates/rapids/base.html index fc41dad0..20f2d073 100755 --- a/rapids/templates/rapids/base.html +++ b/rapids/templates/rapids/base.html @@ -23,6 +23,9 @@ Rapids: Questions / Create Question {% endif %} +{% if request.is_superuser %} +Answers +{% endif %} {% comment %}
Questions by: author {% endcomment %} diff --git a/rapids/templates/rapids/question_user_answers.html b/rapids/templates/rapids/question_user_answers.html index 92a88089..34ba4969 100644 --- a/rapids/templates/rapids/question_user_answers.html +++ b/rapids/templates/rapids/question_user_answers.html @@ -3,7 +3,7 @@ {% block content %} diff --git a/rapids/urls.py b/rapids/urls.py index 87240473..4e960ed6 100755 --- a/rapids/urls.py +++ b/rapids/urls.py @@ -9,29 +9,59 @@ urlpatterns = [ path("author//", views.author_detail, name="author_detail"), path("author/", views.author_list, name="author_list"), path("question/", views.RapidView.as_view(), name="rapid_view"), - #path("unchecked/", views.unchecked_list, name="unchecked_list"), - #path("verified//", views.verified_detail, name="verified_detail"), + # path("unchecked/", views.unchecked_list, name="unchecked_list"), + # path("verified//", views.verified_detail, name="verified_detail"), path("question//", views.question_detail, name="question_detail"), path("question//split", views.rapid_split, name="rapid_split"), path("question//clone", views.RapidClone.as_view(), name="rapid_clone"), - #path("verified/", views.verified, name="verified"), - #path("all_questions/", views.all_questions, name="all_questions"), + # path("verified/", views.verified, name="verified"), + # path("all_questions/", views.all_questions, name="all_questions"), path("question//scrap", views.rapid_scrap, name="rapid_scrap"), - path("question//delete", views.QuestionDelete.as_view(), name="question_delete"), - path("question//user_answers", views.question_user_answers, name="question_user_answers"), + path( + "question//delete", + views.QuestionDelete.as_view(), + name="question_delete", + ), + path( + "question//user_answers", + views.question_user_answers, + name="question_user_answers", + ), path("exam///mark", views.mark, name="mark"), - path("exam//mark", views.RapidExamViews.mark_overview, name="mark_overview"), -# path("exam///", views.exam_take, name="exam_take"), - path("exam//question//", views.RapidExamViews.exam_question_detail, name="exam_question_detail"), + path( + "exam//mark", views.RapidExamViews.mark_overview, name="mark_overview" + ), + # path("exam///", views.exam_take, name="exam_take"), + path( + "exam//question//", + views.RapidExamViews.exam_question_detail, + name="exam_question_detail", + ), path("exam//", views.RapidExamViews.exam_overview, name="exam_overview"), - path("exam//json_edit", views.RapidExamViews.exam_json_edit, name="exam_json_edit"), - path("exam//scores", views.exam_scores_cid, - name="exam_scores_cid"), - path("exam//scores//", views.exam_scores_cid_user, - name="exam_scores_cid_user"), - path("exam//toggle_active", views.RapidExamViews.exam_toggle_active, name="exam_toggle_active"), - path("exam//toggle_results_published", views.RapidExamViews.exam_toggle_results_published, name="exam_toggle_results_published"), - path("exam/submit", views.RapidExamViews.postExamAnswers, name="exam_answers_submit"), + path( + "exam//json_edit", + views.RapidExamViews.exam_json_edit, + name="exam_json_edit", + ), + path("exam//scores", views.exam_scores_cid, name="exam_scores_cid"), + path( + "exam//scores//", + views.exam_scores_cid_user, + name="exam_scores_cid_user", + ), + path( + "exam//toggle_active", + views.RapidExamViews.exam_toggle_active, + name="exam_toggle_active", + ), + path( + "exam//toggle_results_published", + views.RapidExamViews.exam_toggle_results_published, + name="exam_toggle_results_published", + ), + path( + "exam/submit", views.RapidExamViews.postExamAnswers, name="exam_answers_submit" + ), path("exam/", views.RapidExamViews.exam_list, name="exam_list"), path("exam/all", views.RapidExamViews.exam_list_all, name="exam_list_all"), path("exam/create", views.ExamCreate.as_view(), name="exam_create"), @@ -39,37 +69,59 @@ urlpatterns = [ path("exam//delete", views.ExamDelete.as_view(), name="exam_delete"), path("exam/json/", views.RapidExamViews.active_exams, name="active_exams"), path("exam/json/", views.RapidExamViews.exam_json, name="exam_json"), - path("exam/json//unbased", views.RapidExamViews.exam_json_unbased, name="exam_json_unbased"), - path("exam/json//recreate", views.RapidExamViews.exam_json_recreate, name="exam_json_recreate"), + path( + "exam/json//unbased", + views.RapidExamViews.exam_json_unbased, + name="exam_json_unbased", + ), + path( + "exam/json//recreate", + views.RapidExamViews.exam_json_recreate, + name="exam_json_recreate", + ), path("create/", views.RapidCreate.as_view(), name="rapid_create"), path("create/exam/", views.RapidCreate.as_view(), name="rapid_create_exam"), - path("create/defaults", - views.RapidCreationDefaultView.as_view(), - name="rapid_create_defaults"), + path( + "create/defaults", + views.RapidCreationDefaultView.as_view(), + name="rapid_create_defaults", + ), path("region/create/", views.create_region, name="create_region"), - path("region/ajax/get_region_id", - views.get_region_id, - name="get_region_id"), - path("abnormality/create/", - views.create_abnormality, - name="create_abnormality"), - path("abnormality/ajax/get_abnormality_id", - views.get_abnormality_id, - name="get_abnormality_id"), - path("examination/create/", - views.create_examination, - name="create_examination"), - path("examination/ajax/get_examination_id", - views.get_examination_id, - name="get_examination_id"), + path("region/ajax/get_region_id", views.get_region_id, name="get_region_id"), + path("abnormality/create/", views.create_abnormality, name="create_abnormality"), + path( + "abnormality/ajax/get_abnormality_id", + views.get_abnormality_id, + name="get_abnormality_id", + ), + path("examination/create/", views.create_examination, name="create_examination"), + path( + "examination/ajax/get_examination_id", + views.get_examination_id, + name="get_examination_id", + ), path( "question//update", views.RapidUpdate.as_view(), name="rapid_update", ), path("/add_note", views.AddNote.as_view(), name="rapid_add_note"), - path("user_answers/", views.UserAnswerTableView.as_view(), name="rapid_user_answer_table_view"), - path("user_answers/", views.UserAnswerView.as_view(), name="rapid_user_answer_view"), - path("user_answers//delete", views.UserAnswerDelete.as_view(), name="user_answer_delete"), - path("user_answers/delete", views.user_answer_delete_multiple, name="user_answer_delete_multiple"), + path( + "user_answers/", + views.UserAnswerTableView.as_view(), + name="user_answer_table_view", + ), + path( + "user_answers/", views.UserAnswerView.as_view(), name="user_answer_view" + ), + path( + "user_answers//delete", + views.UserAnswerDelete.as_view(), + name="user_answer_delete", + ), + path( + "user_answers/delete", + views.user_answer_delete_multiple, + name="user_answer_delete_multiple", + ), ] diff --git a/rapids/views.py b/rapids/views.py index 62240e75..273e49fa 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -945,7 +945,7 @@ def exam_scores_cid_user(request, pk, sk): else: total_score = sum(answers_marks) - max_score = len(questions) * 2 + max_score = len(questions) return render( request, @@ -1016,7 +1016,7 @@ class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView): class UserAnswerDelete(SuperuserRequiredMixin, DeleteView): model = CidUserAnswer - success_url = reverse_lazy("rapids:rapid_user_answer_table_view") + success_url = reverse_lazy("rapids:user_answer_table_view") class LargeResultsSetPagination(PageNumberPagination):