def get_queryset(self): return apply_select_and_prefetch( queryset=Issue.objects.filter(moderation='public').prefetch_related( Prefetch('service', queryset=Service.objects.translated()) ), extensions=get_extensions_from_request(self.request) )
def filter_queryset(self, request, queryset, view): extensions = get_extensions_from_request(request) agency_responsible = request.query_params.get('agency_responsible') end_date = request.query_params.get('end_date') identifiers = request.query_params.get('service_request_id') jurisdiction_id = request.query_params.get('jurisdiction_id') service_codes = request.query_params.get('service_code') start_date = request.query_params.get('start_date') statuses = request.query_params.get('status') updated_after = request.query_params.get('updated_after') updated_before = request.query_params.get('updated_before') if jurisdiction_id: queryset = queryset.filter(jurisdiction__identifier=jurisdiction_id) if identifiers: queryset = queryset.filter(identifier__in=identifiers.split(',')) if service_codes: queryset = queryset.filter(service_code__in=str(service_codes).split(',')) if start_date: queryset = queryset.filter(requested_datetime__gte=start_date) if end_date: queryset = queryset.filter(requested_datetime__lte=end_date) if statuses: queryset = queryset.filter(status__in=statuses.split(',')) if agency_responsible: queryset = queryset.filter(agency_responsible__iexact=agency_responsible) if updated_after: # CitySDK extension queryset = queryset.filter(updated_datetime__gt=updated_after) if updated_before: # CitySDK extension queryset = queryset.filter(updated_datetime__lt=updated_before) queryset = self._apply_geo_filters(request, queryset) queryset = apply_select_and_prefetch(queryset=queryset, extensions=extensions) for ex in extensions: queryset = ex.filter_issue_queryset(request, queryset, view) order_by = (request.query_params.get('order_by') or '-pk') queryset = queryset.order_by(order_by) return queryset
def get_serializer_context(self): ctx = super().get_serializer_context() ctx['extensions'] = get_extensions_from_request(self.request) ctx['application'] = get_application_from_request(self.request) return ctx
def get_serializer_context(self): ctx = super(IssueViewBase, self).get_serializer_context() ctx['extensions'] = get_extensions_from_request(self.request) ctx['application'] = get_application_from_request(self.request) return ctx