Limit 'add' field choices to objects not already assigned

This commit is contained in:
Jeremy Stretch
2026-03-30 09:22:56 -04:00
parent 757c4f69d2
commit 0154a09856
3 changed files with 3 additions and 0 deletions

View File

@@ -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:

View File

@@ -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:

View File

@@ -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: