from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin from Movement.Forms import FormsCalendar from Movement import models from django.urls import reverse_lazy from django.utils import timezone class CalendarListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): model = models.Calendar template_name = 'Calendar/List.html' context_object_name = 'Calendar' paginate_by = 10 permission_required = 'Base.view_' def get_queryset(self): queryset = super().get_queryset() date = self.request.GET.get('date') if date: queryset = queryset.filter(date__icontains=date) else: queryset = queryset.filter(date__icontains=timezone.localdate()) return queryset class CalendarDetailView(LoginRequiredMixin, PermissionRequiredMixin, DetailView): model = models.Calendar template_name = 'Calendar/Detail.html' permission_required = 'Base.view_' class CalendarUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): model = models.Calendar template_name = 'Calendar/Update.html' form_class = FormsCalendar.FormsCalendar success_url = reverse_lazy('MovCalendarListView') permission_required = 'Base.change_' class CalendarDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteView): model = models.Calendar template_name = 'Calendar/Delete.html' success_url = reverse_lazy('MovCalendarListView') permission_required = 'Base.delete_'