Newer
Older
from django.views.decorators.cache import never_cache
from django.utils.decorators import method_decorator
from django.views.generic import FormView, TemplateView
from django.utils.translation import ugettext as _
from django.urls import reverse, reverse_lazy
from django.views.generic.detail import DetailView
from rules.contrib.views import PermissionRequiredMixin
from django_tables2.views import SingleTableView
from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView
from .tables import ClientsTable
from .forms import EditClientForm
from .models.base import Client
class GetInvoicePDF(PermissionRequiredMixin, RenderPDFView):
permission_required = "tezor.can_print_invoice"
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
invoice = Invoice.objects.get(id=self.kwargs["pk"])
class ClientListView(PermissionRequiredMixin, SingleTableView):
"""Table of all clients."""
model = Client
table_class = ClientsTable
permission_required = "tezor.view_clients"
template_name = "tezor/client/list.html"
@method_decorator(never_cache, name="dispatch")
class ClientCreateView(PermissionRequiredMixin, AdvancedCreateView):
"""Create view for clients."""
model = Client
form_class = EditClientForm
permission_required = "tezor.add_clients"
template_name = "tezor/client/create.html"
success_url = reverse_lazy("clients")
success_message = _("The client has been created.")
@method_decorator(never_cache, name="dispatch")
class ClientEditView(PermissionRequiredMixin, AdvancedEditView):
"""Edit view for clients."""
model = Client
form_class = EditClientForm
permission_required = "tezor.edit_clients"
template_name = "tezor/client/edit.html"
success_url = reverse_lazy("clients")
success_message = _("The client has been saved.")
class ClientDeleteView(PermissionRequiredMixin, AdvancedDeleteView):
"""Delete view for client."""
model = Client
permission_required = "tezor.delete_client"
template_name = "core/pages/delete.html"
success_url = reverse_lazy("clients")
success_message = _("The client has been deleted.")