Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions core/collections/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1108,6 +1108,18 @@ def get_related_uris(self):
def translation(self):
return CollectionReferenceTranslator(self).translate()

def get_resolved_repo_versions_serialized(self):
system_version = self.resolve_system_version
valueset_versions = self.resolve_valueset_versions
data = []
if system_version:
from core.sources.serializers import SourceVersionListSerializer
data.append(SourceVersionListSerializer(system_version).data)
if valueset_versions:
from core.collections.serializers import CollectionVersionListSerializer
data += CollectionVersionListSerializer(valueset_versions, many=True).data
return data


def default_expansion_parameters():
return {
Expand Down
29 changes: 26 additions & 3 deletions core/collections/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@
from core.client_configs.serializers import ClientConfigSerializer
from core.collections.models import Collection, CollectionReference, Expansion
from core.common.constants import HEAD, DEFAULT_ACCESS_TYPE, NAMESPACE_REGEX, ACCESS_TYPE_CHOICES, INCLUDE_SUMMARY, \
INCLUDE_CLIENT_CONFIGS, INVALID_EXPANSION_URL, INCLUDE_STATES, INCLUDE_TASKS
INCLUDE_CLIENT_CONFIGS, INVALID_EXPANSION_URL, INCLUDE_STATES, INCLUDE_TASKS, INCLUDE_RESOLVED_REPO_VERSIONS
from core.common.serializers import AbstractRepoResourcesSerializer, AbstractResourceSerializer
from core.common.utils import get_truthy_values
from core.orgs.models import Organization
from core.settings import DEFAULT_LOCALE
from core.sources.serializers import SourceVersionListSerializer
from core.users.models import UserProfile


TRUTHY = get_truthy_values()


Expand Down Expand Up @@ -514,10 +513,34 @@ class CollectionReferenceSerializer(ModelSerializer):
reference_type = CharField(read_only=True)
uuid = CharField(source='id', read_only=True)
type = CharField(source='resource_type', read_only=True)
resolved_repo_versions = SerializerMethodField()

class Meta:
model = CollectionReference
fields = ('expression', 'reference_type', 'id', 'last_resolved_at', 'uri', 'uuid', 'include', 'type')
fields = (
'expression', 'reference_type', 'id', 'last_resolved_at', 'uri', 'uuid', 'include', 'type',
'resolved_repo_versions'
)

def __init__(self, *args, **kwargs):
params = get(kwargs, 'context.request.query_params')
self.include_resolved_repo_versions = False
if params:
self.query_params = params.dict()
self.include_resolved_repo_versions = self.query_params.get(INCLUDE_RESOLVED_REPO_VERSIONS) in TRUTHY

try:
if not self.include_resolved_repo_versions:
self.fields.pop('resolved_repo_versions', None)
except: # pylint: disable=bare-except
pass

super().__init__(*args, **kwargs)

def get_resolved_repo_versions(self, obj):
if not self.include_resolved_repo_versions:
return None
return obj.get_resolved_repo_versions_serialized()


class CollectionReferenceDetailSerializer(CollectionReferenceSerializer):
Expand Down
9 changes: 1 addition & 8 deletions core/collections/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -344,14 +344,7 @@ def get_serializer_class(self):

def get(self, request, *args, **kwargs):
reference = self.get_queryset()
system_version = reference.resolve_system_version
valueset_versions = reference.resolve_valueset_versions
data = []
if system_version:
from core.sources.serializers import SourceVersionListSerializer
data.append(SourceVersionListSerializer(system_version).data)
if valueset_versions:
data += CollectionVersionListSerializer(valueset_versions, many=True).data
data = reference.get_resolved_repo_versions_serialized()
return Response(data)


Expand Down
1 change: 1 addition & 0 deletions core/common/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
INCLUDE_INACTIVE = 'includeInactive'
INCLUDE_SOURCE_VERSIONS = 'includeSourceVersions'
INCLUDE_COLLECTION_VERSIONS = 'includeCollectionVersions'
INCLUDE_RESOLVED_REPO_VERSIONS = 'includeResolvedRepoVersions'
MAPPING_LOOKUP_CONCEPTS = 'lookupConcepts'
MAPPING_LOOKUP_FROM_CONCEPT = 'lookupFromConcept'
MAPPING_LOOKUP_TO_CONCEPT = 'lookupToConcept'
Expand Down
Loading