Files
mayan-edms/mayan/apps/document_indexing/serializers.py
Roberto Rosario c156c02376 Fix index list API view
Add index create, delete, detail API tests. Fixes GitLab
issue #564.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 16:52:54 -04:00

46 lines
1.3 KiB
Python

from __future__ import unicode_literals
from rest_framework import serializers
from rest_framework_recursive.fields import RecursiveField
from .models import Index, IndexInstanceNode, IndexTemplateNode
class IndexInstanceNodeSerializer(serializers.ModelSerializer):
children = RecursiveField(many=True, read_only=True)
documents_count = serializers.SerializerMethodField()
documents = serializers.HyperlinkedIdentityField(
view_name='rest_api:index-node-documents'
)
class Meta:
fields = (
'documents', 'documents_count', 'children', 'id', 'level', 'parent',
'value'
)
model = IndexInstanceNode
def get_documents_count(self, instance):
return instance.documents.count()
class IndexTemplateNodeSerializer(serializers.ModelSerializer):
class Meta:
fields = (
'enabled', 'expression', 'id', 'index', 'level', 'link_documents',
'parent'
)
model = IndexTemplateNode
class IndexSerializer(serializers.ModelSerializer):
instance_root = IndexInstanceNodeSerializer(read_only=True)
node_templates = IndexTemplateNodeSerializer(read_only=True, many=True)
class Meta:
fields = (
'document_types', 'enabled', 'id', 'instance_root', 'label',
'node_templates',
)
model = Index