diff --git a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java index 571328ff38d8ed5760a5c480d14b873d2a085492..f11316f22946da216044ec5a380af2458284f789 100644 --- a/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java +++ b/src/main/java/org/olat/course/assessment/manager/CourseAssessmentManagerImpl.java @@ -86,9 +86,9 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { public static final String ASSESSMENT_DOCS_DIR = "assessmentdocs"; - private static final Float FLOAT_ZERO = new Float(0); - private static final Double DOUBLE_ZERO = new Double(0); - private static final Integer INTEGER_ZERO = new Integer(0); + private static final Float FLOAT_ZERO = Float.valueOf(0.0f); + private static final Double DOUBLE_ZERO = Double.valueOf(0.0d); + private static final Integer INTEGER_ZERO = Integer.valueOf(0); private final CourseGroupManager cgm; private final AssessmentService assessmentService; @@ -179,7 +179,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { //node log UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "ATTEMPTS set to: " + String.valueOf(attempts)); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "ATTEMPTS set to: " + String.valueOf(attempts), by); // notify about changes AssessmentChangedEvent ace = new AssessmentChangedEvent(AssessmentChangedEvent.TYPE_ATTEMPTS_CHANGED, assessedIdentity); @@ -202,7 +202,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { // node log UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "COMMENT set to: " + comment); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "COMMENT set to: " + comment, null); // notify about changes AssessmentChangedEvent ace = new AssessmentChangedEvent(AssessmentChangedEvent.TYPE_USER_COMMENT_CHANGED, assessedIdentity); @@ -241,7 +241,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { // node log ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "assessment document added: " + filename); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "assessment document added: " + filename, null); // user activity logging ThreadLocalUserActivityLogger.log(AssessmentLoggingAction.ASSESSMENT_DOCUMENT_ADDED, @@ -269,7 +269,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { // node log ICourse course = CourseFactory.loadCourse(cgm.getCourseEntry()); UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "assessment document removed: " + document.getName()); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "assessment document removed: " + document.getName(), null); // user activity logging ThreadLocalUserActivityLogger.log(AssessmentLoggingAction.ASSESSMENT_DOCUMENT_REMOVED, @@ -461,14 +461,14 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { // node log UserNodeAuditManager am = courseEnv.getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "score set to: " + String.valueOf(scoreEvaluation.getScore())); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "score set to: " + String.valueOf(scoreEvaluation.getScore()), by); if(scoreEvaluation.getPassed()!=null) { - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "passed set to: " + scoreEvaluation.getPassed().toString()); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "passed set to: " + scoreEvaluation.getPassed().toString(), by); } else { - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "passed set to \"undefined\""); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, "passed set to \"undefined\"", by); } if(scoreEvaluation.getAssessmentID()!=null) { - am.appendToUserNodeLog(courseNode, assessedIdentity, assessedIdentity, "assessmentId set to: " + scoreEvaluation.getAssessmentID().toString()); + am.appendToUserNodeLog(courseNode, assessedIdentity, assessedIdentity, "assessmentId set to: " + scoreEvaluation.getAssessmentID().toString(), by); } // notify about changes @@ -504,7 +504,7 @@ public class CourseAssessmentManagerImpl implements AssessmentManager { // write only when enabled for this course if (courseEnv.getCourseConfig().isEfficencyStatementEnabled()) { - List<AssessmentNodeData> data = new ArrayList<AssessmentNodeData>(50); + List<AssessmentNodeData> data = new ArrayList<>(50); AssessmentNodesLastModified lastModifications = new AssessmentNodesLastModified(); AssessmentHelper.getAssessmentNodeDataList(0, courseEnv.getRunStructure().getRootNode(), scoreAccounting, userCourseEnv, true, true, true, data, lastModifications); diff --git a/src/main/java/org/olat/course/auditing/UserNodeAuditManager.java b/src/main/java/org/olat/course/auditing/UserNodeAuditManager.java index 6a161148bd8641db5a3f859751ded84599eb3b02..1723740c550c02670dd241ac808ca0afd0ca9801 100644 --- a/src/main/java/org/olat/course/auditing/UserNodeAuditManager.java +++ b/src/main/java/org/olat/course/auditing/UserNodeAuditManager.java @@ -28,6 +28,7 @@ package org.olat.course.auditing; import org.olat.core.id.Identity; import org.olat.course.nodes.CourseNode; import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.Role; /** * Description: @@ -83,9 +84,10 @@ public interface UserNodeAuditManager { * @param identity The user who initiated the action that triggered the log * entry * @param assessedIdentity The user who is affected by the change - * @param logText + * @param logText The text to log + * @param by The role of the acting user (optional) */ - public void appendToUserNodeLog(CourseNode courseNode, Identity identity, Identity assessedIdentity, String logText); + public void appendToUserNodeLog(CourseNode courseNode, Identity identity, Identity assessedIdentity, String logText, Role by); /** * @@ -95,6 +97,6 @@ public interface UserNodeAuditManager { * @param assessedGroup * @param logText */ - public void appendToUserNodeLog(CourseNode courseNode, Identity identity, BusinessGroup assessedGroup, String logText); + public void appendToUserNodeLog(CourseNode courseNode, Identity identity, BusinessGroup assessedGroup, String logText, Role by); } \ No newline at end of file diff --git a/src/main/java/org/olat/course/auditing/UserNodeAuditManagerImpl.java b/src/main/java/org/olat/course/auditing/UserNodeAuditManagerImpl.java index 304f764db785beaaba392c01f0864e6d7ec93e71..fb5785213936321ca80e27a0f356a140d0c2f7a9 100644 --- a/src/main/java/org/olat/course/auditing/UserNodeAuditManagerImpl.java +++ b/src/main/java/org/olat/course/auditing/UserNodeAuditManagerImpl.java @@ -32,6 +32,7 @@ import org.olat.course.ICourse; import org.olat.course.nodes.CourseNode; import org.olat.course.properties.CoursePropertyManager; import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.Role; import org.olat.properties.Property; /** @@ -57,14 +58,9 @@ public class UserNodeAuditManagerImpl implements UserNodeAuditManager { cpm = course.getCourseEnvironment().getCoursePropertyManager(); } - /** - * @see org.olat.course.auditing.AuditManager#appendToUserNodeLog(org.olat.course.nodes.CourseNode, - * org.olat.core.id.Identity, org.olat.core.id.Identity, - * java.lang.String) - */ @Override - public void appendToUserNodeLog(CourseNode courseNode, Identity identity, Identity assessedIdentity, String logText) { - String text = formatMessage(identity, logText) ; + public void appendToUserNodeLog(CourseNode courseNode, Identity identity, Identity assessedIdentity, String logText, Role by) { + String text = formatMessage(identity, logText, by) ; Property logProperty = cpm.findCourseNodeProperty(courseNode, assessedIdentity, null, LOG_IDENTIFYER); if (logProperty == null) { @@ -79,8 +75,8 @@ public class UserNodeAuditManagerImpl implements UserNodeAuditManager { } @Override - public void appendToUserNodeLog(CourseNode courseNode, Identity identity, BusinessGroup assessedGroup, String logText) { - String text = formatMessage(identity, logText) ; + public void appendToUserNodeLog(CourseNode courseNode, Identity identity, BusinessGroup assessedGroup, String logText, Role by) { + String text = formatMessage(identity, logText, by) ; Property logProperty = cpm.findCourseNodeProperty(courseNode, null, assessedGroup, LOG_IDENTIFYER); if (logProperty == null) { @@ -93,8 +89,8 @@ public class UserNodeAuditManagerImpl implements UserNodeAuditManager { cpm.updateProperty(logProperty); } } - - private String formatMessage(Identity identity, String logText) { + + private String formatMessage(Identity identity, String logText, Role by) { Date now = new Date(); String date; synchronized(sdb) { @@ -103,8 +99,19 @@ public class UserNodeAuditManagerImpl implements UserNodeAuditManager { StringBuilder sb = new StringBuilder(256); sb.append(LOG_DELIMITER) .append("Date: ").append(date).append("\n"); - if(identity != null) { - sb.append("Identity: ").append(identity.getKey()).append("\n"); + if(by == Role.auto) { + sb.append("Identity: automatic"); + } else if(identity != null) { + sb.append("Identity: ") + .append(identity.getUser().getFirstName()) + .append(" ") + .append(identity.getUser().getLastName()) + .append(" (") + .append(identity.getKey()).append(")"); + if(by == Role.coach) { + sb.append(" (coach)"); + } + sb.append("\n"); } sb.append(logText).append("\n"); return sb.toString(); @@ -112,7 +119,7 @@ public class UserNodeAuditManagerImpl implements UserNodeAuditManager { protected String createLimitedLogContent(String logContent, int maxLength) { if (logContent.length() < maxLength) { - return logContent.toString();// nothing to limit + return logContent;// nothing to limit } // too long => limit it by removing first log entries while (logContent.length() > maxLength) { @@ -122,19 +129,12 @@ public class UserNodeAuditManagerImpl implements UserNodeAuditManager { return LOG_PREFIX_REMOVED_OLD_LOG_ENTRIES + logContent; } - /** - * @see org.olat.course.auditing.AuditManager#hasUserNodeLogs(org.olat.course.nodes.CourseNode) - */ @Override public boolean hasUserNodeLogs(CourseNode node) { int numOfProperties = cpm.countCourseNodeProperties(node, null, null, LOG_IDENTIFYER); return numOfProperties > 0; } - /** - * @see org.olat.course.auditing.AuditManager#getUserNodeLog(org.olat.course.nodes.CourseNode, - * org.olat.core.id.Identity) - */ @Override public String getUserNodeLog(CourseNode courseNode, Identity identity) { Property property = cpm.findCourseNodeProperty(courseNode, identity, null, LOG_IDENTIFYER); diff --git a/src/main/java/org/olat/course/nodes/gta/GTAManager.java b/src/main/java/org/olat/course/nodes/gta/GTAManager.java index 0140879b7c4ff4ed11ff0e03dd7aafa29f15941c..ef12ab7cf7362d557e5f17324c7ff0af6257daea 100644 --- a/src/main/java/org/olat/course/nodes/gta/GTAManager.java +++ b/src/main/java/org/olat/course/nodes/gta/GTAManager.java @@ -362,9 +362,9 @@ public interface GTAManager { public boolean hasMarks(RepositoryEntry entry, GTACourseNode gtaNode, Identity marker); public void log(String step, String operation, Task assignedTask, Identity actor, Identity assessedIdentity, BusinessGroup assessedGroup, - CourseEnvironment courseEnv, GTACourseNode cNode); + CourseEnvironment courseEnv, GTACourseNode cNode, Role by); public void log(String step, SubmitEvent event, Task assignedTask, Identity actor, Identity assessedIdentity, BusinessGroup assessedGroup, - CourseEnvironment courseEnv, GTACourseNode cNode); + CourseEnvironment courseEnv, GTACourseNode cNode, Role by); } diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java index 1564435fe3b7610f97a846508e2b931503001188..73e88ce2e2e251742493030e26d35b40fe6e1d2d 100644 --- a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java +++ b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java @@ -1682,35 +1682,37 @@ public class GTAManagerImpl implements GTAManager { @Override public void log(String step, String operation, Task assignedTask, Identity actor, Identity assessedIdentity, BusinessGroup assessedGroup, - CourseEnvironment courseEnv, GTACourseNode cNode) { + CourseEnvironment courseEnv, GTACourseNode cNode, Role by) { //log - String msg = step + " of " + assignedTask.getTaskName() + ": " + operation; + String taskName = StringHelper.containsNonWhitespace(assignedTask.getTaskName()) ? assignedTask.getTaskName() : assignedTask.getKey().toString(); + String msg = step + " of " + taskName + ": " + operation; if(GTAType.group.name().equals(cNode.getModuleConfiguration().getStringValue(GTACourseNode.GTASK_TYPE))) { log.audit(msg + " to business group: " + assessedGroup.getName(), null); courseEnv.getAuditManager() - .appendToUserNodeLog(cNode, actor, assessedGroup, msg); + .appendToUserNodeLog(cNode, actor, assessedGroup, msg, by); } else { log.audit(msg, null); courseEnv.getAuditManager() - .appendToUserNodeLog(cNode, actor, assessedIdentity, msg); + .appendToUserNodeLog(cNode, actor, assessedIdentity, msg, by); } } @Override public void log(String step, SubmitEvent event, Task assignedTask, Identity actor, Identity assessedIdentity, BusinessGroup assessedGroup, - CourseEnvironment courseEnv, GTACourseNode cNode) { + CourseEnvironment courseEnv, GTACourseNode cNode, Role by) { String operation = event.getLogMessage(); String file = event.getFilename(); //log - String msg = step + " of " + assignedTask.getTaskName() + ": " + operation + " " + file; + String taskName = StringHelper.containsNonWhitespace(assignedTask.getTaskName()) ? assignedTask.getTaskName() : assignedTask.getKey().toString(); + String msg = step + " of " + taskName + ": " + operation + " " + file; if(GTAType.group.name().equals(cNode.getModuleConfiguration().getStringValue(GTACourseNode.GTASK_TYPE))) { log.audit(msg + " to business group: " + assessedGroup.getName(), null); courseEnv.getAuditManager() - .appendToUserNodeLog(cNode, actor, assessedGroup, msg); + .appendToUserNodeLog(cNode, actor, assessedGroup, msg, by); } else { log.audit(msg, null); courseEnv.getAuditManager() - .appendToUserNodeLog(cNode, actor, assessedIdentity, msg); + .appendToUserNodeLog(cNode, actor, assessedIdentity, msg, by); } } diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTANotifications.java b/src/main/java/org/olat/course/nodes/gta/manager/GTANotifications.java index c0841e8ea44fd841d18921e541ccd2620e1715f7..17abc26974f797e796a4c4c23f78721086bfa002 100644 --- a/src/main/java/org/olat/course/nodes/gta/manager/GTANotifications.java +++ b/src/main/java/org/olat/course/nodes/gta/manager/GTANotifications.java @@ -59,6 +59,7 @@ import org.olat.course.nodes.gta.TaskRevisionDate; import org.olat.course.nodes.gta.model.DueDate; import org.olat.course.nodes.gta.model.Membership; import org.olat.course.nodes.gta.ui.GTARunController; +import org.olat.course.nodes.gta.ui.events.SubmitEvent; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; @@ -696,6 +697,7 @@ class GTANotifications { if(dueDate != null && dueDate.getDueDate() != null && dueDate.getDueDate().before(new Date())) { int numOfDocs = getNumberOfSubmittedDocuments(assessedIdentity, assessedGroup); task = gtaManager.submitTask(task, gtaNode, numOfDocs, Role.auto); + gtaManager.log("Submit", (SubmitEvent)null, task, null, assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.auto); doUpdateAttempts(assessedIdentity, assessedGroup); } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/ConfirmResetTaskController.java b/src/main/java/org/olat/course/nodes/gta/ui/ConfirmResetTaskController.java index c4d21b509731b48f773acf655232a1a6007f5b91..0b72eb38ce95bc552901b077c09233e8e6ec9773 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/ConfirmResetTaskController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/ConfirmResetTaskController.java @@ -34,6 +34,7 @@ import org.olat.course.nodes.GTACourseNode; import org.olat.course.nodes.gta.GTAManager; import org.olat.course.nodes.gta.Task; import org.olat.course.run.environment.CourseEnvironment; +import org.olat.modules.assessment.Role; import org.olat.user.UserManager; import org.springframework.beans.factory.annotation.Autowired; @@ -93,7 +94,7 @@ public class ConfirmResetTaskController extends FormBasicController { @Override protected void formOK(UserRequest ureq) { task = gtaManager.resetTask(task, gtaNode, courseEnv); - gtaManager.log("Reset task", "reset task", task, getIdentity(), getIdentity(), null, courseEnv, gtaNode); + gtaManager.log("Reset task", "reset task", task, getIdentity(), getIdentity(), null, courseEnv, gtaNode, Role.coach); fireEvent(ureq, Event.DONE_EVENT); } @@ -101,7 +102,7 @@ public class ConfirmResetTaskController extends FormBasicController { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { if(dontResetButton == source) { task = gtaManager.resetTaskRefused(task, gtaNode); - gtaManager.log("Refuse reset task", "refuse reset task", task, getIdentity(), getIdentity(), null, courseEnv, gtaNode); + gtaManager.log("Refuse reset task", "refuse reset task", task, getIdentity(), getIdentity(), null, courseEnv, gtaNode, Role.coach); fireEvent(ureq, Event.DONE_EVENT); } super.formInnerEvent(ureq, source, event); diff --git a/src/main/java/org/olat/course/nodes/gta/ui/EditDueDatesController.java b/src/main/java/org/olat/course/nodes/gta/ui/EditDueDatesController.java index 33758eac7748e4dce7454793023ae687e7e47148..5cf6b63c21bfe398ec982d3a963a3a9e4685d00d 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/EditDueDatesController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/EditDueDatesController.java @@ -153,7 +153,8 @@ public class EditDueDatesController extends FormBasicController { TaskProcess submit = gtaManager.previousStep(TaskProcess.review, gtaNode);//only submit allowed if(submit == TaskProcess.submit) { task = gtaManager.updateTask(task, submit, gtaNode, Role.coach); - gtaManager.log("Back to submission", "revert status of task back to submission", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Back to submission", "revert status of task back to submission", task, getIdentity(), + assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/EditMultipleDueDatesController.java b/src/main/java/org/olat/course/nodes/gta/ui/EditMultipleDueDatesController.java index 57432f711feba0af2f9714d8956a443be8ffc4af..be56d90cefe6115ac9419f6844d1dfd1c8c67afe 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/EditMultipleDueDatesController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/EditMultipleDueDatesController.java @@ -147,7 +147,8 @@ public class EditMultipleDueDatesController extends FormBasicController { TaskProcess submit = gtaManager.previousStep(TaskProcess.review, gtaNode);//only submit allowed if(submit == TaskProcess.submit) { task = gtaManager.updateTask(task, submit, gtaNode, Role.coach); - gtaManager.log("Back to submission", "revert status of task back to submission", task, getIdentity(), task.getIdentity(), task.getBusinessGroup(), courseEnv, gtaNode); + gtaManager.log("Back to submission", "revert status of task back to submission", task, + getIdentity(), task.getIdentity(), task.getBusinessGroup(), courseEnv, gtaNode, Role.coach); } } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAvailableTaskController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAvailableTaskController.java index 184d4557ae5eb86a40d1b189ed2b220a507c6339..50339be37d53bfa58b15ef18a14db8d4a7c05282 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAvailableTaskController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAvailableTaskController.java @@ -67,6 +67,7 @@ import org.olat.course.nodes.gta.ui.component.DescriptionWithTooltipCellRenderer import org.olat.course.run.environment.CourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; +import org.olat.modules.assessment.Role; import org.springframework.beans.factory.annotation.Autowired; /** @@ -267,10 +268,11 @@ public class GTAAvailableTaskController extends FormBasicController { showError("task.assignment.error"); } else if(response.getStatus() == AssignmentResponse.Status.alreadyAssigned) { showWarning("task.alreadyChosen"); - } else if(response == null || response.getStatus() == AssignmentResponse.Status.ok) { + } else if(response.getStatus() == AssignmentResponse.Status.ok) { showInfo("task.successfully.assigned"); fireEvent(ureq, Event.DONE_EVENT); - gtaManager.log("Assignment", "task assigned", response.getTask(), getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Assignment", "task assigned", response.getTask(), getIdentity(), + assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.user); doSendConfirmationEmail(response.getTask()); } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java index d5b777cdd5064603b9a6d3bf214cdc3a9c84b509..ffdcdd05e52ec81949d1166ad4a07a16fd7ae49b 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java @@ -572,7 +572,8 @@ public class GTACoachController extends GTAAbstractController implements Assessm } else if(submitCorrectionsCtrl == source) { if(event instanceof SubmitEvent) { Task assignedTask = submitCorrectionsCtrl.getAssignedTask(); - gtaManager.log("Corrections", (SubmitEvent)event, assignedTask, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Corrections", (SubmitEvent)event, assignedTask, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); } } else if(confirmReviewDocumentCtrl == source) { if(DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) { @@ -665,7 +666,7 @@ public class GTACoachController extends GTAAbstractController implements Assessm //go to solution, grading or graded gtaManager.reviewedTask(task, gtaNode); showInfo("coach.documents.successfully.reviewed"); - gtaManager.log("Review", "documents reviewed", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Review", "documents reviewed", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); cleanUpProcess(); process(ureq); @@ -684,7 +685,7 @@ public class GTACoachController extends GTAAbstractController implements Assessm private void doRevisions(UserRequest ureq, Task task) { gtaManager.updateTask(task, TaskProcess.revision, 1, gtaNode, Role.coach); - gtaManager.log("Review", "need revision", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Review", "need revision", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); cleanUpProcess(); process(ureq); @@ -742,7 +743,7 @@ public class GTACoachController extends GTAAbstractController implements Assessm CoordinatorManager.getInstance().getCoordinator().getEventBus() .fireEventToListenersOf(event, taskListEventResource); - gtaManager.log("Collect", "collect documents", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Collect", "collect documents", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); cleanUpProcess(); process(ureq); @@ -770,7 +771,8 @@ public class GTACoachController extends GTAAbstractController implements Assessm if(submit == TaskProcess.submit) { task = gtaManager.updateTask(task, submit, gtaNode, Role.coach); - gtaManager.log("Back to submission", "revert status of task back to submission", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Back to submission", "revert status of task back to submission", task, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); cleanUpProcess(); process(ureq); @@ -794,7 +796,8 @@ public class GTACoachController extends GTAAbstractController implements Assessm private void doAllowResetTask(UserRequest ureq, Task assignedTask) { gtaManager.allowResetTask(assignedTask, getIdentity(), gtaNode); - gtaManager.log("Allow reset task", "Allow the user to reset the task", assignedTask, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Allow reset task", "Allow the user to reset the task", assignedTask, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); cleanUpProcess(); process(ureq); showInfo("info.task.reset.allowed", (String)null); diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachRevisionAndCorrectionsController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachRevisionAndCorrectionsController.java index c249466d6428afcc21b852c8061d75017b3da9a7..01f625edd093b687fc7b99be9dcc84c0bac4659f 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachRevisionAndCorrectionsController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachRevisionAndCorrectionsController.java @@ -287,7 +287,8 @@ public class GTACoachRevisionAndCorrectionsController extends BasicController im if(uploadCorrectionsCtrl == source) { if(event instanceof SubmitEvent) { Task aTask = uploadCorrectionsCtrl.getAssignedTask(); - gtaManager.log("Corrections", (SubmitEvent)event, aTask, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Corrections", (SubmitEvent)event, aTask, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); } } else if(confirmReturnToRevisionsCtrl == source) { if(event == Event.DONE_EVENT) { @@ -376,7 +377,8 @@ public class GTACoachRevisionAndCorrectionsController extends BasicController im private void doCollect() { assignedTask = gtaManager.updateTask(assignedTask, TaskProcess.correction, gtaNode, Role.coach); - gtaManager.log("Collect revision", "revision collected", assignedTask, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Collect revision", "revision collected", assignedTask, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); ICourse course = CourseFactory.loadCourse(courseEnv.getCourseResourceableId()); if(businessGroupTask) { @@ -397,7 +399,8 @@ public class GTACoachRevisionAndCorrectionsController extends BasicController im private void doReturnToRevisions(Task task) { assignedTask = gtaManager.updateTask(task, TaskProcess.revision, currentIteration + 1, gtaNode, Role.coach); - gtaManager.log("Revision", "need another revision", assignedTask, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Revision", "need another revision", assignedTask, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); } private void doConfirmCloseRevisionProcess(UserRequest ureq) { @@ -409,6 +412,7 @@ public class GTACoachRevisionAndCorrectionsController extends BasicController im private void doCloseRevisionProcess() { assignedTask = gtaManager.reviewedTask(assignedTask, gtaNode); - gtaManager.log("Revision", "close revision", assignedTask, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Revision", "close revision", assignedTask, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.coach); } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java index fcc500d7f4f2bc7cd1a23b02c67430ebc00ad3ac..51974e7b7261eb46d5d06d4c0c5f78b33942f33c 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java @@ -347,7 +347,8 @@ public class GTAParticipantController extends GTAAbstractController implements A CoordinatorManager.getInstance().getCoordinator().getEventBus() .fireEventToListenersOf(event, taskListEventResource); - gtaManager.log("Submit", "submit documents", task, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Submit", "submit documents", task, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.user); cleanUpProcess(); process(ureq); @@ -762,7 +763,8 @@ public class GTAParticipantController extends GTAAbstractController implements A boolean hasUploadDocuments = submitDocCtrl.hasUploadDocuments(); if(event instanceof SubmitEvent) { Task assignedTask = submitDocCtrl.getAssignedTask(); - gtaManager.log("Submit", (SubmitEvent)event, assignedTask, getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode); + gtaManager.log("Submit", (SubmitEvent)event, assignedTask, + getIdentity(), assessedIdentity, assessedGroup, courseEnv, gtaNode, Role.user); } else if(event == Event.DONE_EVENT) { cleanUpProcess(); process(ureq); diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java index 66f9681d3480cacf5157dfffaeaa4772e11aefe8..92182a0245a09a86c3205edd7fde5cc341efbf19 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantRevisionAndCorrectionsController.java @@ -254,7 +254,8 @@ public class GTAParticipantRevisionAndCorrectionsController extends BasicControl if(uploadRevisionsCtrl == source) { if(event instanceof SubmitEvent) { Task aTask = uploadRevisionsCtrl.getAssignedTask(); - gtaManager.log("Revision", (SubmitEvent)event, aTask, getIdentity(), getIdentity(), assessedGroup, courseEnv, gtaNode); + gtaManager.log("Revision", (SubmitEvent)event, aTask, + getIdentity(), getIdentity(), assessedGroup, courseEnv, gtaNode, Role.user); } else if(event == Event.DONE_EVENT) { fireEvent(ureq, Event.DONE_EVENT); } @@ -328,7 +329,8 @@ public class GTAParticipantRevisionAndCorrectionsController extends BasicControl int numOfDocs = submittedDocuments == null ? 0 : submittedDocuments.length; assignedTask = gtaManager.submitRevisions(assignedTask, gtaNode, numOfDocs, Role.user); - gtaManager.log("Revision", "revision submitted", assignedTask, getIdentity(), getIdentity(), assessedGroup, courseEnv, gtaNode); + gtaManager.log("Revision", "revision submitted", assignedTask, + getIdentity(), getIdentity(), assessedGroup, courseEnv, gtaNode, Role.user); TaskMultiUserEvent event = new TaskMultiUserEvent(TaskMultiUserEvent.SUBMIT_REVISION, assessedGroup == null ? getIdentity() : null, assessedGroup, getIdentity()); diff --git a/src/main/java/org/olat/course/nodes/ta/DropboxController.java b/src/main/java/org/olat/course/nodes/ta/DropboxController.java index c3b5aa366b33062c97ab84d4137f132a8f03d116..097ff1727798aee1a18257534fbdd7126bf85369 100644 --- a/src/main/java/org/olat/course/nodes/ta/DropboxController.java +++ b/src/main/java/org/olat/course/nodes/ta/DropboxController.java @@ -367,7 +367,7 @@ public class DropboxController extends BasicController { // log entry for this file UserNodeAuditManager am = userCourseEnv.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(node, identity, identity, "FILE UPLOADED: " + filename); + am.appendToUserNodeLog(node, identity, identity, "FILE UPLOADED: " + filename, null); return VelocityHelper.getInstance().evaluateVTL(confirmation, c); } diff --git a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java index 1d8d6c9ec4532c228a66ee263ca83f3dde8429e1..8f802620a263de1b10e28d784840087beeea7457 100644 --- a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java +++ b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java @@ -282,7 +282,7 @@ public class DropboxScoringViewController extends BasicController { // log entry for this file Identity coach = ureq.getIdentity(); Identity student = userCourseEnv.getIdentityEnvironment().getIdentity(); - am.appendToUserNodeLog(node, coach, student, "FILE DELETED: " + folderEvent.getFilename()); + am.appendToUserNodeLog(node, coach, student, "FILE DELETED: " + folderEvent.getFilename(), null); } } } else if (source == returnboxFolderRunController) { @@ -304,7 +304,7 @@ public class DropboxScoringViewController extends BasicController { } } - am.appendToUserNodeLog(node, coach, student, "FILE UPLOADED: " + folderEvent.getFilename()); + am.appendToUserNodeLog(node, coach, student, "FILE UPLOADED: " + folderEvent.getFilename(), null); String toMail = UserManager.getInstance().getUserDisplayEmail(student, ureq.getLocale()); OLATResourceable ores = OresHelper.createOLATResourceableInstance(CourseNode.class, Long.valueOf(node.getIdent())); @@ -324,7 +324,7 @@ public class DropboxScoringViewController extends BasicController { bundle.setContent(subject, body); MailerResult result = CoreSpringFactory.getImpl(MailManager.class).sendMessage(bundle); if(result.getReturnCode() > 0) { - am.appendToUserNodeLog(node, coach, student, "MAIL SEND FAILED TO:" + toMail + "; MailReturnCode: " + result.getReturnCode()); + am.appendToUserNodeLog(node, coach, student, "MAIL SEND FAILED TO:" + toMail + "; MailReturnCode: " + result.getReturnCode(), null); log.warn("Could not send email 'returnbox notification' to " + student + "with email=" + toMail); } else { log.info("Send email 'returnbox notification' to " + student + "with email=" + toMail); diff --git a/src/main/java/org/olat/course/run/preview/PreviewAuditManager.java b/src/main/java/org/olat/course/run/preview/PreviewAuditManager.java index 56f6b06bc6c1245591f4b29dac64ac15c861a348..f23f80bccf56554c271747c9011ed5cf89ec8c8c 100644 --- a/src/main/java/org/olat/course/run/preview/PreviewAuditManager.java +++ b/src/main/java/org/olat/course/run/preview/PreviewAuditManager.java @@ -29,6 +29,7 @@ import org.olat.core.id.Identity; import org.olat.course.auditing.UserNodeAuditManager; import org.olat.course.nodes.CourseNode; import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.Role; /** * Initial Date: 08.02.2005 @@ -37,19 +38,12 @@ import org.olat.group.BusinessGroup; */ final class PreviewAuditManager implements UserNodeAuditManager { - /** - * @see org.olat.course.auditing.AuditManager#hasUserNodeLogs(org.olat.course.nodes.CourseNode) - */ @Override public boolean hasUserNodeLogs(CourseNode node) { // no logging in preview return false; } - /** - * @see org.olat.course.auditing.AuditManager#getUserNodeLog(org.olat.course.nodes.CourseNode, - * org.olat.core.id.Identity) - */ @Override public String getUserNodeLog(CourseNode courseNode, Identity identity) { // no logging in preview @@ -62,18 +56,13 @@ final class PreviewAuditManager implements UserNodeAuditManager { return null; } - /** - * @see org.olat.course.auditing.AuditManager#appendToUserNodeLog(org.olat.course.nodes.CourseNode, - * org.olat.core.id.Identity, org.olat.core.id.Identity, - * java.lang.String) - */ @Override - public void appendToUserNodeLog(CourseNode courseNode, Identity identity, Identity assessedIdentity, String logText) { + public void appendToUserNodeLog(CourseNode courseNode, Identity identity, Identity assessedIdentity, String logText, Role by) { // no logging in preview } @Override - public void appendToUserNodeLog(CourseNode courseNode, Identity identity, BusinessGroup assessedGroup, String logText) { + public void appendToUserNodeLog(CourseNode courseNode, Identity identity, BusinessGroup assessedGroup, String logText, Role by) { // no logging in preview } } \ No newline at end of file diff --git a/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java b/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java index 7238da08f942dfb5a37da5494186cc17fa6b7920..a5eedd1916acca9d45adf1ac7a21d414ff766ad8 100644 --- a/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java +++ b/src/main/java/org/olat/upgrade/legacy/NewCachePersistingAssessmentManager.java @@ -443,7 +443,7 @@ public class NewCachePersistingAssessmentManager { // node log UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, ATTEMPTS + " set to: " + String.valueOf(attempts)); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, ATTEMPTS + " set to: " + String.valueOf(attempts), null); // notify about changes AssessmentChangedEvent ace = new AssessmentChangedEvent(AssessmentChangedEvent.TYPE_ATTEMPTS_CHANGED, assessedIdentity); @@ -512,7 +512,7 @@ public class NewCachePersistingAssessmentManager { }); // node log UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, COMMENT + " set to: " + comment); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, COMMENT + " set to: " + comment, null); // notify about changes AssessmentChangedEvent ace = new AssessmentChangedEvent(AssessmentChangedEvent.TYPE_USER_COMMENT_CHANGED, assessedIdentity); @@ -901,14 +901,14 @@ public class NewCachePersistingAssessmentManager { // node log UserNodeAuditManager am = course.getCourseEnvironment().getAuditManager(); - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, SCORE + " set to: " + String.valueOf(scoreEvaluation.getScore())); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, SCORE + " set to: " + String.valueOf(scoreEvaluation.getScore()), null); if(scoreEvaluation.getPassed()!=null) { - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, PASSED + " set to: " + scoreEvaluation.getPassed().toString()); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, PASSED + " set to: " + scoreEvaluation.getPassed().toString(), null); } else { - am.appendToUserNodeLog(courseNode, identity, assessedIdentity, PASSED + " set to \"undefined\""); + am.appendToUserNodeLog(courseNode, identity, assessedIdentity, PASSED + " set to \"undefined\"", null); } if(scoreEvaluation.getAssessmentID()!=null) { - am.appendToUserNodeLog(courseNode, assessedIdentity, assessedIdentity, ASSESSMENT_ID + " set to: " + scoreEvaluation.getAssessmentID().toString()); + am.appendToUserNodeLog(courseNode, assessedIdentity, assessedIdentity, ASSESSMENT_ID + " set to: " + scoreEvaluation.getAssessmentID().toString(), null); } // notify about changes