コード例 #1
0
ファイル: prp_v1.py プロジェクト: unicef/etools
    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)
コード例 #2
0
ファイル: prp_v1.py プロジェクト: unicef/etools
    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
コード例 #3
0
ファイル: prp_v1.py プロジェクト: azizur77/etools
    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)
コード例 #4
0
ファイル: prp_v1.py プロジェクト: azizur77/etools
    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
コード例 #5
0
    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
コード例 #6
0
ファイル: prp_v1.py プロジェクト: unicef/etools
    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
コード例 #7
0
ファイル: prp_v1.py プロジェクト: azizur77/etools
    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
コード例 #8
0
    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