This commit is contained in:
Ross
2021-09-25 21:20:07 +01:00
parent 85379eb128
commit f8f8e21298
3 changed files with 71 additions and 2 deletions
+4
View File
@@ -60,6 +60,10 @@ class AnatomyUserAnswerTable(tables.Table):
delete = tables.LinkColumn(
"anatomy:user_answer_delete", text="Delete", args=[A("pk")], orderable=False
)
view = tables.LinkColumn('anatomy:user_answer_view',
text='View',
args=[A('pk')],
orderable=False)
class Meta:
model = CidUserAnswer
template_name = "django_tables2/bootstrap4.html"
@@ -0,0 +1,66 @@
{% extends 'anatomy/base.html' %}
{% load render_table from django_tables2 %}
{% block css %}
{% endblock %}
{% block content %}
<div id="view-filter-options">
<h3>Anatomy 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 () {
$("table thead th input").click((e) => {
let status = e.currentTarget.checked; console.log(status, $("table tbody input")); $("table tbody input").prop("checked", status);
})
//$("thead input:checked").each((n, el) => {
$("#delete-selected-button").on("click", function () {
answer_ids = [];
$("tbody input:checked").each((n, el) => {
answer_ids.push(el.value);
})
if (confirm(`Delete ${answer_ids.length} answers?`)) {
$.ajax({
url: "{% url 'anatomy:user_answer_delete_multiple' %}",
data: {
csrfmiddlewaretoken: "{{ csrf_token }}",
answer_ids: JSON.stringify(answer_ids) // true if checked else false
},
type: "POST",
dataType: "json",
})
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
.done(function (data) {
console.log(data);
if (data.status == "success") {
toastr.info('Deleted.')
location.reload();
} else {
toastr.info('Error deleting questions.')
}
// show some message according to the response.
// For eg. A message box showing that the status has been changed
})
.always(function () {
console.log('[Done]');
})
}
})
});
</script>
{% endblock %}
+1 -2
View File
@@ -9,7 +9,6 @@ from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied
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
@@ -952,7 +951,7 @@ class AnatomyQuestionView(LoginRequiredMixin, SingleTableMixin, FilterView):
class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
model = CidUserAnswer
table_class = AnatomyUserAnswerTable
template_name = "anatomy/anatomy_question_view.html"
template_name = "anatomy/user_answer_question_view.html"
filterset_class = AnatomyUserAnswerFilter