1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

DCIM removed annotates from querysets

This commit is contained in:
John Anderson
2019-01-09 13:44:39 -05:00
parent f3216abebf
commit a6564c49e2

View File

@ -17,7 +17,7 @@ from tenancy.models import Tenant
from utilities.forms import ( from utilities.forms import (
AnnotatedMultipleChoiceField, APISelect, APISelectMultiple, add_blank_choice, ArrayFieldSelectMultiple, AnnotatedMultipleChoiceField, APISelect, APISelectMultiple, add_blank_choice, ArrayFieldSelectMultiple,
BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect, ChainedFieldsMixin, ChainedModelChoiceField, BootstrapMixin, BulkEditForm, BulkEditNullBooleanSelect, ChainedFieldsMixin, ChainedModelChoiceField,
ColorSelect, CommentField, ComponentForm, ConfirmationForm, ContentTypeSelect, CSVChoiceField, ColorSelect, CommentField, ComponentForm, ConfirmationForm, ContentTypeSelect, CSVChoiceField,
ExpandableNameField, FilterChoiceField, FilterTreeNodeMultipleChoiceField, FlexibleModelChoiceField, ExpandableNameField, FilterChoiceField, FilterTreeNodeMultipleChoiceField, FlexibleModelChoiceField,
JSONField, Livesearch, SelectWithPK, SmallTextarea, SlugField, StaticSelect2, StaticSelect2Multiple, JSONField, Livesearch, SelectWithPK, SmallTextarea, SlugField, StaticSelect2, StaticSelect2Multiple,
BOOLEAN_WITH_BLANK_CHOICES, COLOR_CHOICES, BOOLEAN_WITH_BLANK_CHOICES, COLOR_CHOICES,
@ -264,10 +264,8 @@ class SiteFilterForm(BootstrapMixin, CustomFieldFilterForm):
required=False, required=False,
label='Search' label='Search'
) )
status = AnnotatedMultipleChoiceField( status = forms.MultipleChoiceField(
choices=SITE_STATUS_CHOICES, choices=SITE_STATUS_CHOICES,
annotate=Site.objects.all(),
annotate_field='status',
required=False, required=False,
widget=StaticSelect2Multiple() widget=StaticSelect2Multiple()
) )
@ -281,7 +279,7 @@ class SiteFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
tenant = FilterChoiceField( tenant = FilterChoiceField(
queryset=Tenant.objects.annotate(filter_count=Count('sites')), queryset=Tenant.objects.all(),
to_field_name='slug', to_field_name='slug',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -332,9 +330,7 @@ class RackGroupCSVForm(forms.ModelForm):
class RackGroupFilterForm(BootstrapMixin, forms.Form): class RackGroupFilterForm(BootstrapMixin, forms.Form):
site = FilterChoiceField( site = FilterChoiceField(
queryset=Site.objects.annotate( queryset=Site.objects.all(),
filter_count=Count('rack_groups')
),
to_field_name='slug', to_field_name='slug',
widget=APISelectMultiple( widget=APISelectMultiple(
api_url="/api/dcim/sites/", api_url="/api/dcim/sites/",
@ -609,9 +605,7 @@ class RackFilterForm(BootstrapMixin, CustomFieldFilterForm):
label='Search' label='Search'
) )
site = FilterChoiceField( site = FilterChoiceField(
queryset=Site.objects.annotate( queryset=Site.objects.all(),
filter_count=Count('racks')
),
to_field_name='slug', to_field_name='slug',
widget=APISelectMultiple( widget=APISelectMultiple(
api_url="/api/dcim/sites/", api_url="/api/dcim/sites/",
@ -619,11 +613,7 @@ class RackFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
group_id = FilterChoiceField( group_id = FilterChoiceField(
queryset=RackGroup.objects.select_related( queryset=RackGroup.objects.select_related('site'),
'site'
).annotate(
filter_count=Count('racks')
),
label='Rack group', label='Rack group',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -632,9 +622,7 @@ class RackFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
tenant = FilterChoiceField( tenant = FilterChoiceField(
queryset=Tenant.objects.annotate( queryset=Tenant.objects.all(),
filter_count=Count('racks')
),
to_field_name='slug', to_field_name='slug',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -651,9 +639,7 @@ class RackFilterForm(BootstrapMixin, CustomFieldFilterForm):
widget=StaticSelect2Multiple() widget=StaticSelect2Multiple()
) )
role = FilterChoiceField( role = FilterChoiceField(
queryset=RackRole.objects.annotate( queryset=RackRole.objects.all(),
filter_count=Count('racks')
),
to_field_name='slug', to_field_name='slug',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -713,9 +699,7 @@ class RackReservationFilterForm(BootstrapMixin, forms.Form):
label='Search' label='Search'
) )
site = FilterChoiceField( site = FilterChoiceField(
queryset=Site.objects.annotate( queryset=Site.objects.all(),
filter_count=Count('racks__reservations')
),
to_field_name='slug', to_field_name='slug',
widget=APISelectMultiple( widget=APISelectMultiple(
api_url="/api/dcim/sites/", api_url="/api/dcim/sites/",
@ -723,11 +707,7 @@ class RackReservationFilterForm(BootstrapMixin, forms.Form):
) )
) )
group_id = FilterChoiceField( group_id = FilterChoiceField(
queryset=RackGroup.objects.select_related( queryset=RackGroup.objects.select_related('site'),
'site'
).annotate(
filter_count=Count('racks__reservations')
),
label='Rack group', label='Rack group',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -736,9 +716,7 @@ class RackReservationFilterForm(BootstrapMixin, forms.Form):
) )
) )
tenant = FilterChoiceField( tenant = FilterChoiceField(
queryset=Tenant.objects.annotate( queryset=Tenant.objects.all(),
filter_count=Count('rackreservations')
),
to_field_name='slug', to_field_name='slug',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -886,9 +864,7 @@ class DeviceTypeFilterForm(BootstrapMixin, CustomFieldFilterForm):
label='Search' label='Search'
) )
manufacturer = FilterChoiceField( manufacturer = FilterChoiceField(
queryset=Manufacturer.objects.annotate( queryset=Manufacturer.objects.all(),
filter_count=Count('device_types')
),
to_field_name='slug', to_field_name='slug',
widget=APISelectMultiple( widget=APISelectMultiple(
api_url="/api/dcim/manufacturers/", api_url="/api/dcim/manufacturers/",
@ -1690,9 +1666,7 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
site = FilterChoiceField( site = FilterChoiceField(
queryset=Site.objects.annotate( queryset=Site.objects.all(),
filter_count=Count('devices')
),
to_field_name='slug', to_field_name='slug',
widget=APISelectMultiple( widget=APISelectMultiple(
api_url="/api/dcim/sites/", api_url="/api/dcim/sites/",
@ -1706,8 +1680,6 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
rack_group_id = FilterChoiceField( rack_group_id = FilterChoiceField(
queryset=RackGroup.objects.select_related( queryset=RackGroup.objects.select_related(
'site' 'site'
).annotate(
filter_count=Count('racks__devices')
), ),
label='Rack group', label='Rack group',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -1718,9 +1690,7 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
rack_id = FilterChoiceField( rack_id = FilterChoiceField(
queryset=Rack.objects.annotate( queryset=Rack.objects.all(),
filter_count=Count('devices')
),
label='Rack', label='Rack',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -1729,9 +1699,7 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
role = FilterChoiceField( role = FilterChoiceField(
queryset=DeviceRole.objects.annotate( queryset=DeviceRole.objects.all(),
filter_count=Count('devices')
),
to_field_name='slug', to_field_name='slug',
widget=APISelectMultiple( widget=APISelectMultiple(
api_url="/api/dcim/device-roles/", api_url="/api/dcim/device-roles/",
@ -1740,9 +1708,7 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
tenant = FilterChoiceField( tenant = FilterChoiceField(
queryset=Tenant.objects.annotate( queryset=Tenant.objects.all(),
filter_count=Count('devices')
),
to_field_name='slug', to_field_name='slug',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -1764,10 +1730,6 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
device_type_id = FilterChoiceField( device_type_id = FilterChoiceField(
queryset=DeviceType.objects.select_related( queryset=DeviceType.objects.select_related(
'manufacturer' 'manufacturer'
).order_by(
'model'
).annotate(
filter_count=Count('instances'),
), ),
label='Model', label='Model',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -1776,9 +1738,7 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
) )
) )
platform = FilterChoiceField( platform = FilterChoiceField(
queryset=Platform.objects.annotate( queryset=Platform.objects.all(),
filter_count=Count('devices')
),
to_field_name='slug', to_field_name='slug',
null_label='-- None --', null_label='-- None --',
widget=APISelectMultiple( widget=APISelectMultiple(
@ -2941,9 +2901,7 @@ class InventoryItemFilterForm(BootstrapMixin, forms.Form):
label='Device name' label='Device name'
) )
manufacturer = FilterChoiceField( manufacturer = FilterChoiceField(
queryset=Manufacturer.objects.annotate( queryset=Manufacturer.objects.all(),
filter_count=Count('inventory_items')
),
to_field_name='slug', to_field_name='slug',
null_label='-- None --' null_label='-- None --'
) )