fixed prefix header to represent new serial "vlan_vid"

This commit is contained in:
dirtycajunrice 2017-10-30 15:02:15 -05:00
parent a5b7c057eb
commit 92bdddf3ec
4 changed files with 30 additions and 7 deletions

View File

@ -204,6 +204,16 @@ class RackReservationFilter(django_filters.FilterSet):
to_field_name='slug', to_field_name='slug',
label='Group', label='Group',
) )
tenant_id = NullableModelMultipleChoiceFilter(
queryset=Tenant.objects.all(),
label='Tenant (ID)',
)
tenant = NullableModelMultipleChoiceFilter(
name='tenant',
queryset=Tenant.objects.all(),
to_field_name='slug',
label='Tenant (slug)',
)
user_id = django_filters.ModelMultipleChoiceFilter( user_id = django_filters.ModelMultipleChoiceFilter(
queryset=User.objects.all(), queryset=User.objects.all(),
label='User (ID)', label='User (ID)',

View File

@ -409,6 +409,11 @@ class RackReservationFilterForm(BootstrapMixin, forms.Form):
label='Rack group', label='Rack group',
null_option=(0, 'None') null_option=(0, 'None')
) )
tenant = FilterChoiceField(
queryset=Tenant.objects.annotate(filter_count=Count('racks')),
to_field_name='slug',
null_option=(0, 'None')
)
# #
@ -790,10 +795,10 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldForm):
pk = self.instance.pk if self.instance.pk else None pk = self.instance.pk if self.instance.pk else None
try: try:
if self.is_bound and self.data.get('rack') and str(self.data.get('face')): if self.is_bound and self.data.get('rack') and str(self.data.get('face')):
position_choices = Rack.objects.get(pk=self.data['rack'])\ position_choices = Rack.objects.get(pk=self.data['rack']) \
.get_rack_units(face=self.data.get('face'), exclude=pk) .get_rack_units(face=self.data.get('face'), exclude=pk)
elif self.initial.get('rack') and str(self.initial.get('face')): elif self.initial.get('rack') and str(self.initial.get('face')):
position_choices = Rack.objects.get(pk=self.initial['rack'])\ position_choices = Rack.objects.get(pk=self.initial['rack']) \
.get_rack_units(face=self.initial.get('face'), exclude=pk) .get_rack_units(face=self.initial.get('face'), exclude=pk)
else: else:
position_choices = [] position_choices = []

View File

@ -245,6 +245,8 @@ class RackImportTable(BaseTable):
class RackReservationTable(BaseTable): class RackReservationTable(BaseTable):
pk = ToggleColumn() pk = ToggleColumn()
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')])
tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')])
rack = tables.LinkColumn('dcim:rack', args=[Accessor('rack.pk')]) rack = tables.LinkColumn('dcim:rack', args=[Accessor('rack.pk')])
unit_list = tables.Column(orderable=False, verbose_name='Units') unit_list = tables.Column(orderable=False, verbose_name='Units')
actions = tables.TemplateColumn( actions = tables.TemplateColumn(

View File

@ -325,7 +325,7 @@ class RackView(View):
rack = get_object_or_404(Rack.objects.select_related('site__region', 'tenant__group', 'group', 'role'), pk=pk) rack = get_object_or_404(Rack.objects.select_related('site__region', 'tenant__group', 'group', 'role'), pk=pk)
nonracked_devices = Device.objects.filter(rack=rack, position__isnull=True, parent_bay__isnull=True)\ nonracked_devices = Device.objects.filter(rack=rack, position__isnull=True, parent_bay__isnull=True) \
.select_related('device_type__manufacturer') .select_related('device_type__manufacturer')
next_rack = Rack.objects.filter(site=rack.site, name__gt=rack.name).order_by('name').first() next_rack = Rack.objects.filter(site=rack.site, name__gt=rack.name).order_by('name').first()
prev_rack = Rack.objects.filter(site=rack.site, name__lt=rack.name).order_by('-name').first() prev_rack = Rack.objects.filter(site=rack.site, name__lt=rack.name).order_by('-name').first()
@ -392,7 +392,13 @@ class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
# #
class RackReservationListView(ObjectListView): class RackReservationListView(ObjectListView):
queryset = RackReservation.objects.all() queryset = RackReservation.objects.select_related(
'site', 'tenant'
).prefetch_related(
'devices__device_type'
).annotate(
device_count=Count('devices', distinct=True)
)
filter = filters.RackReservationFilter filter = filters.RackReservationFilter
filter_form = forms.RackReservationFilterForm filter_form = forms.RackReservationFilterForm
table = tables.RackReservationTable table = tables.RackReservationTable
@ -1771,7 +1777,7 @@ class InterfaceConnectionsBulkImportView(PermissionRequiredMixin, BulkImportView
# #
class ConsoleConnectionsListView(ObjectListView): class ConsoleConnectionsListView(ObjectListView):
queryset = ConsolePort.objects.select_related('device', 'cs_port__device').filter(cs_port__isnull=False)\ queryset = ConsolePort.objects.select_related('device', 'cs_port__device').filter(cs_port__isnull=False) \
.order_by('cs_port__device__name', 'cs_port__name') .order_by('cs_port__device__name', 'cs_port__name')
filter = filters.ConsoleConnectionFilter filter = filters.ConsoleConnectionFilter
filter_form = forms.ConsoleConnectionFilterForm filter_form = forms.ConsoleConnectionFilterForm
@ -1780,7 +1786,7 @@ class ConsoleConnectionsListView(ObjectListView):
class PowerConnectionsListView(ObjectListView): class PowerConnectionsListView(ObjectListView):
queryset = PowerPort.objects.select_related('device', 'power_outlet__device').filter(power_outlet__isnull=False)\ queryset = PowerPort.objects.select_related('device', 'power_outlet__device').filter(power_outlet__isnull=False) \
.order_by('power_outlet__device__name', 'power_outlet__name') .order_by('power_outlet__device__name', 'power_outlet__name')
filter = filters.PowerConnectionFilter filter = filters.PowerConnectionFilter
filter_form = forms.PowerConnectionFilterForm filter_form = forms.PowerConnectionFilterForm
@ -1789,7 +1795,7 @@ class PowerConnectionsListView(ObjectListView):
class InterfaceConnectionsListView(ObjectListView): class InterfaceConnectionsListView(ObjectListView):
queryset = InterfaceConnection.objects.select_related('interface_a__device', 'interface_b__device')\ queryset = InterfaceConnection.objects.select_related('interface_a__device', 'interface_b__device') \
.order_by('interface_a__device__name', 'interface_a__name') .order_by('interface_a__device__name', 'interface_a__name')
filter = filters.InterfaceConnectionFilter filter = filters.InterfaceConnectionFilter
filter_form = forms.InterfaceConnectionFilterForm filter_form = forms.InterfaceConnectionFilterForm