Extend BulkImportView._save_obj to pass request context

This commit is contained in:
Jeremy Stretch
2020-03-09 12:39:07 -04:00
parent ad9dfec894
commit 947affd78f
4 changed files with 20 additions and 17 deletions

View File

@@ -838,18 +838,12 @@ class RackReservationCSVForm(forms.ModelForm):
'invalid_choice': 'Invalid site name.',
}
)
rack_group = forms.ModelChoiceField(
queryset=RackGroup.objects.all(),
to_field_name='name',
rack_group = forms.CharField(
required=False,
help_text='Name of rack group',
error_messages={
'invalid_choice': 'Invalid rack group name.',
}
help_text="Rack's group (if any)"
)
rack = forms.CharField(
required=True,
help_text='Name of parent rack'
rack_name = forms.CharField(
help_text="Rack name"
)
units = forms.CharField(
required=True,
@@ -867,8 +861,7 @@ class RackReservationCSVForm(forms.ModelForm):
class Meta:
model = RackReservation
# fields = RackReservation.csv_headers
fields = ['site', 'rack_group', 'rack', 'units', 'tenant', 'description'] # Can't set user
fields = ('site', 'rack_group', 'rack_name', 'units', 'tenant', 'description')
help_texts = {
}
@@ -878,7 +871,7 @@ class RackReservationCSVForm(forms.ModelForm):
site = self.cleaned_data.get('site')
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
if site and rack_group and rack_name:

View File

@@ -506,6 +506,16 @@ class RackReservationImportView(PermissionRequiredMixin, BulkImportView):
table = tables.RackReservationTable
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):
permission_required = 'dcim.change_rackreservation'
@@ -1252,7 +1262,7 @@ class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
template_name = 'dcim/device_import_child.html'
default_return_url = 'dcim:device_list'
def _save_obj(self, obj_form):
def _save_obj(self, obj_form, request):
obj = obj_form.save()