Loading .gitlab-ci.yml +4 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ # https://hub.docker.com/r/library/python image: python:latest # This folder is cached between builds # http://docs.gitlab.com/ce/ci/yaml/README.html#cache cache: Loading @@ -17,6 +18,9 @@ build: tags: - shared-fi before_script: - echo exit 0 > /usr/sbin/policy-rc.d - apt update && apt install -y redis-server - service redis-server start - python -V # Print out python version for debugging - pip install pipenv Loading app.py +6 −3 Original line number Diff line number Diff line Loading @@ -61,7 +61,8 @@ def cli_init_data(env): @click.argument('name') def cli_users_create(name): log.info(f"[CMD] Create User: {name}") password = click.prompt('Password', hide_input=True, confirmation_prompt=True) password = click.prompt('Password', hide_input=True, confirmation_prompt=True) user = manager.create_admin_user(name, password) log.info(f"[CMD] Created User: {user}") Loading @@ -70,7 +71,8 @@ def cli_users_create(name): @click.argument('name') def cli_users_set_password(name): log.info(f"[CMD] Update password for user: {name}") password = click.prompt('Password', hide_input=True, confirmation_prompt=True) password = click.prompt('Password', hide_input=True, confirmation_prompt=True) user = manager.update_users_password(name, password) log.info(f"[CMD] Updated password for user: {user}") Loading Loading @@ -104,7 +106,8 @@ def cli_course_creates(name): log.info(f"[CMD] Created Course: {course}") @courses_cli.command('create-role', help="Creates role by it's type in the course") @courses_cli.command( 'create-role', help="Creates role by it's type in the course") @click.argument('course') @click.argument('type') @click.argument('name', required=False) Loading management/data/__init__.py +3 −3 Original line number Diff line number Diff line Loading @@ -100,7 +100,8 @@ class DataManagement(object): """ with self.app.app_context(): course = general.find_course(course_name) role = self.creator.scaffold_role(course, role_type=role_type, name=name) role = self.creator.scaffold_role( course, role_type=role_type, name=name) self.db.session.commit() return role Loading @@ -108,4 +109,3 @@ class DataManagement(object): with self.app.app_context(): for user in User.query.all(): print(f"{user.username} ({user.id}) - {user.created_at}") management/data/data_dev.py +50 −32 Original line number Diff line number Diff line Loading @@ -14,11 +14,12 @@ def get_project(factory: DataFactory, course: Course, num: int): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW(), submissions_allowed_to=time.NOW() + timedelta(days=2), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time(), submissions_allowed_to=time.current_time() + timedelta(days=2), archive_from=time.current_time() + timedelta(days=30) ) return factory.create_project(course=course, name=f"HW0{num}", config=project_config) return factory.create_project( course=course, name=f"HW0{num}", config=project_config) def init_dev_data(app: Flask, db: SQLAlchemy): Loading @@ -41,15 +42,21 @@ def init_dev_data(app: Flask, db: SQLAlchemy): db.session.commit() # courses test_course1 = factory.create_course(codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course(codename='TestCourse2', name='test Course Two') test_course1 = factory.create_course( codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course( codename='TestCourse2', name='test Course Two') # groups tc1_students = factory.create_group(course=test_course1, name="seminar01") tc1_teachers = factory.create_group(course=test_course1, name="teachers") tc1_students = factory.create_group( course=test_course1, name="seminar01") tc1_teachers = factory.create_group( course=test_course1, name="teachers") tc2_students = factory.create_group(course=test_course2, name="seminar01") tc2_teachers = factory.create_group(course=test_course2, name="teachers") tc2_students = factory.create_group( course=test_course2, name="seminar01") tc2_teachers = factory.create_group( course=test_course2, name="teachers") tc1_hw01 = get_project(factory=factory, course=test_course1, num=1) tc1_hw03 = get_project(factory=factory, course=test_course1, num=3) Loading @@ -60,9 +67,9 @@ def init_dev_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() + timedelta(days=10), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() + timedelta(days=10), archive_from=time.current_time() + timedelta(days=30) ) ) Loading @@ -72,20 +79,26 @@ def init_dev_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() - timedelta(minutes=1), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() - timedelta(minutes=1), archive_from=time.current_time() + timedelta(days=30) ) ) # roles tc1_student = factory.scaffold_role(role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role(role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role(role_type='owner', course=test_course1) tc2_student = factory.scaffold_role(role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role(role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role(role_type='owner', course=test_course2) tc1_student = factory.scaffold_role( role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role( role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role( role_type='owner', course=test_course1) tc2_student = factory.scaffold_role( role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role( role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role( role_type='owner', course=test_course2) # roles lecturer1.roles.append(tc1_owner) Loading @@ -112,13 +125,17 @@ def init_dev_data(app: Flask, db: SQLAlchemy): tc2_sub2 = Submission(user=student2, project=tc2_hw01, parameters="") tc2_sub2.state = SubmissionState.ABORTED tc1_sub_p1_cancel = Submission(user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_cancel = Submission( user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_cancel.state = SubmissionState.CANCELLED tc1_sub_p1_abort = Submission(user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_abort = Submission( user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_abort.state = SubmissionState.ABORTED tc1_sub_p1_finished = Submission(user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_finished = Submission( user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_finished.state = SubmissionState.FINISHED tc1_sub_p1_in_progress = Submission(user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress = Submission( user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress.state = SubmissionState.IN_PROGRESS # Projects in groups Loading @@ -143,7 +160,8 @@ def init_dev_data(app: Flask, db: SQLAlchemy): # components factory.create_component(name='executor') factory.create_component(name='processing', component_type='processing') factory.create_component( name='processing', component_type='processing') # Commit to the DB db.session.commit() management/data/data_test.py +52 −36 Original line number Diff line number Diff line Loading @@ -25,15 +25,21 @@ def init_test_data(app: Flask, db: SQLAlchemy): ) # courses test_course1 = factory.create_course(codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course(codename='TestCourse2', name='test Course Two') test_course1 = factory.create_course( codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course( codename='TestCourse2', name='test Course Two') # groups tc1_students = factory.create_group(course=test_course1, name="seminar01") tc1_teachers = factory.create_group(course=test_course1, name="teachers") tc1_students = factory.create_group( course=test_course1, name="seminar01") tc1_teachers = factory.create_group( course=test_course1, name="teachers") tc2_students = factory.create_group(course=test_course2, name="seminar01") tc2_teachers = factory.create_group(course=test_course2, name="teachers") tc2_students = factory.create_group( course=test_course2, name="seminar01") tc2_teachers = factory.create_group( course=test_course2, name="teachers") tc1_hw01 = factory.create_project( course=test_course1, name="HW01", config=dict( Loading @@ -42,9 +48,9 @@ def init_test_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW(), submissions_allowed_to=time.NOW() + timedelta(days=2), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time(), submissions_allowed_to=time.current_time() + timedelta(days=2), archive_from=time.current_time() + timedelta(days=30) ) ) tc1_hw02 = factory.create_project( Loading @@ -54,9 +60,9 @@ def init_test_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() + timedelta(days=10), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() + timedelta(days=10), archive_from=time.current_time() + timedelta(days=30) ) ) Loading @@ -66,20 +72,26 @@ def init_test_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() - timedelta(minutes=1), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() - timedelta(minutes=1), archive_from=time.current_time() + timedelta(days=30) ) ) # roles tc1_student = factory.scaffold_role(role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role(role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role(role_type='owner', course=test_course1) tc2_student = factory.scaffold_role(role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role(role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role(role_type='owner', course=test_course2) tc1_student = factory.scaffold_role( role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role( role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role( role_type='owner', course=test_course1) tc2_student = factory.scaffold_role( role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role( role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role( role_type='owner', course=test_course2) # relationships teacher_student = teacher1 Loading @@ -106,18 +118,24 @@ def init_test_data(app: Flask, db: SQLAlchemy): student_both.groups.append(tc2_students) # submissions tc2_sub1 = Submission(user=teacher_student, project=tc2_hw01, parameters="") tc2_sub1 = Submission(user=teacher_student, project=tc2_hw01, parameters="") tc2_sub1.state = SubmissionState.FINISHED tc2_sub2 = Submission(user=student_both, project=tc2_hw01, parameters="") tc2_sub2 = Submission( user=student_both, project=tc2_hw01, parameters="") tc2_sub2.state = SubmissionState.ABORTED tc1_sub_p1_cancel = Submission(user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_cancel = Submission( user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_cancel.state = SubmissionState.CANCELLED tc1_sub_p1_abort = Submission(user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_abort = Submission( user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_abort.state = SubmissionState.ABORTED tc1_sub_p1_finished = Submission(user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_finished = Submission( user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_finished.state = SubmissionState.FINISHED tc1_sub_p1_in_progress = Submission(user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress = Submission( user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress.state = SubmissionState.IN_PROGRESS # Projects in groups Loading @@ -141,10 +159,8 @@ def init_test_data(app: Flask, db: SQLAlchemy): # components factory.create_component(name='executor') factory.create_component(name='processing', component_type='processing') factory.create_component( name='processing', component_type='processing') # Commit to the DB db.session.commit() Loading
.gitlab-ci.yml +4 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ # https://hub.docker.com/r/library/python image: python:latest # This folder is cached between builds # http://docs.gitlab.com/ce/ci/yaml/README.html#cache cache: Loading @@ -17,6 +18,9 @@ build: tags: - shared-fi before_script: - echo exit 0 > /usr/sbin/policy-rc.d - apt update && apt install -y redis-server - service redis-server start - python -V # Print out python version for debugging - pip install pipenv Loading
app.py +6 −3 Original line number Diff line number Diff line Loading @@ -61,7 +61,8 @@ def cli_init_data(env): @click.argument('name') def cli_users_create(name): log.info(f"[CMD] Create User: {name}") password = click.prompt('Password', hide_input=True, confirmation_prompt=True) password = click.prompt('Password', hide_input=True, confirmation_prompt=True) user = manager.create_admin_user(name, password) log.info(f"[CMD] Created User: {user}") Loading @@ -70,7 +71,8 @@ def cli_users_create(name): @click.argument('name') def cli_users_set_password(name): log.info(f"[CMD] Update password for user: {name}") password = click.prompt('Password', hide_input=True, confirmation_prompt=True) password = click.prompt('Password', hide_input=True, confirmation_prompt=True) user = manager.update_users_password(name, password) log.info(f"[CMD] Updated password for user: {user}") Loading Loading @@ -104,7 +106,8 @@ def cli_course_creates(name): log.info(f"[CMD] Created Course: {course}") @courses_cli.command('create-role', help="Creates role by it's type in the course") @courses_cli.command( 'create-role', help="Creates role by it's type in the course") @click.argument('course') @click.argument('type') @click.argument('name', required=False) Loading
management/data/__init__.py +3 −3 Original line number Diff line number Diff line Loading @@ -100,7 +100,8 @@ class DataManagement(object): """ with self.app.app_context(): course = general.find_course(course_name) role = self.creator.scaffold_role(course, role_type=role_type, name=name) role = self.creator.scaffold_role( course, role_type=role_type, name=name) self.db.session.commit() return role Loading @@ -108,4 +109,3 @@ class DataManagement(object): with self.app.app_context(): for user in User.query.all(): print(f"{user.username} ({user.id}) - {user.created_at}")
management/data/data_dev.py +50 −32 Original line number Diff line number Diff line Loading @@ -14,11 +14,12 @@ def get_project(factory: DataFactory, course: Course, num: int): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW(), submissions_allowed_to=time.NOW() + timedelta(days=2), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time(), submissions_allowed_to=time.current_time() + timedelta(days=2), archive_from=time.current_time() + timedelta(days=30) ) return factory.create_project(course=course, name=f"HW0{num}", config=project_config) return factory.create_project( course=course, name=f"HW0{num}", config=project_config) def init_dev_data(app: Flask, db: SQLAlchemy): Loading @@ -41,15 +42,21 @@ def init_dev_data(app: Flask, db: SQLAlchemy): db.session.commit() # courses test_course1 = factory.create_course(codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course(codename='TestCourse2', name='test Course Two') test_course1 = factory.create_course( codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course( codename='TestCourse2', name='test Course Two') # groups tc1_students = factory.create_group(course=test_course1, name="seminar01") tc1_teachers = factory.create_group(course=test_course1, name="teachers") tc1_students = factory.create_group( course=test_course1, name="seminar01") tc1_teachers = factory.create_group( course=test_course1, name="teachers") tc2_students = factory.create_group(course=test_course2, name="seminar01") tc2_teachers = factory.create_group(course=test_course2, name="teachers") tc2_students = factory.create_group( course=test_course2, name="seminar01") tc2_teachers = factory.create_group( course=test_course2, name="teachers") tc1_hw01 = get_project(factory=factory, course=test_course1, num=1) tc1_hw03 = get_project(factory=factory, course=test_course1, num=3) Loading @@ -60,9 +67,9 @@ def init_dev_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() + timedelta(days=10), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() + timedelta(days=10), archive_from=time.current_time() + timedelta(days=30) ) ) Loading @@ -72,20 +79,26 @@ def init_dev_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() - timedelta(minutes=1), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() - timedelta(minutes=1), archive_from=time.current_time() + timedelta(days=30) ) ) # roles tc1_student = factory.scaffold_role(role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role(role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role(role_type='owner', course=test_course1) tc2_student = factory.scaffold_role(role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role(role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role(role_type='owner', course=test_course2) tc1_student = factory.scaffold_role( role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role( role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role( role_type='owner', course=test_course1) tc2_student = factory.scaffold_role( role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role( role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role( role_type='owner', course=test_course2) # roles lecturer1.roles.append(tc1_owner) Loading @@ -112,13 +125,17 @@ def init_dev_data(app: Flask, db: SQLAlchemy): tc2_sub2 = Submission(user=student2, project=tc2_hw01, parameters="") tc2_sub2.state = SubmissionState.ABORTED tc1_sub_p1_cancel = Submission(user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_cancel = Submission( user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_cancel.state = SubmissionState.CANCELLED tc1_sub_p1_abort = Submission(user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_abort = Submission( user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_abort.state = SubmissionState.ABORTED tc1_sub_p1_finished = Submission(user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_finished = Submission( user=student2, project=tc1_hw01, parameters="") tc1_sub_p1_finished.state = SubmissionState.FINISHED tc1_sub_p1_in_progress = Submission(user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress = Submission( user=student1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress.state = SubmissionState.IN_PROGRESS # Projects in groups Loading @@ -143,7 +160,8 @@ def init_dev_data(app: Flask, db: SQLAlchemy): # components factory.create_component(name='executor') factory.create_component(name='processing', component_type='processing') factory.create_component( name='processing', component_type='processing') # Commit to the DB db.session.commit()
management/data/data_test.py +52 −36 Original line number Diff line number Diff line Loading @@ -25,15 +25,21 @@ def init_test_data(app: Flask, db: SQLAlchemy): ) # courses test_course1 = factory.create_course(codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course(codename='TestCourse2', name='test Course Two') test_course1 = factory.create_course( codename='TestCourse1', name='Test Course One') test_course2 = factory.create_course( codename='TestCourse2', name='test Course Two') # groups tc1_students = factory.create_group(course=test_course1, name="seminar01") tc1_teachers = factory.create_group(course=test_course1, name="teachers") tc1_students = factory.create_group( course=test_course1, name="seminar01") tc1_teachers = factory.create_group( course=test_course1, name="teachers") tc2_students = factory.create_group(course=test_course2, name="seminar01") tc2_teachers = factory.create_group(course=test_course2, name="teachers") tc2_students = factory.create_group( course=test_course2, name="seminar01") tc2_teachers = factory.create_group( course=test_course2, name="teachers") tc1_hw01 = factory.create_project( course=test_course1, name="HW01", config=dict( Loading @@ -42,9 +48,9 @@ def init_test_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW(), submissions_allowed_to=time.NOW() + timedelta(days=2), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time(), submissions_allowed_to=time.current_time() + timedelta(days=2), archive_from=time.current_time() + timedelta(days=30) ) ) tc1_hw02 = factory.create_project( Loading @@ -54,9 +60,9 @@ def init_test_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() + timedelta(days=10), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() + timedelta(days=10), archive_from=time.current_time() + timedelta(days=30) ) ) Loading @@ -66,20 +72,26 @@ def init_test_data(app: Flask, db: SQLAlchemy): post_submit_script="python for kontr post", submission_scheduler_config="python for sub Q", submission_parameters="{\"type\":\"text\"}", submissions_allowed_from=time.NOW() - timedelta(days=1), submissions_allowed_to=time.NOW() - timedelta(minutes=1), archive_from=time.NOW() + timedelta(days=30) submissions_allowed_from=time.current_time() - timedelta(days=1), submissions_allowed_to=time.current_time() - timedelta(minutes=1), archive_from=time.current_time() + timedelta(days=30) ) ) # roles tc1_student = factory.scaffold_role(role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role(role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role(role_type='owner', course=test_course1) tc2_student = factory.scaffold_role(role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role(role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role(role_type='owner', course=test_course2) tc1_student = factory.scaffold_role( role_type='student', course=test_course1) tc1_teacher = factory.scaffold_role( role_type='teacher', course=test_course1) tc1_owner = factory.scaffold_role( role_type='owner', course=test_course1) tc2_student = factory.scaffold_role( role_type='student', course=test_course2) tc2_teacher = factory.scaffold_role( role_type='teacher', course=test_course2) tc2_owner = factory.scaffold_role( role_type='owner', course=test_course2) # relationships teacher_student = teacher1 Loading @@ -106,18 +118,24 @@ def init_test_data(app: Flask, db: SQLAlchemy): student_both.groups.append(tc2_students) # submissions tc2_sub1 = Submission(user=teacher_student, project=tc2_hw01, parameters="") tc2_sub1 = Submission(user=teacher_student, project=tc2_hw01, parameters="") tc2_sub1.state = SubmissionState.FINISHED tc2_sub2 = Submission(user=student_both, project=tc2_hw01, parameters="") tc2_sub2 = Submission( user=student_both, project=tc2_hw01, parameters="") tc2_sub2.state = SubmissionState.ABORTED tc1_sub_p1_cancel = Submission(user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_cancel = Submission( user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_cancel.state = SubmissionState.CANCELLED tc1_sub_p1_abort = Submission(user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_abort = Submission( user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_abort.state = SubmissionState.ABORTED tc1_sub_p1_finished = Submission(user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_finished = Submission( user=student_both, project=tc1_hw01, parameters="") tc1_sub_p1_finished.state = SubmissionState.FINISHED tc1_sub_p1_in_progress = Submission(user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress = Submission( user=student_tc1, project=tc1_hw01, parameters="") tc1_sub_p1_in_progress.state = SubmissionState.IN_PROGRESS # Projects in groups Loading @@ -141,10 +159,8 @@ def init_test_data(app: Flask, db: SQLAlchemy): # components factory.create_component(name='executor') factory.create_component(name='processing', component_type='processing') factory.create_component( name='processing', component_type='processing') # Commit to the DB db.session.commit()