.
This commit is contained in:
+94
-26
@@ -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/<int:pk>", views.long_series_detail, name="long_series_detail"),
|
||||
path("series/<int:pk>/order_dicom", views.long_series_order_dicom, name="long_series_order_dicom"),
|
||||
path("series/<int:pk>/download", views.SeriesImagesZipView.as_view(), name="long_series_download"),
|
||||
path("series/<int:pk>/order_dicom_instance", views.long_series_order_dicom_instance, name="long_series_order_dicom_instance"),
|
||||
path("series/<int:pk>/order_dicom_SeriesInstanceUID", views.long_series_order_dicom_SeriesInstanceUID, name="long_series_order_dicom_SeriesInstanceUID"),
|
||||
path("series/<int:pk>/order_upload_filename", views.long_series_order_upload_filename, name="long_series_order_upload_filename"),
|
||||
path("series/<int:pk>/delete", views.LongSeriesDelete.as_view(), name="long_series_delete"),
|
||||
path(
|
||||
"series/<int:pk>/order_dicom",
|
||||
views.long_series_order_dicom,
|
||||
name="long_series_order_dicom",
|
||||
),
|
||||
path(
|
||||
"series/<int:pk>/download",
|
||||
views.SeriesImagesZipView.as_view(),
|
||||
name="long_series_download",
|
||||
),
|
||||
path(
|
||||
"series/<int:pk>/order_dicom_instance",
|
||||
views.long_series_order_dicom_instance,
|
||||
name="long_series_order_dicom_instance",
|
||||
),
|
||||
path(
|
||||
"series/<int:pk>/order_dicom_SeriesInstanceUID",
|
||||
views.long_series_order_dicom_SeriesInstanceUID,
|
||||
name="long_series_order_dicom_SeriesInstanceUID",
|
||||
),
|
||||
path(
|
||||
"series/<int:pk>/order_upload_filename",
|
||||
views.long_series_order_upload_filename,
|
||||
name="long_series_order_upload_filename",
|
||||
),
|
||||
path(
|
||||
"series/<int:pk>/delete",
|
||||
views.LongSeriesDelete.as_view(),
|
||||
name="long_series_delete",
|
||||
),
|
||||
# path("unchecked/", views.unchecked_list, name="unchecked_list"),
|
||||
# path("verified/<int:pk>/", views.verified_detail, name="verified_detail"),
|
||||
path("question/<int:pk>/", views.question_detail, name="question_detail"),
|
||||
path("question/<int:pk>/json", views.question_json, name="question_json"),
|
||||
path("question/<int:pk>/json/unbased", views.question_json_unbased, name="question_json_unbased"),
|
||||
path("question/<int:pk>/json/recreate", views.question_json_recreate, name="question_json_recreate"),
|
||||
path(
|
||||
"question/<int:pk>/json/unbased",
|
||||
views.question_json_unbased,
|
||||
name="question_json_unbased",
|
||||
),
|
||||
path(
|
||||
"question/<int:pk>/json/recreate",
|
||||
views.question_json_recreate,
|
||||
name="question_json_recreate",
|
||||
),
|
||||
path("question/<int:pk>/split", views.long_split, name="long_split"),
|
||||
path("question/<int:pk>/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/<int:pk>/", views.LongExamViews.exam_overview, name="exam_overview"),
|
||||
path("exam/<int:pk>/json_edit", views.LongExamViews.exam_json_edit, name="exam_json_edit"),
|
||||
path("exam/<int:pk>/question_json_refresh", views.refresh_exam_question_json, name="refresh_exam_question_json"),
|
||||
path(
|
||||
"exam/<int:pk>/json_edit",
|
||||
views.LongExamViews.exam_json_edit,
|
||||
name="exam_json_edit",
|
||||
),
|
||||
path(
|
||||
"exam/<int:pk>/question_json_refresh",
|
||||
views.refresh_exam_question_json,
|
||||
name="refresh_exam_question_json",
|
||||
),
|
||||
path("exam/<int:pk>/scores", views.exam_scores_cid, name="exam_scores_cid"),
|
||||
path(
|
||||
"exam/<int:pk>/scores/<int:sk>/",
|
||||
@@ -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/<int:pk>/delete", views.ExamDelete.as_view(), name="exam_delete"),
|
||||
path("exam/json/", views.LongExamViews.active_exams, name="active_exams"),
|
||||
path("exam/json/<int:pk>", views.LongExamViews.exam_json, name="exam_json"),
|
||||
path("exam/json/<int:pk>/unbased", views.LongExamViews.exam_json_unbased, name="exam_json_unbased"),
|
||||
path("exam/json/<int:pk>/<int:sk>", views.LongExamViews.exam_question_json, name="exam_question_json"),
|
||||
path("exam/json/<int:pk>/unbased/<int:sk>", views.LongExamViews.exam_question_json_unbased, name="exam_question_json_unbased"),
|
||||
path(
|
||||
"exam/json/<int:pk>/unbased",
|
||||
views.LongExamViews.exam_json_unbased,
|
||||
name="exam_json_unbased",
|
||||
),
|
||||
path(
|
||||
"exam/json/<int:pk>/<int:sk>",
|
||||
views.LongExamViews.exam_question_json,
|
||||
name="exam_question_json",
|
||||
),
|
||||
path(
|
||||
"exam/json/<int:pk>/unbased/<int:sk>",
|
||||
views.LongExamViews.exam_question_json_unbased,
|
||||
name="exam_question_json_unbased",
|
||||
),
|
||||
path(
|
||||
"exam/json/<int:pk>/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("<int:pk>/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/<int:pk>", views.UserAnswerView.as_view(), name="user_answer_view"),
|
||||
path("user_answers/<int:pk>/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/<int:pk>", views.UserAnswerView.as_view(), name="user_answer_view"
|
||||
),
|
||||
path(
|
||||
"user_answers/<int:pk>/delete",
|
||||
views.UserAnswerDelete.as_view(),
|
||||
name="user_answer_delete",
|
||||
),
|
||||
path(
|
||||
"user_answers/delete",
|
||||
views.user_answer_delete_multiple,
|
||||
name="user_answer_delete_multiple",
|
||||
),
|
||||
]
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
@@ -23,6 +23,9 @@ Rapids:
|
||||
<a href="{% url 'rapids:rapid_view' %}">Questions</a> /
|
||||
<a href="{% url 'rapids:rapid_create' %}" title="Create a new question">Create Question</a>
|
||||
{% endif %}
|
||||
{% if request.is_superuser %}
|
||||
<a href="{% url 'rapids:user_answer_table_view' %}" title="User answers">Answers</a>
|
||||
{% endif %}
|
||||
{% comment %} </br>
|
||||
Questions by:
|
||||
<span id="authors-link"><a href="{% url 'rapids:author_list' %}">author</a></span> {% endcomment %}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{% block content %}
|
||||
<ul>
|
||||
{% for answer in answers %}
|
||||
<li><a href="{% url 'rapids:rapid_user_answer_view' pk=answer.pk %}">{{answer}}</a></li>
|
||||
<li><a href="{% url 'rapids:user_answer_view' pk=answer.pk %}">{{answer}}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
|
||||
+93
-41
@@ -9,29 +9,59 @@ urlpatterns = [
|
||||
path("author/<int:pk>/", 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/<int:pk>/", views.verified_detail, name="verified_detail"),
|
||||
# path("unchecked/", views.unchecked_list, name="unchecked_list"),
|
||||
# path("verified/<int:pk>/", views.verified_detail, name="verified_detail"),
|
||||
path("question/<int:pk>/", views.question_detail, name="question_detail"),
|
||||
path("question/<int:pk>/split", views.rapid_split, name="rapid_split"),
|
||||
path("question/<int:pk>/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/<int:pk>/scrap", views.rapid_scrap, name="rapid_scrap"),
|
||||
path("question/<int:pk>/delete", views.QuestionDelete.as_view(), name="question_delete"),
|
||||
path("question/<int:pk>/user_answers", views.question_user_answers, name="question_user_answers"),
|
||||
path(
|
||||
"question/<int:pk>/delete",
|
||||
views.QuestionDelete.as_view(),
|
||||
name="question_delete",
|
||||
),
|
||||
path(
|
||||
"question/<int:pk>/user_answers",
|
||||
views.question_user_answers,
|
||||
name="question_user_answers",
|
||||
),
|
||||
path("exam/<int:pk>/<int:sk>/mark", views.mark, name="mark"),
|
||||
path("exam/<int:pk>/mark", views.RapidExamViews.mark_overview, name="mark_overview"),
|
||||
# path("exam/<int:pk>/<int:sk>/", views.exam_take, name="exam_take"),
|
||||
path("exam/<int:pk>/question/<int:sk>/", views.RapidExamViews.exam_question_detail, name="exam_question_detail"),
|
||||
path(
|
||||
"exam/<int:pk>/mark", views.RapidExamViews.mark_overview, name="mark_overview"
|
||||
),
|
||||
# path("exam/<int:pk>/<int:sk>/", views.exam_take, name="exam_take"),
|
||||
path(
|
||||
"exam/<int:pk>/question/<int:sk>/",
|
||||
views.RapidExamViews.exam_question_detail,
|
||||
name="exam_question_detail",
|
||||
),
|
||||
path("exam/<int:pk>/", views.RapidExamViews.exam_overview, name="exam_overview"),
|
||||
path("exam/<int:pk>/json_edit", views.RapidExamViews.exam_json_edit, name="exam_json_edit"),
|
||||
path("exam/<int:pk>/scores", views.exam_scores_cid,
|
||||
name="exam_scores_cid"),
|
||||
path("exam/<int:pk>/scores/<int:sk>/", views.exam_scores_cid_user,
|
||||
name="exam_scores_cid_user"),
|
||||
path("exam/<int:pk>/toggle_active", views.RapidExamViews.exam_toggle_active, name="exam_toggle_active"),
|
||||
path("exam/<int:pk>/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/<int:pk>/json_edit",
|
||||
views.RapidExamViews.exam_json_edit,
|
||||
name="exam_json_edit",
|
||||
),
|
||||
path("exam/<int:pk>/scores", views.exam_scores_cid, name="exam_scores_cid"),
|
||||
path(
|
||||
"exam/<int:pk>/scores/<int:sk>/",
|
||||
views.exam_scores_cid_user,
|
||||
name="exam_scores_cid_user",
|
||||
),
|
||||
path(
|
||||
"exam/<int:pk>/toggle_active",
|
||||
views.RapidExamViews.exam_toggle_active,
|
||||
name="exam_toggle_active",
|
||||
),
|
||||
path(
|
||||
"exam/<int:pk>/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/<int:pk>/delete", views.ExamDelete.as_view(), name="exam_delete"),
|
||||
path("exam/json/", views.RapidExamViews.active_exams, name="active_exams"),
|
||||
path("exam/json/<int:pk>", views.RapidExamViews.exam_json, name="exam_json"),
|
||||
path("exam/json/<int:pk>/unbased", views.RapidExamViews.exam_json_unbased, name="exam_json_unbased"),
|
||||
path("exam/json/<int:pk>/recreate", views.RapidExamViews.exam_json_recreate, name="exam_json_recreate"),
|
||||
path(
|
||||
"exam/json/<int:pk>/unbased",
|
||||
views.RapidExamViews.exam_json_unbased,
|
||||
name="exam_json_unbased",
|
||||
),
|
||||
path(
|
||||
"exam/json/<int:pk>/recreate",
|
||||
views.RapidExamViews.exam_json_recreate,
|
||||
name="exam_json_recreate",
|
||||
),
|
||||
path("create/", views.RapidCreate.as_view(), name="rapid_create"),
|
||||
path("create/exam/<int:pk>", 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/<int:pk>/update",
|
||||
views.RapidUpdate.as_view(),
|
||||
name="rapid_update",
|
||||
),
|
||||
path("<int:pk>/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/<int:pk>", views.UserAnswerView.as_view(), name="rapid_user_answer_view"),
|
||||
path("user_answers/<int:pk>/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/<int:pk>", views.UserAnswerView.as_view(), name="user_answer_view"
|
||||
),
|
||||
path(
|
||||
"user_answers/<int:pk>/delete",
|
||||
views.UserAnswerDelete.as_view(),
|
||||
name="user_answer_delete",
|
||||
),
|
||||
path(
|
||||
"user_answers/delete",
|
||||
views.user_answer_delete_multiple,
|
||||
name="user_answer_delete_multiple",
|
||||
),
|
||||
]
|
||||
|
||||
+2
-2
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user