initial commit
This commit is contained in:
122
apps/project/schemas/problem.py
Normal file
122
apps/project/schemas/problem.py
Normal file
@@ -0,0 +1,122 @@
|
||||
from apps.project.models import Problem
|
||||
from ninja import Field, Schema, ModelSchema
|
||||
from typing import List, Optional
|
||||
|
||||
# 删除schema
|
||||
class DeleteSchema(Schema):
|
||||
ids: List[int]
|
||||
|
||||
# 问题单-输出schema
|
||||
class ProblemModelOutSchema(ModelSchema):
|
||||
related: Optional[bool] = Field(False) # 给前端反应是否为关联的问题单
|
||||
hang: bool = Field(False) # 给前端反应是否是悬挂状态(即没有关联case)
|
||||
|
||||
class Config:
|
||||
model = Problem
|
||||
model_exclude = ['case', 'remark', 'sort']
|
||||
|
||||
# 查询问题单
|
||||
class ProblemFilterSchema(Schema):
|
||||
project_id: int = Field(None, alias='projectId')
|
||||
round_id: str = Field(None, alias='round')
|
||||
dut_id: str = Field(None, alias='dut')
|
||||
design_id: str = Field(None, alias='designDemand')
|
||||
test_id: str = Field(None, alias='testDemand')
|
||||
case_id: str = Field(None, alias='case')
|
||||
key: str = Field(None, alias='key')
|
||||
# 其他字段
|
||||
ident: str = Field(None, alias='ident')
|
||||
name: str = Field(None, alias='name')
|
||||
status: str = Field(None, alias='status')
|
||||
type: str = Field(None, alias='type')
|
||||
grade: str = Field(None, alias='grade')
|
||||
operation: str = Field(None, alias='operation')
|
||||
postPerson: str = Field(None, alias='postPerson')
|
||||
|
||||
class ProblemFilterWithHangSchema(ProblemFilterSchema):
|
||||
# 搜索增加hang字段
|
||||
hang: str = Field('3', alias='hang')
|
||||
|
||||
# 处理树状结构的schema
|
||||
class ProblemTreeReturnSchema(Schema):
|
||||
title: str = Field(..., alias='title')
|
||||
key: str = Field(..., alias='key')
|
||||
level: str = Field(..., alias='level')
|
||||
isLeaf: bool = Field(..., alias='isLeaf')
|
||||
|
||||
class ProblemTreeInputSchema(Schema):
|
||||
# 注意这里有alias
|
||||
project_id: int = Field(None, alias='projectId')
|
||||
key: str = Field(None, alias='key')
|
||||
level: str = Field(None, alias='level')
|
||||
isLeaf: bool = Field(None, alias='isLeaf')
|
||||
|
||||
# 增加问题单
|
||||
class ProblemCreateOutSchema(ModelSchema):
|
||||
class Config:
|
||||
model = Problem
|
||||
model_exclude = ['remark', 'sort', 'case']
|
||||
|
||||
# 更新,新增schema
|
||||
class ProblemCreateInputSchema(Schema):
|
||||
project_id: int = Field(..., alias="projectId")
|
||||
round_key: str = Field(None, alias="round")
|
||||
dut_key: str = Field(None, alias="dut")
|
||||
design_key: str = Field(None, alias="designDemand")
|
||||
test_key: str = Field(None, alias="testDemand")
|
||||
case_key: str = Field(None, alias="case")
|
||||
# 其他字段
|
||||
ident: str = Field(None, alias='ident')
|
||||
name: str = Field(None, alias='name')
|
||||
grade: str = Field(None, alias='grade')
|
||||
operation: str = Field("", alias='operation') # !重要:由于保存到数据库为null,则查询空字符串无法查询出来
|
||||
result: str = Field("", alias='result') # 问题影响
|
||||
status: str = Field(None, alias='status')
|
||||
type: str = Field(None, alias='type')
|
||||
postPerson: str = Field(None, alias='postPerson')
|
||||
postDate: str = Field(None, alias='postDate')
|
||||
designerPerson: str = Field("", alias='designerPerson')
|
||||
designDate: str = Field(None, alias='designDate')
|
||||
verifyPerson: str = Field("", alias='verifyPerson')
|
||||
verifyDate: str = Field(None, alias='verifyDate')
|
||||
closeMethod: List[str]
|
||||
# 2024年3月27日新增-处理方式字段
|
||||
solve: Optional[str] = ""
|
||||
# 2024年5月13日新增
|
||||
analysis: str = Field("", alias='analysis')
|
||||
effect_scope: str = Field("", alias='effect_scope')
|
||||
verify_result: str = Field("", alias='verify_result')
|
||||
|
||||
# 不带round_key、dut_key、design_key、test_key、case_key的更新Schema
|
||||
class ProblemUpdateInputSchema(Schema):
|
||||
project_id: int = Field(..., alias="projectId")
|
||||
# 其他字段
|
||||
ident: str = Field(None, alias='ident')
|
||||
name: str = Field(None, alias='name')
|
||||
grade: str = Field(None, alias='grade')
|
||||
operation: str = Field(None, alias='operation')
|
||||
result: str = Field(None, alias='result')
|
||||
status: str = Field(None, alias='status')
|
||||
type: str = Field(None, alias='type')
|
||||
postPerson: str = Field(None, alias='postPerson')
|
||||
postDate: str = Field(None, alias='postDate')
|
||||
designerPerson: str = Field(None, alias='designerPerson')
|
||||
designDate: str = Field(None, alias='designDate')
|
||||
verifyPerson: str = Field(None, alias='verifyPerson')
|
||||
verifyDate: str = Field(None, alias='verifyDate')
|
||||
closeMethod: List[str]
|
||||
# 5月13日新增字段
|
||||
analysis: str = Field(None, alias='analysis')
|
||||
effect_scope: str = Field(None, alias='effect_scope')
|
||||
verify_result: str = Field(None, alias='verify_result')
|
||||
# 更新字段
|
||||
solve: Optional[str] = None
|
||||
|
||||
class ProblemSingleInputSchema(Schema):
|
||||
project_id: int = Field(..., alias="projectId")
|
||||
round_id: str = Field(..., alias="round")
|
||||
dut_id: str = Field(..., alias="dut")
|
||||
design_id: str = Field(..., alias="designDemand")
|
||||
test_id: str = Field(..., alias="testDemand")
|
||||
case_id: str = Field(..., alias="case")
|
||||
problem_id: str = Field(..., alias="problem")
|
||||
Reference in New Issue
Block a user