1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-08-21 09:28:41 +02:00

Add a delete question button

This commit is contained in:
Yohann D'ANELLO
2020-10-31 22:18:04 +01:00
parent d0007ee9b2
commit 2f6a1f6e56
6 changed files with 104 additions and 35 deletions

View File

@@ -13,8 +13,7 @@ from django.shortcuts import redirect
from django.template.loader import render_to_string
from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, DetailView, FormView, RedirectView, UpdateView
from django.views.generic.base import TemplateView
from django.views.generic import CreateView, DeleteView, DetailView, FormView, RedirectView, TemplateView, UpdateView
from django.views.generic.edit import FormMixin, ProcessFormView
from django_tables2 import SingleTableView
from magic import Magic
@@ -430,6 +429,27 @@ class UpdateQuestionView(LoginRequiredMixin, UpdateView):
return reverse_lazy("participation:participation_detail", args=(self.object.participation.pk,))
class DeleteQuestionView(LoginRequiredMixin, DeleteView):
"""
Remove a question.
"""
model = Question
def dispatch(self, request, *args, **kwargs):
self.object = self.get_object()
if not request.user.is_authenticated:
return self.handle_no_permission()
if request.user.registration.is_admin or \
request.user.registration.participates and \
request.user.registration.team.pk == self.object.participation.team_id:
return super().dispatch(request, *args, **kwargs)
raise PermissionDenied
def get_success_url(self):
return reverse_lazy("participation:participation_detail", args=(self.object.participation.pk,))
class UploadVideoView(LoginRequiredMixin, UpdateView):
"""
Upload a solution video for a team.