mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-23 03:58:45 -06:00
Adds rf_role to interface template (#13199)
* adds rf_role to interface template #13170 * fixed migration file conflict * Misc cleanup --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
committed by
GitHub
parent
1bcfcad9db
commit
0f9fe96192
@@ -13,6 +13,7 @@ from utilities.fields import ColorField, NaturalOrderingField
|
||||
from utilities.mptt import TreeManager
|
||||
from utilities.ordering import naturalize_interface
|
||||
from utilities.tracking import TrackingModelMixin
|
||||
from wireless.choices import WirelessRoleChoices
|
||||
from .device_components import (
|
||||
ConsolePort, ConsoleServerPort, DeviceBay, FrontPort, Interface, InventoryItem, ModuleBay, PowerOutlet, PowerPort,
|
||||
RearPort,
|
||||
@@ -388,6 +389,12 @@ class InterfaceTemplate(ModularComponentTemplateModel):
|
||||
blank=True,
|
||||
verbose_name='PoE type'
|
||||
)
|
||||
rf_role = models.CharField(
|
||||
max_length=30,
|
||||
choices=WirelessRoleChoices,
|
||||
blank=True,
|
||||
verbose_name='Wireless role'
|
||||
)
|
||||
|
||||
component_model = Interface
|
||||
|
||||
@@ -406,6 +413,11 @@ class InterfaceTemplate(ModularComponentTemplateModel):
|
||||
'bridge': f"Bridge interface ({self.bridge}) must belong to the same module type"
|
||||
})
|
||||
|
||||
if self.rf_role and self.type not in WIRELESS_IFACE_TYPES:
|
||||
raise ValidationError({
|
||||
'rf_role': "Wireless role may be set only on wireless interfaces."
|
||||
})
|
||||
|
||||
def instantiate(self, **kwargs):
|
||||
return self.component_model(
|
||||
name=self.resolve_name(kwargs.get('module')),
|
||||
@@ -415,6 +427,7 @@ class InterfaceTemplate(ModularComponentTemplateModel):
|
||||
mgmt_only=self.mgmt_only,
|
||||
poe_mode=self.poe_mode,
|
||||
poe_type=self.poe_type,
|
||||
rf_role=self.rf_role,
|
||||
**kwargs
|
||||
)
|
||||
instantiate.do_not_call_in_templates = True
|
||||
@@ -430,6 +443,7 @@ class InterfaceTemplate(ModularComponentTemplateModel):
|
||||
'bridge': self.bridge.name if self.bridge else None,
|
||||
'poe_mode': self.poe_mode,
|
||||
'poe_type': self.poe_type,
|
||||
'rf_role': self.rf_role,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user