network_inventory/network_inventory/inventory/views.py

83 lines
2.8 KiB
Python
Raw Normal View History

from django.contrib.auth.decorators import login_required
2017-12-22 17:02:24 +01:00
from django.shortcuts import get_object_or_404, render
2019-07-25 20:34:52 +02:00
from django.views.generic import ListView, DetailView
from guardian.shortcuts import get_objects_for_user
2019-07-25 20:13:04 +02:00
from .decorators import computer_view_permission
from .models import (Device, Computer, ComputerRamRelation,
ComputerDiskRelation, ComputerCpuRelation,
ComputerSoftwareRelation, Customer, Net, RaidInComputer)
2017-12-25 13:35:09 +01:00
2019-07-25 20:35:22 +02:00
def device_detail_view(request, device_id):
device = get_object_or_404(Device, pk=device_id)
return render(request, 'inventory/device_details.html',
{'device': device})
2017-12-25 13:35:09 +01:00
@login_required
@computer_view_permission
2019-07-25 20:35:22 +02:00
def computer_detail_view(request, computer_id):
computer = get_object_or_404(Computer, pk=computer_id)
disks_list = ComputerDiskRelation.objects.filter(computer=computer_id)
2019-06-16 22:54:25 +02:00
ram_list = ComputerRamRelation.objects.filter(computer=computer_id)
cpu_list = ComputerCpuRelation.objects.filter(computer=computer_id)
software_list = ComputerSoftwareRelation.objects.filter(computer=computer_id)
raid_relations = RaidInComputer.objects.filter(computer=computer_id)
context = {'computer': computer,
'disks_list': disks_list,
'ram_list': ram_list,
'cpu_list': cpu_list,
'software_list': software_list,
'raid_relations': raid_relations}
return render(request, 'inventory/computer_details.html', context)
2017-12-25 13:35:30 +01:00
2019-07-25 20:34:52 +02:00
class CustomerDetailView(DetailView):
model = Customer
template_name = 'inventory/customer_details.html'
class CustomerListView(ListView):
2019-06-10 21:56:21 +02:00
model = Customer
template_name = 'inventory/customer_list.html'
def get_queryset(self):
queryset = get_objects_for_user(self.request.user,
'inventory.view_customer',
klass=Customer)
return queryset
2019-07-25 20:35:22 +02:00
class ComputerListView(ListView):
model = Computer
template_name = 'inventory/computer_list.html'
def get_queryset(self):
queryset = Computer.objects.filter(customer=self.kwargs['customer_id'])
return queryset
2019-07-25 20:35:22 +02:00
class DeviceListView(ListView):
2019-06-10 21:56:21 +02:00
model = Device
context_object_name = 'device_list'
template_name = 'inventory/device_list.html'
def get_queryset(self):
queryset = Device.objects.filter(customer=self.kwargs['customer_id'])
return queryset
2019-07-28 22:02:07 +02:00
class NetListView(ListView):
model = Net
context_object_name = 'net_list'
template_name = 'inventory/net_list.html'
def get_queryset(self):
queryset = Net.objects.filter(customer=self.kwargs['customer_id'])
return queryset
class NetDetailView(DetailView):
model = Net
template_name = 'inventory/net_details.html'