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