Skip to content

Commit

Permalink
working api to list all datasets and all of their reverse foriegn key…
Browse files Browse the repository at this point in the history
… relation ships
  • Loading branch information
rwblair committed Nov 18, 2015
1 parent 0b6ba7c commit 2626d44
Show file tree
Hide file tree
Showing 8 changed files with 95 additions and 20 deletions.
8 changes: 3 additions & 5 deletions open_fmri/apps/dataset/api_views.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
from rest_framework import generics
from rest_framework import permissions
from rest_framework import viewsets

from dataset.models import Dataset
from dataset.serializers import DatasetSerializer

class DatasetAPIList(generics.ListCreateAPIView):
queryset = Dataset.objects.all()
serializer_class = DatasetSerializer

class DatasetAPIDetail(generics.RetrieveUpdateDestroyAPIView):
class DatasetAPIList(generics.ListAPIView):
queryset = Dataset.objects.all()
serializer_class = DatasetSerializer
19 changes: 19 additions & 0 deletions open_fmri/apps/dataset/migrations/0025_auto_20151118_2256.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('dataset', '0024_dataset_curated'),
]

operations = [
migrations.AlterField(
model_name='publicationpubmedlink',
name='dataset',
field=models.ForeignKey(related_name='pubmed_link', to='dataset.Dataset'),
),
]
19 changes: 19 additions & 0 deletions open_fmri/apps/dataset/migrations/0026_auto_20151118_2308.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('dataset', '0025_auto_20151118_2256'),
]

operations = [
migrations.AlterField(
model_name='publicationpubmedlink',
name='dataset',
field=models.ForeignKey(to='dataset.Dataset'),
),
]
3 changes: 3 additions & 0 deletions open_fmri/apps/dataset/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ class PublicationDocument(models.Model):
document = models.FileField()
dataset = models.ForeignKey('Dataset')

def __str__(self):
return self.document

# Form will hit the cogat api, we will only record the cogat id for the task
# so we can find it again and the name for display purposes
class Task(models.Model):
Expand Down
12 changes: 0 additions & 12 deletions open_fmri/apps/dataset/serializer.py

This file was deleted.

49 changes: 49 additions & 0 deletions open_fmri/apps/dataset/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from rest_framework import serializers

from dataset.models import Dataset, Investigator, PublicationDocument, \
PublicationPubMedLink, Revision, Task

class InvestigatorSerializer(serializers.ModelSerializer):
class Meta:
model = Investigator
fields = ['investigator']

class PublicationDocumentSerializer(serializers.ModelSerializer):
class Meta:
model = PublicationDocument
fields = ['document']

class PublicationPubMedLinkSerializer(serializers.ModelSerializer):
class Meta:
model = PublicationPubMedLink
fields = ['title', 'url']

class RevisionSerializer(serializers.ModelSerializer):
class Meta:
model = Revision
fields = ['revision_number', 'notes', 'aws_link_title', 'aws_link_url']

class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ['cogat_id', 'number']

class DatasetSerializer(serializers.ModelSerializer):

investigator_set = InvestigatorSerializer(read_only=True, many=True)
publicationdocument_set = serializers.StringRelatedField()
publicationpubmedlink_set = PublicationPubMedLinkSerializer(read_only=True,
many=True)
task_set = TaskSerializer(read_only=True, many=True)
revision_set = RevisionSerializer(read_only=True, many=True)
class Meta:
model = Dataset
fields = [
'workflow_stage', 'status', 'project_name', 'summary',
'sample_size', 'scanner_type', 'accession_number',
'acknowledgements', 'license_title', 'license_url', 'curated',
'publicationdocument_set', 'publicationpubmedlink_set', 'task_set',
'revision_set', 'investigator_set'
]


4 changes: 1 addition & 3 deletions open_fmri/apps/dataset/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
DatasetList, DatasetUpdate, FeaturedDatasetEdit, FeaturedDatasetDelete, \
UserCreateDataset, UserDataRequestCreate

from dataset.api_views import DatasetAPIList, DatasetAPIDetail
from dataset.api_views import DatasetAPIList

urlpatterns = patterns('',
url(r'^new/$', DatasetCreate.as_view(), name='dataset_create'),
Expand All @@ -25,6 +25,4 @@

urlpatterns += patterns('',
url(r'^api/$', DatasetAPIList.as_view(), name='dataset_api_list'),
url(r'^api/(?P<pk>\d+)$', DatasetAPIDetail.as_view(),
name='dataset_api_detail'),
)
1 change: 1 addition & 0 deletions open_fmri/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@
RedirectView.as_view(url='http://bids.neuroimaging.io', permanent=True),
name='data-organization'),
url(r'^$', Index.as_view(), name='index'),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^(?P<url>.*/)$', views.flatpage),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

0 comments on commit 2626d44

Please sign in to comment.