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

Fix VMInterface bulk creation

This commit is contained in:
Jeremy Stretch
2020-06-23 17:28:34 -04:00
parent 603c804535
commit afda46d587
2 changed files with 12 additions and 16 deletions

View File

@ -22,12 +22,6 @@
<strong>{{ component_type|bettertitle }}</strong>
</div>
<div class="panel-body">
<div class="form-group">
<label class="col-md-3 control-label required">Virtual Machine</label>
<div class="col-md-9">
<p class="form-control-static">{{ parent }}</p>
</div>
</div>
{% render_form form %}
</div>
</div>

View File

@ -3,7 +3,7 @@ from django.core.exceptions import ValidationError
from dcim.choices import InterfaceModeChoices
from dcim.constants import INTERFACE_MTU_MAX, INTERFACE_MTU_MIN
from dcim.forms import INTERFACE_MODE_HELP_TEXT
from dcim.forms import INTERFACE_MODE_HELP_TEXT, InterfaceCommonForm
from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site
from extras.forms import (
AddRemoveTagsForm, CustomFieldBulkEditForm, CustomFieldModelCSVForm, CustomFieldModelForm, CustomFieldFilterForm,
@ -619,10 +619,13 @@ class VMInterfaceForm(BootstrapMixin, forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
virtual_machine = VirtualMachine.objects.get(
pk=self.initial.get('virtual_machine') or self.data.get('virtual_machine')
)
# Add current site to VLANs query params
site = self.instance.virtual_machine.site
if site is not None:
# Add current site to VLANs query params
site = virtual_machine.site
if site:
self.fields['untagged_vlan'].widget.add_additional_query_param('site_id', site.pk)
self.fields['tagged_vlans'].widget.add_additional_query_param('site_id', site.pk)
@ -644,9 +647,8 @@ class VMInterfaceForm(BootstrapMixin, forms.ModelForm):
class VMInterfaceCreateForm(BootstrapMixin, forms.Form):
virtual_machine = forms.ModelChoiceField(
queryset=VirtualMachine.objects.all(),
widget=forms.HiddenInput()
virtual_machine = DynamicModelChoiceField(
queryset=VirtualMachine.objects.all()
)
name_pattern = ExpandableNameField(
label='Name'
@ -708,9 +710,9 @@ class VMInterfaceCreateForm(BootstrapMixin, forms.Form):
pk=self.initial.get('virtual_machine') or self.data.get('virtual_machine')
)
site = getattr(virtual_machine.cluster, 'site', None)
if site is not None:
# Add current site to VLANs query params
site = virtual_machine.site
if site:
self.fields['untagged_vlan'].widget.add_additional_query_param('site_id', site.pk)
self.fields['tagged_vlans'].widget.add_additional_query_param('site_id', site.pk)