diff --git a/lib/VipsAssignment.php b/lib/VipsAssignment.php index 57b6caf9b61f084eec5016fd000bfc6c84f0f606..6c62f92519fd4304045169a76e2d8f18ddf01625 100644 --- a/lib/VipsAssignment.php +++ b/lib/VipsAssignment.php @@ -699,17 +699,17 @@ class VipsAssignment extends SimpleORMap $solution->options['session_id'] = session_id(); } + // in selftests, autocorrect solution + if ($this->isSelfAssessment()) { + $this->correctSolution($solution); + } + // move old solutions into vips_solution_archive VipsSolution::archiveBySQL( 'exercise_id = ? AND assignment_id = ? AND user_id = ?', [$exercise->id, $this->id, $user_id] ); - // in selftests, autocorrect solution - if ($this->isSelfAssessment()) { - $this->correctSolution($solution); - } - // insert new solution into vips_solution return $solution->store(); } diff --git a/lib/VipsSolution.php b/lib/VipsSolution.php index 6ca2db5ef7ae365c9f9dd24d01772caafddc91d6..55c30c2d07e7bb545995fa1029d96dfd132e59c8 100644 --- a/lib/VipsSolution.php +++ b/lib/VipsSolution.php @@ -126,7 +126,7 @@ class VipsSolution extends SimpleORMap { $db = DBManager::get(); - $stmt = $db->prepare('INSERT INTO vips_solution_archive + $stmt = $db->prepare('INSERT IGNORE INTO vips_solution_archive SELECT * FROM vips_solution WHERE ' . $sql); $stmt->execute($params);