Fixed Multipoint filtering

This commit is contained in:
Nathan Gotz 2016-09-14 13:33:37 -05:00
parent 08bc5df9e3
commit 5b78bb0738

View File

@ -85,19 +85,6 @@ class CircuitTypeForm(forms.ModelForm, BootstrapMixin):
# #
class CircuitForm(BootstrapMixin, CustomFieldForm): class CircuitForm(BootstrapMixin, CustomFieldForm):
# site = forms.ModelChoiceField(queryset=Site.objects.all(), widget=forms.Select(attrs={'filter-for': 'rack'}))
# rack = forms.ModelChoiceField(queryset=Rack.objects.all(), required=False, label='Rack',
# widget=APISelect(api_url='/api/dcim/racks/?site_id={{site}}',
# attrs={'filter-for': 'device'}))
# device = forms.ModelChoiceField(queryset=Device.objects.all(), required=False, label='Device',
# widget=APISelect(api_url='/api/dcim/devices/?rack_id={{rack}}',
# attrs={'filter-for': 'interface'}))
# livesearch = forms.CharField(required=False, label='Device', widget=Livesearch(
# query_key='q', query_url='dcim-api:device_list', field_to_update='device')
# )
# interface = forms.ModelChoiceField(queryset=Interface.objects.all(), required=False, label='Interface',
# widget=APISelect(api_url='/api/dcim/devices/{{device}}/interfaces/?type=physical',
# disabled_indicator='is_connected'))
comments = CommentField() comments = CommentField()
class Meta: class Meta:
@ -105,62 +92,15 @@ class CircuitForm(BootstrapMixin, CustomFieldForm):
fields = [ fields = [
'cid', 'type', 'provider', 'tenant', 'install_date', 'comments' 'cid', 'type', 'provider', 'tenant', 'install_date', 'comments'
] ]
# fields = [
# 'cid', 'type', 'provider', 'tenant', 'site', 'rack', 'device', 'livesearch', 'interface', 'install_date',
# 'port_speed', 'upstream_speed', 'commit_rate', 'xconnect_id', 'pp_info', 'comments'
# ]
help_texts = { help_texts = {
'cid': "Unique circuit ID", 'cid': "Unique circuit ID",
'install_date': "Format: YYYY-MM-DD", 'install_date': "Format: YYYY-MM-DD",
# 'port_speed': "Physical circuit speed",
# 'commit_rate': "Commited rate",
# 'xconnect_id': "ID of the local cross-connect",
# 'pp_info': "Patch panel ID and port number(s)"
} }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(CircuitForm, self).__init__(*args, **kwargs) super(CircuitForm, self).__init__(*args, **kwargs)
# # If this circuit has been assigned to an interface, initialize rack and device
# if self.instance.interface:
# self.initial['rack'] = self.instance.interface.device.rack
# self.initial['device'] = self.instance.interface.device
#
# # Limit rack choices
# if self.is_bound:
# self.fields['rack'].queryset = Rack.objects.filter(site__pk=self.data['site'])
# elif self.initial.get('site'):
# self.fields['rack'].queryset = Rack.objects.filter(site=self.initial['site'])
# else:
# self.fields['rack'].choices = []
#
# # Limit device choices
# if self.is_bound and self.data.get('rack'):
# self.fields['device'].queryset = Device.objects.filter(rack=self.data['rack'])
# elif self.initial.get('rack'):
# self.fields['device'].queryset = Device.objects.filter(rack=self.initial['rack'])
# else:
# self.fields['device'].choices = []
#
# # Limit interface choices
# if self.is_bound and self.data.get('device'):
# interfaces = Interface.objects.filter(device=self.data['device'])\
# .exclude(form_factor=IFACE_FF_VIRTUAL).select_related('circuit', 'connected_as_a', 'connected_as_b')
# self.fields['interface'].widget.attrs['initial'] = self.data.get('interface')
# elif self.initial.get('device'):
# interfaces = Interface.objects.filter(device=self.initial['device'])\
# .exclude(form_factor=IFACE_FF_VIRTUAL).select_related('circuit', 'connected_as_a', 'connected_as_b')
# self.fields['interface'].widget.attrs['initial'] = self.initial.get('interface')
# else:
# interfaces = []
# self.fields['interface'].choices = [
# (iface.id, {
# 'label': iface.name,
# 'disabled': iface.is_connected and iface.id != self.fields['interface'].widget.attrs.get('initial'),
# }) for iface in interfaces
# ]
class CircuitFromCSVForm(forms.ModelForm): class CircuitFromCSVForm(forms.ModelForm):
provider = forms.ModelChoiceField(Provider.objects.all(), to_field_name='name', provider = forms.ModelChoiceField(Provider.objects.all(), to_field_name='name',
@ -169,14 +109,10 @@ class CircuitFromCSVForm(forms.ModelForm):
error_messages={'invalid_choice': 'Invalid circuit type.'}) error_messages={'invalid_choice': 'Invalid circuit type.'})
tenant = forms.ModelChoiceField(Tenant.objects.all(), to_field_name='name', required=False, tenant = forms.ModelChoiceField(Tenant.objects.all(), to_field_name='name', required=False,
error_messages={'invalid_choice': 'Tenant not found.'}) error_messages={'invalid_choice': 'Tenant not found.'})
# site = forms.ModelChoiceField(Site.objects.all(), to_field_name='name',
# error_messages={'invalid_choice': 'Site not found.'})
class Meta: class Meta:
model = Circuit model = Circuit
fields = ['cid', 'provider', 'type', 'tenant', 'install_date'] fields = ['cid', 'provider', 'type', 'tenant', 'install_date']
# fields = ['cid', 'provider', 'type', 'tenant', 'site', 'install_date', 'port_speed', 'upstream_speed',
# 'commit_rate', 'xconnect_id', 'pp_info']
class CircuitImportForm(BulkImportForm, BootstrapMixin): class CircuitImportForm(BulkImportForm, BootstrapMixin):
@ -188,8 +124,6 @@ class CircuitBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
type = forms.ModelChoiceField(queryset=CircuitType.objects.all(), required=False) type = forms.ModelChoiceField(queryset=CircuitType.objects.all(), required=False)
provider = forms.ModelChoiceField(queryset=Provider.objects.all(), required=False) provider = forms.ModelChoiceField(queryset=Provider.objects.all(), required=False)
tenant = forms.TypedChoiceField(choices=bulkedit_tenant_choices, coerce=int, required=False, label='Tenant') tenant = forms.TypedChoiceField(choices=bulkedit_tenant_choices, coerce=int, required=False, label='Tenant')
# port_speed = forms.IntegerField(required=False, label='Port speed (Kbps)')
# commit_rate = forms.IntegerField(required=False, label='Commit rate (Kbps)')
comments = CommentField() comments = CommentField()
@ -208,11 +142,6 @@ def circuit_tenant_choices():
return [(t.slug, u'{} ({})'.format(t.name, t.circuit_count)) for t in tenant_choices] return [(t.slug, u'{} ({})'.format(t.name, t.circuit_count)) for t in tenant_choices]
# def circuit_site_choices():
# site_choices = Site.objects.annotate(circuit_count=Count('circuits'))
# return [(s.slug, u'{} ({})'.format(s.name, s.circuit_count)) for s in site_choices]
class CircuitFilterForm(BootstrapMixin, CustomFieldFilterForm): class CircuitFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Circuit model = Circuit
type = forms.MultipleChoiceField(required=False, choices=circuit_type_choices) type = forms.MultipleChoiceField(required=False, choices=circuit_type_choices)
@ -220,8 +149,6 @@ class CircuitFilterForm(BootstrapMixin, CustomFieldFilterForm):
widget=forms.SelectMultiple(attrs={'size': 8})) widget=forms.SelectMultiple(attrs={'size': 8}))
tenant = forms.MultipleChoiceField(required=False, choices=circuit_tenant_choices, tenant = forms.MultipleChoiceField(required=False, choices=circuit_tenant_choices,
widget=forms.SelectMultiple(attrs={'size': 8})) widget=forms.SelectMultiple(attrs={'size': 8}))
# site = forms.MultipleChoiceField(required=False, choices=circuit_site_choices,
# widget=forms.SelectMultiple(attrs={'size': 8}))
# #
# Terminations # Terminations