mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Closes #8368: Enable controlling the order of custom script form fields with field_order
This commit is contained in:
@ -77,6 +77,10 @@ This is the human-friendly names of your script. If omitted, the class name will
|
|||||||
|
|
||||||
A human-friendly description of what your script does.
|
A human-friendly description of what your script does.
|
||||||
|
|
||||||
|
### `field_order`
|
||||||
|
|
||||||
|
By default, script variables will be ordered in the form as they are defined in the script. `field_order` may be defined as an iterable of field names to determine the order in which variables are rendered. Any fields not included in this iterable be listed last.
|
||||||
|
|
||||||
### `commit_default`
|
### `commit_default`
|
||||||
|
|
||||||
The checkbox to commit database changes when executing a script is checked by default. Set `commit_default` to False under the script's Meta class to leave this option unchecked by default.
|
The checkbox to commit database changes when executing a script is checked by default. Set `commit_default` to False under the script's Meta class to leave this option unchecked by default.
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
* [#8275](https://github.com/netbox-community/netbox/issues/8275) - Introduce alternative ASDOT-formatted column for ASNs
|
* [#8275](https://github.com/netbox-community/netbox/issues/8275) - Introduce alternative ASDOT-formatted column for ASNs
|
||||||
* [#8367](https://github.com/netbox-community/netbox/issues/8367) - Add ASNs to global search function
|
* [#8367](https://github.com/netbox-community/netbox/issues/8367) - Add ASNs to global search function
|
||||||
|
* [#8368](https://github.com/netbox-community/netbox/issues/8368) - Enable controlling the order of custom script form fields with `field_order`
|
||||||
* [#8381](https://github.com/netbox-community/netbox/issues/8381) - Add contacts to global search function
|
* [#8381](https://github.com/netbox-community/netbox/issues/8381) - Add contacts to global search function
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
@ -296,12 +296,21 @@ class BaseScript:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_vars(cls):
|
def _get_vars(cls):
|
||||||
vars = OrderedDict()
|
vars = {}
|
||||||
for name, attr in cls.__dict__.items():
|
for name, attr in cls.__dict__.items():
|
||||||
if name not in vars and issubclass(attr.__class__, ScriptVariable):
|
if name not in vars and issubclass(attr.__class__, ScriptVariable):
|
||||||
vars[name] = attr
|
vars[name] = attr
|
||||||
|
|
||||||
|
# Order variables according to field_order
|
||||||
|
field_order = getattr(cls.Meta, 'field_order', None)
|
||||||
|
if not field_order:
|
||||||
return vars
|
return vars
|
||||||
|
ordered_vars = {
|
||||||
|
field: vars.pop(field) for field in field_order if field in vars
|
||||||
|
}
|
||||||
|
ordered_vars.update(vars)
|
||||||
|
|
||||||
|
return ordered_vars
|
||||||
|
|
||||||
def run(self, data, commit):
|
def run(self, data, commit):
|
||||||
raise NotImplementedError("The script must define a run() method.")
|
raise NotImplementedError("The script must define a run() method.")
|
||||||
|
Reference in New Issue
Block a user