Skip to content

Commit

Permalink
Closes #17944: Allow filtering of ObjectVar and MultiObjectVar script…
Browse files Browse the repository at this point in the history
… inputs (#18725)

* Add the advanced object selector to the ObjectVar and MultiObjectVar script inputs

* Fix formatting issue
  • Loading branch information
atownson authored Mar 3, 2025
1 parent 3b1daaa commit 3e1d436
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/customization/custom-scripts.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ A particular object within NetBox. Each ObjectVar must specify a particular mode
* `query_params` - A dictionary of query parameters to use when retrieving available options (optional)
* `context` - A custom dictionary mapping template context variables to fields, used when rendering `<option>` elements within the dropdown menu (optional; see below)
* `null_option` - A label representing a "null" or empty choice (optional)
* `selector` - A boolean that, when True, includes an advanced object selection widget to assist the user in identifying the desired object (optional; False by default)

To limit the selections available within the list, additional query parameters can be passed as the `query_params` dictionary. For example, to show only devices with an "active" status:

Expand Down
5 changes: 4 additions & 1 deletion netbox/extras/scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,17 +211,20 @@ class ObjectVar(ScriptVariable):
:param context: A custom dictionary mapping template context variables to fields, used when rendering <option>
elements within the dropdown menu (optional)
:param null_option: The label to use as a "null" selection option (optional)
:param selector: Include an advanced object selection widget to assist the user in identifying the desired
object (optional)
"""
form_field = DynamicModelChoiceField

def __init__(self, model, query_params=None, context=None, null_option=None, *args, **kwargs):
def __init__(self, model, query_params=None, context=None, null_option=None, selector=False, *args, **kwargs):
super().__init__(*args, **kwargs)

self.field_attrs.update({
'queryset': model.objects.all(),
'query_params': query_params,
'context': context,
'null_option': null_option,
'selector': selector,
})


Expand Down
4 changes: 4 additions & 0 deletions netbox/templates/extras/script.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,7 @@ <h2 class="col-9 offset-3">{{ group }}</h2>
</div>
</div>
{% endblock content %}

{% block modals %}
{% include 'inc/htmx_modal.html' with size='lg' %}
{% endblock %}

0 comments on commit 3e1d436

Please sign in to comment.