1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Simplify assignment of new cable terminations

This commit is contained in:
jeremystretch
2022-05-18 15:49:52 -04:00
parent 922916ae99
commit a909ceda84
3 changed files with 67 additions and 56 deletions

View File

@@ -29,30 +29,13 @@ class BaseCableConnectionForm(TenancyForm, NetBoxModelForm):
disabled_indicator='_occupied'
)
def save(self, commit=True):
instance = super().save(commit=commit)
def save(self, *args, **kwargs):
# Create CableTermination instances
terminations = []
terminations.extend([
CableTermination(cable=instance, cable_end='A', termination=termination)
for termination in self.cleaned_data['a_terminations']
])
terminations.extend([
CableTermination(cable=instance, cable_end='B', termination=termination)
for termination in self.cleaned_data['b_terminations']
])
# Set the A/B terminations on the Cable instance
self.instance.a_terminations = self.cleaned_data['a_terminations']
self.instance.b_terminations = self.cleaned_data['b_terminations']
if commit:
for ct in terminations:
ct.save()
else:
instance._terminations = [
*self.cleaned_data['a_terminations'],
*self.cleaned_data['b_terminations'],
]
return instance
return super().save(*args, **kwargs)
class ConnectCableToDeviceForm(BaseCableConnectionForm):