network_inventory/customers/views.py

74 lines
2.1 KiB
Python
Raw Normal View History

from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin
2021-12-22 19:14:18 +01:00
from django.http.response import HttpResponse
2020-01-07 20:11:36 +01:00
from django.shortcuts import render
2020-05-23 14:18:16 +02:00
from django.urls import reverse
from django.views.generic import CreateView
2020-08-03 16:35:36 +02:00
from django.views.generic import DeleteView
from django.views.generic import DetailView
2020-01-07 20:11:36 +01:00
from django_tables2 import RequestConfig
from guardian.mixins import PermissionRequiredMixin
from core import utils
from .models import Customer
from .tables import CustomersTable
2021-12-22 19:14:18 +01:00
from .forms import CustomerForm
@login_required
def customers_table_view(request):
table = CustomersTable(utils.get_customers(request.user))
RequestConfig(request).configure(table)
2020-02-29 21:07:52 +01:00
return render(request,
'customers/customer_list.html',
{'customers': table})
2021-12-22 19:14:18 +01:00
@login_required
def htmx_create_customer(request):
if request.method == "POST":
form = CustomerForm(request.POST)
if form.is_valid():
form.save(commit=True)
return HttpResponse("<script>location.reload()</script>")
2021-12-22 19:14:18 +01:00
else:
return render(request,
"customers/partials/customer_create.html",
context={
"form": form
})
2021-12-21 17:51:57 +01:00
2021-12-22 19:14:18 +01:00
form = CustomerForm()
context = {
"form": form
}
return render(request, "customers/partials/customer_create.html", context)
2021-12-21 17:51:57 +01:00
2020-02-29 21:07:52 +01:00
class CustomerDetailView(LoginRequiredMixin,
PermissionRequiredMixin,
DetailView):
model = Customer
2020-01-11 17:00:42 +01:00
template_name = 'customers/customer_details.html'
permission_required = 'view_customer'
2020-05-23 14:18:16 +02:00
class CustomerCreateView(LoginRequiredMixin, CreateView):
"""
A view to create a customer.
"""
model = Customer
template_name = 'customers/customer_create.html'
fields = ['name', 'description']
2020-05-23 14:18:16 +02:00
def get_success_url(self):
return reverse('customer', args=(self.object.pk,))
2020-08-03 16:35:36 +02:00
class CustomerDeleteView(LoginRequiredMixin, DeleteView):
model = Customer
def get_success_url(self):
2021-12-23 15:11:41 +01:00
return reverse('customers')