Update the staging folder file image API end point to work in the same way the document page image API works.
62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
from __future__ import unicode_literals
|
|
|
|
import logging
|
|
|
|
from rest_framework import serializers
|
|
from rest_framework.reverse import reverse
|
|
|
|
from .models import StagingFolderSource, WebFormSource
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class StagingFolderFileSerializer(serializers.Serializer):
|
|
url = serializers.SerializerMethodField('get_url')
|
|
image_url = serializers.SerializerMethodField('get_image_url')
|
|
filename = serializers.CharField(max_length=255)
|
|
|
|
def get_url(self, obj):
|
|
return reverse(
|
|
'stagingfolderfile-detail',
|
|
args=(obj.staging_folder.pk, obj.encoded_filename,),
|
|
request=self.context.get('request')
|
|
)
|
|
|
|
def get_image_url(self, obj):
|
|
return reverse(
|
|
'stagingfolderfile-image-view',
|
|
args=(obj.staging_folder.pk, obj.encoded_filename,),
|
|
request=self.context.get('request')
|
|
)
|
|
|
|
|
|
class StagingFolderSerializer(serializers.HyperlinkedModelSerializer):
|
|
files = serializers.SerializerMethodField('get_files')
|
|
|
|
def get_files(self, obj):
|
|
try:
|
|
return [
|
|
StagingFolderFileSerializer(entry, context=self.context).data for entry in obj.get_files()
|
|
]
|
|
except Exception as exception:
|
|
logger.error('unhandled exception: %s', exception)
|
|
return []
|
|
|
|
class Meta:
|
|
model = StagingFolderSource
|
|
|
|
|
|
class WebFormSourceSerializer(serializers.Serializer):
|
|
class Meta:
|
|
model = WebFormSource
|
|
|
|
|
|
class NewDocumentSerializer(serializers.Serializer):
|
|
source = serializers.IntegerField()
|
|
document_type = serializers.IntegerField(required=False)
|
|
description = serializers.CharField(required=False)
|
|
expand = serializers.BooleanField(default=False)
|
|
file = serializers.FileField()
|
|
filename = serializers.CharField(required=False)
|
|
use_file_name = serializers.BooleanField(default=False)
|