Loading Pipfile +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ name = "pypi" [packages] flask = "*" flask-sqlalchemy = "*" pytest = "*" marshmallow = "*" flask-jwt-extended = "*" marshmallow-enum = "*" Loading @@ -27,6 +26,7 @@ celery = {extras = ["auth", "yaml", "msgpack", "redis"]} [dev-packages] pytest-cov = "*" pylint = "*" pytest = "*" [requires] python_version = "3.6" app.py +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ from flask.cli import AppGroup, run_command import portal.logging as logging_config from management.data import DataManagement from portal import create_app, db from portal.async import celery logging_config.load_config() Loading Loading @@ -43,7 +42,6 @@ def cli_run_devel(ctx, port): ctx.forward(run_command, port) # # Data related commands # Loading Loading @@ -87,11 +85,13 @@ def cli_users_delete_user(name): manager.delete_user(name) log.info(f"[CMD] User deleted: {name}") @users_cli.command('list', help='List all users') def cli_users_list(): log.info(f'[CMD] Listing users') manager.list_users() # # Courses related commands # Loading management/data/shared.py +8 −3 Original line number Diff line number Diff line Loading @@ -111,12 +111,15 @@ class DataFactory(object): ip_address=ip_addr, notes=notes, type=component_type) def create_course(self, codename, name=None, token=None) -> Course: course = self.__create_entity(Course, codename=codename, name=name) name = name or codename desc = name + "'s description" course = self.__create_entity(Course, codename=codename, name=name, description=desc) course.notes_access_token = token or f"{codename}_token" return course def create_group(self, course: Course, name: str) -> Group: return self.__create_entity(Group, course=course, name=name) desc = name + "'s description" return self.__create_entity(Group, course=course, name=name, description=desc) def create_role(self, course: Course, name: str, permissions: dict = None, desc: str = None) -> Role: Loading @@ -129,8 +132,10 @@ class DataFactory(object): def create_project(self, course, name, test_files_source=None, config=None) -> Project: test_files_source = test_files_source or f"git://{name}.repo" config = config or {} desc = name + "'s description" project = self.__create_entity(Project, course=course, name=name, test_files_source=test_files_source) test_files_source=test_files_source, description=desc) project.set_config(**config) return project Loading migrations/versions/c30ed4861044_.py 0 → 100644 +38 −0 Original line number Diff line number Diff line """empty message Revision ID: c30ed4861044 Revises: f2cb9f5ed836 Create Date: 2018-06-05 17:59:10.388727 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = 'c30ed4861044' down_revision = 'f2cb9f5ed836' branch_labels = None depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.add_column('course', sa.Column('description', sa.Text(), nullable=True)) op.add_column('group', sa.Column('description', sa.Text(), nullable=True)) op.add_column('project', sa.Column('assignment_url', sa.Text(), nullable=True)) op.add_column('projectConfig', sa.Column('submissions_cancellation_period', sa.Integer(), nullable=True)) op.add_column('submission', sa.Column('process_task_id', sa.String(length=36), nullable=True)) op.add_column('submission', sa.Column('storage_task_id', sa.String(length=36), nullable=True)) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_column('submission', 'storage_task_id') op.drop_column('submission', 'process_task_id') op.drop_column('projectConfig', 'submissions_cancellation_period') op.drop_column('project', 'assignment_url') op.drop_column('group', 'description') op.drop_column('course', 'description') # ### end Alembic commands ### portal/async/tasks.py +1 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,6 @@ def clone_submission_files(source_id: str, target_id: str): @celery.task(name='start-processing-submission') def start_processing_submission(submission_id: str): def start_processing_submission(submission_id: str, submission_params): submission = find_submission(submission_id) log.info(f"[ASYNC] Processing submission: {submission}") Loading
Pipfile +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ name = "pypi" [packages] flask = "*" flask-sqlalchemy = "*" pytest = "*" marshmallow = "*" flask-jwt-extended = "*" marshmallow-enum = "*" Loading @@ -27,6 +26,7 @@ celery = {extras = ["auth", "yaml", "msgpack", "redis"]} [dev-packages] pytest-cov = "*" pylint = "*" pytest = "*" [requires] python_version = "3.6"
app.py +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ from flask.cli import AppGroup, run_command import portal.logging as logging_config from management.data import DataManagement from portal import create_app, db from portal.async import celery logging_config.load_config() Loading Loading @@ -43,7 +42,6 @@ def cli_run_devel(ctx, port): ctx.forward(run_command, port) # # Data related commands # Loading Loading @@ -87,11 +85,13 @@ def cli_users_delete_user(name): manager.delete_user(name) log.info(f"[CMD] User deleted: {name}") @users_cli.command('list', help='List all users') def cli_users_list(): log.info(f'[CMD] Listing users') manager.list_users() # # Courses related commands # Loading
management/data/shared.py +8 −3 Original line number Diff line number Diff line Loading @@ -111,12 +111,15 @@ class DataFactory(object): ip_address=ip_addr, notes=notes, type=component_type) def create_course(self, codename, name=None, token=None) -> Course: course = self.__create_entity(Course, codename=codename, name=name) name = name or codename desc = name + "'s description" course = self.__create_entity(Course, codename=codename, name=name, description=desc) course.notes_access_token = token or f"{codename}_token" return course def create_group(self, course: Course, name: str) -> Group: return self.__create_entity(Group, course=course, name=name) desc = name + "'s description" return self.__create_entity(Group, course=course, name=name, description=desc) def create_role(self, course: Course, name: str, permissions: dict = None, desc: str = None) -> Role: Loading @@ -129,8 +132,10 @@ class DataFactory(object): def create_project(self, course, name, test_files_source=None, config=None) -> Project: test_files_source = test_files_source or f"git://{name}.repo" config = config or {} desc = name + "'s description" project = self.__create_entity(Project, course=course, name=name, test_files_source=test_files_source) test_files_source=test_files_source, description=desc) project.set_config(**config) return project Loading
migrations/versions/c30ed4861044_.py 0 → 100644 +38 −0 Original line number Diff line number Diff line """empty message Revision ID: c30ed4861044 Revises: f2cb9f5ed836 Create Date: 2018-06-05 17:59:10.388727 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = 'c30ed4861044' down_revision = 'f2cb9f5ed836' branch_labels = None depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.add_column('course', sa.Column('description', sa.Text(), nullable=True)) op.add_column('group', sa.Column('description', sa.Text(), nullable=True)) op.add_column('project', sa.Column('assignment_url', sa.Text(), nullable=True)) op.add_column('projectConfig', sa.Column('submissions_cancellation_period', sa.Integer(), nullable=True)) op.add_column('submission', sa.Column('process_task_id', sa.String(length=36), nullable=True)) op.add_column('submission', sa.Column('storage_task_id', sa.String(length=36), nullable=True)) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_column('submission', 'storage_task_id') op.drop_column('submission', 'process_task_id') op.drop_column('projectConfig', 'submissions_cancellation_period') op.drop_column('project', 'assignment_url') op.drop_column('group', 'description') op.drop_column('course', 'description') # ### end Alembic commands ###
portal/async/tasks.py +1 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,6 @@ def clone_submission_files(source_id: str, target_id: str): @celery.task(name='start-processing-submission') def start_processing_submission(submission_id: str): def start_processing_submission(submission_id: str, submission_params): submission = find_submission(submission_id) log.info(f"[ASYNC] Processing submission: {submission}")