diff --git a/apps/wpm/services.py b/apps/wpm/services.py index b5c4f462..de1f4c14 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -184,6 +184,10 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]): mlog.submit_user = user mlog.save() +def mlog_revert(mlog: Mlog): + """日志撤回 + """ + pass def update_mtask(mtask: Mtask): from apps.pm.models import Utask diff --git a/apps/wpm/views.py b/apps/wpm/views.py index f07e037f..9df354d8 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -174,6 +174,20 @@ class MlogViewSet(CustomModelViewSet): create_auditlog('submit', ins, vdata_new, vdata_old) return Response() + @action(methods=['post'], detail=True, perms_map={'post': 'mlog.submit'}, serializer_class=Serializer) + @transaction.atomic + def revert(self, request, *args, **kwargs): + """撤回日志提交 + + 撤回日志提交 + """ + ins: Mlog = self.get_object() + user = request.user + if user != ins.submit_user: + raise ParseError('非提交人不可撤销!') + + return Response() + @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MlogRelatedSerializer) @transaction.atomic def related_first(self, request, *args, **kwargs):