Skip to content

Commit

Permalink
Closes #10054: Implement advanced UI controls for object selection (#…
Browse files Browse the repository at this point in the history
…11952)

* WIP

* WIP

* WIP

* Make object selector functional

* Replace extraneous form fields with selector widgets

* Avoid overlap with filterset field names

* Show checkmarks next to visibile filters

* Update results automatically when searching

* Include selector for device/VM component parent fields

* Use selector for filtering VLAN group/site

* Limit selector to 100 results
  • Loading branch information
jeremystretch authored Mar 13, 2023
1 parent 2a9178a commit d1f76be
Show file tree
Hide file tree
Showing 24 changed files with 276 additions and 601 deletions.
40 changes: 6 additions & 34 deletions netbox/circuits/forms/model_forms.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.utils.translation import gettext as _

from circuits.models import *
from dcim.models import Region, Site, SiteGroup
from dcim.models import Site
from ipam.models import ASN
from netbox.forms import NetBoxModelForm
from tenancy.forms import TenancyForm
Expand Down Expand Up @@ -114,50 +114,22 @@ class CircuitTerminationForm(NetBoxModelForm):
'provider_id': '$provider',
},
)
region = DynamicModelChoiceField(
queryset=Region.objects.all(),
required=False,
initial_params={
'sites': '$site'
}
)
site_group = DynamicModelChoiceField(
queryset=SiteGroup.objects.all(),
required=False,
initial_params={
'sites': '$site'
}
)
site = DynamicModelChoiceField(
queryset=Site.objects.all(),
query_params={
'region_id': '$region',
'group_id': '$site_group',
},
required=False
)
provider_network_provider = DynamicModelChoiceField(
queryset=Provider.objects.all(),
required=False,
label='Provider',
initial_params={
'networks': 'provider_network'
}
selector=True
)
provider_network = DynamicModelChoiceField(
queryset=ProviderNetwork.objects.all(),
query_params={
'provider_id': '$provider_network_provider',
},
required=False
required=False,
selector=True
)

class Meta:
model = CircuitTermination
fields = [
'provider', 'circuit', 'term_side', 'region', 'site_group', 'site', 'provider_network_provider',
'provider_network', 'mark_connected', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info',
'description', 'tags',
'provider', 'circuit', 'term_side', 'site', 'provider_network', 'mark_connected', 'port_speed',
'upstream_speed', 'xconnect_id', 'pp_info', 'description', 'tags',
]
widgets = {
'port_speed': SelectSpeedWidget(),
Expand Down
Loading

0 comments on commit d1f76be

Please sign in to comment.