mirror of
https://github.com/netbox-community/netbox.git
synced 2026-03-31 14:43:36 +02:00
Limit 'add' field choices to objects not already assigned
This commit is contained in:
@@ -74,6 +74,7 @@ class ProviderForm(PrimaryModelForm):
|
||||
if self.instance.pk and (count := self.instance.asns.count()) >= M2MAddRemoveFields.THRESHOLD:
|
||||
# Add/remove mode for large M2M sets
|
||||
self.fields.pop('asns')
|
||||
self.fields['add_asns'].widget.add_query_param('provider_id__n', self.instance.pk)
|
||||
self.fields['remove_asns'].widget.add_query_param('provider_id', self.instance.pk)
|
||||
self.fields['remove_asns'].help_text = _("{count} ASNs currently assigned").format(count=count)
|
||||
else:
|
||||
|
||||
@@ -193,6 +193,7 @@ class SiteForm(TenancyForm, PrimaryModelForm):
|
||||
if self.instance.pk and (count := self.instance.asns.count()) >= M2MAddRemoveFields.THRESHOLD:
|
||||
# Add/remove mode for large M2M sets
|
||||
self.fields.pop('asns')
|
||||
self.fields['add_asns'].widget.add_query_param('site_id__n', self.instance.pk)
|
||||
self.fields['remove_asns'].widget.add_query_param('site_id', self.instance.pk)
|
||||
self.fields['remove_asns'].help_text = _("{count} ASNs currently assigned").format(count=count)
|
||||
else:
|
||||
|
||||
@@ -187,6 +187,7 @@ class ASNForm(TenancyForm, PrimaryModelForm):
|
||||
if self.instance.pk and (count := self.instance.sites.count()) >= M2MAddRemoveFields.THRESHOLD:
|
||||
# Add/remove mode for large M2M sets
|
||||
self.fields.pop('sites')
|
||||
self.fields['add_sites'].widget.add_query_param('asn_id__n', self.instance.pk)
|
||||
self.fields['remove_sites'].widget.add_query_param('asn_id', self.instance.pk)
|
||||
self.fields['remove_sites'].help_text = _("{count} sites currently assigned").format(count=count)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user