可监督
-
+
diff --git a/server/apps/supervision/models.py b/server/apps/supervision/models.py
index 0529509..5d43cdd 100644
--- a/server/apps/supervision/models.py
+++ b/server/apps/supervision/models.py
@@ -73,6 +73,7 @@ class Record(CommonBModel):
state = models.CharField('记录状态', max_length=50, choices=state_choices, default='待上报')
is_yes = models.BooleanField('是否适用', default=True)
note = models.TextField('上报要求', null=True, blank=True)
+ opinion = models.TextField('修改意见', null=True, blank=True)
noteb = models.TextField('上报说明', null=True, blank=True)
files = models.ManyToManyField(File, verbose_name="关联文件")
class Meta:
diff --git a/server/apps/supervision/permission.py b/server/apps/supervision/permission.py
new file mode 100644
index 0000000..ac65ca0
--- /dev/null
+++ b/server/apps/supervision/permission.py
@@ -0,0 +1,10 @@
+from apps.system.permission import RbacPermission, has_permission
+
+
+class RecordPermission(RbacPermission):
+ def has_object_permission(self, request, view, obj):
+ if has_permission('record_confirm', request.user):
+ return True
+ if request.user.dept == obj.belong_dept:
+ return False
+ return True
\ No newline at end of file
diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py
index c089334..e1ca4b3 100644
--- a/server/apps/supervision/views.py
+++ b/server/apps/supervision/views.py
@@ -5,7 +5,7 @@ from django.db.models.query import QuerySet
from django.shortcuts import render
from django.utils import timezone
from rest_framework import status
-from rest_framework.decorators import action
+from rest_framework.decorators import action, permission_classes
from rest_framework.mixins import ListModelMixin
from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet, ModelViewSet
@@ -33,7 +33,7 @@ class ContentViewSet(CreateUpdateCustomMixin, ModelViewSet):
pagination_class = None
search_fields = ['name', 'desc']
filterset_fields = ['type','can_doself']
- ordering = ['type__sort', 'create_time']
+ ordering = ['sortnum', 'type__sort', 'create_time']
class TaskViewSet(CreateUpdateCustomMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'task_create',
@@ -165,6 +165,7 @@ def cal_task_rate(task, dept):
instance.save()
from utils.queryset import get_child_queryset2
+from .permission import RecordPermission
class RecordViewSet(RbacFilterSet, PageOrNot, CreateUpdateCustomMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'record_create',
@@ -260,22 +261,22 @@ class RecordViewSet(RbacFilterSet, PageOrNot, CreateUpdateCustomMixin, ModelView
return Response(status=status.HTTP_200_OK)
return Response('记录状态错误', status=status.HTTP_400_BAD_REQUEST)
- @action(methods=['put'], detail=True, perms_map = {'put':'record_reject'})
+ @action(methods=['put'], detail=True, perms_map = {'put':'record_reject'}, permission_classes=[RecordPermission])
def reject(self, request, *args, **kwargs):
"""
驳回
"""
obj = self.get_object()
if obj.state == '已上报':
- if request.data.get('note', None):
- obj.note = request.data['note']
+ if request.data.get('opinion', None):
+ obj.opinion = request.data['opinion']
obj.state = '待整改'
obj.save()
if obj.task:
cal_task_rate(obj.task, obj.belong_dept)
return Response(status=status.HTTP_200_OK)
else:
- return Response('请填写备注', status=status.HTTP_400_BAD_REQUEST)
+ return Response('请填写修改意见', status=status.HTTP_400_BAD_REQUEST)
return Response('记录状态错误', status=status.HTTP_400_BAD_REQUEST)
@action(methods=['put'], detail=True, perms_map = {'put':'record_confirm'})
@@ -284,7 +285,7 @@ class RecordViewSet(RbacFilterSet, PageOrNot, CreateUpdateCustomMixin, ModelView
确认
"""
obj = self.get_object()
- if obj.state == '已上报':
+ if obj.state in ['已上报', '待上报']:
obj.state = '已确认'
obj.save()
if obj.task:
diff --git a/server/apps/system/models.py b/server/apps/system/models.py
index 3987b9b..061d595 100644
--- a/server/apps/system/models.py
+++ b/server/apps/system/models.py
@@ -64,7 +64,7 @@ class Organization(SoftModel):
choices=organization_type_choices, default='部门')
pid = models.ForeignKey('self', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='父')
- sort = models.IntegerField('排序', default=1)
+ sort = models.CharField('排序', default="", max_length=100)
can_supervision = models.BooleanField('是否可监督', default=False)
class Meta:
verbose_name = '组织架构'
diff --git a/server/apps/system/views.py b/server/apps/system/views.py
index 83f3e22..938cddd 100644
--- a/server/apps/system/views.py
+++ b/server/apps/system/views.py
@@ -291,6 +291,7 @@ class UserViewSet(ModelViewSet):
'id': user.id,
'username': user.username,
'name': user.name,
+ 'dept': user.dept,
'roles': user.roles.all().values_list('name', flat=True),
# 'avatar': request._request._current_scheme_host + '/media/' + str(user.image),
'avatar': user.avatar,