|
|
@ -141,28 +141,14 @@ class TransmitterSyncView(ListAPIView): |
|
|
|
|
|
|
|
|
response_data = { |
|
|
response_data = { |
|
|
'count': len(serializer.data), # ← No extra query! |
|
|
'count': len(serializer.data), # ← No extra query! |
|
|
|
|
|
'filters': get_transmitter_filters(request), |
|
|
'results': serializer.data |
|
|
'results': serializer.data |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return Response(response_data) |
|
|
return Response(response_data) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TransmitterFiltersView(ListAPIView): |
|
|
|
|
|
""" |
|
|
|
|
|
API view to return filter data for transmitters |
|
|
|
|
|
Returns generations, madhabs, and reliabilities for filtering |
|
|
|
|
|
""" |
|
|
|
|
|
pagination_class = NoPagination |
|
|
|
|
|
|
|
|
|
|
|
@transmitter_filters_swagger |
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
|
return self.list(request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
|
# This view doesn't need a queryset, it returns computed data |
|
|
|
|
|
return Transmitters.objects.none() |
|
|
|
|
|
|
|
|
|
|
|
def list(self, request, *args, **kwargs): |
|
|
|
|
|
|
|
|
def get_transmitter_filters(request): |
|
|
# Get all unique generations |
|
|
# Get all unique generations |
|
|
generations = Transmitters.objects.exclude(generation__isnull=True).values_list('generation', flat=True).distinct().order_by('generation') |
|
|
generations = Transmitters.objects.exclude(generation__isnull=True).values_list('generation', flat=True).distinct().order_by('generation') |
|
|
|
|
|
|
|
|
@ -178,15 +164,32 @@ class TransmitterFiltersView(ListAPIView): |
|
|
# Get the English title for the slug |
|
|
# Get the English title for the slug |
|
|
if reliability.title: |
|
|
if reliability.title: |
|
|
reliabilities.append({ |
|
|
reliabilities.append({ |
|
|
'text': get_localized_text(reliability.title,request), |
|
|
|
|
|
|
|
|
'text': get_localized_text(reliability.title, request), |
|
|
'slug': reliability.slug |
|
|
'slug': reliability.slug |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
response_data = { |
|
|
|
|
|
|
|
|
return { |
|
|
'generations': list(generations), |
|
|
'generations': list(generations), |
|
|
'madhabs': madhabs, |
|
|
'madhabs': madhabs, |
|
|
'reliabilities': reliabilities |
|
|
'reliabilities': reliabilities |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return Response(response_data) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TransmitterFiltersView(ListAPIView): |
|
|
|
|
|
""" |
|
|
|
|
|
API view to return filter data for transmitters |
|
|
|
|
|
Returns generations, madhabs, and reliabilities for filtering |
|
|
|
|
|
""" |
|
|
|
|
|
pagination_class = NoPagination |
|
|
|
|
|
|
|
|
|
|
|
@transmitter_filters_swagger |
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
|
return self.list(request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
|
# This view doesn't need a queryset, it returns computed data |
|
|
|
|
|
return Transmitters.objects.none() |
|
|
|
|
|
|
|
|
|
|
|
def list(self, request, *args, **kwargs): |
|
|
|
|
|
return Response(get_transmitter_filters(request)) |
|
|
|
|
|
|