修复前后端显示异常问题(受试者、中心、负责人、日期等)
This commit is contained in:
@@ -1,14 +1,17 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
from app.schemas.user import UserDisplay
|
||||
|
||||
|
||||
class AttachmentRead(BaseModel):
|
||||
id: uuid.UUID
|
||||
filename: str
|
||||
file_size: int
|
||||
uploaded_by: uuid.UUID
|
||||
file_size: int = Field(alias="size")
|
||||
uploaded_by: UserDisplay | None = None
|
||||
uploaded_by_id: uuid.UUID | None = None
|
||||
uploaded_at: datetime
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
model_config = ConfigDict(from_attributes=True, populate_by_name=True)
|
||||
|
||||
@@ -3,6 +3,7 @@ from datetime import datetime
|
||||
from typing import Literal, Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from app.schemas.user import UserDisplay
|
||||
|
||||
StudyRole = Literal["PM", "CRA", "PV", "IMP", "ADMIN"]
|
||||
|
||||
@@ -27,3 +28,7 @@ class StudyMemberRead(BaseModel):
|
||||
added_at: datetime
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class StudyMemberReadWithUser(StudyMemberRead):
|
||||
user: Optional[UserDisplay] = None
|
||||
|
||||
@@ -4,12 +4,21 @@ from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
from app.schemas.user import UserDisplay
|
||||
|
||||
|
||||
class SiteDisplay(BaseModel):
|
||||
id: uuid.UUID
|
||||
name: Optional[str] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
class MilestoneCreate(BaseModel):
|
||||
type: str
|
||||
name: Optional[str] = None
|
||||
planned_date: Optional[date] = None
|
||||
owner_id: Optional[uuid.UUID] = None
|
||||
site_id: Optional[uuid.UUID] = None
|
||||
notes: Optional[str] = None
|
||||
status: str = Field(default="NOT_STARTED")
|
||||
|
||||
@@ -20,6 +29,7 @@ class MilestoneUpdate(BaseModel):
|
||||
actual_date: Optional[date] = None
|
||||
status: Optional[str] = None
|
||||
owner_id: Optional[uuid.UUID] = None
|
||||
site_id: Optional[uuid.UUID] = None
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
@@ -32,6 +42,9 @@ class MilestoneRead(BaseModel):
|
||||
actual_date: Optional[date]
|
||||
status: str
|
||||
owner_id: Optional[uuid.UUID]
|
||||
site_id: Optional[uuid.UUID] = None
|
||||
owner: Optional[UserDisplay] = None
|
||||
site: Optional[SiteDisplay] = None
|
||||
notes: Optional[str]
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
@@ -4,6 +4,8 @@ from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
from app.schemas.user import UserDisplay
|
||||
|
||||
|
||||
class TaskCreate(BaseModel):
|
||||
milestone_id: Optional[uuid.UUID] = None
|
||||
@@ -31,6 +33,7 @@ class TaskRead(BaseModel):
|
||||
title: str
|
||||
description: Optional[str]
|
||||
assignee_id: Optional[uuid.UUID]
|
||||
assignee: Optional[UserDisplay] = None
|
||||
priority: str
|
||||
due_date: Optional[date]
|
||||
status: str
|
||||
|
||||
@@ -7,6 +7,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
||||
UserRole = Literal["PM", "CRA", "PV", "IMP", "ADMIN"]
|
||||
|
||||
|
||||
class UserDisplay(BaseModel):
|
||||
id: uuid.UUID
|
||||
username: str
|
||||
display_name: Optional[str] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class UserBase(BaseModel):
|
||||
username: str = Field(min_length=1)
|
||||
role: UserRole
|
||||
|
||||
Reference in New Issue
Block a user