From 8ba899d1c73e87c35fc23af306a850becfbb785c Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Mon, 21 Oct 2024 11:12:40 -0700 Subject: [PATCH] 9604 form bulk_edit --- netbox/circuits/forms/bulk_edit.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/netbox/circuits/forms/bulk_edit.py b/netbox/circuits/forms/bulk_edit.py index 5cb7b5d30..4ce0f8283 100644 --- a/netbox/circuits/forms/bulk_edit.py +++ b/netbox/circuits/forms/bulk_edit.py @@ -197,10 +197,12 @@ class CircuitTerminationBulkEditForm(NetBoxModelBulkEditForm): max_length=200, required=False ) - site = DynamicModelChoiceField( - label=_('Site'), - queryset=Site.objects.all(), - required=False + scope = DynamicModelChoiceField( + label=_('Scope'), + queryset=Site.objects.none(), # Initial queryset + required=False, + disabled=True, + selector=True ) provider_network = DynamicModelChoiceField( label=_('Provider Network'), @@ -226,14 +228,28 @@ class CircuitTerminationBulkEditForm(NetBoxModelBulkEditForm): FieldSet( 'description', TabbedGroups( - FieldSet('site', name=_('Site')), + FieldSet('scope_type', 'scope', name=_('Scope')), FieldSet('provider_network', name=_('Provider Network')), ), 'mark_connected', name=_('Circuit Termination') ), FieldSet('port_speed', 'upstream_speed', name=_('Termination Details')), ) - nullable_fields = ('description') + nullable_fields = ('description', 'scope') + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + if scope_type_id := get_field_value(self, 'scope_type'): + try: + scope_type = ContentType.objects.get(pk=scope_type_id) + model = scope_type.model_class() + self.fields['scope'].queryset = model.objects.all() + self.fields['scope'].widget.attrs['selector'] = model._meta.label_lower + self.fields['scope'].disabled = False + self.fields['scope'].label = _(bettertitle(model._meta.verbose_name)) + except ObjectDoesNotExist: + pass class CircuitGroupBulkEditForm(NetBoxModelBulkEditForm):