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 %}