1
0
Fork 0
mirror of https://github.com/EDeev/tablo.git synced 2026-10-07 20:49:31 +03:00
tablo/app/models/metric.py
2026-05-19 13:49:09 +03:00

37 lines
1.5 KiB
Python

from app import db
METRIC_TYPES = [
'checkpoints', 'progress_bar', 'counter', 'stages',
'checklist', 'attendance', 'grades', 'deadlines',
'streak', 'effort_hours', 'rating_history',
]
METRIC_LABELS = {
'checkpoints': 'Контрольные точки',
'progress_bar': 'Накопление баллов',
'counter': 'Счётчик',
'stages': 'Этапы',
'checklist': 'Чеклист',
'attendance': 'Посещаемость',
'grades': 'Оценки',
'deadlines': 'Дедлайны',
'streak': 'Серия',
'effort_hours': 'Трудозатраты',
'rating_history': 'История оценок',
}
class Metric(db.Model):
__tablename__ = 'metrics'
id = db.Column(db.Integer, primary_key=True)
subject_config_id = db.Column(db.Integer, db.ForeignKey('subject_configs.id'), nullable=False)
type = db.Column(db.String(32), nullable=False)
label = db.Column(db.String(256), nullable=False)
config = db.Column(db.JSON, nullable=False, default=dict)
progress = db.Column(db.JSON, nullable=False, default=dict)
grid_col = db.Column(db.Integer, nullable=False, default=0)
grid_row = db.Column(db.Integer, nullable=False, default=0)
grid_w = db.Column(db.Integer, nullable=False, default=1)
grid_h = db.Column(db.Integer, nullable=False, default=1)
ai_prompt = db.Column(db.Text, nullable=True)