package org.sakaiproject.tool.gradebook.ui.helpers.beans; import org.sakaiproject.service.gradebook.shared.GradebookService; import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.tool.gradebook.Gradebook; import org.sakaiproject.tool.gradebook.business.GradebookManager; import org.sakaiproject.tool.gradebook.ui.helpers.producers.AuthorizationFailedProducer; import uk.org.ponder.messageutil.MessageLocator; import uk.org.ponder.messageutil.TargettedMessage; import uk.org.ponder.messageutil.TargettedMessageList; public class AssignmentGradeRecordBean { private static final String CANCEL = "cancel"; private static final String SUBMIT = "submit"; private static final String FAILURE = "failure"; private TargettedMessageList messages; public void setMessages(TargettedMessageList messages) { this.messages = messages; } private MessageLocator messageLocator; public void setMessageLocator (MessageLocator messageLocator) { this.messageLocator = messageLocator; } private GradebookManager gradebookManager; public void setGradebookManager(GradebookManager gradebookManager) { this.gradebookManager = gradebookManager; } private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService) { this.gradebookService = gradebookService; } private Long gradebookId; public void setGradebookId(Long gradebookId){ this.gradebookId = gradebookId; } private Long assignmentId; public void setAssignmentId(Long assignmentId){ this.assignmentId = assignmentId; } private String studentId; public void setStudentId(String studentId){ this.studentId = studentId; } private String commentText; public void setCommentText(String commentText){ this.commentText = commentText; } private String enteredGrade; public void setEnteredGrade(String enteredGrade) { this.enteredGrade = enteredGrade; } public String processActionSubmitGrade(){ if (this.assignmentId == null || this.studentId == null || this.gradebookId == null){ return FAILURE; } Gradebook gradebook = gradebookManager.getGradebook(this.gradebookId); Assignment assignment = gradebookManager.getAssignment(this.assignmentId); if (!gradebookService.isUserAbleToGradeItemForStudent(gradebook.getUid(), this.assignmentId, this.studentId)) { return AuthorizationFailedProducer.VIEW_ID; } boolean errorFound = false; if (!gradebookService.isGradeValid(gradebook.getUid(), enteredGrade)) { errorFound = true; } if (errorFound) { if (gradebook.getGrade_type() == GradebookService.GRADE_TYPE_LETTER) { messages.addMessage(new TargettedMessage("gradebook.grade-gradebook-item.letter_error", new Object[] {assignment.getName() }, TargettedMessage.SEVERITY_ERROR)); } else if (gradebook.getGrade_type() == GradebookService.GRADE_TYPE_PERCENTAGE) { messages.addMessage(new TargettedMessage("gradebook.grade-gradebook-item.percent_error", new Object[] {assignment.getName() }, TargettedMessage.SEVERITY_ERROR)); } else { messages.addMessage(new TargettedMessage("gradebook.grade-gradebook-item.points_error", new Object[] {assignment.getName() }, TargettedMessage.SEVERITY_ERROR)); } } if (errorFound) { return FAILURE; } gradebookService.saveGradeAndCommentForStudent(gradebook.getUid(), assignment.getId(), studentId, enteredGrade, commentText); return SUBMIT; } public String processActionCancel(){ return CANCEL; } }