mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2025-04-01 18:51:11 +00:00
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
# Copyright (C) 2025 by Animath
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
from django.contrib import messages
|
|
from django.shortcuts import redirect
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.views.generic import CreateView, DetailView, UpdateView
|
|
from django_tables2 import SingleTableView
|
|
|
|
from tfjm.views import AdminMixin
|
|
from .forms import SurveyForm
|
|
from .models import Survey
|
|
from .tables import SurveyTable
|
|
|
|
|
|
class SurveyListView(AdminMixin, SingleTableView):
|
|
model = Survey
|
|
table_class = SurveyTable
|
|
template_name = "survey/survey_list.html"
|
|
|
|
|
|
class SurveyCreateView(AdminMixin, CreateView):
|
|
model = Survey
|
|
form_class = SurveyForm
|
|
|
|
|
|
class SurveyDetailView(AdminMixin, DetailView):
|
|
model = Survey
|
|
|
|
|
|
class SurveyInviteView(AdminMixin, DetailView):
|
|
model = Survey
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
survey = self.get_object()
|
|
new_participants = survey.invite_all()
|
|
if new_participants:
|
|
messages.success(request, _("Invites sent!"))
|
|
else:
|
|
messages.warning(request, _("All invites were already sent."))
|
|
return redirect("survey:survey_detail", survey.pk)
|
|
|
|
|
|
class SurveyRefreshCompletedView(AdminMixin, DetailView):
|
|
model = Survey
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
survey = self.get_object()
|
|
survey.fetch_completion_data()
|
|
messages.success(request, _("Completion data refreshed!"))
|
|
return redirect("survey:survey_detail", survey.pk)
|
|
|
|
|
|
class SurveyUpdateView(AdminMixin, UpdateView):
|
|
model = Survey
|
|
form_class = SurveyForm
|