diff --git a/hb_server/apps/qm/views.py b/hb_server/apps/qm/views.py index 2a11f72..717cd5b 100644 --- a/hb_server/apps/qm/views.py +++ b/hb_server/apps/qm/views.py @@ -87,6 +87,8 @@ class TestRecordViewSet(ListModelMixin, UpdateModelMixin, RetrieveModelMixin, De if TestRecordItem.objects.filter(field_value__isnull=True, is_hidden=False, test_record=obj).exists(): raise exceptions.APIException('存在未填写项目') with transaction.atomic(): + obj.is_submited=True + obj.save() WpmServies.update_wproduct_by_test(obj, request.user) return Response() diff --git a/hb_server/apps/wf/services.py b/hb_server/apps/wf/services.py index 46ef6b8..17d9c63 100644 --- a/hb_server/apps/wf/services.py +++ b/hb_server/apps/wf/services.py @@ -59,7 +59,7 @@ class WfService(object): """ 获取工单字段key List """ - return CustomField.objects.filter(is_deleted=False, workflow=workflow).order_by('sort').values_list('field_key', flat=True) + return list(CustomField.objects.filter(is_deleted=False, workflow=workflow).order_by('sort').values_list('field_key', flat=True)) @classmethod def get_ticket_transitions(cls, ticket:Ticket): diff --git a/hb_server/apps/wf/views.py b/hb_server/apps/wf/views.py index b06d384..8ad571d 100644 --- a/hb_server/apps/wf/views.py +++ b/hb_server/apps/wf/views.py @@ -147,6 +147,7 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin field_key_list = WfService.get_workflow_custom_fields_list(vdata['workflow']) transition = vdata['transition'] ticket_data = vdata['ticket_data'] + #校验必填项 if transition.field_require_check: for key, value in start_state.state_fields.items(): @@ -156,9 +157,14 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin save_ticket_data = {} # 只保存必填项以及可选项 for key, value in ticket_data.items(): + if key in start_state.state_fields: + print(start_state.state_fields[key]) + if start_state.state_fields[key] in [State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL]: + print(key, True) if key in field_key_list and key in start_state.state_fields and start_state.state_fields[key] in [ State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL]: save_ticket_data[key] = value + print('1') ticket = serializer.save(state=start_state, create_by=request.user,