This commit is contained in:
Ross
2021-09-30 22:34:21 +01:00
parent 0cb76a24e4
commit 8a24e51bef
4 changed files with 86 additions and 2 deletions
@@ -0,0 +1,22 @@
{% extends 'physics/base.html' %}
{% block css %}
{% endblock %}
{% block content %}
<div id="view-filter-options">
<h3>Filter SBA Questions</h3>
<form action="" method="get">
{{ filter.form }}
<input class="btn btn-primary btn-sm mt-1 mb-1" type="submit" />
</form>
</div>
{% autoescape off %}
{% load render_table from django_tables2 %}
{% render_table table %}
{% endautoescape %}
{% endblock %}
@@ -0,0 +1,31 @@
{% extends 'physics/base.html' %}
{% load render_table from django_tables2 %}
{% block css %}
{% endblock %}
{% block content %}
<div id="view-filter-options">
<h3>Physics User Answers</h3>
<form action="" method="get">
{{ filter.form }}
<input class="btn btn-primary btn-sm mt-1 mb-1" type="submit" />
</form>
</div>
{% render_table table %}
<button id="delete-selected-button">Delete selected answers</button>
{% endblock %}
{% block js %}
<script>
$(document).ready(function () {
$("#delete-selected-button").on("click", () => {
window.delete_multiple(
"{% url 'physics:user_answer_delete_multiple' %}", "{{ csrf_token }}"
)
})
});
</script>
{% endblock %}
+31 -1
View File
@@ -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.shortcuts import render, get_object_or_404, redirect
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django import forms 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.models import User
from django.contrib.auth.mixins import LoginRequiredMixin 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.edit import CreateView, UpdateView, DeleteView
from django.views.generic import ListView 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 Http404, JsonResponse
from django.http import HttpResponseRedirect, HttpResponse from django.http import HttpResponseRedirect, HttpResponse
from django_filters.views import FilterView
from django_tables2.views import SingleTableMixin
from reversion.views import RevisionMixin from reversion.views import RevisionMixin
from .models import Question, Category, Exam, CidUserAnswer from .models import Question, Category, Exam, CidUserAnswer
@@ -322,4 +328,28 @@ class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView):
return super().form_valid(form) return super().form_valid(form)
class ExamClone(ExamCloneMixin, ExamCreate): class ExamClone(ExamCloneMixin, ExamCreate):
"""Clone exam view""" """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")
+2 -1
View File
@@ -1097,4 +1097,5 @@ def question_save_annotation(request, pk):
return JsonResponse(data, status=400) return JsonResponse(data, status=400)
class ExamClone(ExamCloneMixin, ExamCreate): class ExamClone(ExamCloneMixin, ExamCreate):
"""Clone exam view""" """Clone exam view"""