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