学生资料设置、头像与自动备份恢复。
首页卡片支持修改/删除;详情页设置 Tab 可维护学校、年级与头像;系统设置新增数据备份下载与恢复;备份默认存 /root/grade-archive-backups,详见 docs/BACKUP.md。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -136,6 +136,7 @@ class StudentCreate(BaseModel):
|
||||
school_level: SchoolLevelEnum = SchoolLevelEnum.junior_high
|
||||
grade: str | None = None
|
||||
class_name: str | None = None
|
||||
school_name: str | None = Field(default=None, max_length=128)
|
||||
|
||||
|
||||
class StudentUpdate(BaseModel):
|
||||
@@ -143,6 +144,7 @@ class StudentUpdate(BaseModel):
|
||||
school_level: SchoolLevelEnum | None = None
|
||||
grade: str | None = None
|
||||
class_name: str | None = None
|
||||
school_name: str | None = Field(default=None, max_length=128)
|
||||
|
||||
|
||||
class StudentOut(BaseModel):
|
||||
@@ -151,10 +153,25 @@ class StudentOut(BaseModel):
|
||||
school_level: SchoolLevelEnum
|
||||
grade: str | None
|
||||
class_name: str | None
|
||||
school_name: str | None
|
||||
has_avatar: bool = False
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
@classmethod
|
||||
def from_student(cls, student) -> "StudentOut":
|
||||
return cls(
|
||||
id=student.id,
|
||||
name=student.name,
|
||||
school_level=SchoolLevelEnum(student.school_level.value),
|
||||
grade=student.grade,
|
||||
class_name=student.class_name,
|
||||
school_name=student.school_name,
|
||||
has_avatar=bool(getattr(student, "avatar_path", None)),
|
||||
created_at=student.created_at,
|
||||
)
|
||||
|
||||
|
||||
class SubjectOut(BaseModel):
|
||||
id: int
|
||||
@@ -335,3 +352,9 @@ class CompositionOut(BaseModel):
|
||||
updated_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class BackupInfoOut(BaseModel):
|
||||
filename: str
|
||||
size_bytes: int
|
||||
created_at: datetime
|
||||
|
||||
Reference in New Issue
Block a user