Files
mayan-edms/mayan/apps/control_codes/serializers.py
Roberto Rosario 968abe2cdb Finish view tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-05 01:24:54 -04:00

66 lines
2.0 KiB
Python

from __future__ import unicode_literals
from rest_framework import serializers
from mayan.apps.rest_api.relations import MultiKwargHyperlinkedIdentityField
from .models import ControlSheet, ControlSheetCode
class ControlSheetSerializer(serializers.HyperlinkedModelSerializer):
code_list_url = serializers.HyperlinkedIdentityField(
lookup_url_kwarg='control_sheet_id',
view_name='rest_api:controlsheet-code-list'
)
class Meta:
extra_kwargs = {
'url': {
'lookup_url_kwarg': 'control_sheet_id',
'view_name': 'rest_api:controlsheet-detail'
},
}
fields = ('code_list_url', 'id', 'label', 'url')
model = ControlSheet
class ControlSheetCodeSerializer(serializers.HyperlinkedModelSerializer):
control_sheet = ControlSheetSerializer(read_only=True)
image_url = MultiKwargHyperlinkedIdentityField(
view_kwargs=(
{
'lookup_field': 'control_sheet_id',
'lookup_url_kwarg': 'control_sheet_id',
},
{
'lookup_field': 'pk',
'lookup_url_kwarg': 'control_sheet_code_id',
}
),
view_name='rest_api:controlsheet-code-image'
)
url = MultiKwargHyperlinkedIdentityField(
view_kwargs=(
{
'lookup_field': 'control_sheet_id',
'lookup_url_kwarg': 'control_sheet_id',
},
{
'lookup_field': 'pk',
'lookup_url_kwarg': 'control_sheet_code_id',
}
),
view_name='rest_api:controlsheet-code-detail'
)
class Meta:
fields = (
'arguments', 'control_sheet', 'id', 'image_url', 'name',
'order', 'url'
)
model = ControlSheetCode
def create(self, validated_data):
validated_data['control_sheet'] = self.context['control_sheet']
return super(ControlSheetCodeSerializer, self).create(validated_data)