This commit is contained in:
Arthur
2026-03-26 13:37:40 -07:00
parent 8a58d760fa
commit 3ec0551680

View File

@@ -1138,10 +1138,10 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView):
logger.debug("Form validation was successful")
# 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(
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):
return redirect(self.get_return_url(request))
@@ -1176,7 +1176,10 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView):
else:
for field, errors in component_form.errors.as_data().items():
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
component_ids = [obj.pk for obj in new_components]
@@ -1185,18 +1188,24 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView):
except IntegrityError:
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:
logger.debug(e.message)
form.add_error(None, e.message)
clear_events.send(sender=self)
if is_background_request(request):
request.job.logger.error(e.message)
raise JobFailed
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)