From d0bd1ad25b168555725b1f53b4bace0a09cbe413 Mon Sep 17 00:00:00 2001 From: dansheps Date: Mon, 24 Feb 2020 10:18:19 -0600 Subject: [PATCH] Fixes: #4255 - Add new script variable types based on dynamic model fields --- netbox/extras/scripts.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/netbox/extras/scripts.py b/netbox/extras/scripts.py index 57cbc8149..68a1a5ba4 100644 --- a/netbox/extras/scripts.py +++ b/netbox/extras/scripts.py @@ -18,6 +18,7 @@ from ipam.formfields import IPAddressFormField, IPNetworkFormField from ipam.validators import MaxPrefixLengthValidator, MinPrefixLengthValidator, prefix_validator from .constants import LOG_DEFAULT, LOG_FAILURE, LOG_INFO, LOG_SUCCESS, LOG_WARNING from utilities.exceptions import AbortTransaction +from utilities.forms import DynamicModelChoiceField, DynamicModelMultipleChoiceField from .forms import ScriptForm from .signals import purge_changelog @@ -197,6 +198,20 @@ class MultiObjectVar(ScriptVariable): self.form_field = TreeNodeMultipleChoiceField +class DynamicObjectVar(ObjectVar): + """ + A dynamic netbox object variable. APISelect will determine the available choices + """ + form_field = DynamicModelChoiceField + + +class DynamicMultiObjectVar(MultiObjectVar): + """ + A multiple choice version of DynamicObjectVar + """ + form_field = DynamicModelMultipleChoiceField + + class FileVar(ScriptVariable): """ An uploaded file.