自定义表单提交bug
This commit is contained in:
parent
a0e56d3666
commit
d44d123d48
|
|
@ -3,7 +3,7 @@ from rest_framework.serializers import ModelSerializer
|
||||||
from apps.em.serializers import EquipmentSimpleSerializer
|
from apps.em.serializers import EquipmentSimpleSerializer
|
||||||
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse
|
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse
|
||||||
from apps.inm.signals import update_inm
|
from apps.inm.signals import update_inm
|
||||||
from apps.mtm.models import Material, RecordForm, Step, SubprodctionMaterial
|
from apps.mtm.models import Material, RecordForm, RecordFormField, Step, SubprodctionMaterial
|
||||||
from apps.mtm.serializers import MaterialSimpleSerializer, RecordFormSimpleSerializer, StepSimpleSerializer
|
from apps.mtm.serializers import MaterialSimpleSerializer, RecordFormSimpleSerializer, StepSimpleSerializer
|
||||||
|
|
||||||
from apps.pm.models import SubProductionPlan, SubProductionProgress
|
from apps.pm.models import SubProductionPlan, SubProductionProgress
|
||||||
|
|
@ -239,19 +239,18 @@ class OperationRecordItemSerializer(serializers.ModelSerializer):
|
||||||
model = OperationRecordItem
|
model = OperationRecordItem
|
||||||
fields = ['form_field', 'field_value']
|
fields = ['form_field', 'field_value']
|
||||||
|
|
||||||
class OperationRecordSerializer(serializers.ModelSerializer):
|
|
||||||
record_data = OperationRecordItemSerializer(many=True)
|
|
||||||
class Meta:
|
|
||||||
model = OperationRecord
|
|
||||||
fields = ['form', 'record_data']
|
|
||||||
|
|
||||||
|
|
||||||
class OperationRecordSubmitSerializer(serializers.ModelSerializer):
|
class OperationRecordSubmitSerializer(serializers.ModelSerializer):
|
||||||
record_data = OperationRecordItemSerializer(many=True)
|
record_data = OperationRecordItemSerializer(many=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = OperationRecord
|
model = OperationRecord
|
||||||
fields = ['record_data']
|
fields = ['record_data']
|
||||||
|
|
||||||
|
class OperationRecordSerializer(serializers.ModelSerializer):
|
||||||
|
record_data = OperationRecordItemSerializer(many=True)
|
||||||
|
class Meta:
|
||||||
|
model = OperationRecord
|
||||||
|
fields = ['form', 'record_data']
|
||||||
|
|
||||||
class OperationWproductListSerializer(serializers.ModelSerializer):
|
class OperationWproductListSerializer(serializers.ModelSerializer):
|
||||||
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
||||||
subproduction_plan_ = SubproductionPlanSimpleSerializer(source='subproduction_plan', read_only=True)
|
subproduction_plan_ = SubproductionPlanSimpleSerializer(source='subproduction_plan', read_only=True)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from rest_framework.views import APIView
|
||||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, WareHouse
|
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, WareHouse
|
||||||
from apps.inm.signals import update_inm
|
from apps.inm.signals import update_inm
|
||||||
from apps.mtm.models import Material, RecordForm, Step, SubprodctionMaterial, TechDoc
|
from apps.mtm.models import Material, RecordForm, RecordFormField, Step, SubprodctionMaterial, TechDoc
|
||||||
from apps.mtm.serializers import RecordFormDetailSerializer, SubprodctionMaterialListSerializer, TechDocListSerializer
|
from apps.mtm.serializers import RecordFormDetailSerializer, SubprodctionMaterialListSerializer, TechDocListSerializer
|
||||||
from apps.pm.models import SubProductionPlan, SubProductionProgress
|
from apps.pm.models import SubProductionPlan, SubProductionProgress
|
||||||
from apps.pm.serializers import SubProductionPlanListSerializer, SubProductionPlanUpdateSerializer, SubProductionProgressSerializer
|
from apps.pm.serializers import SubProductionPlanListSerializer, SubProductionPlanUpdateSerializer, SubProductionProgressSerializer
|
||||||
|
|
@ -284,12 +284,19 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
||||||
return OperationUpdateSerializer
|
return OperationUpdateSerializer
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
|
def update(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
return super().update(request, *args, **kwargs)
|
||||||
|
|
||||||
def destroy(self, request, *args, **kwargs):
|
def destroy(self, request, *args, **kwargs):
|
||||||
instance = self.get_object()
|
instance = self.get_object()
|
||||||
if instance.is_submited:
|
if instance.is_submited:
|
||||||
raise exceptions.APIException('该操作已提交')
|
raise exceptions.APIException('该操作已提交')
|
||||||
self.perform_destroy(instance)
|
self.perform_destroy(instance)
|
||||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
data = request.data
|
data = request.data
|
||||||
|
|
@ -465,6 +472,13 @@ class OperationEquipViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMixin,
|
||||||
if self.action == 'update':
|
if self.action == 'update':
|
||||||
return OperationEquipUpdateSerializer
|
return OperationEquipUpdateSerializer
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
|
def update(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.operation.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
return super().update(request, *args, **kwargs)
|
||||||
|
|
||||||
@transaction.atomic()
|
@transaction.atomic()
|
||||||
def destroy(self, request, *args, **kwargs):
|
def destroy(self, request, *args, **kwargs):
|
||||||
instance = self.get_object()
|
instance = self.get_object()
|
||||||
|
|
@ -500,7 +514,7 @@ class OperationRecordViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet):
|
||||||
opr = self.get_object()
|
opr = self.get_object()
|
||||||
wrds = []
|
wrds = []
|
||||||
for m in vdata['record_data']: # 保存记录详情
|
for m in vdata['record_data']: # 保存记录详情
|
||||||
form_field = m['form_field']
|
form_field = RecordFormField.objects.get(pk=m['form_field'])
|
||||||
m['field_name'] = form_field.field_name
|
m['field_name'] = form_field.field_name
|
||||||
m['field_key'] = form_field.field_key
|
m['field_key'] = form_field.field_key
|
||||||
m['field_type'] = form_field.field_type
|
m['field_type'] = form_field.field_type
|
||||||
|
|
@ -530,6 +544,20 @@ class OperationMaterialInputViewSet(ListModelMixin, CreateModelMixin, DestroyMod
|
||||||
return OperationMaterialCreate1Serailizer
|
return OperationMaterialCreate1Serailizer
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
|
def create(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.operation.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
return super().create(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@transaction.atomic()
|
||||||
|
def destroy(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.operation.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
instance.delete()
|
||||||
|
return Response()
|
||||||
|
|
||||||
class OperationMaterialOutputViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, GenericViewSet):
|
class OperationMaterialOutputViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, GenericViewSet):
|
||||||
"""
|
"""
|
||||||
产出物料
|
产出物料
|
||||||
|
|
@ -546,6 +574,20 @@ class OperationMaterialOutputViewSet(ListModelMixin, CreateModelMixin, DestroyMo
|
||||||
return OperationMaterialCreate2Serailizer
|
return OperationMaterialCreate2Serailizer
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
|
def create(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.operation.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
return super().create(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@transaction.atomic()
|
||||||
|
def destroy(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.operation.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
instance.delete()
|
||||||
|
return Response()
|
||||||
|
|
||||||
class OperationMaterialToolViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, GenericViewSet):
|
class OperationMaterialToolViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, GenericViewSet):
|
||||||
"""
|
"""
|
||||||
工具工装
|
工具工装
|
||||||
|
|
@ -562,6 +604,20 @@ class OperationMaterialToolViewSet(ListModelMixin, CreateModelMixin, DestroyMode
|
||||||
return OperationMaterialCreate3Serializer
|
return OperationMaterialCreate3Serializer
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
|
def create(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.operation.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
return super().create(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@transaction.atomic()
|
||||||
|
def destroy(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
if instance.operation.is_submited:
|
||||||
|
raise exceptions.APIException('该操作已提交')
|
||||||
|
instance.delete()
|
||||||
|
return Response()
|
||||||
|
|
||||||
class DoFormInit(CreateAPIView, GenericAPIView):
|
class DoFormInit(CreateAPIView, GenericAPIView):
|
||||||
perms_map={'*':'*'}
|
perms_map={'*':'*'}
|
||||||
serializer_class=OperationInitSerializer
|
serializer_class=OperationInitSerializer
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue