state simple 序列化

This commit is contained in:
caoqianming 2021-08-20 10:29:11 +08:00
parent 21463c1ba2
commit c97045112a
2 changed files with 33 additions and 1 deletions

View File

@ -99,3 +99,22 @@ class CustomField(BaseModel):
field_choice = models.JSONField('radio、checkbox、select的选项', default=dict, blank=True,
help_text='radio,checkbox,select,multiselect类型可供选择的选项格式为json如:{"1":"中国", "2":"美国"},注意数字也需要引号')
label = models.JSONField('标签', blank=True, default=dict, help_text='自定义标签json格式调用方可根据标签自行处理特殊场景逻辑loonflow只保存文本内容')
class Ticket(CommonBModel):
"""
工单
"""
title = models.CharField('标题', max_length=500, blank=True, default='', help_text="工单标题")
workflow = models.ForeignKey(Workflow, on_delete=models.CASCADE, verbose_name='关联工作流')
sn = models.CharField('流水号', max_length=25, help_text="工单的流水号")
state = models.ForeignKey(State, on_delete=models.CASCADE, verbose_name='当前状态', related_name='ticket_state')
parent = models.ForeignKey('self', null=True, blank=True, on_delete=models.CASCADE, verbose_name='父工单')
parent_state = models.ForeignKey(State, null=True, blank=True, on_delete=models.CASCADE, verbose_name='父工单状态', related_name='ticket_parent_state')
formdata = models.JSONField('工单表单', default=dict, help_text='工单所有字段内容')
in_add_node = models.BooleanField('加签状态中', default=False, help_text='是否处于加签状态下')
add_node_man = models.CharField('加签人', max_length=50, default='', blank=True, help_text='加签操作的人,工单当前处理人处理完成后会回到该处理人,当处于加签状态下才有效')
class TicketFlow(BaseModel):
"""
工单流转日志
"""

View File

@ -1,4 +1,4 @@
from rest_framework.serializers import ModelSerializer
from rest_framework.serializers import ModelSerializer, SerializerMethodField, CharField
from .models import State, Workflow, Transition, CustomField
@ -13,10 +13,23 @@ class StateSerializer(ModelSerializer):
model = State
fields = '__all__'
class StateSimpleSerializer(ModelSerializer):
class Meta:
model = State
fields = ['id', 'name']
class TransitionSerializer(ModelSerializer):
source_state_ = StateSimpleSerializer(source='source_state', read_only=True)
destination_state_ = StateSimpleSerializer(source='destination_state', read_only=True)
class Meta:
model = Transition
fields = '__all__'
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.select_related('source_state','destination_state')
return queryset
class CustomFieldSerializer(ModelSerializer):
class Meta: