feat: 将mlog添加审计日志
This commit is contained in:
parent
ba34b26928
commit
2d8169849f
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue