2020-05-29 16:27:36 -04:00
|
|
|
from django.db.models import OuterRef, Subquery
|
2020-02-26 16:41:59 -05:00
|
|
|
|
2020-05-29 16:27:36 -04:00
|
|
|
from utilities.querysets import RestrictedQuerySet
|
2020-02-26 16:41:59 -05:00
|
|
|
|
2020-05-29 16:27:36 -04:00
|
|
|
|
|
|
|
class CircuitQuerySet(RestrictedQuerySet):
|
2020-02-26 16:41:59 -05:00
|
|
|
|
|
|
|
def annotate_sites(self):
|
|
|
|
"""
|
|
|
|
Annotate the A and Z termination site names for ordering.
|
|
|
|
"""
|
|
|
|
from circuits.models import CircuitTermination
|
|
|
|
_terminations = CircuitTermination.objects.filter(circuit=OuterRef('pk'))
|
|
|
|
return self.annotate(
|
|
|
|
a_side=Subquery(_terminations.filter(term_side='A').values('site__name')[:1]),
|
|
|
|
z_side=Subquery(_terminations.filter(term_side='Z').values('site__name')[:1]),
|
|
|
|
)
|