Move save logic to model to reduce redundancy of both import and edit fields

This commit is contained in:
Dillon Henschen 2023-06-03 17:40:22 -04:00
parent 563c10501a
commit b21e45a1b5
2 changed files with 12 additions and 12 deletions

View File

@ -408,18 +408,6 @@ class VLANImportForm(NetBoxModelImportForm):
model = VLAN model = VLAN
fields = ('site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'comments', 'tags') fields = ('site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'comments', 'tags')
def save(self, *args, **kwargs):
# Implicitly set the Assignment Type based on the validated assignment of group or site
if self.cleaned_data.get('group'):
self.instance.assignment_type = VLANAssignmentTypeChoices.VLAN_GROUP
# elif to prefer the Assignment Type of VLAN_GROUP if the VLAN Group site scope is also set.
elif self.cleaned_data.get('site'):
self.instance.assignment_type = VLANAssignmentTypeChoices.SITE
return super().save(*args, **kwargs)
class ServiceTemplateImportForm(NetBoxModelImportForm): class ServiceTemplateImportForm(NetBoxModelImportForm):
protocol = CSVChoiceField( protocol = CSVChoiceField(

View File

@ -230,6 +230,18 @@ class VLAN(PrimaryModel):
f"{self.group}" f"{self.group}"
}) })
def save(self, *args, **kwargs):
# Implicitly set the Assignment Type based on the validated assignment of group or site
# Do this on the model to reduce redundancy of doing this in both Bulk Edit and Bulk Import
if self.group:
self.assignment_type = VLANAssignmentTypeChoices.VLAN_GROUP
# elif to prefer the Assignment Type of VLAN_GROUP if the VLAN Group site scope is also set.
elif self.site:
self.assignment_type = VLANAssignmentTypeChoices.SITE
super().save(*args, **kwargs)
def get_status_color(self): def get_status_color(self):
return VLANStatusChoices.colors.get(self.status) return VLANStatusChoices.colors.get(self.status)