|
@@ -7,7 +7,7 @@ from rest_framework.decorators import action
|
|
from utils import response_ok, response_error
|
|
from utils import response_ok, response_error
|
|
from utils.custom_modelviewset import CustomModelViewSet
|
|
from utils.custom_modelviewset import CustomModelViewSet
|
|
from utils.exceptions import CustomError
|
|
from utils.exceptions import CustomError
|
|
-from utils.permission import IsTenantUser, permission_required, isLogin
|
|
|
|
|
|
+from utils.permission import IsTenantUser, permission_required, isLogin, IsEmployee
|
|
from apps.tenant.repair_order.models import RepairOrder, RepairOrderRecord, RepairOrderComment, RepairOrderFinish
|
|
from apps.tenant.repair_order.models import RepairOrder, RepairOrderRecord, RepairOrderComment, RepairOrderFinish
|
|
from apps.tenant.repair_order.filters import RepairOrderFilter
|
|
from apps.tenant.repair_order.filters import RepairOrderFilter
|
|
from apps.upload.models import Upload
|
|
from apps.upload.models import Upload
|
|
@@ -85,14 +85,15 @@ class DispatchRepairOrderView(generics.ListAPIView):
|
|
|
|
|
|
|
|
|
|
class RepairOrderViewSet(CustomModelViewSet):
|
|
class RepairOrderViewSet(CustomModelViewSet):
|
|
- permission_classes = [isLogin, ]
|
|
|
|
|
|
+ permission_classes = [IsTenantUser, ]
|
|
queryset = RepairOrder.objects.filter(delete=False)
|
|
queryset = RepairOrder.objects.filter(delete=False)
|
|
serializer_class = RepairOrderSerializer
|
|
serializer_class = RepairOrderSerializer
|
|
|
|
|
|
def filter_queryset(self, queryset):
|
|
def filter_queryset(self, queryset):
|
|
- appid = self.request.GET.get('appid')
|
|
|
|
- app = WechatApplet.getByAppid(appid)
|
|
|
|
- queryset = queryset.filter(tenant=app.tenant, user=self.request.user)
|
|
|
|
|
|
+ queryset = queryset.filter(tenant=self.request.user.employee.tenant, )
|
|
|
|
+ if self.request.user.is_repair:
|
|
|
|
+ queryset = queryset.filter(user=self.request.user)
|
|
|
|
+ # user_ids = self.repair_users.split(',') or [] TODO 维修师傅一对一
|
|
f = RepairOrderFilter(self.request.GET, queryset=queryset)
|
|
f = RepairOrderFilter(self.request.GET, queryset=queryset)
|
|
return f.qs
|
|
return f.qs
|
|
|
|
|
|
@@ -116,8 +117,8 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
def check(self, request, pk):
|
|
def check(self, request, pk):
|
|
# 审核
|
|
# 审核
|
|
try:
|
|
try:
|
|
- # if not self.request.user.has_perm('repair_order.check_repair_order'):
|
|
|
|
- # raise CustomError(u"您没有[报修工单-审核]权限,无法执行该操作,请联系管理员分配权限!")
|
|
|
|
|
|
+ if not self.request.user.is_admin():
|
|
|
|
+ raise CustomError(u"权限不足,禁止操作!")
|
|
with transaction.atomic():
|
|
with transaction.atomic():
|
|
user = self.request.user
|
|
user = self.request.user
|
|
instance = RepairOrder.get_instance_by_id(pk, user.employee.tenant)
|
|
instance = RepairOrder.get_instance_by_id(pk, user.employee.tenant)
|
|
@@ -132,8 +133,8 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
def hang_up(self, request, pk):
|
|
def hang_up(self, request, pk):
|
|
# 挂起
|
|
# 挂起
|
|
try:
|
|
try:
|
|
- # if not self.request.user.has_perm('repair_order.finish_repair_order'):
|
|
|
|
- # raise CustomError(u"您没有[报修工单-审核]权限,无法执行该操作,请联系管理员分配权限!")
|
|
|
|
|
|
+ if not self.request.user.is_admin():
|
|
|
|
+ raise CustomError(u"权限不足,禁止操作!")
|
|
reason = request.data.get('reason')
|
|
reason = request.data.get('reason')
|
|
if not reason:
|
|
if not reason:
|
|
raise CustomError('请填写挂起原因')
|
|
raise CustomError('请填写挂起原因')
|
|
@@ -151,8 +152,8 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
def cancel_hang_up(self, request, pk):
|
|
def cancel_hang_up(self, request, pk):
|
|
# 取消挂起,继续施工
|
|
# 取消挂起,继续施工
|
|
try:
|
|
try:
|
|
- # if not self.request.user.has_perm('repair_order.finish_repair_order'):
|
|
|
|
- # raise CustomError(u"您没有[报修工单-审核]权限,无法执行该操作,请联系管理员分配权限!")
|
|
|
|
|
|
+ if not self.request.user.is_admin():
|
|
|
|
+ raise CustomError(u"权限不足,禁止操作!")
|
|
with transaction.atomic():
|
|
with transaction.atomic():
|
|
user = self.request.user
|
|
user = self.request.user
|
|
instance = RepairOrder.get_instance_by_id(pk, user.employee.tenant)
|
|
instance = RepairOrder.get_instance_by_id(pk, user.employee.tenant)
|
|
@@ -234,8 +235,8 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
def invalid(self, request, pk):
|
|
def invalid(self, request, pk):
|
|
# 作废
|
|
# 作废
|
|
try:
|
|
try:
|
|
- # if not self.request.user.has_perm('repair_order.invalid_repair_order'):
|
|
|
|
- # raise CustomError(u"您没有[报修工单-作废]权限,无法执行该操作,请联系管理员分配权限!")
|
|
|
|
|
|
+ if not self.request.user.is_admin():
|
|
|
|
+ raise CustomError(u"权限不足,禁止操作!")
|
|
with transaction.atomic():
|
|
with transaction.atomic():
|
|
user = self.request.user
|
|
user = self.request.user
|
|
instance = RepairOrder.get_instance_by_id(pk, user.employee.tenant)
|
|
instance = RepairOrder.get_instance_by_id(pk, user.employee.tenant)
|
|
@@ -286,6 +287,8 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
@permission_required('repair_order.delete_repair_order')
|
|
@permission_required('repair_order.delete_repair_order')
|
|
def destroy(self, request, *args, **kwargs):
|
|
def destroy(self, request, *args, **kwargs):
|
|
try:
|
|
try:
|
|
|
|
+ if not self.request.user.is_admin():
|
|
|
|
+ raise CustomError(u"权限不足,禁止操作!")
|
|
with transaction.atomic():
|
|
with transaction.atomic():
|
|
instance = self.get_object()
|
|
instance = self.get_object()
|
|
instance.delete = True
|
|
instance.delete = True
|