opl serializer 增加字段

This commit is contained in:
caoqianming 2022-10-13 14:51:13 +08:00
parent 348ef951c6
commit 2b4ae76eff
2 changed files with 25 additions and 0 deletions

View File

@ -173,6 +173,9 @@ class GasCheckSerializer(CustomModelSerializer):
class OplCreateUpdateSerializer(CustomModelSerializer): class OplCreateUpdateSerializer(CustomModelSerializer):
id = serializers.CharField(read_only=True) id = serializers.CharField(read_only=True)
cate_name = serializers.CharField(source='cate.name', read_only=True)
cate_code = serializers.CharField(source='cate.code', read_only=True)
operation_name = serializers.CharField(source='operation.name', read_only=True)
class Meta: class Meta:
model = Opl model = Opl
@ -205,6 +208,7 @@ class OplSerializer(CustomModelSerializer):
class OplListSerializer(CustomModelSerializer): class OplListSerializer(CustomModelSerializer):
cate_name = serializers.CharField(source='cate.name', read_only=True) cate_name = serializers.CharField(source='cate.name', read_only=True)
cate_code = serializers.CharField(source='cate.code', read_only=True) cate_code = serializers.CharField(source='cate.code', read_only=True)
operation_name = serializers.CharField(source='operation.name', read_only=True)
cate_ = OplCateSimpleSerializer(source='cate', read_only=True) cate_ = OplCateSimpleSerializer(source='cate', read_only=True)
dept_do_ = DeptSimpleSerializer(source='dept_do', read_only=True) dept_do_ = DeptSimpleSerializer(source='dept_do', read_only=True)
charger_ = UserSimpleSerializer(source='charger', read_only=True) charger_ = UserSimpleSerializer(source='charger', read_only=True)
@ -220,6 +224,7 @@ class OplListSerializer(CustomModelSerializer):
class OplDetailSerializer(CustomModelSerializer): class OplDetailSerializer(CustomModelSerializer):
cate_name = serializers.CharField(source='cate.name', read_only=True) cate_name = serializers.CharField(source='cate.name', read_only=True)
cate_code = serializers.CharField(source='cate.code', read_only=True) cate_code = serializers.CharField(source='cate.code', read_only=True)
operation_name = serializers.CharField(source='operation.name', read_only=True)
operation_ = OperationDetailSerializer(source='operation', read_only=True) operation_ = OperationDetailSerializer(source='operation', read_only=True)
dept_do_ = DeptSimpleSerializer(source='dept_do', read_only=True) dept_do_ = DeptSimpleSerializer(source='dept_do', read_only=True)
charger_ = UserSimpleSerializer(source='charger', read_only=True) charger_ = UserSimpleSerializer(source='charger', read_only=True)

View File

@ -45,12 +45,22 @@ class OperationViewSet(CustomModelViewSet):
obj = self.get_object() obj = self.get_object()
if obj.state != Operation.OP_CREATE: if obj.state != Operation.OP_CREATE:
raise ParseError('非创建状态不可修改') raise ParseError('非创建状态不可修改')
user = request.user
if user == obj.create_by or user.is_superuser:
pass
else:
raise ParseError('非创建人不可修改')
return super().update(request, *args, **kwargs) return super().update(request, *args, **kwargs)
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
obj = self.get_object() obj = self.get_object()
if obj.state != Operation.OP_CREATE: if obj.state != Operation.OP_CREATE:
raise ParseError('非创建状态不可删除') raise ParseError('非创建状态不可删除')
user = request.user
if user == obj.create_by or user.is_superuser:
pass
else:
raise ParseError('非创建人不可删除')
obj.delete() obj.delete()
return Response(status=204) return Response(status=204)
@ -68,12 +78,22 @@ class OplViewSet(CustomModelViewSet):
obj = self.get_object() obj = self.get_object()
if obj.ticket and obj.ticket.act_state != Ticket.TICKET_ACT_STATE_DRAFT: if obj.ticket and obj.ticket.act_state != Ticket.TICKET_ACT_STATE_DRAFT:
raise ParseError('许可证已处理不可删除') raise ParseError('许可证已处理不可删除')
user = request.user
if user == obj.create_by or user.is_superuser:
pass
else:
raise ParseError('非创建人不可删除')
return super().destroy(request, *args, **kwargs) return super().destroy(request, *args, **kwargs)
def update(self, request, *args, **kwargs): def update(self, request, *args, **kwargs):
obj = self.get_object() obj = self.get_object()
if obj.ticket and obj.ticket.act_state != Ticket.TICKET_ACT_STATE_DRAFT: if obj.ticket and obj.ticket.act_state != Ticket.TICKET_ACT_STATE_DRAFT:
raise ParseError('许可证已处理不可编辑') raise ParseError('许可证已处理不可编辑')
user = request.user
if user == obj.create_by or user.is_superuser:
pass
else:
raise ParseError('非创建人不可编辑')
return super().update(request, *args, **kwargs) return super().update(request, *args, **kwargs)
@action(methods=['post'], detail=True, perms_map={'post': '*'}, @action(methods=['post'], detail=True, perms_map={'post': '*'},