Fixes: #14044 - Allow regex renaming of unnamed devices (#17212)

* Fixes: #14044 - Allow regex renaming of unnamed devices

* Allow regex renaming of unnamed devices (already allowed actually)
* Catch errors relating to unnamed devices or integrity errors as a result of the rename process

* Move validation to ensure all renames are eligible

* Update to treat null name an empty string
This commit is contained in:
Daniel Sheppard 2024-12-09 08:27:41 -06:00 committed by GitHub
parent 8c9bb73ff7
commit 674af4d6bc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -744,7 +744,6 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView):
renamed_pks = [] renamed_pks = []
for obj in selected_objects: for obj in selected_objects:
# Take a snapshot of change-logged models # Take a snapshot of change-logged models
if hasattr(obj, 'snapshot'): if hasattr(obj, 'snapshot'):
obj.snapshot() obj.snapshot()
@ -758,7 +757,7 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView):
except re.error: except re.error:
obj.new_name = obj.name obj.new_name = obj.name
else: else:
obj.new_name = obj.name.replace(find, replace) obj.new_name = (obj.name or '').replace(find, replace)
renamed_pks.append(obj.pk) renamed_pks.append(obj.pk)
return renamed_pks return renamed_pks
@ -793,6 +792,10 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView):
) )
return redirect(self.get_return_url(request)) return redirect(self.get_return_url(request))
except IntegrityError as e:
messages.error(self.request, ", ".join(e.args))
clear_events.send(sender=self)
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)