Ajout fichier manquant
This commit is contained in:
parent
bf2733d51d
commit
4f673a8990
106
src/agenda_culturel/views/special_period_views.py
Normal file
106
src/agenda_culturel/views/special_period_views.py
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
from django.contrib import messages
|
||||||
|
from django.contrib.auth.mixins import PermissionRequiredMixin, LoginRequiredMixin
|
||||||
|
from django.contrib.messages.views import SuccessMessageMixin
|
||||||
|
from django.http import HttpResponseRedirect
|
||||||
|
from django.urls import reverse_lazy
|
||||||
|
from django.utils.translation import gettext_lazy as _, ngettext
|
||||||
|
from django.views.generic import ListView, UpdateView, CreateView, DeleteView
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
from ..forms import SpecialPeriodFileForm, SpecialPeriodForm
|
||||||
|
from ..models import SpecialPeriod
|
||||||
|
|
||||||
|
|
||||||
|
class SpecialPeriodCreateView(
|
||||||
|
PermissionRequiredMixin, LoginRequiredMixin, SuccessMessageMixin, CreateView
|
||||||
|
):
|
||||||
|
model = SpecialPeriod
|
||||||
|
permission_required = "agenda_culturel.add_specialperiod"
|
||||||
|
success_message = _("The special period has been successfully created.")
|
||||||
|
success_url = reverse_lazy("list_specialperiods")
|
||||||
|
form_class = SpecialPeriodForm
|
||||||
|
|
||||||
|
|
||||||
|
class SpecialPeriodListView(PermissionRequiredMixin, LoginRequiredMixin, ListView):
|
||||||
|
model = SpecialPeriod
|
||||||
|
paginate_by = 10
|
||||||
|
permission_required = "agenda_culturel.add_specialperiod"
|
||||||
|
ordering = ["start_date", "name__unaccent"]
|
||||||
|
|
||||||
|
|
||||||
|
class SpecialPeriodDeleteView(
|
||||||
|
SuccessMessageMixin,
|
||||||
|
PermissionRequiredMixin,
|
||||||
|
LoginRequiredMixin,
|
||||||
|
DeleteView,
|
||||||
|
):
|
||||||
|
model = SpecialPeriod
|
||||||
|
permission_required = "agenda_culturel.delete_specialperiod"
|
||||||
|
success_url = reverse_lazy("list_specialperiods")
|
||||||
|
success_message = _("The special period has been successfully deleted.")
|
||||||
|
|
||||||
|
|
||||||
|
class SpecialPeriodUpdateView(
|
||||||
|
SuccessMessageMixin,
|
||||||
|
PermissionRequiredMixin,
|
||||||
|
LoginRequiredMixin,
|
||||||
|
UpdateView,
|
||||||
|
):
|
||||||
|
model = SpecialPeriod
|
||||||
|
permission_required = "agenda_culturel.change_specialperiod"
|
||||||
|
success_message = _("The special period has been successfully updated.")
|
||||||
|
success_url = reverse_lazy("list_specialperiods")
|
||||||
|
form_class = SpecialPeriodForm
|
||||||
|
|
||||||
|
|
||||||
|
def load_specialperiods_from_ical(request):
|
||||||
|
if request.method == "POST":
|
||||||
|
form = SpecialPeriodFileForm(request.POST, request.FILES)
|
||||||
|
if form.is_valid():
|
||||||
|
nb_created, nb_overlap, nb_error, error = SpecialPeriod.load_from_ical(
|
||||||
|
request.FILES["file"], request.POST["periodtype"]
|
||||||
|
)
|
||||||
|
|
||||||
|
if nb_created > 0:
|
||||||
|
messages.success(
|
||||||
|
request,
|
||||||
|
ngettext(
|
||||||
|
"%(nb_created)d interval inserted.",
|
||||||
|
"%(nb_created)d intervals inserted.",
|
||||||
|
nb_created,
|
||||||
|
)
|
||||||
|
% {"nb_created": nb_created},
|
||||||
|
)
|
||||||
|
|
||||||
|
if nb_overlap > 0:
|
||||||
|
messages.success(
|
||||||
|
request,
|
||||||
|
ngettext(
|
||||||
|
"%(nb_overlap)d insersion was not possible due to overlap.",
|
||||||
|
"%(nb_overlap)d insersion were not possible due to overlap.",
|
||||||
|
nb_overlap,
|
||||||
|
)
|
||||||
|
% {"nb_overlap": nb_overlap},
|
||||||
|
)
|
||||||
|
|
||||||
|
if nb_error > 0:
|
||||||
|
messages.success(
|
||||||
|
request,
|
||||||
|
ngettext(
|
||||||
|
"%(nb_error)d error while reading ical file.",
|
||||||
|
"%(nb_error)d error while reading ical file.",
|
||||||
|
nb_error,
|
||||||
|
)
|
||||||
|
% {"nb_error": nb_error},
|
||||||
|
)
|
||||||
|
if error is not None:
|
||||||
|
messages.success(
|
||||||
|
request, _("Error during file reading: {}").format(error)
|
||||||
|
)
|
||||||
|
|
||||||
|
return HttpResponseRedirect(reverse_lazy("list_specialperiods"))
|
||||||
|
else:
|
||||||
|
form = SpecialPeriodFileForm()
|
||||||
|
return render(
|
||||||
|
request, "agenda_culturel/load_specialperiods_from_ical.html", {"form": form}
|
||||||
|
)
|
Loading…
x
Reference in New Issue
Block a user