diff --git a/netbox/core/plugins.py b/netbox/core/plugins.py
index c09f82a20..29020bcce 100644
--- a/netbox/core/plugins.py
+++ b/netbox/core/plugins.py
@@ -63,6 +63,7 @@ class Plugin:
release_recent_history: list[PluginVersion] = field(default_factory=list)
is_local: bool = False # extra field for locally installed plugins
is_installed: bool = False
+ installed_version: str = ''
def get_local_plugins():
@@ -81,6 +82,7 @@ def get_local_plugins():
description_short=plugin_config.description,
is_local=True,
is_installed=True,
+ installed_version=plugin_config.version,
)
return plugins
diff --git a/netbox/core/tables/plugins.py b/netbox/core/tables/plugins.py
index 4f1d6b83a..529fe60f4 100644
--- a/netbox/core/tables/plugins.py
+++ b/netbox/core/tables/plugins.py
@@ -62,11 +62,15 @@ class CatalogPluginTable(BaseTable):
updated_at = columns.DateTimeColumn(
verbose_name=_('Updated')
)
+ installed_version = tables.Column(
+ verbose_name=_('Installed version')
+ )
class Meta(BaseTable.Meta):
empty_text = _('No plugin data found')
fields = (
'title_short', 'author', 'is_local', 'is_installed', 'is_certified', 'created_at', 'updated_at',
+ 'installed_version',
)
default_columns = (
'title_short', 'author', 'is_local', 'is_installed', 'is_certified', 'created_at', 'updated_at',
diff --git a/netbox/core/views.py b/netbox/core/views.py
index d58c55833..79ef33e1d 100644
--- a/netbox/core/views.py
+++ b/netbox/core/views.py
@@ -654,7 +654,7 @@ class PluginListView(UserPassesTestMixin, View):
plugins = get_plugins().values()
if q:
- plugins = [obj for obj in plugins if q.casefold() in obj.name.casefold()]
+ plugins = [obj for obj in plugins if q.casefold() in obj.title_short.casefold()]
table = CatalogPluginTable(plugins, user=request.user)
table.configure(request)
@@ -678,6 +678,8 @@ class PluginView(UserPassesTestMixin, View):
def get(self, request, name):
plugins = get_plugins()
+ if name not in plugins:
+ raise Http404(_("Plugin {name} not found").format(name=name))
plugin = plugins[name]
table = PluginVersionTable(plugin.release_recent_history, user=request.user)
diff --git a/netbox/templates/core/plugin.html b/netbox/templates/core/plugin.html
index 733a0b093..77702d579 100644
--- a/netbox/templates/core/plugin.html
+++ b/netbox/templates/core/plugin.html
@@ -15,7 +15,7 @@
{% block subtitle %}
{{ plugin.tag_line }}
-
Learn more
+
Learn more
{% endblock subtitle %}
@@ -53,12 +53,40 @@
+
+
{% trans "Author" %} |
{{ plugin.author.name }} |
+
+ {% trans "Org id" %} |
+ {{ plugin.author.org_id|placeholder }} |
+
+
+ {% trans "URL" %} |
+ {{ plugin.author.url|urlize|placeholder }} |
+
+
+
+
+
+
+
+
+ {% trans "Name" %} |
+ {{ plugin.title_short }} |
+
+
+ {% trans "Tag line" %} |
+ {{ plugin.tag_line|placeholder }} |
+
+
+ {% trans "Status" %} |
+ {% badge object.get_status_display bg_color=object.get_status_color %} |
+
{% trans "License" %} |
{{ plugin.license_type }} |
@@ -67,6 +95,22 @@
{% trans "Description" %} |
{{ plugin.description_short|markdown }} |
+
+ {% trans "URL" %} |
+ {{ plugin.homepage_url|urlize|placeholder }} |
+
+
+ {% trans "Certified" %} |
+ {% checkmark plugin.is_certified %} |
+
+
+ {% trans "Local" %} |
+ {% checkmark plugin.is_local %} |
+
+
+ {% trans "Installed" %} |
+ {% checkmark plugin.is_installed %} |
+
diff --git a/netbox/templates/core/plugin_list.html b/netbox/templates/core/plugin_list.html
index 01a776b2c..aa9f90dd7 100644
--- a/netbox/templates/core/plugin_list.html
+++ b/netbox/templates/core/plugin_list.html
@@ -17,27 +17,3 @@
{% endblock tabs %}
-{% block content %}
-
-
{% trans "NetBox plugins enable you to document and model new kinds of resources, connect automations, add workflows, and much more." %}
-
-
-
-
-
- {% include 'htmx/table.html' %}
-
-
-
-
-{% endblock content %}