- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
35 lines
1.7 KiB
Python
35 lines
1.7 KiB
Python
"""
|
|
课程考试设置模型
|
|
"""
|
|
from sqlalchemy import Column, Integer, ForeignKey, Boolean
|
|
from sqlalchemy.orm import relationship
|
|
from app.models.base import BaseModel, SoftDeleteMixin, AuditMixin
|
|
|
|
|
|
class CourseExamSettings(BaseModel, SoftDeleteMixin, AuditMixin):
|
|
"""课程考试设置表"""
|
|
__tablename__ = "course_exam_settings"
|
|
|
|
course_id = Column(Integer, ForeignKey("courses.id"), unique=True, nullable=False, comment="课程ID")
|
|
|
|
# 题型数量设置
|
|
single_choice_count = Column(Integer, default=4, nullable=False, comment="单选题数量")
|
|
multiple_choice_count = Column(Integer, default=2, nullable=False, comment="多选题数量")
|
|
true_false_count = Column(Integer, default=1, nullable=False, comment="判断题数量")
|
|
fill_blank_count = Column(Integer, default=2, nullable=False, comment="填空题数量")
|
|
essay_count = Column(Integer, default=1, nullable=False, comment="问答题数量")
|
|
|
|
# 考试参数设置
|
|
duration_minutes = Column(Integer, default=10, nullable=False, comment="考试时长(分钟)")
|
|
difficulty_level = Column(Integer, default=3, nullable=False, comment="难度系数(1-5)")
|
|
passing_score = Column(Integer, default=60, nullable=False, comment="及格分数")
|
|
|
|
# 其他设置
|
|
is_enabled = Column(Boolean, default=True, nullable=False, comment="是否启用")
|
|
show_answer_immediately = Column(Boolean, default=False, nullable=False, comment="是否立即显示答案")
|
|
allow_retake = Column(Boolean, default=True, nullable=False, comment="是否允许重考")
|
|
max_retake_times = Column(Integer, default=3, nullable=True, comment="最大重考次数")
|
|
|
|
# 关系
|
|
course = relationship("Course", backref="exam_settings", uselist=False)
|