mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Fixes #3695: Include A/Z termination sites for circuits in global search
This commit is contained in:
@ -6,6 +6,7 @@
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* [#3695](https://github.com/netbox-community/netbox/issues/3695) - Include A/Z termination sites for circuits in global search
|
||||
* [#3780](https://github.com/netbox-community/netbox/issues/3780) - Fix AttributeError exception in API docs
|
||||
|
||||
---
|
||||
|
@ -1,6 +1,6 @@
|
||||
from collections import OrderedDict
|
||||
|
||||
from django.db.models import Count, F
|
||||
from django.db.models import Count, F, OuterRef, Subquery
|
||||
from django.shortcuts import render
|
||||
from django.views.generic import View
|
||||
from rest_framework.response import Response
|
||||
@ -8,7 +8,7 @@ from rest_framework.reverse import reverse
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from circuits.filters import CircuitFilter, ProviderFilter
|
||||
from circuits.models import Circuit, Provider
|
||||
from circuits.models import Circuit, CircuitTermination, Provider
|
||||
from circuits.tables import CircuitTable, ProviderTable
|
||||
from dcim.filters import (
|
||||
CableFilter, DeviceFilter, DeviceTypeFilter, PowerFeedFilter, RackFilter, RackGroupFilter, SiteFilter,
|
||||
@ -49,9 +49,15 @@ SEARCH_TYPES = OrderedDict((
|
||||
('circuit', {
|
||||
'permission': 'circuits.view_circuit',
|
||||
'queryset': Circuit.objects.prefetch_related(
|
||||
'type', 'provider', 'tenant'
|
||||
).prefetch_related(
|
||||
'terminations__site'
|
||||
'type', 'provider', 'tenant', 'terminations__site'
|
||||
).annotate(
|
||||
# Annotate A/Z terminations
|
||||
a_side=Subquery(
|
||||
CircuitTermination.objects.filter(circuit=OuterRef('pk')).filter(term_side='A').values('site__name')[:1]
|
||||
),
|
||||
z_side=Subquery(
|
||||
CircuitTermination.objects.filter(circuit=OuterRef('pk')).filter(term_side='Z').values('site__name')[:1]
|
||||
),
|
||||
),
|
||||
'filter': CircuitFilter,
|
||||
'table': CircuitTable,
|
||||
|
Reference in New Issue
Block a user