Annotate current number of assignments if >100

This commit is contained in:
Jeremy Stretch
2026-03-30 09:15:35 -04:00
parent d5f37d7a87
commit 757c4f69d2
3 changed files with 6 additions and 3 deletions

View File

@@ -71,10 +71,11 @@ class ProviderForm(PrimaryModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.instance.pk and self.instance.asns.count() >= M2MAddRemoveFields.THRESHOLD:
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['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:
# Simple mode for new objects or small M2M sets
self.fields.pop('add_asns')

View File

@@ -190,10 +190,11 @@ class SiteForm(TenancyForm, PrimaryModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.instance.pk and self.instance.asns.count() >= M2MAddRemoveFields.THRESHOLD:
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['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:
# Simple mode for new objects or small M2M sets
self.fields.pop('add_asns')

View File

@@ -184,10 +184,11 @@ class ASNForm(TenancyForm, PrimaryModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.instance.pk and self.instance.sites.count() >= M2MAddRemoveFields.THRESHOLD:
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['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:
# Simple mode for new objects or small M2M sets
self.fields.pop('add_sites')