Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20221220.sql
===================================================================
diff -u
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20221220.sql (revision 0)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20221220.sql (revision e9f21c562efc19cd5b5f9025f6d47165de059b39)
@@ -0,0 +1,17 @@
+-- Turn off autocommit, so nothing is committed if there is an error
+SET AUTOCOMMIT = 0;
+SET FOREIGN_KEY_CHECKS=0;
+-- Put all sql statements below here
+
+-- LDEV-5351 Tell whether and which teacher marked the question manually
+ALTER TABLE tl_laasse10_question_result
+ ADD COLUMN marked_by BIGINT,
+ ADD CONSTRAINT FK_tl_laasse10_question_result_3 FOREIGN KEY (marked_by) REFERENCES tl_laasse10_user(uid)
+ ON UPDATE CASCADE ON DELETE SET NULL;
+
+-- Put all sql statements above here
+
+-- If there were no errors, commit and restore autocommit to on
+COMMIT;
+SET AUTOCOMMIT = 1;
+SET FOREIGN_KEY_CHECKS=1;
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestionResult.java
===================================================================
diff -u -r8b791fe7643a5b70d30a4d395d0d2159bc6a7b29 -re9f21c562efc19cd5b5f9025f6d47165de059b39
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestionResult.java (.../AssessmentQuestionResult.java) (revision 8b791fe7643a5b70d30a4d395d0d2159bc6a7b29)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestionResult.java (.../AssessmentQuestionResult.java) (revision e9f21c562efc19cd5b5f9025f6d47165de059b39)
@@ -79,6 +79,10 @@
private String justification;
@ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "marked_by")
+ private AssessmentUser markedBy;
+
+ @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "result_uid")
private AssessmentResult assessmentResult;
@@ -203,6 +207,14 @@
return justification == null ? null : StringEscapeUtils.escapeJavaScript(justification.replace("\r\n", "
"));
}
+ public AssessmentUser getMarkedBy() {
+ return markedBy;
+ }
+
+ public void setMarkedBy(AssessmentUser markedBy) {
+ this.markedBy = markedBy;
+ }
+
public AssessmentUser getUser() {
return user;
}
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java
===================================================================
diff -u -r7d908c243f85cbf8d8f9c5205b6591dbadf2f6ce -re9f21c562efc19cd5b5f9025f6d47165de059b39
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 7d908c243f85cbf8d8f9c5205b6591dbadf2f6ce)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision e9f21c562efc19cd5b5f9025f6d47165de059b39)
@@ -2304,7 +2304,7 @@
}
@Override
- public void changeQuestionResultMark(Long questionResultUid, float newMark) {
+ public void changeQuestionResultMark(Long questionResultUid, float newMark, Integer teacherId) {
AssessmentQuestionResult questionResult = assessmentQuestionResultDao
.getAssessmentQuestionResultByUid(questionResultUid);
float oldMark = questionResult.getMark();
@@ -2315,6 +2315,11 @@
Assessment assessment = assessmentResult.getAssessment();
Long questionUid = questionResult.getQbToolQuestion().getUid();
+ AssessmentUser teacher = null;
+ if (teacherId != null) {
+ teacher = getUserByIdAndContent(teacherId.longValue(), assessment.getContentId());
+ }
+
// When changing a mark for user and isUseSelectLeaderToolOuput is true, the mark should be propagated to all
// students within the group
List users = new ArrayList<>();
@@ -2342,6 +2347,9 @@
AssessmentQuestionResult lastAssessmentQuestionResult = (AssessmentQuestionResult) lastAssessmentQuestionResultObj[0];
lastAssessmentQuestionResult.setMark(newMark);
+ if (teacher != null) {
+ lastAssessmentQuestionResult.setMarkedBy(teacher);
+ }
assessmentQuestionResultDao.saveObject(lastAssessmentQuestionResult);
AssessmentResult result = lastAssessmentQuestionResult.getAssessmentResult();
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java
===================================================================
diff -u -r3085af1c7e3e6c3496af23a748d998886d7168fd -re9f21c562efc19cd5b5f9025f6d47165de059b39
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 3085af1c7e3e6c3496af23a748d998886d7168fd)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision e9f21c562efc19cd5b5f9025f6d47165de059b39)
@@ -447,7 +447,7 @@
*/
List getMarksArrayForLeaders(Long contentId);
- void changeQuestionResultMark(Long questionResultUid, float newMark);
+ void changeQuestionResultMark(Long questionResultUid, float newMark, Integer teacherId);
void notifyTeachersOnAttemptCompletion(Long sessionId, String userName);
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java
===================================================================
diff -u -r5563dc18a8b8d19478fb804c8beef31e63bd249b -re9f21c562efc19cd5b5f9025f6d47165de059b39
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 5563dc18a8b8d19478fb804c8beef31e63bd249b)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision e9f21c562efc19cd5b5f9025f6d47165de059b39)
@@ -352,7 +352,9 @@
&& !StringUtils.isEmpty(request.getParameter(AssessmentConstants.PARAM_QUESTION_RESULT_UID))) {
Long questionResultUid = WebUtil.readLongParam(request, AssessmentConstants.PARAM_QUESTION_RESULT_UID);
float newGrade = Float.valueOf(request.getParameter(AssessmentConstants.PARAM_GRADE));
- service.changeQuestionResultMark(questionResultUid, newGrade);
+ HttpSession ss = SessionManager.getSession();
+ UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ service.changeQuestionResultMark(questionResultUid, newGrade, teacher.getUserID());
}
}