add AllComputersView
This commit is contained in:
parent
15eea784ac
commit
be7cfb7da9
|
@ -0,0 +1,9 @@
|
|||
from django_filters import FilterSet
|
||||
|
||||
from .models import Computer
|
||||
|
||||
|
||||
class ComputerFilter(FilterSet):
|
||||
class Meta:
|
||||
model = Computer
|
||||
fields = {"name": ["contains"], "owner": ["exact"]}
|
|
@ -0,0 +1,23 @@
|
|||
{% extends "inventory/base.html" %}
|
||||
{% load render_table from django_tables2 %}
|
||||
{% block section_title %}List of Computers{% endblock %}
|
||||
{% block content %}
|
||||
<div class="ui form">
|
||||
<form action="" method="get" class="ui form">
|
||||
<div class="fields">
|
||||
<div class="field">
|
||||
{{ filter.form.name__contains.label_tag }}
|
||||
{{ filter.form.name__contains }}
|
||||
</div>
|
||||
<div class="field">
|
||||
{{ filter.form.owner.label_tag }}
|
||||
{{ filter.form.owner }}
|
||||
</div>
|
||||
<div class="field">
|
||||
<button type="submit" class="ui button">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% render_table table %}
|
||||
{% endblock %}
|
|
@ -8,6 +8,7 @@
|
|||
<body>
|
||||
<div class="ui container">
|
||||
<a href="{% url 'customers' %}">Home</a> |
|
||||
<a href="{% url 'all_computers' %}">All Computers</a> |
|
||||
<h1>{% block section_title %}Device Inventory{% endblock %}</h1>
|
||||
{% block content %}{% endblock %}
|
||||
<footer>
|
||||
|
|
|
@ -17,4 +17,5 @@ urlpatterns = [
|
|||
name='nets'),
|
||||
path('net/<int:pk>/', views.net_detail_view, name='net'),
|
||||
path('backup/<int:pk>/', views.backup_detail_view, name='backup'),
|
||||
path('computers/all/', views.AllComputersView.as_view(), name='all_computers')
|
||||
]
|
||||
|
|
|
@ -3,12 +3,15 @@ from django.shortcuts import get_object_or_404, render
|
|||
from django.views.generic import ListView, DetailView
|
||||
from guardian.shortcuts import get_objects_for_user
|
||||
from django_tables2 import RequestConfig
|
||||
from django_filters.views import FilterView
|
||||
from django_tables2.views import SingleTableMixin
|
||||
from .decorators import computer_view_permission
|
||||
from .models import (Device, Computer, ComputerRamRelation,
|
||||
ComputerDiskRelation, ComputerCpuRelation,
|
||||
ComputerSoftwareRelation, Customer, Net, RaidInComputer,
|
||||
Backup)
|
||||
from .tables import CustomersTable, ComputersTable, DevicesTable, NetsTable, NetDetailTable, BackupDetailTable
|
||||
from .filters import ComputerFilter
|
||||
|
||||
|
||||
def device_detail_view(request, device_id):
|
||||
|
@ -80,3 +83,17 @@ def backup_detail_view(request, pk):
|
|||
table = BackupDetailTable(Backup.objects.filter(pk=pk))
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'inventory/backup_details.html', {'backup': table})
|
||||
|
||||
|
||||
|
||||
class AllComputersView(SingleTableMixin, FilterView):
|
||||
table_class = ComputersTable
|
||||
model = Computer
|
||||
template_name = "inventory/all_computers.html"
|
||||
|
||||
filterset_class = ComputerFilter
|
||||
|
||||
def get_queryset(self):
|
||||
return get_objects_for_user(self.request.user,
|
||||
'inventory.view_computer',
|
||||
klass=Computer)
|
||||
|
|
|
@ -30,7 +30,8 @@ INSTALLED_APPS = [
|
|||
'django.contrib.staticfiles',
|
||||
'inventory.apps.InventoryConfig',
|
||||
'guardian',
|
||||
'django_tables2'
|
||||
'django_tables2',
|
||||
'django_filters',
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
|
|
@ -3,3 +3,5 @@ Django==2.2
|
|||
pyaml
|
||||
pytz
|
||||
django-guardian
|
||||
django-tables2
|
||||
django-filter
|
||||
|
|
Loading…
Reference in New Issue