Add index create, delete, detail API tests. Fixes GitLab issue #564. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
46 lines
1.3 KiB
Python
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
|