mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
183 lines
5.2 KiB
Python
183 lines
5.2 KiB
Python
from dcim.models import Interface
|
|
from netbox.views import generic
|
|
from utilities.query import count_related
|
|
from utilities.views import register_model_view
|
|
from . import filtersets, forms, tables
|
|
from .models import *
|
|
|
|
|
|
#
|
|
# Wireless LAN groups
|
|
#
|
|
|
|
class WirelessLANGroupListView(generic.ObjectListView):
|
|
queryset = WirelessLANGroup.objects.add_related_count(
|
|
WirelessLANGroup.objects.all(),
|
|
WirelessLAN,
|
|
'group',
|
|
'wirelesslan_count',
|
|
cumulative=True
|
|
).prefetch_related('tags')
|
|
filterset = filtersets.WirelessLANGroupFilterSet
|
|
filterset_form = forms.WirelessLANGroupFilterForm
|
|
table = tables.WirelessLANGroupTable
|
|
|
|
|
|
@register_model_view(WirelessLANGroup)
|
|
class WirelessLANGroupView(generic.ObjectView):
|
|
queryset = WirelessLANGroup.objects.all()
|
|
|
|
def get_extra_context(self, request, instance):
|
|
groups = instance.get_descendants(include_self=True)
|
|
related_models = (
|
|
(WirelessLAN.objects.restrict(request.user, 'view').filter(group__in=groups), 'group_id'),
|
|
)
|
|
|
|
return {
|
|
'related_models': related_models,
|
|
}
|
|
|
|
|
|
@register_model_view(WirelessLANGroup, 'edit')
|
|
class WirelessLANGroupEditView(generic.ObjectEditView):
|
|
queryset = WirelessLANGroup.objects.all()
|
|
form = forms.WirelessLANGroupForm
|
|
|
|
|
|
@register_model_view(WirelessLANGroup, 'delete')
|
|
class WirelessLANGroupDeleteView(generic.ObjectDeleteView):
|
|
queryset = WirelessLANGroup.objects.all()
|
|
|
|
|
|
class WirelessLANGroupBulkImportView(generic.BulkImportView):
|
|
queryset = WirelessLANGroup.objects.all()
|
|
model_form = forms.WirelessLANGroupImportForm
|
|
|
|
|
|
class WirelessLANGroupBulkEditView(generic.BulkEditView):
|
|
queryset = WirelessLANGroup.objects.add_related_count(
|
|
WirelessLANGroup.objects.all(),
|
|
WirelessLAN,
|
|
'group',
|
|
'wirelesslan_count',
|
|
cumulative=True
|
|
)
|
|
filterset = filtersets.WirelessLANGroupFilterSet
|
|
table = tables.WirelessLANGroupTable
|
|
form = forms.WirelessLANGroupBulkEditForm
|
|
|
|
|
|
class WirelessLANGroupBulkDeleteView(generic.BulkDeleteView):
|
|
queryset = WirelessLANGroup.objects.add_related_count(
|
|
WirelessLANGroup.objects.all(),
|
|
WirelessLAN,
|
|
'group',
|
|
'wirelesslan_count',
|
|
cumulative=True
|
|
)
|
|
filterset = filtersets.WirelessLANGroupFilterSet
|
|
table = tables.WirelessLANGroupTable
|
|
|
|
|
|
#
|
|
# Wireless LANs
|
|
#
|
|
|
|
class WirelessLANListView(generic.ObjectListView):
|
|
queryset = WirelessLAN.objects.annotate(
|
|
interface_count=count_related(Interface, 'wireless_lans')
|
|
)
|
|
filterset = filtersets.WirelessLANFilterSet
|
|
filterset_form = forms.WirelessLANFilterForm
|
|
table = tables.WirelessLANTable
|
|
|
|
|
|
@register_model_view(WirelessLAN)
|
|
class WirelessLANView(generic.ObjectView):
|
|
queryset = WirelessLAN.objects.all()
|
|
|
|
def get_extra_context(self, request, instance):
|
|
attached_interfaces = Interface.objects.restrict(request.user, 'view').filter(
|
|
wireless_lans=instance
|
|
)
|
|
interfaces_table = tables.WirelessLANInterfacesTable(attached_interfaces, user=request.user)
|
|
interfaces_table.configure(request)
|
|
|
|
return {
|
|
'interfaces_table': interfaces_table,
|
|
}
|
|
|
|
|
|
@register_model_view(WirelessLAN, 'edit')
|
|
class WirelessLANEditView(generic.ObjectEditView):
|
|
queryset = WirelessLAN.objects.all()
|
|
form = forms.WirelessLANForm
|
|
|
|
|
|
@register_model_view(WirelessLAN, 'delete')
|
|
class WirelessLANDeleteView(generic.ObjectDeleteView):
|
|
queryset = WirelessLAN.objects.all()
|
|
|
|
|
|
class WirelessLANBulkImportView(generic.BulkImportView):
|
|
queryset = WirelessLAN.objects.all()
|
|
model_form = forms.WirelessLANImportForm
|
|
|
|
|
|
class WirelessLANBulkEditView(generic.BulkEditView):
|
|
queryset = WirelessLAN.objects.all()
|
|
filterset = filtersets.WirelessLANFilterSet
|
|
table = tables.WirelessLANTable
|
|
form = forms.WirelessLANBulkEditForm
|
|
|
|
|
|
class WirelessLANBulkDeleteView(generic.BulkDeleteView):
|
|
queryset = WirelessLAN.objects.all()
|
|
filterset = filtersets.WirelessLANFilterSet
|
|
table = tables.WirelessLANTable
|
|
|
|
|
|
#
|
|
# Wireless Links
|
|
#
|
|
|
|
class WirelessLinkListView(generic.ObjectListView):
|
|
queryset = WirelessLink.objects.all()
|
|
filterset = filtersets.WirelessLinkFilterSet
|
|
filterset_form = forms.WirelessLinkFilterForm
|
|
table = tables.WirelessLinkTable
|
|
|
|
|
|
@register_model_view(WirelessLink)
|
|
class WirelessLinkView(generic.ObjectView):
|
|
queryset = WirelessLink.objects.all()
|
|
|
|
|
|
@register_model_view(WirelessLink, 'edit')
|
|
class WirelessLinkEditView(generic.ObjectEditView):
|
|
queryset = WirelessLink.objects.all()
|
|
form = forms.WirelessLinkForm
|
|
|
|
|
|
@register_model_view(WirelessLink, 'delete')
|
|
class WirelessLinkDeleteView(generic.ObjectDeleteView):
|
|
queryset = WirelessLink.objects.all()
|
|
|
|
|
|
class WirelessLinkBulkImportView(generic.BulkImportView):
|
|
queryset = WirelessLink.objects.all()
|
|
model_form = forms.WirelessLinkImportForm
|
|
|
|
|
|
class WirelessLinkBulkEditView(generic.BulkEditView):
|
|
queryset = WirelessLink.objects.all()
|
|
filterset = filtersets.WirelessLinkFilterSet
|
|
table = tables.WirelessLinkTable
|
|
form = forms.WirelessLinkBulkEditForm
|
|
|
|
|
|
class WirelessLinkBulkDeleteView(generic.BulkDeleteView):
|
|
queryset = WirelessLink.objects.all()
|
|
filterset = filtersets.WirelessLinkFilterSet
|
|
table = tables.WirelessLinkTable
|