diff --git a/docs/release-notes/version-2.6.md b/docs/release-notes/version-2.6.md index cde5b3e80..3149f3cb9 100644 --- a/docs/release-notes/version-2.6.md +++ b/docs/release-notes/version-2.6.md @@ -4,6 +4,7 @@ * [#2050](https://github.com/netbox-community/netbox/issues/2050) - Preview image attachments when hovering the link * [#3187](https://github.com/netbox-community/netbox/issues/3187) - Add rack selection field to rack elevations +* [#3851](https://github.com/netbox-community/netbox/issues/3851) - Allow passing initial data to custom script forms ## Bug Fixes diff --git a/netbox/extras/scripts.py b/netbox/extras/scripts.py index 28238b008..4876595a3 100644 --- a/netbox/extras/scripts.py +++ b/netbox/extras/scripts.py @@ -263,12 +263,12 @@ class BaseScript: def run(self, data): raise NotImplementedError("The script must define a run() method.") - def as_form(self, data=None, files=None): + def as_form(self, data=None, files=None, initial=None): """ Return a Django form suitable for populating the context data required to run this Script. """ vars = self._get_vars() - form = ScriptForm(vars, data, files, commit_default=getattr(self.Meta, 'commit_default', True)) + form = ScriptForm(vars, data, files, initial=initial, commit_default=getattr(self.Meta, 'commit_default', True)) return form diff --git a/netbox/extras/views.py b/netbox/extras/views.py index eb17a65ab..b9ef7f9b4 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -392,7 +392,7 @@ class ScriptView(PermissionRequiredMixin, View): def get(self, request, module, name): script = self._get_script(module, name) - form = script.as_form() + form = script.as_form(initial=request.GET) return render(request, 'extras/script.html', { 'module': module,