This commit is contained in:
Ross
2021-08-03 22:00:56 +01:00
parent 0f502a1ed2
commit 3d96cad503
4 changed files with 51 additions and 1 deletions
@@ -2,7 +2,7 @@
{% extends 'rapids/base.html' %}
{% block content %}
User answer: {{ciduseranswer.cid}}
CID: {{ciduseranswer.cid}}
<h3>Question</h3>
{{ciduseranswer.question}}
+38
View File
@@ -13,6 +13,44 @@
<input class="btn btn-primary btn-sm mt-1 mb-1" type="submit" />
</form>
</div>
<button id="delete-all-button">Delete all</button>
{% render_table table %}
{% endblock %}
{% block js %}
<script>
$(document).ready(function () {
//$("thead input:checked").each((n, el) => {
answer_ids = [];
$("tbody input:checked").each((n, el) => {
answer_ids.push(el.value);
})
$("#delete-all-button").on("click", function () {
$.ajax({
url: "{% url 'longs:user_answer_delete_multiple' %}",
data: {
csrfmiddlewaretoken: "{{ csrf_token }}",
answer_ids: this.checked // 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.')
}
// 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
View File
@@ -107,4 +107,5 @@ urlpatterns = [
path("user_answers/", views.UserAnswerTableView.as_view(), name="user_answer_table_view"),
path("user_answers/<int:pk>", views.UserAnswerView.as_view(), name="user_answer_view"),
path("user_answers/<int:pk>/delete", views.UserAnswerDelete.as_view(), name="user_answer_delete"),
path("user_answers/delete", views.user_answer_delete_multiple, name="user_answer_delete_multiple"),
]
+11
View File
@@ -1018,3 +1018,14 @@ class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
class UserAnswerDelete(SuperuserRequiredMixin, DeleteView):
model = CidUserAnswer
success_url = reverse_lazy("longs:user_answer_table_view")
@user_passes_test(lambda u: u.is_superuser)
def user_answer_delete_multiple(request):
if request.is_ajax():
answer_ids = request.GET["answer_ids"]
# We could probably delete them all at once....
for id in answer_ids:
CidUserAnswer.objects.get(pk=id).delete()
return HttpResponseRedirect(request.path_info)
return HttpResponse("/")