From 20824ceb25bf47ab7e399d2c5c83bbc260e13649 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 13 Feb 2024 16:31:17 -0500 Subject: [PATCH] Closes #13283: Add context to dropdown options (#15104) * Initial work on #13283 * Enable passing TomSelect HTML template attibutes on DynamicModelChoiceField * Merge disabled_indicator into option_attrs * Add support for annotating a numeric count on dropdown options * Annotate parent object on relevant fields * Improve rendering of color options * Improve rendering of color options * Rename option_attrs to context * Expose option context on ObjectVar for custom scripts * Document dropdown context variables --- docs/customization/custom-scripts.md | 17 +++++++ netbox/dcim/forms/bulk_edit.py | 6 +++ netbox/dcim/forms/connections.py | 12 +++-- netbox/dcim/forms/model_forms.py | 26 ++++++++-- netbox/extras/scripts.py | 5 +- netbox/ipam/forms/model_forms.py | 8 ++- netbox/project-static/dist/netbox.js | Bin 374348 -> 375736 bytes netbox/project-static/dist/netbox.js.map | Bin 339643 -> 340629 bytes .../src/select/classes/dynamicTomSelect.ts | 46 ++++++++++++++++-- netbox/project-static/src/select/dynamic.ts | 35 ++++++++++--- netbox/project-static/src/select/static.ts | 11 +++-- netbox/utilities/forms/fields/dynamic.py | 26 ++++++++-- netbox/wireless/forms/model_forms.py | 8 ++- 13 files changed, 171 insertions(+), 29 deletions(-) diff --git a/docs/customization/custom-scripts.md b/docs/customization/custom-scripts.md index 96423a94b..bdc3f9104 100644 --- a/docs/customization/custom-scripts.md +++ b/docs/customization/custom-scripts.md @@ -304,6 +304,7 @@ A particular object within NetBox. Each ObjectVar must specify a particular mode * `model` - The model class * `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 `