Skip to content

Commit 30d4210

Browse files
committed
Top-Button redirects to List-View
Change the redirect target of the top "Add Attachment" button from the url you are currently at to the attachment-list-view of the object where the attachment will/was created. This makes it consistent with for example the "Add Component" buttons for devices.
1 parent b961889 commit 30d4210

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

netbox_attachments/template_content.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def get_display_preference(app_model_name: str) -> str:
5757
return display_settings.get(app_model_name, default_display)
5858

5959

60-
def create_add_attachment_button(model_name: str) -> Type[PluginTemplateExtension]:
60+
def create_add_attachment_button(model_name: str, url_pattern_name: str) -> Type[PluginTemplateExtension]:
6161
"""
6262
Creates an 'add attachment' button extension for a model.
6363
@@ -72,12 +72,13 @@ class AddAttachmentButton(PluginTemplateExtension):
7272
models = [model_name]
7373

7474
def buttons(self):
75-
return self.render("netbox_attachments/add_attachment_button.html")
75+
return self.render("netbox_attachments/add_attachment_button.html",
76+
extra_context={'object_type_attachement_list': url_pattern_name})
7677

7778
return AddAttachmentButton
7879

7980

80-
def register_attachment_tab_view(model: Type[Model]) -> None:
81+
def register_attachment_tab_view(model: Type[Model]) -> str:
8182
"""
8283
Creates and registers an attachment tab view for a model.
8384
@@ -115,6 +116,8 @@ def get_children(self, request, parent):
115116

116117
register_model_view(model, name=view_name, path=view_path)(AttachmentTabView)
117118

119+
return view_name
120+
118121

119122
def get_template_extensions() -> List[Type[PluginTemplateExtension]]:
120123
"""
@@ -154,12 +157,14 @@ def get_template_extensions() -> List[Type[PluginTemplateExtension]]:
154157

155158
# Handle display as additional tab
156159
if display_preference == "additional_tab":
160+
# Register tab view
161+
view_name = register_attachment_tab_view(model)
162+
157163
# Add button if configured
158164
if should_add_button:
159-
extensions.append(create_add_attachment_button(app_model_name))
165+
url_pattern_name = f"{app_label}:{model_name}_{view_name}"
166+
extensions.append(create_add_attachment_button(app_model_name, url_pattern_name))
160167

161-
# Register tab view
162-
register_attachment_tab_view(model)
163168
continue
164169

165170
# Create panel extension in the specified location

netbox_attachments/templates/netbox_attachments/add_attachment_button.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% if perms.netbox_attachments.add_netboxattachment %}
2-
<a href="{% url 'plugins:netbox_attachments:netboxattachment_add' %}?object_type={{ object|content_type_id }}&object_id={{ object.pk }}&return_url={{ object.get_absolute_url }}"
2+
<a href="{% url 'plugins:netbox_attachments:netboxattachment_add' %}?object_type={{ object|content_type_id }}&object_id={{ object.pk }}&return_url={% url object_type_attachement_list pk=object.pk %}"
33
class="btn btn-secondary">
44
<i class="mdi mdi-paperclip" aria-hidden="true"></i>
55
Add Attachment

0 commit comments

Comments
 (0)