43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from rest_framework.views import APIView
|
|
from apps.customer.models import ShiveAshenaei as ShiveAshenaeiModel
|
|
from apps.workspace.models import City as CityModel
|
|
from rest_framework import serializers
|
|
from utils.tools import inline_serializer
|
|
from rest_framework import status
|
|
from apps.customer.selectors import customer_form_item
|
|
from rest_framework.response import Response
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from utils import custom_permissions
|
|
|
|
|
|
class CustomerFormItemApi(APIView):
|
|
|
|
permission_classes = (IsAuthenticated, custom_permissions.WorkspaceOperatorPermission)
|
|
|
|
class OutputSerializer(serializers.Serializer):
|
|
|
|
shive_ashenaei = inline_serializer(many=True, fields={
|
|
'id': serializers.IntegerField(),
|
|
'name': serializers.CharField()
|
|
})
|
|
|
|
shahr = inline_serializer(many=True, fields={
|
|
'id': serializers.IntegerField(),
|
|
'name': serializers.CharField(),
|
|
'ostan': inline_serializer(fields={'id': serializers.IntegerField(), }),
|
|
'is_ostan': serializers.BooleanField(),
|
|
})
|
|
|
|
responsible_groups = inline_serializer(many=True, fields={
|
|
'id': serializers.IntegerField(),
|
|
'name': serializers.CharField()
|
|
})
|
|
|
|
def get(self, request):
|
|
|
|
fields_value = customer_form_item(request)
|
|
serializer = self.OutputSerializer(fields_value)
|
|
|
|
return Response(data=serializer.data, status=status.HTTP_200_OK)
|
|
|