Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/delivery/MatchingBean.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/delivery/MatchingBean.java (revision 103227) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/delivery/MatchingBean.java (working copy) @@ -37,6 +37,7 @@ */ public class MatchingBean { + private final String NONE_OF_THE_ABOVE = "-1"; private ItemContentsBean parent; private ItemTextIfc itemText; @@ -102,6 +103,11 @@ if ("0".equals(newresp)) { data.setPublishedAnswerId(null); } + // used for matching questions that have distractors. If the user chooses the answer + // None of the Above, that answer value will be saved in the database. + if (NONE_OF_THE_ABOVE.equals(newresp)) { + data.setPublishedAnswerId(Long.parseLong(NONE_OF_THE_ABOVE)); + } Iterator iter = itemText.getAnswerSet().iterator(); while (iter.hasNext()) { Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/delivery/DeliveryActionListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/delivery/DeliveryActionListener.java (revision 103270) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/delivery/DeliveryActionListener.java (working copy) @@ -1538,6 +1538,9 @@ public void populateMatching(ItemDataIfc item, ItemContentsBean bean, HashMap publishedAnswerHash) { + // used only for questions with distractors where the user has selected None of the Above + final Long NONE_OF_THE_ABOVE = -1l; + Iterator iter = item.getItemTextArraySorted().iterator(); int j = 1; ArrayList beans = new ArrayList(); @@ -1587,7 +1590,7 @@ GradingService gs = new GradingService(); if (gs.hasDistractors(item)) { - choices.add(new SelectItem("0", + choices.add(new SelectItem(NONE_OF_THE_ABOVE.toString(), "None of the Above", "")); } @@ -1620,6 +1623,8 @@ mbean.setFeedback(pubAnswer.getInCorrectAnswerFeedback()); mbean.setIsCorrect(false); } + } else if (NONE_OF_THE_ABOVE.equals(data.getPublishedAnswerId())) { + mbean.setResponse(data.getPublishedAnswerId().toString()); } break; }