From 8a24e51bef56c48efbc6e5dbf1a52bee5dd560c9 Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 30 Sep 2021 22:34:21 +0100 Subject: [PATCH] . --- physics/templates/physics/question_view.html | 22 +++++++++++++ .../physics/user_answer_question_view.html | 31 ++++++++++++++++++ physics/views.py | 32 ++++++++++++++++++- rapids/views.py | 3 +- 4 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 physics/templates/physics/question_view.html create mode 100644 physics/templates/physics/user_answer_question_view.html diff --git a/physics/templates/physics/question_view.html b/physics/templates/physics/question_view.html new file mode 100644 index 00000000..d06501cc --- /dev/null +++ b/physics/templates/physics/question_view.html @@ -0,0 +1,22 @@ +{% extends 'physics/base.html' %} + +{% block css %} +{% endblock %} + +{% block content %} + +
+

Filter SBA Questions

+
+ + {{ filter.form }} + + +
+
+ {% autoescape off %} +{% load render_table from django_tables2 %} +{% render_table table %} + {% endautoescape %} + +{% endblock %} \ No newline at end of file diff --git a/physics/templates/physics/user_answer_question_view.html b/physics/templates/physics/user_answer_question_view.html new file mode 100644 index 00000000..ad42ca09 --- /dev/null +++ b/physics/templates/physics/user_answer_question_view.html @@ -0,0 +1,31 @@ +{% extends 'physics/base.html' %} + +{% load render_table from django_tables2 %} +{% block css %} +{% endblock %} + +{% block content %} + +
+

Physics User Answers

+
+ {{ filter.form }} + +
+
+{% render_table table %} + + +{% endblock %} + +{% block js %} + +{% endblock %} \ No newline at end of file diff --git a/physics/views.py b/physics/views.py index 10e93723..3d273543 100644 --- a/physics/views.py +++ b/physics/views.py @@ -1,3 +1,6 @@ +from physics.filters import QuestionFilter, UserAnswerFilter +from generic.mixins import SuperuserRequiredMixin +from physics.tables import QuestionTable, UserAnswerTable from django.shortcuts import render, get_object_or_404, redirect from django.views.decorators.csrf import csrf_exempt from django import forms @@ -7,6 +10,7 @@ from django.contrib.auth.decorators import login_required, user_passes_test from django.contrib.auth.models import User from django.contrib.auth.mixins import LoginRequiredMixin +from django.views.generic.detail import DetailView from django.views.generic.edit import CreateView, UpdateView, DeleteView from django.views.generic import ListView @@ -20,6 +24,8 @@ from django.urls import reverse_lazy, reverse from django.http import Http404, JsonResponse from django.http import HttpResponseRedirect, HttpResponse +from django_filters.views import FilterView +from django_tables2.views import SingleTableMixin from reversion.views import RevisionMixin from .models import Question, Category, Exam, CidUserAnswer @@ -322,4 +328,28 @@ class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView): return super().form_valid(form) class ExamClone(ExamCloneMixin, ExamCreate): - """Clone exam view""" \ No newline at end of file + """Clone exam view""" + +class QuestionView(LoginRequiredMixin, SingleTableMixin, FilterView): + model = Question + table_class = QuestionTable + template_name = "physics/question_view.html" + + filterset_class = QuestionFilter + +class UserAnswerView(LoginRequiredMixin, DetailView): + model = CidUserAnswer + + +class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView): + model = CidUserAnswer + table_class = UserAnswerTable + template_name = "physics/user_answer_question_view.html" + + filterset_class = UserAnswerFilter + + +class UserAnswerDelete(SuperuserRequiredMixin, DeleteView): + model = CidUserAnswer + template_name = "user_answer_delete.html" + success_url = reverse_lazy("physics:user_answer_table_view") \ No newline at end of file diff --git a/rapids/views.py b/rapids/views.py index 507ca07b..f4eb2dab 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -1097,4 +1097,5 @@ def question_save_annotation(request, pk): return JsonResponse(data, status=400) class ExamClone(ExamCloneMixin, ExamCreate): - """Clone exam view""" \ No newline at end of file + """Clone exam view""" +