Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions netbox_custom_objects/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
from . import field_types, filtersets, forms, tables
from .models import CustomObject, CustomObjectType, CustomObjectTypeField

logger = logging.getLogger('netbox_custom_objects.views')
logger = logging.getLogger("netbox_custom_objects.views")


class CustomJournalEntryForm(JournalEntryForm):
Expand Down Expand Up @@ -123,7 +123,9 @@ def get_table(self, data, request, bulk_actions=True):
attrs[field.name] = field_type.get_table_column_field(field)
except NotImplementedError:
logger.debug(
"table mixin: {} field is not implemented; using a default column".format(field.name)
"table mixin: {} field is not implemented; using a default column".format(
field.name
)
)
# Define a method "render_table_column" method on any FieldType to customize output
# See https://django-tables2.readthedocs.io/en/latest/pages/custom-data.html#table-render-foo-methods
Expand Down Expand Up @@ -543,6 +545,22 @@ def get_object(self, **kwargs):
model = object_type.get_model()
return get_object_or_404(model.objects.all(), **self.kwargs)

def get_return_url(self, request, obj=None):
"""
Return the URL to redirect to after deleting a custom object.
"""
if obj:
# Get the custom object type from the object directly
custom_object_type = obj.custom_object_type.name
else:
# Fallback to getting it from kwargs if object is not available
custom_object_type = self.kwargs.get("custom_object_type")

return reverse(
"plugins:netbox_custom_objects:customobject_list",
kwargs={"custom_object_type": custom_object_type},
)


@register_model_view(CustomObject, "bulk_edit", path="edit", detail=False)
class CustomObjectBulkEditView(CustomObjectTableMixin, generic.BulkEditView):
Expand Down Expand Up @@ -578,7 +596,9 @@ def get_form(self, queryset):
try:
attrs[field.name] = field_type.get_annotated_form_field(field)
except NotImplementedError:
logger.debug("bulk edit form: {} field is not supported".format(field.name))
logger.debug(
"bulk edit form: {} field is not supported".format(field.name)
)

form = type(
f"{queryset.model._meta.object_name}BulkEditForm",
Expand Down