Просмотр исходного кода

Fixes: #4255 - Add new script variable types based on dynamic model fields

dansheps 6 лет назад
Родитель
Сommit
d0bd1ad25b
1 измененных файлов с 15 добавлено и 0 удалено
  1. 15 0
      netbox/extras/scripts.py

+ 15 - 0
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.