Exemplo n.º 1
0
    def get(self, request, *args, **kwargs):
        self.filter_backends = [LimitCollectionVersionFilter] if 'collection' in kwargs else [LimitSourceVersionFilter]
        self.updated_since = parse_updated_since_param(request)
        self.include_retired = request.QUERY_PARAMS.get(INCLUDE_RETIRED_PARAM, False)
        self.serializer_class = ConceptVersionDetailSerializer if self.is_verbose(request) else ConceptVersionListSerializer

        return self.list(request, *args, **kwargs)
Exemplo n.º 2
0
    def get(self, request, *args, **kwargs):
        self.filter_backends = [LimitCollectionVersionFilter] if 'collection' in kwargs else [LimitSourceVersionFilter]
        self.updated_since = parse_updated_since_param(request)
        self.include_retired = request.QUERY_PARAMS.get(INCLUDE_RETIRED_PARAM, False)
        self.serializer_class = ConceptVersionDetailSerializer if self.is_verbose(request) else ConceptVersionListSerializer

        return self.list(request, *args, **kwargs)
Exemplo n.º 3
0
 def get(self, request, *args, **kwargs):
     self.filter_backends = [
         CollectionRestrictedMappingFilter
     ] if 'collection' in kwargs else [SourceRestrictedMappingsFilter]
     self.include_retired = request.QUERY_PARAMS.get(
         INCLUDE_RETIRED_PARAM, False)
     self.updated_since = parse_updated_since_param(request)
     return self.list(request, *args, **kwargs)
Exemplo n.º 4
0
 def get(self, request, *args, **kwargs):
     self.updated_since = parse_updated_since_param(request)
     self.include_retired = request.QUERY_PARAMS.get(
         INCLUDE_RETIRED_PARAM, False)
     self.serializer_class = ConceptVersionDetailSerializer if self.is_verbose(
         request) else ConceptVersionListSerializer
     self.limit = request.QUERY_PARAMS.get(LIMIT_PARAM, 25)
     return self.list(request, *args, **kwargs)
Exemplo n.º 5
0
    def retrieve(self, request, *args, **kwargs):
        super(SourceRetrieveUpdateDestroyView,
              self).retrieve(request, *args, **kwargs)
        self.object = self.get_object()
        serializer = self.get_serializer(self.object)
        data = serializer.data

        source_version = None
        offset = request.QUERY_PARAMS.get(OFFSET_PARAM, DEFAULT_OFFSET)
        try:
            offset = int(offset)
        except ValueError:
            offset = DEFAULT_OFFSET
        limit = settings.REST_FRAMEWORK.get('MAX_PAGINATE_BY',
                                            self.paginate_by)
        include_retired = False
        include_concepts = request.QUERY_PARAMS.get(INCLUDE_CONCEPTS_PARAM,
                                                    False)
        include_mappings = request.QUERY_PARAMS.get(INCLUDE_MAPPINGS_PARAM,
                                                    False)
        updated_since = None
        if include_concepts or include_mappings:
            source_version = SourceVersion.get_latest_version_of(self.object)
            paginate_by = self.get_paginate_by(EmptyQuerySet())
            if paginate_by:
                limit = min(limit, paginate_by)
            include_retired = request.QUERY_PARAMS.get(INCLUDE_RETIRED_PARAM,
                                                       False)
            updated_since = parse_updated_since_param(request)

        if include_concepts:
            source_version_concepts = source_version.concepts
            queryset = ConceptVersion.objects.filter(is_active=True)
            if not include_retired:
                queryset = queryset.filter(~Q(retired=True))
            if updated_since:
                queryset = queryset.filter(updated_at__gte=updated_since)
            queryset = queryset.filter(id__in=source_version_concepts)
            queryset = queryset[offset:offset + limit]
            serializer = ConceptVersionDetailSerializer(queryset, many=True)
            data['concepts'] = serializer.data

        if include_mappings:
            all_children = source_version.mappings
            queryset = MappingVersion.objects.filter(is_active=True)
            if not include_retired:
                queryset = queryset.filter(~Q(retired=True))
            queryset = queryset.filter(id__in=all_children)
            if updated_since:
                queryset = queryset.filter(updated_at__gte=updated_since)
            queryset = queryset[offset:offset + limit]
            serializer = MappingVersionDetailSerializer(queryset, many=True)
            data['mappings'] = serializer.data

        return Response(data)
Exemplo n.º 6
0
    def retrieve(self, request, *args, **kwargs):
        super(SourceRetrieveUpdateDestroyView, self).retrieve(request, *args, **kwargs)
        self.object = self.get_object()
        serializer = self.get_serializer(self.object)
        data = serializer.data

        source_version = None
        offset = request.QUERY_PARAMS.get(OFFSET_PARAM, DEFAULT_OFFSET)
        try:
            offset = int(offset)
        except ValueError:
            offset = DEFAULT_OFFSET
        limit = settings.REST_FRAMEWORK.get('MAX_PAGINATE_BY', self.paginate_by)
        include_retired = False
        include_concepts = request.QUERY_PARAMS.get(INCLUDE_CONCEPTS_PARAM, False)
        include_mappings = request.QUERY_PARAMS.get(INCLUDE_MAPPINGS_PARAM, False)
        updated_since = None
        if include_concepts or include_mappings:
            source_version = SourceVersion.get_latest_version_of(self.object)
            paginate_by = self.get_paginate_by(EmptyQuerySet())
            if paginate_by:
                limit = min(limit, paginate_by)
            include_retired = request.QUERY_PARAMS.get(INCLUDE_RETIRED_PARAM, False)
            updated_since = parse_updated_since_param(request)

        if include_concepts:
            source_version_concepts = source_version.concepts
            queryset = ConceptVersion.objects.filter(is_active=True)
            if not include_retired:
                queryset = queryset.filter(~Q(retired=True))
            if updated_since:
                queryset = queryset.filter(updated_at__gte=updated_since)
            queryset = queryset.filter(id__in=source_version_concepts)
            queryset = queryset[offset:offset+limit]
            serializer = ConceptVersionDetailSerializer(queryset, many=True)
            data['concepts'] = serializer.data

        if include_mappings:
            all_children = source_version.mappings
            queryset = Mapping.objects.filter(is_active=True)
            if not include_retired:
                queryset = queryset.filter(~Q(retired=True))
            queryset = queryset.filter(id__in=all_children)
            if updated_since:
                queryset = queryset.filter(updated_at__gte=updated_since)
            queryset = queryset[offset:offset+limit]
            serializer = MappingDetailSerializer(queryset, many=True)
            data['mappings'] = serializer.data

        return Response(data)
Exemplo n.º 7
0
 def get(self, request, *args, **kwargs):
     self.filter_backends = [CollectionRestrictedMappingFilter] if 'collection' in kwargs else [SourceRestrictedMappingsFilter]
     self.include_retired = request.QUERY_PARAMS.get(INCLUDE_RETIRED_PARAM, False)
     self.updated_since = parse_updated_since_param(request)
     return self.list(request, *args, **kwargs)
Exemplo n.º 8
0
 def get(self, request, *args, **kwargs):
     self.updated_since = parse_updated_since_param(request)
     self.permission_classes = (CanViewParentDictionary,)
     self.serializer_class = ConceptReferenceDetailSerializer if self.reference_only else ReferencesToVersionsSerializer
     return self.list(request, *args, **kwargs)
Exemplo n.º 9
0
 def get(self, request, *args, **kwargs):
     self.updated_since = parse_updated_since_param(request)
     self.include_retired = request.QUERY_PARAMS.get(INCLUDE_RETIRED_PARAM, False)
     self.serializer_class = ConceptVersionDetailSerializer if self.is_verbose(request) else ConceptVersionListSerializer
     return self.list(request, *args, **kwargs)