mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
Add devices to WirelessLinkForm
This commit is contained in:
parent
bdf359470e
commit
fb9da87abb
@ -656,6 +656,10 @@ class Interface(ComponentModel, BaseInterface, LinkTermination, PathEndpoint):
|
||||
"device, or it must be global".format(self.untagged_vlan)
|
||||
})
|
||||
|
||||
@property
|
||||
def _occupied(self):
|
||||
return super()._occupied or bool(self.wireless_link_id)
|
||||
|
||||
@property
|
||||
def is_wired(self):
|
||||
return not self.is_virtual and not self.is_wireless
|
||||
|
@ -1,4 +1,4 @@
|
||||
from dcim.models import Interface
|
||||
from dcim.models import Device, Interface
|
||||
from extras.forms import CustomFieldModelForm
|
||||
from extras.models import Tag
|
||||
from ipam.models import VLAN
|
||||
@ -54,18 +54,30 @@ class WirelessLANForm(BootstrapMixin, CustomFieldModelForm):
|
||||
|
||||
|
||||
class WirelessLinkForm(BootstrapMixin, CustomFieldModelForm):
|
||||
device_a = DynamicModelChoiceField(
|
||||
queryset=Device.objects.all(),
|
||||
label='Device A'
|
||||
)
|
||||
interface_a = DynamicModelChoiceField(
|
||||
queryset=Interface.objects.all(),
|
||||
query_params={
|
||||
'kind': 'wireless'
|
||||
'kind': 'wireless',
|
||||
'device_id': '$device_a',
|
||||
},
|
||||
disabled_indicator='_occupied',
|
||||
label='Interface A'
|
||||
)
|
||||
device_b = DynamicModelChoiceField(
|
||||
queryset=Device.objects.all(),
|
||||
label='Device B'
|
||||
)
|
||||
interface_b = DynamicModelChoiceField(
|
||||
queryset=Interface.objects.all(),
|
||||
query_params={
|
||||
'kind': 'wireless'
|
||||
'kind': 'wireless',
|
||||
'device_id': '$device_b',
|
||||
},
|
||||
disabled_indicator='_occupied',
|
||||
label='Interface B'
|
||||
)
|
||||
tags = DynamicModelMultipleChoiceField(
|
||||
@ -76,7 +88,7 @@ class WirelessLinkForm(BootstrapMixin, CustomFieldModelForm):
|
||||
class Meta:
|
||||
model = WirelessLink
|
||||
fields = [
|
||||
'interface_a', 'interface_b', 'status', 'ssid', 'description', 'tags',
|
||||
'device_a', 'interface_a', 'device_b', 'interface_b', 'status', 'ssid', 'description', 'tags',
|
||||
]
|
||||
widgets = {
|
||||
'status': StaticSelect,
|
||||
|
@ -74,9 +74,17 @@ class WirelessLinkTable(BaseTable):
|
||||
verbose_name='ID'
|
||||
)
|
||||
status = ChoiceFieldColumn()
|
||||
device_a = tables.Column(
|
||||
accessor=tables.A('interface_a__device'),
|
||||
linkify=True
|
||||
)
|
||||
interface_a = tables.Column(
|
||||
linkify=True
|
||||
)
|
||||
device_b = tables.Column(
|
||||
accessor=tables.A('interface_b__device'),
|
||||
linkify=True
|
||||
)
|
||||
interface_b = tables.Column(
|
||||
linkify=True
|
||||
)
|
||||
@ -86,5 +94,7 @@ class WirelessLinkTable(BaseTable):
|
||||
|
||||
class Meta(BaseTable.Meta):
|
||||
model = WirelessLink
|
||||
fields = ('pk', 'id', 'status', 'interface_a', 'interface_b', 'ssid', 'description')
|
||||
default_columns = ('pk', 'id', 'status', 'interface_a', 'interface_b', 'ssid', 'description')
|
||||
fields = ('pk', 'id', 'status', 'device_a', 'interface_a', 'device_b', 'interface_b', 'ssid', 'description')
|
||||
default_columns = (
|
||||
'pk', 'id', 'status', 'device_a', 'interface_a', 'device_b', 'interface_b', 'ssid', 'description',
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user