state simple 序列化
This commit is contained in:
parent
21463c1ba2
commit
c97045112a
|
@ -99,3 +99,22 @@ class CustomField(BaseModel):
|
||||||
field_choice = models.JSONField('radio、checkbox、select的选项', default=dict, blank=True,
|
field_choice = models.JSONField('radio、checkbox、select的选项', default=dict, blank=True,
|
||||||
help_text='radio,checkbox,select,multiselect类型可供选择的选项,格式为json如:{"1":"中国", "2":"美国"},注意数字也需要引号')
|
help_text='radio,checkbox,select,multiselect类型可供选择的选项,格式为json如:{"1":"中国", "2":"美国"},注意数字也需要引号')
|
||||||
label = models.JSONField('标签', blank=True, default=dict, help_text='自定义标签,json格式,调用方可根据标签自行处理特殊场景逻辑,loonflow只保存文本内容')
|
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):
|
||||||
|
"""
|
||||||
|
工单流转日志
|
||||||
|
"""
|
||||||
|
|
|
@ -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
|
from .models import State, Workflow, Transition, CustomField
|
||||||
|
|
||||||
|
@ -13,10 +13,23 @@ class StateSerializer(ModelSerializer):
|
||||||
model = State
|
model = State
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
class StateSimpleSerializer(ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = State
|
||||||
|
fields = ['id', 'name']
|
||||||
|
|
||||||
class TransitionSerializer(ModelSerializer):
|
class TransitionSerializer(ModelSerializer):
|
||||||
|
source_state_ = StateSimpleSerializer(source='source_state', read_only=True)
|
||||||
|
destination_state_ = StateSimpleSerializer(source='destination_state', read_only=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Transition
|
model = Transition
|
||||||
fields = '__all__'
|
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 CustomFieldSerializer(ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
Loading…
Reference in New Issue