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.exceptions import ParseError
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
|
from utils.queryset import get_child_queryset2
|
||||||
|
|
||||||
class QualiLibViewSet(PageOrNot, ListModelMixin, GenericViewSet):
|
class QualiLibViewSet(PageOrNot, ListModelMixin, GenericViewSet):
|
||||||
perms_map = {'get': '*'}
|
perms_map = {'get': '*'}
|
||||||
|
|
@ -75,6 +76,25 @@ class QOrgViewSet(ListModelMixin, GenericViewSet):
|
||||||
serializer_class = QOrgListSerializer
|
serializer_class = QOrgListSerializer
|
||||||
ordering = ['-create_time']
|
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'})
|
@action(methods=['get'], detail=False, perms_map = {'get':'qtask_my'})
|
||||||
def my(self, request, *args, **kwargs):
|
def my(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|
@ -111,6 +131,24 @@ class QActionViewSet(PageOrNot, ListModelMixin, DestroyModelMixin, RetrieveModel
|
||||||
return QActionDetailSerializer
|
return QActionDetailSerializer
|
||||||
return super().get_serializer_class()
|
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'})
|
@action(methods=['get'], detail=False, perms_map = {'get':'qaction_my'})
|
||||||
def my(self, request, *args, **kwargs):
|
def my(self, request, *args, **kwargs):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue