Index: samigo-api/src/java/org/sakaiproject/tool/assessment/data/ifc/assessment/ItemMetaDataIfc.java =================================================================== --- samigo-api/src/java/org/sakaiproject/tool/assessment/data/ifc/assessment/ItemMetaDataIfc.java (revision 98958) +++ samigo-api/src/java/org/sakaiproject/tool/assessment/data/ifc/assessment/ItemMetaDataIfc.java (working copy) @@ -31,6 +31,7 @@ public static final String KEYWORD= "KEYWORD"; public static final String RUBRIC= "RUBRIC"; public static final String RANDOMIZE= "RANDOMIZE"; + public static final String MCMS_PARTIAL_CREDIT = "MCMS_PARTIAL_CREDIT"; public static final String SCALENAME= "SCALENAME"; public static final String PARTID= "PARTID"; public static final String POOLID= "POOLID"; Index: samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/CommonMessages.properties =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/CommonMessages.properties (revision 98958) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/CommonMessages.properties (working copy) @@ -1,6 +1,8 @@ multiple_choice_sin=Single Correct multipl_mc_ss=Multiple Correct, Single Selection multipl_mc_ms=Multiple Correct, Multiple Selection +multipl_mc_ms_full_credit=All or Nothing +mutlipl_mc_ms_partial_credit=Partial Credit feedback_optional=Feedback (optional) feedback_authoring=Feedback Authoring question_level_feedback=Question-Level Feedback Index: samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/AuthorMessages.properties =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/AuthorMessages.properties (revision 98958) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/AuthorMessages.properties (working copy) @@ -504,8 +504,10 @@ mcsc_whats_this_text=This is the default option because it's the most common: students get the full point value for selecting a single correct answer and zero points for selecting anything else. This option can be further modified by selecting Enable Partial Credit or Enable Negative Marking. mcsc_whats_this_text_no_partial_credit=This is the default option because it's the most common: students get the full point value for selecting a single correct answer and zero points for selecting anything else. If you want to penalize students for incorrect responses, then enter a value for the "Negative point value..." field. This value will be the question's point value when a student makes an incorrect selection. For instance, if a question is worth 10 points and you enter "5" into the "Negative point value..." field, a correct answer selection would be worth 10 points and an incorrect answer selection would be worth -5 points. mcss_whats_this_text=Select this option if multiple answers are correct and you would like to give students full credit for choosing any of them. For instance, question X has options A, B, C, D, where A, B, or D are all correct answers. If a student selects A, B, or D, he would receive full credit. If he selects C, then he would get zero credit. -mcms_whats_this_text=Select this option if students need to select all of the correct answers in order to receive full credit. They will be given partial credit for selecting a correct answer and will be penalized for selecting an incorrect answer. For instance, question X is worth 10 points and has options A, B, C, D, E where A and B are correct choices. Each correct answer has a point value equal to the question point value divided by the number of correct answers. Thus, a student will get 5 points for selecting A or B. They will be penalized 5 points for selecting C, D, or E. -mcms_whats_this_note=Note: Even though a question could have a negative point value based on the grading logic (as in this example), the actual lowest possible total point value for a multiple correct, multiple selection question cannot be less than zero. +mcms_whats_this_text=Select this option if students need to select all of the correct answers in order to receive full credit. +mcms_whats_this_partial_text=Partial Credit: They will be given partial credit for selecting a correct answer and will be penalized for selecting an incorrect answer. For instance, question X is worth 10 points and has options A, B, C, D, E where A and B are correct choices. Each correct answer has a point value equal to the question point value divided by the number of correct answers. Thus, a student will get 5 points for selecting A or B. They will be penalized 5 points for selecting C, D, or E. +mcms_whats_this_partial_note=Note: Even though a question could have a negative point value based on the grading logic (as in this example), the actual lowest possible total point value for a multiple correct, multiple selection question cannot be less than zero. +mcms_whats_this_full_text:All or nothing: They will receive full credit only if they choose all of the correct answers and none of the incorrect answers. enable_partial_credit_text=Select this option if you want to give students partial credit when they choose an answer that is "almost correct." For instance, question X has options A, B, C, D, where A is the correct answer. If students pick A, they would receive full credit, but they could be given some credit for choosing an answer that is almost correct. Enabling this option will allow you to specify a percentage value for each answer. enable_negative_makrinkg_text=Select this option if you want to discourage random guessing. The value entered into the "Negative point value..." field will be the question's point value if a student makes an incorrect selection. For instance, if a question is worth 10 points and you enter "5" into the "Negative point value..." field, a correct answer selection would be worth 10 points and an incorrect answer selection would be worth -5 points. enable_negative_makrinkg_note=NOTE: Even though a question may have a negative point value, the final point value for an assessment will not be less than zero. Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/ItemBean.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/ItemBean.java (revision 98958) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/author/ItemBean.java (working copy) @@ -89,6 +89,7 @@ private String multipleCorrectString; private String randomized = "false"; private String rationale = "false"; + private String mcmsPartialCredit; // for matching only private String instruction; // matching's question text @@ -1729,4 +1730,16 @@ } } } + + public String getMcmsPartialCredit() { + if(mcmsPartialCredit == null){ + //set default (true by default) + mcmsPartialCredit = ServerConfigurationService.getString("samigo.mcmsPartialCredit", "true"); + } + return mcmsPartialCredit; + } + + public void setMcmsPartialCredit(String mcmsPartialCredit) { + this.mcmsPartialCredit = mcmsPartialCredit; + } } Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemAddListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemAddListener.java (revision 98958) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemAddListener.java (working copy) @@ -1583,6 +1583,12 @@ set.add(new ItemMetaData(item.getData(), ItemMetaDataIfc.RANDOMIZE, bean.getRandomized())); } + // MSMC property got left out, added in metadata + if (bean.getMcmsPartialCredit() != null) { + set.add(new ItemMetaData(item.getData(), + ItemMetaDataIfc.MCMS_PARTIAL_CREDIT, bean.getMcmsPartialCredit())); + } + // 2/19/06 use PREDEFINED_SCALE to be in sync with what we are using // for import/export if (bean.getScaleName() != null) { @@ -1683,6 +1689,8 @@ } else if (itemMetaData.getLabel().equals(ItemMetaDataIfc.KEYWORD)){ itemMetaData.setEntry(bean.getKeyword()); + }else if(itemMetaData.getLabel().equals(ItemMetaDataIfc.MCMS_PARTIAL_CREDIT)){ + itemMetaData.setEntry(bean.getMcmsPartialCredit()); } // save settings for mutually exclusive for FIB. Default=false Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemModifyListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemModifyListener.java (revision 98958) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemModifyListener.java (working copy) @@ -586,6 +586,9 @@ if (meta.getLabel().equals(ItemMetaDataIfc.RANDOMIZE)){ bean.setRandomized(meta.getEntry()); } + if (meta.getLabel().equals(ItemMetaDataIfc.MCMS_PARTIAL_CREDIT)){ + bean.setMcmsPartialCredit(meta.getEntry()); + } // for Multiple Choice Survey get survey type // use PREDEFINED_SCALE Index: samigo-app/src/webapp/jsf/author/mcWhatsThis.jsp =================================================================== --- samigo-app/src/webapp/jsf/author/mcWhatsThis.jsp (revision 98958) +++ samigo-app/src/webapp/jsf/author/mcWhatsThis.jsp (working copy) @@ -96,8 +96,10 @@ - - + + + + Index: samigo-app/src/webapp/jsf/author/item/multipleChoice.jsp =================================================================== --- samigo-app/src/webapp/jsf/author/item/multipleChoice.jsp (revision 98958) +++ samigo-app/src/webapp/jsf/author/item/multipleChoice.jsp (working copy) @@ -102,7 +102,7 @@ value="#{itemauthor.currentItem.itemType}" valueChangeListener="#{itemauthor.currentItem.toggleChoiceTypes}" > - + @@ -131,6 +131,22 @@ + + +
+ + + + + + +
+ +