feat: ftest增加筛选条件

This commit is contained in:
caoqianming 2025-01-20 13:51:13 +08:00
parent fd5747f99c
commit 688b3fc3d1
2 changed files with 19 additions and 4 deletions

View File

@ -1,6 +1,7 @@
from django_filters import rest_framework as filters from django_filters import rest_framework as filters
from apps.qm.models import QuaStat, TestItem, FtestWork, Qct from apps.qm.models import QuaStat, TestItem, FtestWork, Qct, Ftest
from apps.utils.filters import MyJsonListFilter from apps.utils.filters import MyJsonListFilter
from django.db.models import Q
class QuaStatFilter(filters.FilterSet): class QuaStatFilter(filters.FilterSet):
@ -48,4 +49,18 @@ class FtestWorkFilter(filters.FilterSet):
"type": ["exact"], "type": ["exact"],
"type2": ["exact"], "type2": ["exact"],
"shift": ["exact"] "shift": ["exact"]
} }
class FtestFilter(filters.FilterSet):
wpr = filters.CharFilter(label="wprId", method="filter_wpr")
class Meta:
model = Ftest
fields = {
"type": ["exact"],
"ftest_work": ["exact"],
"mlogbw_ftest__wpr": ["exact"],
"mioitemw_ftest__wpr": ["exact"],
}
def filter_wpr(self, queryset, name, value):
return queryset.filter(Q(mlogbw_ftest__wpr=value) | Q(mioitemw_ftest__wpr=value))

View File

@ -15,7 +15,7 @@ import datetime
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from apps.wpm.models import SfLog from apps.wpm.models import SfLog
from apps.qm.filters import QuaStatFilter, TestItemFilter, FtestWorkFilter, QctFilter from apps.qm.filters import QuaStatFilter, TestItemFilter, FtestWorkFilter, QctFilter, FtestFilter
from django.db import transaction from django.db import transaction
from apps.qm.services import ftestwork_submit from apps.qm.services import ftestwork_submit
from apps.utils.thread import MyThread from apps.utils.thread import MyThread
@ -153,7 +153,7 @@ class FtestViewSet(CustomModelViewSet):
queryset = Ftest.objects.all() queryset = Ftest.objects.all()
serializer_class = FtestSerializer serializer_class = FtestSerializer
select_related_fields = ['test_user', 'check_user', 'ftest_work'] select_related_fields = ['test_user', 'check_user', 'ftest_work']
filterset_fields = ['type', 'ftest_work', "mlogbw_ftest__wpr"] filterset_class = FtestFilter
def count_sampling(self, ftest_work:FtestWork): def count_sampling(self, ftest_work:FtestWork):
qs = Ftest.objects.filter(ftest_work=ftest_work) qs = Ftest.objects.filter(ftest_work=ftest_work)