只更新必填和可选的字段
This commit is contained in:
parent
67d74bcf3e
commit
7a9d18c5be
|
@ -157,14 +157,9 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
|
||||||
save_ticket_data = {}
|
save_ticket_data = {}
|
||||||
# 只保存必填项以及可选项
|
# 只保存必填项以及可选项
|
||||||
for key, value in ticket_data.items():
|
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 [
|
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]:
|
State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL]:
|
||||||
save_ticket_data[key] = value
|
save_ticket_data[key] = value
|
||||||
print('1')
|
|
||||||
|
|
||||||
ticket = serializer.save(state=start_state,
|
ticket = serializer.save(state=start_state,
|
||||||
create_by=request.user,
|
create_by=request.user,
|
||||||
|
@ -237,6 +232,7 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
|
||||||
raise APIException('工单不存在')
|
raise APIException('工单不存在')
|
||||||
data = request.data
|
data = request.data
|
||||||
result = WfService.ticket_handle_permission_check(ticket, request.user)
|
result = WfService.ticket_handle_permission_check(ticket, request.user)
|
||||||
|
field_key_list = WfService.get_workflow_custom_fields_list(ticket.workflow)
|
||||||
source_state = ticket.state
|
source_state = ticket.state
|
||||||
source_ticket_data = ticket.ticket_data
|
source_ticket_data = ticket.ticket_data
|
||||||
if result.get('permission') is False:
|
if result.get('permission') is False:
|
||||||
|
@ -249,6 +245,7 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
|
||||||
if value == State.STATE_FIELD_REQUIRED:
|
if value == State.STATE_FIELD_REQUIRED:
|
||||||
if key not in ticket_data or not ticket_data[key]:
|
if key not in ticket_data or not ticket_data[key]:
|
||||||
raise APIException('字段{}必填'.format(key))
|
raise APIException('字段{}必填'.format(key))
|
||||||
|
|
||||||
destination_state = WfService.get_next_state_by_transition_and_ticket_info(ticket, transition, ticket_data, request)
|
destination_state = WfService.get_next_state_by_transition_and_ticket_info(ticket, transition, ticket_data, request)
|
||||||
multi_all_person = ticket.multi_all_person
|
multi_all_person = ticket.multi_all_person
|
||||||
if multi_all_person:
|
if multi_all_person:
|
||||||
|
@ -290,7 +287,7 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
|
||||||
ticket.act_state = Ticket.TICKET_ACT_STATE_BACK
|
ticket.act_state = Ticket.TICKET_ACT_STATE_BACK
|
||||||
|
|
||||||
# 只更新必填和可选的字段
|
# 只更新必填和可选的字段
|
||||||
for key, value in ticket.state.state_fields.items():
|
for key, value in source_state.state_fields.items():
|
||||||
if value in (State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL):
|
if value in (State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL):
|
||||||
source_ticket_data[key] = ticket_data[key]
|
source_ticket_data[key] = ticket_data[key]
|
||||||
ticket.ticket_data = source_ticket_data
|
ticket.ticket_data = source_ticket_data
|
||||||
|
|
Loading…
Reference in New Issue