From 5ad314697270c86fa731139517bedff40330e645 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 12 Oct 2021 11:03:55 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8F=8D=E9=A6=88=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=8F=AF=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): """ From 118ebb0a77936c90385e3a5851afeb0a25a12506 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 12 Oct 2021 11:18:30 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E4=B8=8B=E7=BA=A7?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E7=9A=84=E6=8A=A5=E9=80=81=E5=8F=8D=E9=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/supervision/views.py | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index 70258c3..0f9a9c8 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -1,6 +1,7 @@ from django.conf import settings from django.core.cache import cache from django.db.models import Count, Q +from django.db.models import query from django.db.models.query import QuerySet from django.shortcuts import render from django.utils import timezone @@ -165,7 +166,12 @@ class TaskViewSet(CreateUpdateCustomMixin, ModelViewSet): """ 我的报送任务 """ - queryset = TaskDept.objects.filter(dept=request.user.dept).exclude(task__state='待发布').order_by('-create_time') + queryset = TaskDept.objects.exclude(task__state='待发布').order_by('-create_time') + mydept = request.user.dept + belong_depts = get_child_queryset2(mydept) + queryset = queryset.filter(dept__in = belong_depts) + dept = self.request.query_params.get('dept', mydept) + queryset = queryset.filter(dept=dept) serializer = TaskDeptSerializer(queryset, many=True) return Response(serializer.data) @@ -372,25 +378,6 @@ 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): """ From fb2174bff4a3323f047723c63738ec077f8ff8cb Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 12 Oct 2021 11:28:06 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/supervision/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index 0f9a9c8..8e206a8 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -170,7 +170,7 @@ class TaskViewSet(CreateUpdateCustomMixin, ModelViewSet): mydept = request.user.dept belong_depts = get_child_queryset2(mydept) queryset = queryset.filter(dept__in = belong_depts) - dept = self.request.query_params.get('dept', mydept) + dept = self.request.query_params.get('dept', mydept.id) queryset = queryset.filter(dept=dept) serializer = TaskDeptSerializer(queryset, many=True) return Response(serializer.data)