获取处理人bug

This commit is contained in:
曹前明 2022-11-04 06:57:30 +08:00
parent 97bdde5888
commit b0cf23834a
1 changed files with 14 additions and 6 deletions

View File

@ -118,12 +118,10 @@ class TicketListSerializer(CustomModelSerializer):
model = Ticket
fields = ['id', 'title', 'sn', 'workflow', 'workflow_', 'state', 'state_',
'act_state', 'create_time', 'update_time', 'participant_type', 'create_by', 'ticket_data',
'participant_', 'script_run_last_result']
'participant_', 'script_run_last_result', 'participant']
def get_participant_(self, obj):
if obj.participant_type == 1:
return UserSimpleSerializer(instance=User.objects.get(id=obj.participant)).data
elif obj.participant_type == 2:
if obj.participant_type in [1, 2]:
return UserSimpleSerializer(instance=User.objects.filter(id__in=obj.participant), many=True).data
return None
@ -137,11 +135,17 @@ class TicketDetailSerializer(CustomModelSerializer):
workflow_ = WorkflowSimpleSerializer(source='workflow', read_only=True)
state_ = StateSimpleSerializer(source='state', read_only=True)
ticket_data_ = serializers.SerializerMethodField()
participant_ = serializers.SerializerMethodField()
class Meta:
model = Ticket
fields = '__all__'
def get_participant_(self, obj):
if obj.participant_type in [1, 2]:
return UserSimpleSerializer(instance=User.objects.filter(id__in=obj.participant), many=True).data
return None
@staticmethod
def setup_eager_loading(queryset):
queryset = queryset.select_related('workflow', 'state')
@ -163,13 +167,17 @@ class TicketDetailSerializer(CustomModelSerializer):
i['field_display'] = ','.join(list(User.objects.filter(
id__in=i['field_value']).values_list('name', flat=True)))
else:
i['field_display'] = User.objects.get(id=i['field_value']).name
f_obj = User.objects.filter(id=i['field_value']).first()
if f_obj:
i['field_display'] = f_obj.name
elif 'deptSelect' in i['label']:
if isinstance(i['field_value'], list):
i['field_display'] = ','.join(list(Dept.objects.filter(
id__in=i['field_value']).values_list('name', flat=True)))
else:
i['field_display'] = Dept.objects.get(id=i['field_value']).name
f_obj = Dept.objects.filter(id=i['field_value']).first()
if f_obj:
i['field_display'] = f_obj.name
elif i['field_type'] in ['radio', 'select']:
for m in i['field_choice']:
if m['id'] == i['field_value']: