|
@@ -128,20 +128,26 @@ class WirelessLAN(WirelessAuthenticationBase, NetBoxModel):
|
|
|
return reverse('wireless:wirelesslan', args=[self.pk])
|
|
return reverse('wireless:wirelesslan', args=[self.pk])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+def get_wireless_interface_types():
|
|
|
|
|
+ # Wrap choices in a callable to avoid generating dummy migrations
|
|
|
|
|
+ # when the choices are updated.
|
|
|
|
|
+ return {'type__in': WIRELESS_IFACE_TYPES}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
class WirelessLink(WirelessAuthenticationBase, NetBoxModel):
|
|
class WirelessLink(WirelessAuthenticationBase, NetBoxModel):
|
|
|
"""
|
|
"""
|
|
|
A point-to-point connection between two wireless Interfaces.
|
|
A point-to-point connection between two wireless Interfaces.
|
|
|
"""
|
|
"""
|
|
|
interface_a = models.ForeignKey(
|
|
interface_a = models.ForeignKey(
|
|
|
to='dcim.Interface',
|
|
to='dcim.Interface',
|
|
|
- limit_choices_to={'type__in': WIRELESS_IFACE_TYPES},
|
|
|
|
|
|
|
+ limit_choices_to=get_wireless_interface_types,
|
|
|
on_delete=models.PROTECT,
|
|
on_delete=models.PROTECT,
|
|
|
related_name='+',
|
|
related_name='+',
|
|
|
verbose_name="Interface A",
|
|
verbose_name="Interface A",
|
|
|
)
|
|
)
|
|
|
interface_b = models.ForeignKey(
|
|
interface_b = models.ForeignKey(
|
|
|
to='dcim.Interface',
|
|
to='dcim.Interface',
|
|
|
- limit_choices_to={'type__in': WIRELESS_IFACE_TYPES},
|
|
|
|
|
|
|
+ limit_choices_to=get_wireless_interface_types,
|
|
|
on_delete=models.PROTECT,
|
|
on_delete=models.PROTECT,
|
|
|
related_name='+',
|
|
related_name='+',
|
|
|
verbose_name="Interface B",
|
|
verbose_name="Interface B",
|