From f8c67d8759a80cc1e911e8792a06bb9710add9d0 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 10 Nov 2023 09:02:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20rcertificate=E5=A2=9E=E5=8A=A0=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/rpm/views.py | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/apps/rpm/views.py b/apps/rpm/views.py index c016c615..ac45c6f1 100644 --- a/apps/rpm/views.py +++ b/apps/rpm/views.py @@ -22,7 +22,8 @@ from django.db.models import Q # Create your views here. class RpartyViewSet(CustomModelViewSet): - perms_map = {'get': 'rparty.view', 'post': 'rparty.create', 'put': 'rparty.update', 'delete': 'rparty.delete'} + perms_map = {'get': 'rparty.view', 'post': 'rparty.create', + 'put': 'rparty.update', 'delete': 'rparty.delete'} queryset = Rparty.objects.all() create_serializer_class = RpartyCreateUpdateSerializer update_serializer_class = RpartyCreateUpdateSerializer @@ -38,7 +39,7 @@ class RpartyViewSet(CustomModelViewSet): if user.is_authenticated and user.type == 'remployee': queryset = queryset.filter(dept=user.belong_dept) return queryset - + @transaction.atomic def destroy(self, request, *args, **kwargs): obj = self.get_object() @@ -67,7 +68,8 @@ class RpartyViewSet(CustomModelViewSet): else: serializer = UserCreateSerializer(data=request.data) serializer.is_valid(raise_exception=True) - ins = serializer.save(type='remployee', password=make_password('0000')) + ins = serializer.save( + type='remployee', password=make_password('0000')) obj.admin = ins obj.save() # 岗位设置为相关方岗位 @@ -78,7 +80,8 @@ class RpartyViewSet(CustomModelViewSet): 'post': post, 'sort': 99 }) - up = UserPost.objects.filter(user=ins).order_by('sort', 'create_time').first() + up = UserPost.objects.filter(user=ins).order_by( + 'sort', 'create_time').first() if up: ins.belong_dept = up.dept ins.post = up.post @@ -157,6 +160,7 @@ class RcertificateViewSet(CustomModelViewSet): update_serializer_class = RcertificateCreateUpdateSerializer serializer_class = RcertificateSerializer filterset_fields = ['remployee', 'remployee__rparty'] + search_fields = ['remployee__name', 'number'] data_filter = True data_filter_field = 'remployee__rparty__dept' @@ -164,17 +168,20 @@ class RcertificateViewSet(CustomModelViewSet): queryset = super().get_queryset() user = self.request.user if user.is_authenticated and user.type == 'remployee': - queryset = queryset.filter(remployee__rparty__dept=user.belong_dept) + queryset = queryset.filter( + remployee__rparty__dept=user.belong_dept) return queryset class RpjViewSet(CustomModelViewSet): - perms_map = {'get': 'rpj.view', 'post': 'rpj.create', 'put': 'rpj.update', 'delete': 'rpj.update'} + perms_map = {'get': 'rpj.view', 'post': 'rpj.create', + 'put': 'rpj.update', 'delete': 'rpj.update'} queryset = Rpj.objects.all() create_serializer_class = RpjCreateSerializer update_serializer_class = RpjUpdateSerializer serializer_class = RpjListSerializer - select_related_fields = ['rparty', 'belong_dept', 'ticket', 'ticket__state'] + select_related_fields = [ + 'rparty', 'belong_dept', 'ticket', 'ticket__state'] search_fields = ['name'] filterset_class = RpjFilterSet data_filter = True @@ -196,7 +203,7 @@ class RpjViewSet(CustomModelViewSet): vdata['rparty'] = self.request.user.belong_dept.rparty if not vdata.get('rparty', None): raise ParseError('请指定相关方') - if BlackList.objects.filter(Q(name=vdata['rparty'].name)|Q(number=vdata['rparty'].number)).exists(): + if BlackList.objects.filter(Q(name=vdata['rparty'].name) | Q(number=vdata['rparty'].number)).exists(): raise ParseError('该相关方在黑名单中') if not vdata.get('belong_dept', None): vdata['belong_dept'] = vdata['rparty'].belong_dept @@ -227,7 +234,8 @@ class RpjViewSet(CustomModelViewSet): class RpjmemberViewSet(CustomModelViewSet): - perms_map = {'get': '*', 'post': 'rpj.update', 'put': 'rpj.update', 'delete': 'rpj.update'} + perms_map = {'get': '*', 'post': 'rpj.update', + 'put': 'rpj.update', 'delete': 'rpj.update'} queryset = Rpjmember.objects.all() create_serializer_class = RpjmemberCreateSerializer update_serializer_class = RpjmemberUpdateSerializer @@ -254,15 +262,18 @@ class RpjmemberViewSet(CustomModelViewSet): rpj = obj.rpj if rpj.state not in [Rpj.RPJ_WORKING, Rpj.RPJ_ENTER]: raise ParseError('该项目状态成员不可离厂') - rlog = RpjLog.objects.filter(rpj=rpj, remployee=obj.remployee).order_by('-create_time').first() + rlog = RpjLog.objects.filter( + rpj=rpj, remployee=obj.remployee).order_by('-create_time').first() if rlog and rlog.operation == 'member_leave': raise ParseError('该成员已做离厂操作') obj.note = '提前离厂' obj.save() rpj_member_leave(obj) - RpjLog.objects.create(rpj=obj.rpj, operation='member_leave', remployee=obj.remployee, create_by=request.user, reason=request.data.get('reason', '')) + RpjLog.objects.create(rpj=obj.rpj, operation='member_leave', remployee=obj.remployee, + create_by=request.user, reason=request.data.get('reason', '')) return Response() + class RpjLogViewSet(ListModelMixin, CustomGenericViewSet): perms_map = {'get': '*'} queryset = RpjLog.objects.all() @@ -271,6 +282,7 @@ class RpjLogViewSet(ListModelMixin, CustomGenericViewSet): filterset_fields = ['rpj', 'remployee'] ordering = ['-create_time'] + class RpjfileViewSet(UpdateModelMixin, DestroyModelMixin, ListModelMixin, CustomGenericViewSet): perms_map = {'get': '*', 'put': 'rpj.update', 'delete': 'rpj.update'} queryset = Rpjfile.objects.all() @@ -302,4 +314,4 @@ class BlackListViewSet(CustomModelViewSet): update_serializer_class = BlackListUpdateSerializer serializer_class = BlackListSerializer select_related_fields = ['create_by', 'update_by'] - search_fields = ['name', 'number'] \ No newline at end of file + search_fields = ['name', 'number']