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.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"""
"""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)
class ExamClone(ExamCloneMixin, ExamCreate):
"""Clone exam view"""
"""Clone exam view"""