From ffb1e7beb5085be0eafdfe1f5a7cf2ac89b335ec Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 12 May 2016 16:10:55 -0400 Subject: [PATCH] Linkified dependent objects in handle_protectederror() --- netbox/utilities/error_handlers.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/netbox/utilities/error_handlers.py b/netbox/utilities/error_handlers.py index d8bbd0ff9..e456b8fb2 100644 --- a/netbox/utilities/error_handlers.py +++ b/netbox/utilities/error_handlers.py @@ -11,19 +11,26 @@ def handle_protectederror(obj, request, e): except IndexError: raise e - # Handle multiple triggering objects + # Grammar for single versus multiple triggering objects if type(obj) in (list, tuple): - messages.error(request, "Unable to delete the requested {}. The following dependent {} were found: {}".format( + err_message = "Unable to delete the requested {}. The following dependent {} were found: ".format( obj[0]._meta.verbose_name_plural, dep_class, - ', '.join([str(o) for o in dependent_objects]) - )) - - # Handle a single triggering object + ) else: - messages.error(request, "Unable to delete {} {}. The following dependent {} were found: {}".format( + err_message = "Unable to delete {} {}. The following dependent {} were found: ".format( obj._meta.verbose_name, obj, dep_class, - ', '.join([str(o) for o in dependent_objects]) - )) + ) + + # Append dependent objects to error message + dependent_objects = [] + for o in e[1]: + if hasattr(o, 'get_absolute_url'): + dependent_objects.append('{}'.format(o.get_absolute_url(), str(o))) + else: + dependent_objects.append(str(o)) + err_message += ', '.join(dependent_objects) + + messages.error(request, err_message)