mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Extend BulkImportView._save_obj to pass request context
This commit is contained in:
@ -838,18 +838,12 @@ class RackReservationCSVForm(forms.ModelForm):
|
|||||||
'invalid_choice': 'Invalid site name.',
|
'invalid_choice': 'Invalid site name.',
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
rack_group = forms.ModelChoiceField(
|
rack_group = forms.CharField(
|
||||||
queryset=RackGroup.objects.all(),
|
|
||||||
to_field_name='name',
|
|
||||||
required=False,
|
required=False,
|
||||||
help_text='Name of rack group',
|
help_text="Rack's group (if any)"
|
||||||
error_messages={
|
|
||||||
'invalid_choice': 'Invalid rack group name.',
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
rack = forms.CharField(
|
rack_name = forms.CharField(
|
||||||
required=True,
|
help_text="Rack name"
|
||||||
help_text='Name of parent rack'
|
|
||||||
)
|
)
|
||||||
units = forms.CharField(
|
units = forms.CharField(
|
||||||
required=True,
|
required=True,
|
||||||
@ -867,8 +861,7 @@ class RackReservationCSVForm(forms.ModelForm):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = RackReservation
|
model = RackReservation
|
||||||
# fields = RackReservation.csv_headers
|
fields = ('site', 'rack_group', 'rack_name', 'units', 'tenant', 'description')
|
||||||
fields = ['site', 'rack_group', 'rack', 'units', 'tenant', 'description'] # Can't set user
|
|
||||||
help_texts = {
|
help_texts = {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -878,7 +871,7 @@ class RackReservationCSVForm(forms.ModelForm):
|
|||||||
|
|
||||||
site = self.cleaned_data.get('site')
|
site = self.cleaned_data.get('site')
|
||||||
rack_group = self.cleaned_data.get('rack_group')
|
rack_group = self.cleaned_data.get('rack_group')
|
||||||
rack_name = self.cleaned_data.get('rack')
|
rack_name = self.cleaned_data.get('rack_name')
|
||||||
|
|
||||||
# Validate rack
|
# Validate rack
|
||||||
if site and rack_group and rack_name:
|
if site and rack_group and rack_name:
|
||||||
|
@ -506,6 +506,16 @@ class RackReservationImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
table = tables.RackReservationTable
|
table = tables.RackReservationTable
|
||||||
default_return_url = 'dcim:rackreservation_list'
|
default_return_url = 'dcim:rackreservation_list'
|
||||||
|
|
||||||
|
def _save_obj(self, obj_form, request):
|
||||||
|
"""
|
||||||
|
Assign the currently authenticated user to the RackReservation.
|
||||||
|
"""
|
||||||
|
instance = obj_form.save(commit=False)
|
||||||
|
instance.user = request.user
|
||||||
|
instance.save()
|
||||||
|
|
||||||
|
return instance
|
||||||
|
|
||||||
|
|
||||||
class RackReservationBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class RackReservationBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
permission_required = 'dcim.change_rackreservation'
|
permission_required = 'dcim.change_rackreservation'
|
||||||
@ -1252,7 +1262,7 @@ class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
template_name = 'dcim/device_import_child.html'
|
template_name = 'dcim/device_import_child.html'
|
||||||
default_return_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
def _save_obj(self, obj_form):
|
def _save_obj(self, obj_form, request):
|
||||||
|
|
||||||
obj = obj_form.save()
|
obj = obj_form.save()
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ class SecretBulkImportView(BulkImportView):
|
|||||||
|
|
||||||
master_key = None
|
master_key = None
|
||||||
|
|
||||||
def _save_obj(self, obj_form):
|
def _save_obj(self, obj_form, request):
|
||||||
"""
|
"""
|
||||||
Encrypt each object before saving it to the database.
|
Encrypt each object before saving it to the database.
|
||||||
"""
|
"""
|
||||||
|
@ -544,7 +544,7 @@ class BulkImportView(GetReturnURLMixin, View):
|
|||||||
|
|
||||||
return ImportForm(*args, **kwargs)
|
return ImportForm(*args, **kwargs)
|
||||||
|
|
||||||
def _save_obj(self, obj_form):
|
def _save_obj(self, obj_form, request):
|
||||||
"""
|
"""
|
||||||
Provide a hook to modify the object immediately before saving it (e.g. to encrypt secret data).
|
Provide a hook to modify the object immediately before saving it (e.g. to encrypt secret data).
|
||||||
"""
|
"""
|
||||||
@ -573,7 +573,7 @@ class BulkImportView(GetReturnURLMixin, View):
|
|||||||
for row, data in enumerate(form.cleaned_data['csv'], start=1):
|
for row, data in enumerate(form.cleaned_data['csv'], start=1):
|
||||||
obj_form = self.model_form(data)
|
obj_form = self.model_form(data)
|
||||||
if obj_form.is_valid():
|
if obj_form.is_valid():
|
||||||
obj = self._save_obj(obj_form)
|
obj = self._save_obj(obj_form, request)
|
||||||
new_objs.append(obj)
|
new_objs.append(obj)
|
||||||
else:
|
else:
|
||||||
for field, err in obj_form.errors.items():
|
for field, err in obj_form.errors.items():
|
||||||
|
Reference in New Issue
Block a user