feat: update assessment portal

This commit is contained in:
2026-07-06 16:53:06 +08:00
parent a75e857c71
commit f385f9747b
17 changed files with 1866 additions and 884 deletions
+25
View File
@@ -36,3 +36,28 @@ class UploadRecord(db.Model):
upload_time = db.Column(db.DateTime, default=datetime.utcnow)
user = db.relationship("User", backref=db.backref("uploads", lazy=True))
class AppSetting(db.Model):
__tablename__ = "app_settings"
id = db.Column(db.Integer, primary_key=True)
key = db.Column(db.String(100), unique=True, nullable=False)
value = db.Column(db.String(255), nullable=False)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
@classmethod
def get_bool(cls, key: str, default: bool = False) -> bool:
setting = cls.query.filter_by(key=key).first()
if setting is None:
return default
return setting.value.strip().lower() in {"1", "true", "yes", "on"}
@classmethod
def set_bool(cls, key: str, value: bool) -> "AppSetting":
setting = cls.query.filter_by(key=key).first()
if setting is None:
setting = cls(key=key, value="")
db.session.add(setting)
setting.value = "true" if value else "false"
return setting