From 5ad314697270c86fa731139517bedff40330e645 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 12 Oct 2021 11:03:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8D=E9=A6=88=E6=96=87=E4=BB=B6=E5=8F=AF?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=AD=90=E5=85=AC=E5=8F=B8=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/supervision/views.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index 81716e9..70258c3 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -372,6 +372,25 @@ class TaskDeptViewSet(ModelViewSet): filterset_fields = ['task','dept'] ordering = ['dept__sort'] + 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, '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(dept__in = belong_depts) + elif '本级' in data_range: + queryset = queryset.filter(dept = user.dept) + return queryset + @action(methods=['put'], detail=True, perms_map = {'put':'record_confirm'}) def confirm(self, request, *args, **kwargs): """