Add proper document creation API endpoint

This commit is contained in:
Roberto Rosario
2014-10-27 04:49:29 -04:00
parent 165d01610b
commit 9c9632f920
5 changed files with 135 additions and 11 deletions
+17 -2
View File
@@ -1,7 +1,10 @@
from __future__ import absolute_import
from django.contrib.auth.models import User
from rest_framework import serializers
from .literals import LANGUAGE_CHOICES
from .models import Document, DocumentVersion, DocumentPage, DocumentType
@@ -25,6 +28,7 @@ class DocumentImageSerializer(serializers.Serializer):
class DocumentSerializer(serializers.HyperlinkedModelSerializer):
versions = DocumentVersionSerializer(many=True, read_only=True)
# TODO: Deprecate, move this as an entry point of DocumentVersion's pages
image = serializers.HyperlinkedIdentityField(view_name='document-image')
new_version = serializers.HyperlinkedIdentityField(view_name='document-new-version')
@@ -33,9 +37,20 @@ class DocumentSerializer(serializers.HyperlinkedModelSerializer):
model = Document
class DocumentTypeSerializer(serializers.HyperlinkedModelSerializer):
class DocumentTypeSerializer(serializers.ModelSerializer):
documents = serializers.HyperlinkedIdentityField(view_name='documenttype-document-list')
class Meta:
model = DocumentType
fields = ('id', 'url', 'name', 'documents')
fields = ('id', 'name', 'documents')
class NewDocumentSerializer(serializers.Serializer):
description = serializers.CharField(required=False)
document_type = DocumentTypeSerializer()
document_type = serializers.ChoiceField(choices=[(document_type.pk, document_type) for document_type in DocumentType.objects.all()])
expand = serializers.BooleanField(default=False)
file = serializers.FileField()
label = serializers.CharField()
language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, blank_display_value=None, required=False)
user = serializers.ChoiceField(required=False, choices=[(user.pk, user) for user in User.objects.all()])