from django.shortcuts import render from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin from rest_framework.decorators import action from apps.qm.models import QuaStat, TestItem from apps.qm.serializers import QuaStatSerializer, TestItemSerializer, QuaStatUpdateSerializer from apps.qm.tasks import cal_quastat from rest_framework.response import Response from apps.utils.mixins import BulkCreateModelMixin, BulkUpdateModelMixin import datetime from apps.utils.viewsets import CustomGenericViewSet # Create your views here. class TestItemViewSet(ListModelMixin, CustomGenericViewSet): """ list:质检项目 质检项目 """ perms_map = {'get': '*'} queryset = TestItem.objects.all() serializer_class = TestItemSerializer filterset_fields = [] ordering = ['id'] class QuaStatViewSet(ListModelMixin, BulkUpdateModelMixin, CustomGenericViewSet): """ list:质量分析报告 质量分析报告 """ perms_map = {'get': '*', 'put': 'quastat.update'} queryset = QuaStat.objects.all() serializer_class = QuaStatSerializer update_serializer_class = QuaStatUpdateSerializer filterset_fields = ['type', 'year_s', 'month_s', 'day_s', 'material', 'testitem', 'belong_dept', 'sflog', 'sflog__mgroup'] select_related_fields = ['belong_dept', 'material', 'testitem'] ordering = ['belong_dept__sort', 'material__sort', 'testitem__sort', 'year_s', 'month_s', 'day_s'] def perform_update(self, serializer): ins = serializer.save() if ins.sflog: # 更新值班记录的质检时间 ins.sflog.last_test_time = datetime.datetime.now() ins.sflog.save() # 计算其他方面的统计 cal_quastat.delay(ins.id)