Skip to content

Commit f905882

Browse files
authored
SAK-48038 CLONE - Forums - Error when grading a forum if the gradebook item was deleted (sakaiproject#11020)
1 parent ebc0bf9 commit f905882

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed

msgcntr/messageforums-app/src/java/org/sakaiproject/tool/messageforums/DiscussionForumTool.java

+31-7
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@
127127
import org.sakaiproject.exception.InUseException;
128128
import org.sakaiproject.exception.PermissionException;
129129
import org.sakaiproject.portal.util.PortalUtils;
130+
import org.sakaiproject.grading.api.AssessmentNotFoundException;
130131
import org.sakaiproject.grading.api.Assignment;
131132
import org.sakaiproject.grading.api.GradeDefinition;
132133
import org.sakaiproject.grading.api.GradeType;
@@ -4470,13 +4471,36 @@ private String processDfMsgGrdHelper(String userId, String msgAssignmentName) {
44704471
selectedForum.setGradeAssign(forumDefaultAssignment);
44714472
}
44724473

4473-
if (selAssignmentName != null) {
4474-
setUpGradeInformation(gradebookUid, selAssignmentName, userId);
4475-
} else {
4476-
// this is the "Select a gradebook item" selection
4477-
allowedToGradeItem = false;
4478-
selGBItemRestricted = true;
4479-
}
4474+
4475+
4476+
try {
4477+
if (selAssignmentName != null) {
4478+
setUpGradeInformation(gradebookUid, selAssignmentName, userId);
4479+
} else {
4480+
// this is the "Select a gradebook item" selection
4481+
allowedToGradeItem = false;
4482+
selGBItemRestricted = true;
4483+
}
4484+
}catch (AssessmentNotFoundException e) {
4485+
if (msgAssignmentName !=null && msgAssignmentName.trim().length()>0) {
4486+
Message msg = selectedMessage.getMessage();
4487+
msg.setGradeAssignmentName(null);
4488+
msg = forumManager.saveMessage(msg);
4489+
selectedMessage.setMessage(msg);
4490+
} else if (topicDefaultAssignment != null && topicDefaultAssignment.trim().length() > 0) {
4491+
DiscussionTopic dt = selectedTopic.getTopic();
4492+
dt.setDefaultAssignName(null);
4493+
dt = forumManager.saveTopic(dt);
4494+
selectedTopic.setTopic(dt);
4495+
} else if (forumDefaultAssignment != null && forumDefaultAssignment.trim().length() > 0) {
4496+
DiscussionForum df = selectedForum.getForum();
4497+
df.setDefaultAssignName(null);
4498+
df = forumManager.saveForum(df);
4499+
selectedForum.setForum(df);
4500+
}
4501+
allowedToGradeItem = false;
4502+
selGBItemRestricted = true;
4503+
}
44804504

44814505
return GRADE_MESSAGE;
44824506
}

msgcntr/messageforums-app/src/java/org/sakaiproject/tool/messageforums/ui/DiscussionMessageBean.java

+4
Original file line numberDiff line numberDiff line change
@@ -624,4 +624,8 @@ private UIPermissionsManager getUIPermissionsManager()
624624
public int getWordCount() {
625625
return new StringTokenizer(message.getBody()).countTokens();
626626
}
627+
628+
public void setMessage(Message message) {
629+
this.message = message;
630+
}
627631
}

msgcntr/messageforums-app/src/java/org/sakaiproject/tool/messageforums/ui/MessageForumStatisticsBean.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2835,7 +2835,7 @@ public void setDefaultSelectedAssign(){
28352835
Assignment assignment = getGradingService().getAssignmentByNameOrId(toolManager.getCurrentPlacement().getContext(), defaultAssignName);
28362836
setDefaultSelectedAssign(assignment.getName());
28372837
} catch (Exception ex) {
2838-
log.error("MessageForumStatisticsBean - setDefaultSelectedAssign: " + ex);
2838+
log.warn("MessageForumStatisticsBean - setDefaultSelectedAssign: " + ex);
28392839
}
28402840
}
28412841
}

0 commit comments

Comments
 (0)