80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.core.exceptions import ValidationError as DjangoValidationError
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
from rest_framework import serializers
|
|
from rest_framework.exceptions import ValidationError
|
|
from rest_framework.reverse import reverse
|
|
|
|
from mayan.apps.documents.models import DocumentType
|
|
from mayan.apps.documents.serializers import DocumentTypeSerializer
|
|
from mayan.apps.rest_api.relations import (
|
|
FilteredPrimaryKeyRelatedField, MultiKwargHyperlinkedIdentityField
|
|
)
|
|
from mayan.apps.user_management.serializers import UserSerializer
|
|
|
|
from .models import ControlSheet, ControlSheetCode
|
|
|
|
|
|
class ControlSheetSerializer(serializers.HyperlinkedModelSerializer):
|
|
#states = ControlSheetStateSerializer(many=True, required=False)
|
|
#transitions = ControlSheetTransitionSerializer(many=True, required=False)
|
|
|
|
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)
|
|
|