diff --git a/mo/jobs/submit.py b/mo/jobs/submit.py index 82d19a8ac380516a0154d1bad93b3805a53d08f6..1c699b25fb4069a60c40941496366771cd9c8fbd 100644 --- a/mo/jobs/submit.py +++ b/mo/jobs/submit.py @@ -299,11 +299,16 @@ def handle_upload_feedback(the_job: TheJob): smtr.submit_paper(paper, fb.tmp_name) sess.add(paper) + # Najdeme řešení úlohy (nemusí existovat) sol = (sess.query(db.Solution) .filter_by(task=fb.task, user=fb.user) - .with_for_update() - .one()) - if fb.is_solution: + .one_or_none()) + + if not sol: + sol = db.Solution(task=fb.task, user=fb.user) + sess.add(sol) + + if paper.type == db.PaperType.solution: sol.final_submit_obj = paper else: sol.final_feedback_obj = paper