Skip to content
Snippets Groups Projects
Verified Commit 434dddac authored by Peter Stanko's avatar Peter Stanko
Browse files

Submissions cancelation

parent 47526e8d
No related branches found
No related tags found
1 merge request!10Submissions cancellation support
Pipeline #
...@@ -3,8 +3,9 @@ Main application module ...@@ -3,8 +3,9 @@ Main application module
- Creates instance of the flask app named app - Creates instance of the flask app named app
- registers commands - registers commands
""" """
import click
import logging as logger import logging as logger
import click
from flask import Flask from flask import Flask
from flask.cli import AppGroup, run_command from flask.cli import AppGroup, run_command
...@@ -145,5 +146,24 @@ def cli_projects_list(course): ...@@ -145,5 +146,24 @@ def cli_projects_list(course):
manager.list_projects(course) manager.list_projects(course)
@submissions_cli.command('cancel-all', help="Cancel all submissions")
def cli_submissions_cancel_all():
log.info(f"[CMD] Cancelling all submissions")
manager.cancel_all_submissions()
@submissions_cli.command('cancel', help="Cancel submission")
@click.argument('sid')
def cli_submissions_cancel(sid):
log.info(f"[CMD] Cancelling all submissions")
manager.cancel_submission(sid)
@submissions_cli.command('list', help="List all submissions")
def cli_submissions_cancel_all():
log.info(f"[CMD] List all submissions")
manager.list_all_submissions()
if __name__ == '__main__': if __name__ == '__main__':
cli_run_devel() cli_run_devel()
...@@ -6,7 +6,7 @@ from management.data import shared ...@@ -6,7 +6,7 @@ from management.data import shared
from management.data.data_test import init_test_data from management.data.data_test import init_test_data
from management.data.data_dev import init_dev_data from management.data.data_dev import init_dev_data
from management.data.data_prod import init_prod_data from management.data.data_prod import init_prod_data
from portal.database.models import Course, Role, User from portal.database.models import Course, Role, User, Submission, SubmissionState
from portal.service import general from portal.service import general
from portal.service.general import write_entity from portal.service.general import write_entity
from portal.tools import time from portal.tools import time
...@@ -121,7 +121,6 @@ class DataManagement(object): ...@@ -121,7 +121,6 @@ class DataManagement(object):
project.config.archive_from = None project.config.archive_from = None
project.config.submissions_allowed_to = days_allow_to project.config.submissions_allowed_to = days_allow_to
write_entity(project) write_entity(project)
self.db.session.commit()
return project return project
def list_projects(self, course: str): def list_projects(self, course: str):
...@@ -134,3 +133,24 @@ class DataManagement(object): ...@@ -134,3 +133,24 @@ class DataManagement(object):
with self.app.app_context(): with self.app.app_context():
for course in Course.query.all(): for course in Course.query.all():
print(f"{course.codename}: {course.name}") print(f"{course.codename}: {course.name}")
def list_all_submissions(self):
with self.app.app_context():
for submission in Submission.query.all():
print(f"{submission.id} [{submission.state}]: {submission.user.username}")
def cancel_all_submissions(self):
with self.app.app_context():
for submission in Submission.query.all():
submission.change_state(SubmissionState.CANCELLED)
write_entity(submission)
self.db.session.commit()
def cancel_submission(self, sid):
with self.app.app_context():
submission = general.find_submission(sid)
submission.change_state(SubmissionState.CANCELLED)
write_entity(submission)
self.db.session.commit()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment