Skip to content

Commit

Permalink
OpenConceptLab/ocl_issues#979 | cannot delete default expansion | exp…
Browse files Browse the repository at this point in the history
…ansions count in version summary
  • Loading branch information
snyaggarwal committed Nov 19, 2021
1 parent e3139fb commit 8263deb
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
11 changes: 11 additions & 0 deletions core/collections/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,10 @@ def seed_references(self):
def is_validation_necessary():
return False

@property
def expansions_count(self):
return self.expansions.count()

def delete_references(self, expressions):
if self.expansion_uri:
self.expansion.delete_expressions(expressions)
Expand Down Expand Up @@ -591,6 +595,10 @@ def get_resource_url_kwarg():
def get_url_kwarg():
return 'expansion'

@property
def is_default(self):
return self.uri == self.collection_version.expansion_uri

@property
def expansion(self):
return self.mnemonic
Expand Down Expand Up @@ -666,6 +674,9 @@ def seed_children(self, index=True):
return self.add_references(self.collection_version.references, index)

def calculate_uri(self):
version = self.collection_version
if version.is_head:
return self.collection_version.uri + 'HEAD/expansions/{}/'.format(self.mnemonic)
return self.collection_version.uri + 'expansions/{}/'.format(self.mnemonic)

def clean(self):
Expand Down
7 changes: 5 additions & 2 deletions core/collections/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,10 +180,11 @@ class Meta:

class CollectionSummarySerializer(ModelSerializer):
versions = IntegerField(source='num_versions')
expansions = IntegerField(source='expansions_count')

class Meta:
model = Collection
fields = ('active_mappings', 'active_concepts', 'versions', 'active_references')
fields = ('active_mappings', 'active_concepts', 'versions', 'active_references', 'expansions')


class CollectionSummaryDetailSerializer(CollectionSummarySerializer):
Expand All @@ -198,9 +199,11 @@ class Meta:


class CollectionVersionSummarySerializer(ModelSerializer):
expansions = IntegerField(source='expansions_count')

class Meta:
model = Collection
fields = ('active_mappings', 'active_concepts', 'active_references')
fields = ('active_mappings', 'active_concepts', 'active_references', 'expansions')


class CollectionVersionSummaryDetailSerializer(CollectionVersionSummarySerializer):
Expand Down
2 changes: 2 additions & 0 deletions core/collections/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -591,6 +591,8 @@ class CollectionVersionExpansionView(CollectionVersionExpansionBaseView, Retriev

def destroy(self, request, *args, **kwargs): # pylint: disable=unused-argument
obj = self.get_object()
if obj.is_default:
return Response(dict(erors=['Cannot delete default expansion']), status=status.HTTP_400_BAD_REQUEST)
obj.delete()
return Response(status=status.HTTP_204_NO_CONTENT)

Expand Down

0 comments on commit 8263deb

Please sign in to comment.