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): """