From 14c3a3c07981885e6678444bde74bf7bbaa628a5 Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 22 Apr 2021 23:37:33 +0100 Subject: [PATCH] . --- rapids/filters.py | 14 ++++++++++++ rapids/tables.py | 22 ++++++++++++++++++- .../templates/rapids/rapid_question_view.html | 18 +++++++++++++++ rapids/urls.py | 2 ++ rapids/views.py | 14 +++++++++++- 5 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 rapids/templates/rapids/rapid_question_view.html diff --git a/rapids/filters.py b/rapids/filters.py index 09c8f36a..479726cf 100755 --- a/rapids/filters.py +++ b/rapids/filters.py @@ -15,4 +15,18 @@ class RapidFilter(django_filters.FilterSet): if not request.user.groups.filter(name="rapid_checker").exists(): queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id) super(RapidFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request) + pass + +class RapidQuestionFilter(django_filters.FilterSet): + class Meta: + model = RapidQuestion + fields = ("question_type", "exams", + "examination", + "modality", "region", + "normal", "created_date", "open_access", "author") + + def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None): + if not request.user.groups.filter(name="rapid_checker").exists(): + queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id) + super(RapidQuestionFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request) pass \ No newline at end of file diff --git a/rapids/tables.py b/rapids/tables.py index 25deb20c..dd217a6b 100755 --- a/rapids/tables.py +++ b/rapids/tables.py @@ -55,4 +55,24 @@ class RapidTable(tables.Table): "laterality", #"site", "created_date", "open_access", "author") - sequence = ("view", "images", "exams") \ No newline at end of file + sequence = ("view", "images", "exams") + +class RapidsUserAnswerTable(tables.Table): + select = tables.CheckBoxColumn(accessor=("pk")) + delete = tables.LinkColumn( + "rapids:rapid_user_answer_delete", text="Delete", args=[A("pk")], orderable=False + ) + class Meta: + model = CidUserAnswer + template_name = "django_tables2/bootstrap4.html" + fields = ( + "cid", + "question", + "normal", + "answer", + #"answer_compare", + "exam", + "created", + "updated", + ) + \ No newline at end of file diff --git a/rapids/templates/rapids/rapid_question_view.html b/rapids/templates/rapids/rapid_question_view.html new file mode 100644 index 00000000..54d20a98 --- /dev/null +++ b/rapids/templates/rapids/rapid_question_view.html @@ -0,0 +1,18 @@ +{% extends 'rapids/base.html' %} + +{% load render_table from django_tables2 %} +{% block css %} +{% endblock %} + +{% block content %} + +
+

Filter Rapid Questions

+
+ {{ filter.form }} + +
+
+{% render_table table %} + +{% endblock %} \ No newline at end of file diff --git a/rapids/urls.py b/rapids/urls.py index 170173bf..12f414e4 100755 --- a/rapids/urls.py +++ b/rapids/urls.py @@ -64,4 +64,6 @@ urlpatterns = [ name="rapid_update", ), path("/add_note", views.AddNote.as_view(), name="rapid_add_note"), + path("user_answers/", views.RapidUserAnswerView.as_view(), name="rapid_user_answer_view"), + path("user_answers//delete", views.UserAnswerDelete.as_view(), name="rapid_user_answer_delete"), ] diff --git a/rapids/views.py b/rapids/views.py index 5d77e394..65f8e435 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -919,4 +919,16 @@ class ExamViewSet(viewsets.ModelViewSet): class ExamCreate(LoginRequiredMixin, CreateView): model = Exam - form_class = ExamForm \ No newline at end of file + form_class = ExamForm + + +class AnatomyUserAnswerView(LoginRequiredMixin, SingleTableMixin, FilterView): + model = CidUserAnswer + table_class = RapidUserAnswerTable + template_name = "rapids/rapid_question_view.html" + + filterset_class = RapidUserAnswerFilter + +class UserAnswerDelete(SuperuserRequiredMixin, DeleteView): + model = CidUserAnswer + success_url = reverse_lazy("rapids:rapid_user_answer_view") \ No newline at end of file