Skip to content

Commit

Permalink
Merge pull request #96 from c3g/dataset-table-ownership
Browse files Browse the repository at this point in the history
Serialize dataset table ownership
  • Loading branch information
zxenia committed Mar 9, 2020
2 parents 92ecf93 + 02a89ff commit b518cce
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 17 deletions.
5 changes: 3 additions & 2 deletions chord_metadata_service/chord/api_views.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from rest_framework import viewsets
from rest_framework.permissions import BasePermission, SAFE_METHODS
from rest_framework.settings import api_settings

from chord_metadata_service.restapi.api_renderers import PhenopacketsRenderer, JSONLDDatasetRenderer, RDFDatasetRenderer
from chord_metadata_service.restapi.pagination import LargeResultsSetPagination
from .models import *
from .permissions import OverrideOrSuperUserOnly
from .serializers import *
from chord_metadata_service.restapi.api_renderers import PhenopacketsRenderer, JSONLDDatasetRenderer, RDFDatasetRenderer
from rest_framework.settings import api_settings


__all__ = ["ProjectViewSet", "DatasetViewSet", "TableOwnershipViewSet"]
Expand Down
19 changes: 19 additions & 0 deletions chord_metadata_service/chord/migrations/0010_auto_20200309_1945.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 2.2.11 on 2020-03-09 19:45

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('chord', '0009_auto_20200218_1615'),
]

operations = [
migrations.AlterField(
model_name='tableownership',
name='dataset',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='table_ownership', to='chord.Dataset'),
),
]
3 changes: 2 additions & 1 deletion chord_metadata_service/chord/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
def version_default():
return f"version_{timezone.now()}"


#############################################################
# #
# Project Management #
Expand Down Expand Up @@ -146,7 +147,7 @@ class TableOwnership(models.Model):
data_type = models.CharField(max_length=200) # TODO: Is this needed?

# Delete table ownership upon project/dataset deletion
dataset = models.ForeignKey(Dataset, on_delete=models.CASCADE, related_name='table_ownerships')
dataset = models.ForeignKey(Dataset, on_delete=models.CASCADE, related_name='table_ownership')
# If not specified, compound table which may link to many samples TODO: ???
sample = models.ForeignKey("phenopackets.Biosample", on_delete=models.CASCADE, blank=True, null=True)

Expand Down
15 changes: 9 additions & 6 deletions chord_metadata_service/chord/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,22 @@
#############################################################


class TableOwnershipSerializer(GenericSerializer):
class Meta:
model = TableOwnership
fields = '__all__'


class DatasetSerializer(GenericSerializer):
always_include = (
"description",
"contact_info",
"linked_field_sets",
"table_ownership",
)

table_ownership = TableOwnershipSerializer(read_only=True, many=True, exclude_when_nested=["dataset"])

# noinspection PyMethodMayBeStatic
def validate_title(self, value):
if len(value.strip()) < 3:
Expand Down Expand Up @@ -140,9 +149,3 @@ def validate_title(self, value):
class Meta:
model = Project
fields = '__all__'


class TableOwnershipSerializer(GenericSerializer):
class Meta:
model = TableOwnership
fields = '__all__'
2 changes: 1 addition & 1 deletion chord_metadata_service/chord/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,6 @@ def test_table_ownership(self):
self.assertEqual(t.data_type, "variant")
self.assertEqual(t.dataset, d)

self.assertIn(t, d.table_ownerships.all())
self.assertIn(t, d.table_ownership.all())

self.assertEqual(str(t), f"{str(d)} -> {t.table_id}")
10 changes: 5 additions & 5 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ attrs==19.3.0
Babel==2.8.0
certifi==2019.11.28
chardet==3.0.4
chord-lib==0.5.0
chord-lib==0.6.0
codecov==2.0.16
colorama==0.4.3
coreapi==2.3.3
coreschema==0.0.4
coverage==5.0.3
Django==2.2.10
Django==2.2.11
django-filter==2.2.0
django-nose==1.4.6
django-rest-swagger==2.2.0
Expand All @@ -30,9 +30,9 @@ MarkupSafe==1.1.1
more-itertools==8.2.0
nose==1.3.7
openapi-codec==1.3.2
packaging==20.1
packaging==20.3
psycopg2-binary==2.8.4
Pygments==2.5.2
Pygments==2.6.1
pyparsing==2.4.6
pyrsistent==0.15.7
python-dateutil==2.8.1
Expand All @@ -45,7 +45,7 @@ requests==2.23.0
simplejson==3.17.0
six==1.14.0
snowballstemmer==2.0.0
Sphinx==2.4.3
Sphinx==2.4.4
sphinx-rtd-theme==0.4.3
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@

python_requires=">=3.6",
install_requires=[
"chord_lib[django]==0.5.0",
"chord_lib[django]==0.6.0",
"Django>=2.2,<3.0",
"django-filter>=2.2,<3.0",
"django-nose>=1.4,<2.0",
"djangorestframework>=3.10,<3.11",
"djangorestframework-camel-case>=1.1,<2.0",
"django-rest-swagger==2.2.0",
"elasticsearch==7.1.0",
"fhirclient>=3.2,<4.0",
"jsonschema>=3.2,<4.0",
Expand All @@ -32,7 +33,6 @@
"rdflib-jsonld==0.4.0",
"requests>=2.23,<3.0",
"uritemplate>=3.0,<4.0",
"django-rest-swagger==2.2.0",
],

author=config["package"]["authors"],
Expand Down

0 comments on commit b518cce

Please sign in to comment.