mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-30 04:16:24 -06:00
Allow for bulk editing of interface LAG
This commit is contained in:
parent
930b845fc4
commit
5bba75a579
@ -1324,11 +1324,24 @@ class InterfaceCreateForm(DeviceComponentForm):
|
|||||||
|
|
||||||
class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm):
|
class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm):
|
||||||
pk = forms.ModelMultipleChoiceField(queryset=Interface.objects.all(), widget=forms.MultipleHiddenInput)
|
pk = forms.ModelMultipleChoiceField(queryset=Interface.objects.all(), widget=forms.MultipleHiddenInput)
|
||||||
|
device = forms.ModelChoiceField(queryset=Device.objects.all(), widget=forms.HiddenInput)
|
||||||
|
lag = forms.ModelChoiceField(queryset=Interface.objects.all(), required=False, label='Parent LAG')
|
||||||
form_factor = forms.ChoiceField(choices=add_blank_choice(IFACE_FF_CHOICES), required=False)
|
form_factor = forms.ChoiceField(choices=add_blank_choice(IFACE_FF_CHOICES), required=False)
|
||||||
description = forms.CharField(max_length=100, required=False)
|
description = forms.CharField(max_length=100, required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
nullable_fields = ['description']
|
nullable_fields = ['lag', 'description']
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(InterfaceBulkEditForm, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
# Limit LAG choices to interfaces which belong to the parent device.
|
||||||
|
if self.initial.get('device'):
|
||||||
|
self.fields['lag'].queryset = Interface.objects.filter(
|
||||||
|
device=self.initial['device'], form_factor=IFACE_FF_LAG
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.fields['lag'].choices = []
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -396,6 +396,7 @@
|
|||||||
{% if perms.dcim.delete_interface %}
|
{% if perms.dcim.delete_interface %}
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
<input type="hidden" name="device" value="{{ device.pk }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
|
@ -471,7 +471,9 @@ class BulkEditView(View):
|
|||||||
return redirect(return_url)
|
return redirect(return_url)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = self.form(self.cls, initial={'pk': pk_list})
|
initial_data = request.POST.copy()
|
||||||
|
initial_data['pk'] = pk_list
|
||||||
|
form = self.form(self.cls, initial=initial_data)
|
||||||
|
|
||||||
selected_objects = self.cls.objects.filter(pk__in=pk_list)
|
selected_objects = self.cls.objects.filter(pk__in=pk_list)
|
||||||
if not selected_objects:
|
if not selected_objects:
|
||||||
|
Loading…
Reference in New Issue
Block a user