diff --git a/apps/wpm/views.py b/apps/wpm/views.py index b13d51e0..321e3792 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -19,6 +19,7 @@ from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer, GenHandoverSerializer, GenHandoverWmSerializer, MlogAnaSerializer, AttLogSerializer, OtherLogSerializer) from .services import mlog_submit, update_mtask, handover_submit +from apps.monitor.services import create_auditlog, delete_auditlog # Create your views here. @@ -135,10 +136,18 @@ class MlogViewSet(CustomModelViewSet): prefetch_related_fields = ['handle_users', 'material_outs', 'b_mlog'] filterset_class = MlogFilter + @transaction.atomic + def perform_create(self, serializer): + ins = serializer.save() + data = MlogSerializer(ins).data + create_auditlog('create', ins, data) + + @transaction.atomic def perform_destroy(self, instance): if instance.submit_time is not None: raise ParseError('日志已提交不可变动') - return super().perform_destroy(instance) + delete_auditlog(instance, instance.id) + instance.delete() @action(methods=['post'], detail=True, perms_map={'post': 'mlog.submit'}, serializer_class=Serializer) @transaction.atomic @@ -148,10 +157,13 @@ class MlogViewSet(CustomModelViewSet): 日志提交 """ ins: Mlog = self.get_object() + vdata_old = MlogSerializer(ins).data if ins.submit_time is None: mlog_submit(ins, self.request.user, None) if ins.mtask: update_mtask(ins.mtask) + vdata_new = MlogSerializer(ins).data + create_auditlog('submit', ins, vdata_new, vdata_old) return Response() @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MlogRelatedSerializer)