from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin from Base.Forms import FormsChartOfAccount from Base import models from django.urls import reverse_lazy class ChartOfAccountListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): model = models.ChartOfAccount template_name = 'ChartOfAccount/List.html' context_object_name = 'ChartOfAccount' paginate_by = 10 permission_required = 'Base.view_' def get_queryset(self): queryset = super().get_queryset() name = self.request.GET.get('name') if name: queryset = queryset.filter(name__icontains=name) return queryset class ChartOfAccountCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView): model = models.ChartOfAccount template_name = 'ChartOfAccount/Create.html' form_class = FormsChartOfAccount.FormsChartOfAccount success_url = reverse_lazy('ChartOfAccountListView') permission_required = 'Base.add_' class ChartOfAccountDetailView(LoginRequiredMixin, PermissionRequiredMixin, DetailView): model = models.ChartOfAccount template_name = 'ChartOfAccount/Detail.html' permission_required = 'Base.view_' class ChartOfAccountUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): model = models.ChartOfAccount template_name = 'ChartOfAccount/Update.html' form_class = FormsChartOfAccount.FormsChartOfAccount success_url = reverse_lazy('ChartOfAccountListView') permission_required = 'Base.change_' class ChartOfAccountDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteView): model = models.ChartOfAccount template_name = 'ChartOfAccount/Delete.html' success_url = reverse_lazy('ChartOfAccountListView') permission_required = 'Base.delete_'