From 39a96ddf3ac29f3fdb2e3cc21c83dbaa65e2108d Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Wed, 26 Mar 2025 15:35:06 -0500 Subject: [PATCH] Fixes #18738: Ensure ScriptList respects script_order option --- netbox/extras/models/scripts.py | 9 +++++++++ netbox/templates/extras/script_list.html | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/netbox/extras/models/scripts.py b/netbox/extras/models/scripts.py index 98d79c53c..9cf2c2f9a 100644 --- a/netbox/extras/models/scripts.py +++ b/netbox/extras/models/scripts.py @@ -117,6 +117,15 @@ class ScriptModule(PythonModuleMixin, JobsMixin, ManagedFile): def __str__(self): return self.python_name + @property + def ordered_scripts(self): + script_objects = {s.name: s for s in self.scripts.all()} + ordered = [ + script_objects.pop(sc) for sc in self.module_scripts.keys() if sc in script_objects + ] + ordered.extend(script_objects.items()) + return ordered + @property def module_scripts(self): diff --git a/netbox/templates/extras/script_list.html b/netbox/templates/extras/script_list.html index cbffbf8de..47248cefb 100644 --- a/netbox/templates/extras/script_list.html +++ b/netbox/templates/extras/script_list.html @@ -37,7 +37,7 @@ {% endif %} - {% with scripts=module.scripts.all %} + {% with scripts=module.ordered_scripts %} {% if scripts %}