from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin from Base.Forms import FormsBankAccounts from Base import models from django.urls import reverse_lazy from django.contrib import messages class BankAccountsListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): model = models.BankAccount template_name = 'BankAccounts/List.html' context_object_name = 'BankAccounts' paginate_by = 10 permission_required = 'Base.view_bankaccount' 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 BankAccountsCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView): model = models.BankAccount template_name = 'BankAccounts/Create.html' form_class = FormsBankAccounts.FormsBankAccount success_url = reverse_lazy('BankAccountsListView') permission_required = 'Base.add_bankaccount' def get_form(self, form_class=None): form = super().get_form(form_class) return form def form_valid(self, form): messages.success(self.request, 'Registro realizado com sucesso!') return super().form_valid(form) def form_invalid(self, form): errors = form.errors.as_text() messages.error(self.request, f'Verifique os dados: {errors}') return super().form_invalid(form) class BankAccountsDetailView(LoginRequiredMixin, PermissionRequiredMixin, DetailView): model = models.BankAccount template_name = 'BankAccounts/Detail.html' permission_required = 'Base.view_bankaccount' class BankAccountsUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): model = models.BankAccount template_name = 'BankAccounts/Update.html' form_class = FormsBankAccounts.FormsBankAccount success_url = reverse_lazy('BankAccountsListView') permission_required = 'Base.change_bankaccount' class BankAccountsDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteView): model = models.BankAccount template_name = 'BankAccounts/Delete.html' success_url = reverse_lazy('BankAccountsListView') permission_required = 'Base.delete_bankaccount'