def get(self, request, intervention_pk): workspace = request.query_params.get('workspace', None) set_tenant_or_fail(workspace) intervention = get_object_or_404(Intervention, pk=intervention_pk) return Response(InterventionPDFileSerializer(intervention).data)
def get_queryset(self, format=None): q = PartnerOrganization.objects.all() query_params = self.request.query_params workspace = query_params.get('workspace', None) set_tenant_or_fail(workspace) return q
def get_queryset(self, format=None): q = PartnerOrganization.objects.all() query_params = self.request.query_params workspace = query_params.get('workspace', None) if workspace: set_tenant_or_fail(workspace) if query_params: if "values" in query_params.keys(): # Used for ghost data - filter in all(), and return straight away. try: ids = [ int(x) for x in query_params.get("values").split(",") ] except ValueError: raise ValidationError("ID values must be integers") else: return PartnerOrganization.objects.filter(id__in=ids) queries = [] filters = ( ('partner_type', 'partner_type__in'), ('cso_type', 'cso_type__in'), ('rating', 'rating__in'), ) search_terms = [ 'name__icontains', 'vendor_number__icontains', 'short_name__icontains' ] queries.extend(self.filter_params(filters)) queries.append(self.search_params(search_terms)) if "hidden" in query_params.keys(): hidden = None if query_params.get("hidden").lower() == "true": hidden = True # return all partners when exporting and hidden=true if query_params.get("format", None) in ['csv', 'csv_flat']: hidden = None if query_params.get("hidden").lower() == "false": hidden = False if hidden is not None: queries.append(Q(hidden=hidden)) if queries: expression = functools.reduce(operator.and_, queries) q = q.filter(expression) return q
def get_queryset(self, format=None): q = Intervention.objects.prefetch_related( 'result_links__cp_output', 'result_links__ll_results', 'result_links__ll_results__applied_indicators__indicator', 'result_links__ll_results__applied_indicators__disaggregation__disaggregation_values', 'result_links__ll_results__applied_indicators__locations', 'special_reporting_requirements', 'reporting_requirements', 'frs', 'partner_focal_points', 'unicef_focal_points', 'agreement__authorized_officers', 'agreement__partner', 'amendments', 'flat_locations', 'sections' ).exclude(status=Intervention.DRAFT) query_params = self.request.query_params workspace = query_params.get('workspace', None) set_tenant_or_fail(workspace) if query_params: queries = [] if "country_programme" in query_params.keys(): queries.append(Q(agreement__country_programme=query_params.get("country_programme"))) if "section" in query_params.keys(): queries.append(Q(sections__pk=query_params.get("section"))) if "status" in query_params.keys(): queries.append(Q(status=query_params.get("status"))) if "partner" in query_params.keys(): queries.append(Q(agreement__partner=query_params.get("partner"))) if "updated_before" in query_params.keys(): queries.append(Q(modified__lte=query_params.get("updated_before"))) if "updated_after" in query_params.keys(): queries.append(Q(modified__gte=query_params.get("updated_after"))) if queries: expression = functools.reduce(operator.and_, queries) q = q.filter(expression).distinct() return q
def get_queryset(self, format=None): q = Intervention.objects.prefetch_related( 'result_links__cp_output', 'result_links__ll_results', 'result_links__ll_results__applied_indicators__indicator', 'result_links__ll_results__applied_indicators__disaggregation__disaggregation_values', 'result_links__ll_results__applied_indicators__locations', 'special_reporting_requirements', 'reporting_requirements', 'frs', 'partner_focal_points', 'unicef_focal_points', 'agreement__authorized_officers', 'agreement__partner', 'amendments', 'flat_locations', 'sections').exclude(status=Intervention.DRAFT) query_params = self.request.query_params workspace = query_params.get('workspace', None) set_tenant_or_fail(workspace) if query_params: queries = [] if "country_programme" in query_params.keys(): queries.append( Q(agreement__country_programme=query_params.get( "country_programme"))) if "section" in query_params.keys(): queries.append(Q(sections__pk=query_params.get("section"))) if "status" in query_params.keys(): queries.append(Q(status=query_params.get("status"))) if "partner" in query_params.keys(): queries.append( Q(agreement__partner=query_params.get("partner"))) if "updated_before" in query_params.keys(): queries.append( Q(modified__lte=query_params.get("updated_before"))) if "updated_after" in query_params.keys(): queries.append( Q(modified__gte=query_params.get("updated_after"))) if queries: expression = functools.reduce(operator.and_, queries) q = q.filter(expression).distinct() return q
def get_queryset(self, format=None): q = PartnerOrganization.objects.all() query_params = self.request.query_params workspace = query_params.get('workspace', None) if workspace: set_tenant_or_fail(workspace) if query_params: if "values" in query_params.keys(): # Used for ghost data - filter in all(), and return straight away. try: ids = [int(x) for x in query_params.get("values").split(",")] except ValueError: raise ValidationError("ID values must be integers") else: return PartnerOrganization.objects.filter(id__in=ids) queries = [] queries.extend(self.filter_params()) queries.append(self.search_params()) if "hidden" in query_params.keys(): hidden = None if query_params.get("hidden").lower() == "true": hidden = True # return all partners when exporting and hidden=true if query_params.get("format", None) in ['csv', 'csv_flat']: hidden = None if query_params.get("hidden").lower() == "false": hidden = False if hidden is not None: queries.append(Q(hidden=hidden)) if queries: expression = functools.reduce(operator.and_, queries) q = q.filter(expression) return q