qtask 可看下级
This commit is contained in:
parent
c8268bbc26
commit
81d99a168c
|
|
@ -12,6 +12,7 @@ from utils.pagination import PageOrNot
|
|||
from rest_framework.exceptions import ParseError
|
||||
from rest_framework import serializers
|
||||
from rest_framework.exceptions import ParseError
|
||||
from utils.queryset import get_child_queryset2
|
||||
|
||||
class QualiLibViewSet(PageOrNot, ListModelMixin, GenericViewSet):
|
||||
perms_map = {'get': '*'}
|
||||
|
|
@ -75,6 +76,25 @@ class QOrgViewSet(ListModelMixin, GenericViewSet):
|
|||
serializer_class = QOrgListSerializer
|
||||
ordering = ['-create_time']
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = self.queryset
|
||||
if hasattr(self.get_serializer_class(), 'setup_eager_loading'):
|
||||
queryset = self.get_serializer_class().setup_eager_loading(queryset)
|
||||
if self.request.user.is_superuser:
|
||||
pass
|
||||
if hasattr(queryset.model, 'org'):
|
||||
user = self.request.user
|
||||
roles = user.roles
|
||||
data_range = roles.values_list('datas', flat=True)
|
||||
if '全部' in data_range:
|
||||
pass
|
||||
elif '本级及以下' in data_range:
|
||||
belong_depts = get_child_queryset2(user.dept)
|
||||
queryset = queryset.filter(org__in = belong_depts)
|
||||
elif '本级' in data_range:
|
||||
queryset = queryset.filter(org = user.dept)
|
||||
return queryset
|
||||
|
||||
@action(methods=['get'], detail=False, perms_map = {'get':'qtask_my'})
|
||||
def my(self, request, *args, **kwargs):
|
||||
"""
|
||||
|
|
@ -111,6 +131,24 @@ class QActionViewSet(PageOrNot, ListModelMixin, DestroyModelMixin, RetrieveModel
|
|||
return QActionDetailSerializer
|
||||
return super().get_serializer_class()
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = self.queryset
|
||||
if hasattr(self.get_serializer_class(), 'setup_eager_loading'):
|
||||
queryset = self.get_serializer_class().setup_eager_loading(queryset)
|
||||
if self.request.user.is_superuser:
|
||||
pass
|
||||
if hasattr(queryset.model, 'belong_dept'):
|
||||
user = self.request.user
|
||||
roles = user.roles
|
||||
data_range = roles.values_list('datas', flat=True)
|
||||
if '全部' in data_range:
|
||||
pass
|
||||
elif '本级及以下' in data_range:
|
||||
belong_depts = get_child_queryset2(user.dept)
|
||||
queryset = queryset.filter(belong_dept__in = belong_depts)
|
||||
elif '本级' in data_range:
|
||||
queryset = queryset.filter(belong_dept = user.dept)
|
||||
return queryset
|
||||
|
||||
@action(methods=['get'], detail=False, perms_map = {'get':'qaction_my'})
|
||||
def my(self, request, *args, **kwargs):
|
||||
|
|
|
|||
Loading…
Reference in New Issue