diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/LLMFreeTextQuestionValidationResponse.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/LLMFreeTextQuestionValidationResponse.java index 6400a27433..d4c12e5e62 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/LLMFreeTextQuestionValidationResponse.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/LLMFreeTextQuestionValidationResponse.java @@ -10,10 +10,10 @@ import java.util.Date; import java.util.List; +@JsonIgnoreProperties({"marksAwarded"}) @DTOMapping(LLMFreeTextQuestionValidationResponseDTO.class) public class LLMFreeTextQuestionValidationResponse extends QuestionValidationResponse { private List markBreakdown; - private Integer marksAwarded; public LLMFreeTextQuestionValidationResponse() { } @@ -30,7 +30,4 @@ public List getMarkBreakdown() { public void setMarkBreakdown(List markBreakdown) { this.markBreakdown = markBreakdown; } - - public Integer getMarksAwarded() { return marksAwarded; } - public void setMarksAwarded(Integer marksAwarded) { this.marksAwarded = marksAwarded; } } diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/LLMFreeTextQuestionValidationResponseDTO.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/LLMFreeTextQuestionValidationResponseDTO.java index 9f801856c3..8bff08a821 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/LLMFreeTextQuestionValidationResponseDTO.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/LLMFreeTextQuestionValidationResponseDTO.java @@ -5,9 +5,9 @@ import java.util.List; +@JsonIgnoreProperties({"marksAwarded"}) public class LLMFreeTextQuestionValidationResponseDTO extends QuestionValidationResponseDTO { private List markBreakdown; - private Integer marksAwarded; public LLMFreeTextQuestionValidationResponseDTO() { } @@ -18,7 +18,4 @@ public List getMarkBreakdown() { public void setMarkBreakdown(List markBreakdown) { this.markBreakdown = markBreakdown; } - - public Integer getMarksAwarded() { return marksAwarded; } - public void setMarksAwarded(Integer marksAwarded) { this.marksAwarded = marksAwarded; } } diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidator.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidator.java index 46be221dad..8a0a1c66cc 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidator.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidator.java @@ -293,10 +293,7 @@ private LLMFreeTextQuestionValidationResponse generateQuestionValidationResponse LLMFreeTextQuestionValidationResponse validationResponse = new LLMFreeTextQuestionValidationResponse( question.getId(), answer, isConsideredCorrect, null, new Date()); - // TODO: Remove marksAwarded field once database migration has occurred to remove it from question_attempts JSON - // (both fields are currently required for backwards compatibility) validationResponse.setMarks(markTotal); - validationResponse.setMarksAwarded(markTotal); validationResponse.setMarkBreakdown(markBreakdown); return validationResponse; } diff --git a/src/main/resources/db_scripts/migrations/2026-02-remove-marksawarded-validation-field.sql b/src/main/resources/db_scripts/migrations/2026-02-remove-marksawarded-validation-field.sql new file mode 100644 index 0000000000..7226d1ae9c --- /dev/null +++ b/src/main/resources/db_scripts/migrations/2026-02-remove-marksawarded-validation-field.sql @@ -0,0 +1,8 @@ +UPDATE question_attempts +SET question_attempt = + jsonb_set( + question_attempt - 'marksAwarded', + '{marks}', + question_attempt->'marksAwarded' + ) +WHERE question_attempt ? 'marksAwarded'; \ No newline at end of file diff --git a/src/test/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidatorTest.java b/src/test/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidatorTest.java index 028da55007..45eb51714e 100644 --- a/src/test/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidatorTest.java +++ b/src/test/java/uk/ac/cam/cl/dtg/isaac/quiz/IsaacLLMFreeTextValidatorTest.java @@ -247,17 +247,17 @@ public static LLMFreeTextQuestionValidationResponse validate(Question question, * @param response - response from the validator, the object we examine by performing assertions. * @param isCorrect - whether the response should be marked as correct or incorrect. Use provided constants * CORRECT, INCORRECT. - * @param marksAwarded - how many marks should be awarded in total for the question. This is calculated from + * @param marks - how many marks should be awarded in total for the question. This is calculated from * the breakdown specified during the act part. Use provided constants NO_MARKS, * ONE_MARK, TWO_MARKS. * @param expectedMarks - double check that the breakdown is returned in the expected format */ public static void expectMark(LLMFreeTextQuestionValidationResponse response, boolean isCorrect, - int marksAwarded, + int marks, List expectedMarks) { assertEquals(isCorrect, response.isCorrect()); - assertEquals(marksAwarded, (long) response.getMarks()); + assertEquals(marks, (long) response.getMarks()); assertTrue(expectedMarks.containsAll(response.getMarkBreakdown())); assertTrue(response.getMarkBreakdown().containsAll(expectedMarks)); }