feat: testitem add_info_for_list

This commit is contained in:
caoqianming 2024-12-20 17:49:40 +08:00
parent 4ab711cc71
commit f4c84f0354
1 changed files with 14 additions and 2 deletions

View File

@ -3,7 +3,8 @@ from rest_framework.decorators import action
from rest_framework.exceptions import ParseError
from rest_framework.views import APIView
from rest_framework.serializers import Serializer
from apps.qm.models import QuaStat, TestItem, Ftest, Ptest, FtestWork
from apps.qm.models import QuaStat, NotOkOption, Ftest, Ptest, FtestWork
from apps.qm.models import TestItem, Defect, Qct, QctTestItem, QctMat, QctDefect
from apps.qm.serializers import QuaStatSerializer, TestItemSerializer, QuaStatUpdateSerializer, FtestSerializer, PtestSerializer, \
FtestWorkCreateUpdateSerializer, FtestWorkSerializer, DefectSerializer, QctSerializer, QctTestItemSerializer, QctDefectSerializer, QctMatSerializer, \
QctDetailSerializer
@ -16,7 +17,6 @@ from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from apps.wpm.models import SfLog
from apps.qm.filters import QuaStatFilter, TestItemFilter, FtestWorkFilter, QctFilter
from django.db import transaction
from apps.qm.models import NotOkOption, Defect, Qct, QctTestItem, QctMat, QctDefect
from apps.qm.services import ftestwork_submit
from apps.utils.thread import MyThread
from apps.wpm.services_2 import get_alldata_with_batch_and_store
@ -103,6 +103,18 @@ class TestItemViewSet(CustomModelViewSet):
search_fields = ['tags', 'name', 'number', 'mcate_tags']
ordering = ['id']
def add_info_for_list(self, data):
affects_list = [i['affects'] for i in data]
affectIds = []
for item in affects_list:
affectIds.extend(item)
affects = TestItem.objects.filter(id__in=affectIds).values_list('id', 'name')
affects_dict = dict(affects)
for item in data:
affects = item["affects"]
item["affects_name"] = ";".join([affects_dict.get(x, '未知') for x in affects])
return data
class QuaStatViewSet(ListModelMixin, BulkUpdateModelMixin, CustomGenericViewSet):
"""