mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -06:00
Include WirelessLAN attached interfaces
This commit is contained in:
parent
4c475c1b33
commit
bdf359470e
@ -49,8 +49,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col col-md-12">
|
<div class="col col-md-12">
|
||||||
{% plugin_full_width_page object %}
|
<div class="card">
|
||||||
|
<h5 class="card-header">Attached Interfaces</h5>
|
||||||
|
<div class="card-body">
|
||||||
|
{% include 'inc/table.html' with table=interfaces_table %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% include 'inc/paginator.html' with paginator=interfaces_table.paginator page=interfaces_table.page %}
|
||||||
|
{% plugin_full_width_page object %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -145,7 +145,7 @@ class WirelessLink(PrimaryModel):
|
|||||||
|
|
||||||
objects = RestrictedQuerySet.as_manager()
|
objects = RestrictedQuerySet.as_manager()
|
||||||
|
|
||||||
clone_fields = ('ssid', 'group', 'status')
|
clone_fields = ('ssid', 'status')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ['pk']
|
ordering = ['pk']
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import django_tables2 as tables
|
import django_tables2 as tables
|
||||||
|
|
||||||
|
from dcim.models import Interface
|
||||||
from utilities.tables import (
|
from utilities.tables import (
|
||||||
BaseTable, ButtonsColumn, ChoiceFieldColumn, LinkedCountColumn, MPTTColumn, TagColumn, ToggleColumn,
|
BaseTable, ButtonsColumn, ChoiceFieldColumn, LinkedCountColumn, MPTTColumn, TagColumn, ToggleColumn,
|
||||||
)
|
)
|
||||||
@ -35,14 +36,35 @@ class WirelessLANTable(BaseTable):
|
|||||||
ssid = tables.Column(
|
ssid = tables.Column(
|
||||||
linkify=True
|
linkify=True
|
||||||
)
|
)
|
||||||
|
group = tables.Column(
|
||||||
|
linkify=True
|
||||||
|
)
|
||||||
|
interface_count = tables.Column(
|
||||||
|
verbose_name='Interfaces'
|
||||||
|
)
|
||||||
tags = TagColumn(
|
tags = TagColumn(
|
||||||
url_name='wireless:wirelesslan_list'
|
url_name='wireless:wirelesslan_list'
|
||||||
)
|
)
|
||||||
|
|
||||||
class Meta(BaseTable.Meta):
|
class Meta(BaseTable.Meta):
|
||||||
model = WirelessLAN
|
model = WirelessLAN
|
||||||
fields = ('pk', 'ssid', 'description', 'vlan')
|
fields = ('pk', 'ssid', 'group', 'description', 'vlan', 'interface_count', 'tags')
|
||||||
default_columns = ('pk', 'ssid', 'description', 'vlan')
|
default_columns = ('pk', 'ssid', 'group', 'description', 'vlan', 'interface_count')
|
||||||
|
|
||||||
|
|
||||||
|
class WirelessLANInterfacesTable(BaseTable):
|
||||||
|
pk = ToggleColumn()
|
||||||
|
device = tables.Column(
|
||||||
|
linkify=True
|
||||||
|
)
|
||||||
|
name = tables.Column(
|
||||||
|
linkify=True
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta(BaseTable.Meta):
|
||||||
|
model = Interface
|
||||||
|
fields = ('pk', 'device', 'name', 'rf_role', 'rf_channel')
|
||||||
|
default_columns = ('pk', 'device', 'name', 'rf_role', 'rf_channel')
|
||||||
|
|
||||||
|
|
||||||
class WirelessLinkTable(BaseTable):
|
class WirelessLinkTable(BaseTable):
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
from dcim.models import Interface
|
||||||
from netbox.views import generic
|
from netbox.views import generic
|
||||||
from utilities.tables import paginate_table
|
from utilities.tables import paginate_table
|
||||||
|
from utilities.utils import count_related
|
||||||
from . import filtersets, forms, tables
|
from . import filtersets, forms, tables
|
||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
@ -81,7 +83,9 @@ class WirelessLANGroupBulkDeleteView(generic.BulkDeleteView):
|
|||||||
#
|
#
|
||||||
|
|
||||||
class WirelessLANListView(generic.ObjectListView):
|
class WirelessLANListView(generic.ObjectListView):
|
||||||
queryset = WirelessLAN.objects.all()
|
queryset = WirelessLAN.objects.annotate(
|
||||||
|
interface_count=count_related(Interface, 'wireless_lans')
|
||||||
|
)
|
||||||
filterset = filtersets.WirelessLANFilterSet
|
filterset = filtersets.WirelessLANFilterSet
|
||||||
filterset_form = forms.WirelessLANFilterForm
|
filterset_form = forms.WirelessLANFilterForm
|
||||||
table = tables.WirelessLANTable
|
table = tables.WirelessLANTable
|
||||||
@ -90,6 +94,17 @@ class WirelessLANListView(generic.ObjectListView):
|
|||||||
class WirelessLANView(generic.ObjectView):
|
class WirelessLANView(generic.ObjectView):
|
||||||
queryset = WirelessLAN.objects.all()
|
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)
|
||||||
|
paginate_table(interfaces_table, request)
|
||||||
|
|
||||||
|
return {
|
||||||
|
'interfaces_table': interfaces_table,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class WirelessLANEditView(generic.ObjectEditView):
|
class WirelessLANEditView(generic.ObjectEditView):
|
||||||
queryset = WirelessLAN.objects.all()
|
queryset = WirelessLAN.objects.all()
|
||||||
|
Loading…
Reference in New Issue
Block a user