Skip to content

Commit 4a16415

Browse files
committed
fix: Duplicate team submissions being created
1 parent 270fc49 commit 4a16415

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

lib/cadet/jobs/autograder/grading_job.ex

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,18 +135,31 @@ defmodule Cadet.Autograder.GradingJob do
135135
team
136136
end
137137

138+
find_or_create_team_submission(team.id, assessment)
139+
else
140+
# Individual assessment
138141
%Submission{}
139142
|> Submission.changeset(%{
140-
team_id: team.id,
143+
student_id: student_id,
141144
assessment: assessment,
142145
status: :submitted
143146
})
144147
|> Repo.insert!()
148+
end
149+
end
150+
151+
defp find_or_create_team_submission(team_id, assessment) when is_ecto_id(team_id) do
152+
submission =
153+
Submission
154+
|> where(team_id: ^team_id, assessment_id: ^assessment.id)
155+
|> Repo.one()
156+
157+
if submission do
158+
submission
145159
else
146-
# Individual assessment
147160
%Submission{}
148161
|> Submission.changeset(%{
149-
student_id: student_id,
162+
team_id: team_id,
150163
assessment: assessment,
151164
status: :submitted
152165
})

0 commit comments

Comments
 (0)