Files
mayan-edms/mayan/apps/dynamic_search/serializers.py
Roberto Rosario 8599d69d23 Refactor dynamic search app API
Convert the API to use viewsets.

The search function is now a service of the search model
resource.

The simple and advance search are now the same service. The
difference is determined by the URL query. A ?q= means a
simple search. For advanced search pass the search model
fields in the URL query, example: ?q=document_type__label=

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-02-23 05:08:39 -04:00

26 lines
874 B
Python

from __future__ import unicode_literals
from rest_framework import serializers
class SearchFieldSerializer(serializers.Serializer):
field = serializers.CharField(read_only=True)
label = serializers.CharField(read_only=True)
class SearchModelSerializer(serializers.Serializer):
app_label = serializers.CharField(read_only=True)
model_name = serializers.CharField(read_only=True)
pk = serializers.CharField(read_only=True)
search_fields = SearchFieldSerializer(many=True, read_only=True)
search_url = serializers.HyperlinkedIdentityField(
lookup_field='pk',
lookup_url_kwarg='search_model_name',
view_name='rest_api:search_model-search'
)
url = serializers.HyperlinkedIdentityField(
lookup_field='pk',
lookup_url_kwarg='search_model_name',
view_name='rest_api:search_model-detail'
)