feat: rcertificate增加筛选条件
This commit is contained in:
parent
f747cc817b
commit
f8c67d8759
|
@ -22,7 +22,8 @@ from django.db.models import Q
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
class RpartyViewSet(CustomModelViewSet):
|
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()
|
queryset = Rparty.objects.all()
|
||||||
create_serializer_class = RpartyCreateUpdateSerializer
|
create_serializer_class = RpartyCreateUpdateSerializer
|
||||||
update_serializer_class = RpartyCreateUpdateSerializer
|
update_serializer_class = RpartyCreateUpdateSerializer
|
||||||
|
@ -67,7 +68,8 @@ class RpartyViewSet(CustomModelViewSet):
|
||||||
else:
|
else:
|
||||||
serializer = UserCreateSerializer(data=request.data)
|
serializer = UserCreateSerializer(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
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.admin = ins
|
||||||
obj.save()
|
obj.save()
|
||||||
# 岗位设置为相关方岗位
|
# 岗位设置为相关方岗位
|
||||||
|
@ -78,7 +80,8 @@ class RpartyViewSet(CustomModelViewSet):
|
||||||
'post': post,
|
'post': post,
|
||||||
'sort': 99
|
'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:
|
if up:
|
||||||
ins.belong_dept = up.dept
|
ins.belong_dept = up.dept
|
||||||
ins.post = up.post
|
ins.post = up.post
|
||||||
|
@ -157,6 +160,7 @@ class RcertificateViewSet(CustomModelViewSet):
|
||||||
update_serializer_class = RcertificateCreateUpdateSerializer
|
update_serializer_class = RcertificateCreateUpdateSerializer
|
||||||
serializer_class = RcertificateSerializer
|
serializer_class = RcertificateSerializer
|
||||||
filterset_fields = ['remployee', 'remployee__rparty']
|
filterset_fields = ['remployee', 'remployee__rparty']
|
||||||
|
search_fields = ['remployee__name', 'number']
|
||||||
data_filter = True
|
data_filter = True
|
||||||
data_filter_field = 'remployee__rparty__dept'
|
data_filter_field = 'remployee__rparty__dept'
|
||||||
|
|
||||||
|
@ -164,17 +168,20 @@ class RcertificateViewSet(CustomModelViewSet):
|
||||||
queryset = super().get_queryset()
|
queryset = super().get_queryset()
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
if user.is_authenticated and user.type == 'remployee':
|
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
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
class RpjViewSet(CustomModelViewSet):
|
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()
|
queryset = Rpj.objects.all()
|
||||||
create_serializer_class = RpjCreateSerializer
|
create_serializer_class = RpjCreateSerializer
|
||||||
update_serializer_class = RpjUpdateSerializer
|
update_serializer_class = RpjUpdateSerializer
|
||||||
serializer_class = RpjListSerializer
|
serializer_class = RpjListSerializer
|
||||||
select_related_fields = ['rparty', 'belong_dept', 'ticket', 'ticket__state']
|
select_related_fields = [
|
||||||
|
'rparty', 'belong_dept', 'ticket', 'ticket__state']
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
filterset_class = RpjFilterSet
|
filterset_class = RpjFilterSet
|
||||||
data_filter = True
|
data_filter = True
|
||||||
|
@ -196,7 +203,7 @@ class RpjViewSet(CustomModelViewSet):
|
||||||
vdata['rparty'] = self.request.user.belong_dept.rparty
|
vdata['rparty'] = self.request.user.belong_dept.rparty
|
||||||
if not vdata.get('rparty', None):
|
if not vdata.get('rparty', None):
|
||||||
raise ParseError('请指定相关方')
|
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('该相关方在黑名单中')
|
raise ParseError('该相关方在黑名单中')
|
||||||
if not vdata.get('belong_dept', None):
|
if not vdata.get('belong_dept', None):
|
||||||
vdata['belong_dept'] = vdata['rparty'].belong_dept
|
vdata['belong_dept'] = vdata['rparty'].belong_dept
|
||||||
|
@ -227,7 +234,8 @@ class RpjViewSet(CustomModelViewSet):
|
||||||
|
|
||||||
|
|
||||||
class RpjmemberViewSet(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()
|
queryset = Rpjmember.objects.all()
|
||||||
create_serializer_class = RpjmemberCreateSerializer
|
create_serializer_class = RpjmemberCreateSerializer
|
||||||
update_serializer_class = RpjmemberUpdateSerializer
|
update_serializer_class = RpjmemberUpdateSerializer
|
||||||
|
@ -254,15 +262,18 @@ class RpjmemberViewSet(CustomModelViewSet):
|
||||||
rpj = obj.rpj
|
rpj = obj.rpj
|
||||||
if rpj.state not in [Rpj.RPJ_WORKING, Rpj.RPJ_ENTER]:
|
if rpj.state not in [Rpj.RPJ_WORKING, Rpj.RPJ_ENTER]:
|
||||||
raise ParseError('该项目状态成员不可离厂')
|
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':
|
if rlog and rlog.operation == 'member_leave':
|
||||||
raise ParseError('该成员已做离厂操作')
|
raise ParseError('该成员已做离厂操作')
|
||||||
obj.note = '提前离厂'
|
obj.note = '提前离厂'
|
||||||
obj.save()
|
obj.save()
|
||||||
rpj_member_leave(obj)
|
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()
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
class RpjLogViewSet(ListModelMixin, CustomGenericViewSet):
|
class RpjLogViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
perms_map = {'get': '*'}
|
perms_map = {'get': '*'}
|
||||||
queryset = RpjLog.objects.all()
|
queryset = RpjLog.objects.all()
|
||||||
|
@ -271,6 +282,7 @@ class RpjLogViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
filterset_fields = ['rpj', 'remployee']
|
filterset_fields = ['rpj', 'remployee']
|
||||||
ordering = ['-create_time']
|
ordering = ['-create_time']
|
||||||
|
|
||||||
|
|
||||||
class RpjfileViewSet(UpdateModelMixin, DestroyModelMixin, ListModelMixin, CustomGenericViewSet):
|
class RpjfileViewSet(UpdateModelMixin, DestroyModelMixin, ListModelMixin, CustomGenericViewSet):
|
||||||
perms_map = {'get': '*', 'put': 'rpj.update', 'delete': 'rpj.update'}
|
perms_map = {'get': '*', 'put': 'rpj.update', 'delete': 'rpj.update'}
|
||||||
queryset = Rpjfile.objects.all()
|
queryset = Rpjfile.objects.all()
|
||||||
|
|
Loading…
Reference in New Issue