Arthur 3 дней назад
Родитель
Сommit
3ec0551680
1 измененных файлов с 17 добавлено и 8 удалено
  1. 17 8
      netbox/netbox/views/generic/bulk_views.py

+ 17 - 8
netbox/netbox/views/generic/bulk_views.py

@@ -1138,10 +1138,10 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView):
                 logger.debug("Form validation was successful")
                 logger.debug("Form validation was successful")
 
 
                 # If indicated, defer this request to a background job & redirect the user
                 # If indicated, defer this request to a background job & redirect the user
-                if form.cleaned_data.get('background_job'):
+                if form.cleaned_data['background_job']:
                     job_name = _('Bulk add {count} {object_type}').format(
                     job_name = _('Bulk add {count} {object_type}').format(
                         count=len(form.cleaned_data['pk']),
                         count=len(form.cleaned_data['pk']),
-                        object_type=model_name,
+                        object_type=self.queryset.model._meta.verbose_name_plural,
                     )
                     )
                     if process_request_as_job(self.__class__, request, name=job_name):
                     if process_request_as_job(self.__class__, request, name=job_name):
                         return redirect(self.get_return_url(request))
                         return redirect(self.get_return_url(request))
@@ -1176,7 +1176,10 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView):
                                 else:
                                 else:
                                     for field, errors in component_form.errors.as_data().items():
                                     for field, errors in component_form.errors.as_data().items():
                                         for e in errors:
                                         for e in errors:
-                                            form.add_error(field, '{}: {}'.format(obj, ', '.join(e)))
+                                            err_msg = '{}: {}'.format(obj, ', '.join(e))
+                                            form.add_error(field, err_msg)
+                                            if is_background_request(request):
+                                                request.job.logger.error(err_msg)
 
 
                         # Enforce object-level permissions
                         # Enforce object-level permissions
                         component_ids = [obj.pk for obj in new_components]
                         component_ids = [obj.pk for obj in new_components]
@@ -1185,18 +1188,24 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView):
 
 
                 except IntegrityError:
                 except IntegrityError:
                     clear_events.send(sender=self)
                     clear_events.send(sender=self)
+                    if is_background_request(request):
+                        request.job.logger.error("An integrity error occurred while creating components")
+                        raise JobFailed
 
 
                 except (AbortRequest, PermissionsViolation) as e:
                 except (AbortRequest, PermissionsViolation) as e:
                     logger.debug(e.message)
                     logger.debug(e.message)
                     form.add_error(None, e.message)
                     form.add_error(None, e.message)
                     clear_events.send(sender=self)
                     clear_events.send(sender=self)
+                    if is_background_request(request):
+                        request.job.logger.error(e.message)
+                        raise JobFailed
 
 
                 if not form.errors:
                 if not form.errors:
-                    msg = "Added {} {} to {} {}.".format(
-                        len(new_components),
-                        model_name,
-                        len(form.cleaned_data['pk']),
-                        parent_model_name
+                    msg = _("Added {count} {component} to {parent_count} {parent}.").format(
+                        count=len(new_components),
+                        component=model_name,
+                        parent_count=len(form.cleaned_data['pk']),
+                        parent=parent_model_name,
                     )
                     )
                     logger.info(msg)
                     logger.info(msg)