diff --git a/anatomy/tables.py b/anatomy/tables.py index f96de558..5a6f6b34 100644 --- a/anatomy/tables.py +++ b/anatomy/tables.py @@ -58,7 +58,7 @@ class AnatomyQuestionTable(tables.Table): class AnatomyUserAnswerTable(tables.Table): select = tables.CheckBoxColumn(accessor=("pk")) delete = tables.LinkColumn( - "anatomy:anatomy_user_answer_delete", text="Delete", args=[A("pk")], orderable=False + "anatomy:user_answer_delete", text="Delete", args=[A("pk")], orderable=False ) class Meta: model = CidUserAnswer diff --git a/anatomy/urls.py b/anatomy/urls.py index 330fbac0..57dc3573 100644 --- a/anatomy/urls.py +++ b/anatomy/urls.py @@ -56,5 +56,5 @@ urlpatterns = [ views.get_examination_id, name="get_examination_id"), path("user_answers/", views.AnatomyUserAnswerView.as_view(), name="anatomy_user_answer_view"), - path("user_answers//delete", views.UserAnswerDelete.as_view(), name="anatomy_user_answer_delete"), + path("user_answers//delete", views.UserAnswerDelete.as_view(), name="user_answer_delete"), ] diff --git a/longs/templates/longs/question_view.html b/longs/templates/longs/question_view.html index c271bdf0..f771ba0c 100644 --- a/longs/templates/longs/question_view.html +++ b/longs/templates/longs/question_view.html @@ -13,44 +13,9 @@ - {% render_table table %} {% endblock %} {% block js %} - {% endblock %} \ No newline at end of file diff --git a/longs/templates/longs/user_answer_question_view.html b/longs/templates/longs/user_answer_question_view.html new file mode 100644 index 00000000..d82d590b --- /dev/null +++ b/longs/templates/longs/user_answer_question_view.html @@ -0,0 +1,59 @@ +{% extends 'longs/base.html' %} + +{% load render_table from django_tables2 %} +{% block css %} +{% endblock %} + +{% block content %} + +
+

Filter User Answers

+
+ {{ filter.form }} + +
+
+{% render_table table %} + + +{% endblock %} + +{% block js %} + +{% endblock %} \ No newline at end of file diff --git a/longs/views.py b/longs/views.py index cd800318..a6dad1e9 100755 --- a/longs/views.py +++ b/longs/views.py @@ -1047,7 +1047,7 @@ class UserAnswerView(LoginRequiredMixin, DetailView): class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView): model = CidUserAnswer table_class = UserAnswerTable - template_name = "longs/question_view.html" + template_name = "longs/user_answer_question_view.html" filterset_class = UserAnswerFilter diff --git a/rapids/tables.py b/rapids/tables.py index c87e852f..9df09751 100755 --- a/rapids/tables.py +++ b/rapids/tables.py @@ -60,7 +60,7 @@ class RapidTable(tables.Table): class RapidUserAnswerTable(tables.Table): select = tables.CheckBoxColumn(accessor=("pk")) delete = tables.LinkColumn( - "rapids:rapid_user_answer_delete", text="Delete", args=[A("pk")], orderable=False + "rapids:user_answer_delete", text="Delete", args=[A("pk")], orderable=False ) view = tables.LinkColumn('rapids:rapid_user_answer_view', text='View', diff --git a/rapids/templates/rapids/ciduseranswer_detail.html b/rapids/templates/rapids/ciduseranswer_detail.html index 5b2f34d1..ee31f80f 100644 --- a/rapids/templates/rapids/ciduseranswer_detail.html +++ b/rapids/templates/rapids/ciduseranswer_detail.html @@ -6,5 +6,5 @@ CID: {{ciduseranswer.cid}}
{{ciduseranswer.question}}
Normal: {{ciduseranswer.normal}}
Answer: {{ciduseranswer.answer}}
-Delete answer +Delete answer {% endblock content %} \ No newline at end of file diff --git a/rapids/templates/rapids/user_answer_question_view.html b/rapids/templates/rapids/user_answer_question_view.html new file mode 100644 index 00000000..7d742890 --- /dev/null +++ b/rapids/templates/rapids/user_answer_question_view.html @@ -0,0 +1,59 @@ +{% extends 'rapids/base.html' %} + +{% load render_table from django_tables2 %} +{% block css %} +{% endblock %} + +{% block content %} + +
+

Rapid User Answers

+
+ {{ filter.form }} + +
+
+{% render_table table %} + + +{% endblock %} + +{% block js %} + +{% endblock %} \ No newline at end of file diff --git a/rapids/urls.py b/rapids/urls.py index d2d69ed4..87240473 100755 --- a/rapids/urls.py +++ b/rapids/urls.py @@ -70,5 +70,6 @@ urlpatterns = [ 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="rapid_user_answer_delete"), + 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 bc39b0e6..1725c7c9 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -1009,7 +1009,7 @@ class UserAnswerView(LoginRequiredMixin, DetailView): class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView): model = CidUserAnswer table_class = RapidUserAnswerTable - template_name = "rapids/rapid_question_view.html" + template_name = "rapids/user_answer_question_view.html" filterset_class = RapidUserAnswerFilter @@ -1118,3 +1118,14 @@ class RapidLateralityViewSet( # get_object_or_404(question, pk=pk) # return { "content_type" : content_type, # "object_id" : pk } + +@user_passes_test(lambda u: u.is_superuser) +def user_answer_delete_multiple(request): + if request.is_ajax(): + answer_ids = json.loads(request.POST["answer_ids"]) + + # 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("/")