diff --git a/lms/lmsdb/bootstrap.py b/lms/lmsdb/bootstrap.py index 09f08fe6..cae8fa24 100644 --- a/lms/lmsdb/bootstrap.py +++ b/lms/lmsdb/bootstrap.py @@ -338,6 +338,12 @@ def _linter_email_migration(): log.info(f'{new_mail_address} already exists in User') +def _add_is_model_solution_column() -> bool: + Solution = models.Solution + _migrate_column_in_table_if_needed(Solution, Solution.is_model_solution) + return True + + def is_tables_exists(tables: Union[Model, Iterable[Model]]) -> bool: if not isinstance(tables, (tuple, list)): tables = (tables,) @@ -369,6 +375,8 @@ def main(): _add_user_course_constaint() _linter_email_migration() + _add_is_model_solution_column() + models.create_basic_roles() if models.User.select().count() == 0: models.create_demo_users() diff --git a/lms/lmsdb/models.py b/lms/lmsdb/models.py index 1b6ecca5..029c9507 100644 --- a/lms/lmsdb/models.py +++ b/lms/lmsdb/models.py @@ -624,6 +624,7 @@ class Solution(BaseModel): exercise = ForeignKeyField(Exercise, backref='solutions') solver = ForeignKeyField(User, backref='solutions') checker = ForeignKeyField(User, null=True, backref='solutions') + is_key_answer = BooleanField(default=False) state = CharField( choices=STATES.to_choices(), default=STATES.CREATED.name,