Index: lams_tool_daco/build.xml =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/build.xml (.../build.xml) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/build.xml (.../build.xml) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -92,13 +92,13 @@ classpathref="all-libs"/> Building hbm.xml files using XDoclet to ${conf.hibernate.mapping.dir} from ${src.java.dir} - + Index: lams_tool_daco/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -15,6 +15,11 @@ errorPage.title =Error page errorPage.heading =Some error occurs when handling your request +label.common.summary=Summary +label.common.summary.none=None +label.common.summary.sum=Sum +label.common.summary.average=Average +label.common.summary.count=Count label.author.title =Data Collection label.authoring.heading =Data Collection @@ -85,11 +90,8 @@ label.authoring.basic.required =Question is required label.authoring.basic.additionaloptions.show=Show additional options label.authoring.basic.additionaloptions.hide=Hide additional options -label.authoring.basic.summary=Summary -label.authoring.basic.summary.sum=Sum -label.authoring.basic.summary.average=Average -label.authoring.basic.summary.count=Count + label.authoring.online.instruction =Online Instructions label.authoring.online.file =Upload online file label.authoring.online.filelist =Online file list @@ -118,6 +120,7 @@ label.learning.heading=Data Collection label.learning.heading.add=Add label.learning.heading.list=List +label.learning.heading.summary=Summary label.learning.heading.recordnumber =Record number: label.learning.heading.norecords=No records added. label.learning.add=Add record @@ -145,6 +148,13 @@ label.learning.longlat.latitude=Latitude: label.learning.longlat.latitude.unit=�E label.learning.view.change=Change view +label.learning.tableheader.questions=Questions +label.learning.tableheader.records=Records +label.learning.tableheader.recordnumber=Record number +label.learning.tableheader.summary=Summaries +label.learning.tableheader.summary.learner=Learner +label.learning.tableheader.summary.all=All +label.learning.summary.emptyanswer=Empty answer tab.monitoring.summary =Summary tab.monitoring.statistics =Statistic Index: lams_tool_daco/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -15,6 +15,11 @@ errorPage.title =Error page errorPage.heading =Some error occurs when handling your request +label.common.summary=Summary +label.common.summary.none=None +label.common.summary.sum=Sum +label.common.summary.average=Average +label.common.summary.count=Count label.author.title =Data Collection label.authoring.heading =Data Collection @@ -85,11 +90,8 @@ label.authoring.basic.required =Question is required label.authoring.basic.additionaloptions.show=Show additional options label.authoring.basic.additionaloptions.hide=Hide additional options -label.authoring.basic.summary=Summary -label.authoring.basic.summary.sum=Sum -label.authoring.basic.summary.average=Average -label.authoring.basic.summary.count=Count + label.authoring.online.instruction =Online Instructions label.authoring.online.file =Upload online file label.authoring.online.filelist =Online file list @@ -118,6 +120,7 @@ label.learning.heading=Data Collection label.learning.heading.add=Add label.learning.heading.list=List +label.learning.heading.summary=Summary label.learning.heading.recordnumber =Record number: label.learning.heading.norecords=No records added. label.learning.add=Add record @@ -145,6 +148,13 @@ label.learning.longlat.latitude=Latitude: label.learning.longlat.latitude.unit=�E label.learning.view.change=Change view +label.learning.tableheader.questions=Questions +label.learning.tableheader.records=Records +label.learning.tableheader.recordnumber=Record number +label.learning.tableheader.summary=Summaries +label.learning.tableheader.summary.learner=Learner +label.learning.tableheader.summary.all=All +label.learning.summary.emptyanswer=Empty answer tab.monitoring.summary =Summary tab.monitoring.statistics =Statistic Index: lams_tool_daco/conf/xdoclet/struts-actions.xml =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -142,6 +142,10 @@ + + + + Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/DacoConstants.java =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/DacoConstants.java (.../DacoConstants.java) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/DacoConstants.java (.../DacoConstants.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -69,6 +69,20 @@ public static final String RECORD_OPERATION_ADD = "add"; public static final String RECORD_OPERATION_EDIT = "edit"; + // question summary columns + public static final short QUESTION_SUMMARY_COLUMN_COUNT = 4; + public static final short QUESTION_SUMMARY_ANSWER = 0; + public static final short QUESTION_SUMMARY_SUM = 1; + public static final short QUESTION_SUMMARY_AVERAGE = 2; + public static final short QUESTION_SUMMARY_COUNT = 3; + + public static final short QUESTION_DB_SUMMARY_QUESTION_UID = 0; + public static final short QUESTION_DB_SUMMARY_ANSWER = 1; + public static final short QUESTION_DB_SUMMARY_QUESTION_TYPE = 2; + public static final short QUESTION_DB_SUMMARY_SUM = 3; + public static final short QUESTION_DB_SUMMARY_AVERAGE = 4; + public static final short QUESTION_DB_SUMMARY_COUNT = 5; + // learning views public static final String LEARNING_VIEW_HORIZONTAL = "horizontal"; public static final String LEARNING_VIEW_VERTICAL = "vertical"; @@ -117,6 +131,7 @@ public static final String ATTR_RECORD_OPERATION_SUCCESS = "recordOperationSuccess"; public static final String ATTR_DISPLAYED_RECORD_NUMBER = "displayedRecordNumber"; public static final String ATTR_LEARNING_VIEW = "learningView"; + public static final String ATTR_QUESTION_SUMMARIES = "questionSummaries"; // error message keys public static final String ERROR_MSG_DESC_BLANK = "error.question.desc.blank"; Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/DacoAnswerDAO.java =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/DacoAnswerDAO.java (.../DacoAnswerDAO.java) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/DacoAnswerDAO.java (.../DacoAnswerDAO.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -4,6 +4,7 @@ import org.lamsfoundation.lams.tool.daco.model.Daco; import org.lamsfoundation.lams.tool.daco.model.DacoAnswer; +import org.lamsfoundation.lams.tool.daco.util.QuestionSummary; public interface DacoAnswerDAO extends DAO { List> getRecordsByUserUid(Long userUid); @@ -13,4 +14,6 @@ List> getAnswersByQuestionUid(Long questionUid); List> getRecordsByUserUidAndDaco(Long userUid, Daco daco); + + List getSummaries(Long contentUid, Long userUid, List blankSummary); } \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/DacoQuestionDAO.java =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/DacoQuestionDAO.java (.../DacoQuestionDAO.java) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/DacoQuestionDAO.java (.../DacoQuestionDAO.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -35,7 +35,7 @@ * @param dacoUid * @return */ - List getAuthoringQuestions(Long dacoUid); + List getByContentUid(Long dacoUid); DacoQuestion getByUid(Long dacoQuestionUid); } \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/hibernate/DacoAnswerDAOHibernate.java =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/hibernate/DacoAnswerDAOHibernate.java (.../DacoAnswerDAOHibernate.java) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/hibernate/DacoAnswerDAOHibernate.java (.../DacoAnswerDAOHibernate.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -4,12 +4,15 @@ import java.util.List; import java.util.Set; +import org.lamsfoundation.lams.tool.daco.DacoConstants; import org.lamsfoundation.lams.tool.daco.dao.DacoAnswerDAO; import org.lamsfoundation.lams.tool.daco.model.Daco; import org.lamsfoundation.lams.tool.daco.model.DacoAnswer; import org.lamsfoundation.lams.tool.daco.model.DacoQuestion; +import org.lamsfoundation.lams.tool.daco.util.QuestionSummary; public class DacoAnswerDAOHibernate extends BaseDAOHibernate implements DacoAnswerDAO { + private static final String FIND_BY_USER_UID = "from " + DacoAnswer.class.getName() + " as p where p.user.uid=? order by record_id,question_uid"; private static final String FIND_BY_QUESTION_UID = "from " + DacoAnswer.class.getName() @@ -91,4 +94,112 @@ } return result; } + + public List getSummaries(Long contentUid, Long userUid, List summaries) { + + List result = getHibernateTemplate().findByNamedQueryAndNamedParam("userNumberQuery", + new String[] { "contentUid", "userUid", "numberQuestionType" }, + new Object[] { contentUid, userUid, DacoConstants.QUESTION_TYPE_NUMBER }); + + for (Object[] objectRow : result) { + addNumberSummary(summaries, objectRow, true); + } + + result = getHibernateTemplate().findByNamedQueryAndNamedParam("allNumberQuery", + new String[] { "contentUid", "numberQuestionType" }, + new Object[] { contentUid, DacoConstants.QUESTION_TYPE_NUMBER }); + + for (Object[] objectRow : result) { + addNumberSummary(summaries, objectRow, false); + } + + result = getHibernateTemplate().findByNamedQueryAndNamedParam( + "userAnswerEnumerationQuery", + new String[] { "contentUid", "userUid", "numberQuestionType", "radioQuestionType", "dropdownQuestionType", + "checkboxQuestionType" }, + new Object[] { contentUid, userUid, DacoConstants.QUESTION_TYPE_NUMBER, DacoConstants.QUESTION_TYPE_RADIO, + DacoConstants.QUESTION_TYPE_DROPDOWN, DacoConstants.QUESTION_TYPE_CHECKBOX }); + + for (Object[] objectRow : result) { + addAnswerEnumerationSummary(summaries, objectRow, true); + } + + result = getHibernateTemplate().findByNamedQueryAndNamedParam( + "allAnswerEnumerationQuery", + new String[] { "contentUid", "numberQuestionType", "radioQuestionType", "dropdownQuestionType", + "checkboxQuestionType" }, + new Object[] { contentUid, DacoConstants.QUESTION_TYPE_NUMBER, DacoConstants.QUESTION_TYPE_RADIO, + DacoConstants.QUESTION_TYPE_DROPDOWN, DacoConstants.QUESTION_TYPE_CHECKBOX }); + + for (Object[] objectRow : result) { + addAnswerEnumerationSummary(summaries, objectRow, false); + } + return summaries; + } + + private void addAnswerEnumerationSummary(List summaries, Object[] objectRow, boolean isUserSummary) { + String[] row = rewriteRow(objectRow); + long currentUid = Long.parseLong(row[DacoConstants.QUESTION_DB_SUMMARY_QUESTION_UID]); + QuestionSummary summary = summaries.get(findQuestionSequenceNumber(currentUid, summaries)); + String[] columns = new String[DacoConstants.QUESTION_SUMMARY_COLUMN_COUNT]; + columns[DacoConstants.QUESTION_SUMMARY_ANSWER] = row[DacoConstants.QUESTION_DB_SUMMARY_ANSWER]; + columns[DacoConstants.QUESTION_SUMMARY_AVERAGE] = row[DacoConstants.QUESTION_DB_SUMMARY_AVERAGE]; + columns[DacoConstants.QUESTION_SUMMARY_COUNT] = row[DacoConstants.QUESTION_DB_SUMMARY_COUNT]; + + if (Short.parseShort(row[DacoConstants.QUESTION_DB_SUMMARY_QUESTION_TYPE]) == DacoConstants.QUESTION_TYPE_NUMBER) { + String[] currentColumns = null; + int answerIndex = 1; + do { + currentColumns = isUserSummary ? summary.getUserSummaryRow(answerIndex) : summary.getAllSummaryRow(answerIndex); + if (currentColumns == null) { + if (isUserSummary) { + summary.addUserSummaryRow(answerIndex, columns); + } + else { + summary.addAllSummaryRow(answerIndex, columns); + } + currentColumns = null; + } + answerIndex++; + } + while (currentColumns != null); + } + else { + String answer = row[DacoConstants.QUESTION_DB_SUMMARY_ANSWER]; + int answerIndex = Integer.parseInt(answer) - 1; + if (isUserSummary) { + summary.addUserSummaryRow(answerIndex, columns); + } + else { + summary.addAllSummaryRow(answerIndex, columns); + } + } + } + + private void addNumberSummary(List summaries, Object[] objectRow, boolean isUserSummary) { + String[] row = rewriteRow(objectRow); + long currentUid = Long.parseLong(row[DacoConstants.QUESTION_DB_SUMMARY_QUESTION_UID]); + QuestionSummary summary = summaries.get(findQuestionSequenceNumber(currentUid, summaries)); + String[] columns = isUserSummary ? summary.getUserSummaryRow(0) : summary.getAllSummaryRow(0); + columns[DacoConstants.QUESTION_SUMMARY_SUM] = row[DacoConstants.QUESTION_DB_SUMMARY_SUM]; + columns[DacoConstants.QUESTION_SUMMARY_AVERAGE] = row[DacoConstants.QUESTION_DB_SUMMARY_AVERAGE]; + } + + private int findQuestionSequenceNumber(Long uid, List summaries) { + for (int summaryNumber = 0; summaryNumber < summaries.size(); summaryNumber++) { + QuestionSummary summary = summaries.get(summaryNumber); + if (summary != null && uid.equals(summary.getQuestionUid())) { + return summaryNumber; + } + } + return -1; + } + + private String[] rewriteRow(Object[] objectRow) { + String[] row = new String[objectRow.length]; + for (int fieldNumber = 0; fieldNumber < objectRow.length; fieldNumber++) { + row[fieldNumber] = (String) objectRow[fieldNumber]; + } + return row; + } } \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/hibernate/DacoQuestionDAOHibernate.java =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/hibernate/DacoQuestionDAOHibernate.java (.../DacoQuestionDAOHibernate.java) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/dao/hibernate/DacoQuestionDAOHibernate.java (.../DacoQuestionDAOHibernate.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -28,17 +28,16 @@ import org.lamsfoundation.lams.tool.daco.dao.DacoQuestionDAO; import org.lamsfoundation.lams.tool.daco.model.DacoQuestion; -public class DacoQuestionDAOHibernate extends BaseDAOHibernate implements DacoQuestionDAO{ - - private static final String FIND_AUTHORING_QUESTIONS = "from " + DacoQuestion.class.getName() + " where content_uid = ? order by create_date asc"; - - public List getAuthoringQuestions(Long dacoUid) { - - return this.getHibernateTemplate().find(FIND_AUTHORING_QUESTIONS,dacoUid); +public class DacoQuestionDAOHibernate extends BaseDAOHibernate implements DacoQuestionDAO { + + private static final String FIND_BY_CONTENT_UID = "from " + DacoQuestion.class.getName() + + " where content_uid = ? order by create_date asc"; + + public List getByContentUid(Long dacoUid) { + return this.getHibernateTemplate().find(DacoQuestionDAOHibernate.FIND_BY_CONTENT_UID, dacoUid); } public DacoQuestion getByUid(Long dacoQuestionUid) { - return (DacoQuestion) this.getObject(DacoQuestion.class,dacoQuestionUid); + return (DacoQuestion) this.getObject(DacoQuestion.class, dacoQuestionUid); } - -} +} \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/model/DacoAnswer.hbm.xml =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/model/DacoAnswer.hbm.xml (.../DacoAnswer.hbm.xml) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/model/DacoAnswer.hbm.xml (.../DacoAnswer.hbm.xml) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -100,5 +100,92 @@ --> + + + + + + + + +SELECT question_uid, +NULL AS answer, +NULL AS question_type, +SUM(answer) AS sum, +AVG(answer) AS average, +NULL AS count +FROM tl_ladaco10_answers AS a, tl_ladaco10_questions AS q +WHERE a.question_uid=q.uid + AND q.content_uid=:contentUid + AND a.user_uid=:userUid + AND question_type=:numberQuestionType + AND answer IS NOT NULL +GROUP BY question_uid +ORDER BY question_uid + + + + + + + + +SELECT question_uid, +NULL AS answer, +question_type, +SUM(answer) AS sum, +AVG(answer) AS average, +NULL AS count +FROM tl_ladaco10_answers AS a, tl_ladaco10_questions AS q +WHERE a.question_uid=q.uid + AND q.content_uid=:contentUid + AND question_type=:numberQuestionType + AND answer IS NOT NULL +GROUP BY question_uid ORDER BY question_uid + + + + + + + + + +SELECT DISTINCT a.question_uid, +answer, +question_type, +NULL AS sum, +CONCAT(ROUND(COUNT(1)/(SELECT COUNT(1) FROM tl_ladaco10_answers WHERE question_uid=q.uid AND answer IS NOT NULL)*100),'%') AS average, +COUNT(1) AS count +FROM tl_ladaco10_answers AS a, tl_ladaco10_questions AS q +WHERE a.question_uid=q.uid + AND q.content_uid=:contentUid + AND a.user_uid=:userUid + AND question_type IN (:numberQuestionType,:radioQuestionType,:dropdownQuestionType,:checkboxQuestionType) + AND answer IS NOT NULL +GROUP BY question_uid, answer ORDER BY question_uid,answer + + + + + + + + + +SELECT DISTINCT a.question_uid, +answer, +question_type, +NULL AS sum, +CONCAT(ROUND(COUNT(1)/(SELECT COUNT(1) FROM tl_ladaco10_answers WHERE question_uid=q.uid AND answer IS NOT NULL)*100),'%') AS average, +COUNT(1) AS count +FROM tl_ladaco10_answers a, tl_ladaco10_questions q +WHERE a.question_uid=q.uid + AND q.content_uid=:contentUid + AND question_type IN (:numberQuestionType,:radioQuestionType,:dropdownQuestionType,:checkboxQuestionType) + AND answer IS NOT NULL +GROUP BY question_uid, answer ORDER BY question_uid,answer + + Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/model/DacoAnswer.java =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/model/DacoAnswer.java (.../DacoAnswer.java) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/model/DacoAnswer.java (.../DacoAnswer.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -30,7 +30,6 @@ * @author Marcin Cieslak * * @hibernate.class table="tl_ladaco10_answers" - * */ public class DacoAnswer implements Cloneable { private static final Logger log = Logger.getLogger(DacoQuestion.class); Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/DacoServiceImpl.java =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/DacoServiceImpl.java (.../DacoServiceImpl.java) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/DacoServiceImpl.java (.../DacoServiceImpl.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -84,6 +84,7 @@ import org.lamsfoundation.lams.tool.daco.model.DacoSession; import org.lamsfoundation.lams.tool.daco.model.DacoUser; import org.lamsfoundation.lams.tool.daco.util.DacoToolContentHandler; +import org.lamsfoundation.lams.tool.daco.util.QuestionSummary; import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.SessionDataExistsException; import org.lamsfoundation.lams.tool.exception.ToolException; @@ -240,7 +241,7 @@ } public List getAuthoredQuestions(Long dacoUid) { - return dacoQuestionDao.getAuthoringQuestions(dacoUid); + return dacoQuestionDao.getByContentUid(dacoUid); } public DacoAttachment uploadInstructionFile(FormFile uploadFile, String fileType) throws UploadDacoFileException { @@ -1027,4 +1028,49 @@ public String getLocalisedMessage(String key, Object[] args) { return messageService.getMessage(key, args); } + + public List getQuestionSummaries(Long contentUid, Long userUid) { + List result = new ArrayList(); + List questions = dacoQuestionDao.getByContentUid(contentUid); + if (questions.size() > 0) { + for (DacoQuestion question : questions) { + switch (question.getType()) { + case DacoConstants.QUESTION_TYPE_NUMBER: { + QuestionSummary summary = new QuestionSummary(); + summary.addUserSummaryRow(0, new String[DacoConstants.QUESTION_SUMMARY_COLUMN_COUNT]); + summary.addAllSummaryRow(0, new String[DacoConstants.QUESTION_SUMMARY_COLUMN_COUNT]); + summary.setQuestionUid(question.getUid()); + result.add(summary); + } + break; + case DacoConstants.QUESTION_TYPE_RADIO: + case DacoConstants.QUESTION_TYPE_DROPDOWN: + case DacoConstants.QUESTION_TYPE_CHECKBOX: { + int answerOptionCount = question.getAnswerOptions().size(); + QuestionSummary summary = new QuestionSummary(); + summary.setQuestionUid(question.getUid()); + for (int answerOption = 0; answerOption < answerOptionCount; answerOption++) { + String[] columns = new String[] { String.valueOf(answerOption + 1), null, "0%", "0" }; + summary.addUserSummaryRow(answerOption, columns); + columns = new String[] { String.valueOf(answerOption + 1), null, "0%", "0" }; + summary.addAllSummaryRow(answerOption, columns); + } + result.add(summary); + } + break; + default: + result.add(null); + break; + } + } + result = dacoAnswerDao.getSummaries(contentUid, userUid, result); + } + return result; + } + + public void deleteDacoRecord(List record) { + for (DacoAnswer answer : record) { + deleteDacoAnswer(answer.getUid()); + } + } } \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/IDacoService.java =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/IDacoService.java (.../IDacoService.java) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/IDacoService.java (.../IDacoService.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -38,6 +38,7 @@ import org.lamsfoundation.lams.tool.daco.model.DacoQuestion; import org.lamsfoundation.lams.tool.daco.model.DacoSession; import org.lamsfoundation.lams.tool.daco.model.DacoUser; +import org.lamsfoundation.lams.tool.daco.util.QuestionSummary; /** * @author Dapeng.Ni @@ -156,6 +157,8 @@ void deleteDacoAnswer(Long uid); + void deleteDacoRecord(List record); + /** * Return all reource questions within the given toolSessionID. * @@ -284,4 +287,6 @@ DacoUser getUser(Long uid); public String getLocalisedMessage(String key, Object[] args); + + public List getQuestionSummaries(Long contentUid, Long userUid); } Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/util/QuestionSummary.java =================================================================== diff -u --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/util/QuestionSummary.java (revision 0) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/util/QuestionSummary.java (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -0,0 +1,101 @@ +package org.lamsfoundation.lams.tool.daco.util; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class QuestionSummary implements Cloneable { + public List sum = new ArrayList(); + + public List userSummary = new ArrayList(); + public List allSummary = new ArrayList(); + public Long questionUid; + + public void addAllSummaryRow(int number, String[] summary) { + if (allSummary == null) { + allSummary = new ArrayList(); + } + while (number >= allSummary.size()) { + allSummary.add(null); + } + allSummary.set(number, summary); + } + + public String[] getAllSummaryRow(int number) { + if (allSummary == null || number >= allSummary.size()) { + return null; + } + return allSummary.get(number); + } + + public void addUserSummaryRow(int number, String[] summary) { + if (userSummary == null) { + userSummary = new ArrayList(); + } + while (number >= userSummary.size()) { + userSummary.add(null); + } + userSummary.set(number, summary); + } + + public String[] getUserSummaryRow(int number) { + if (userSummary == null || number >= userSummary.size()) { + return null; + } + return userSummary.get(number); + } + + public Long getQuestionUid() { + return questionUid; + } + + public void setQuestionUid(Long questionUid) { + this.questionUid = questionUid; + } + + public List getUserSummary() { + return userSummary; + } + + public void setUserSummary(List userSummary) { + this.userSummary = userSummary; + } + + public List getAllSummary() { + return allSummary; + } + + public void setAllSummary(List allSummary) { + this.allSummary = allSummary; + } + + @Override + public Object clone() { + QuestionSummary clone = null; + try { + clone = (QuestionSummary) super.clone(); + } + catch (CloneNotSupportedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if (userSummary != null) { + + Iterator iter = userSummary.iterator(); + List list = new ArrayList(userSummary.size()); + while (iter.hasNext()) { + list.add(iter.next().clone()); + } + clone.userSummary = list; + } + return clone; + } + + public List getSum() { + return sum; + } + + public void setSum(List sum) { + this.sum = sum; + } +} \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/AuthoringAction.java =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -327,10 +327,16 @@ if (!StringUtils.isBlank(constraint)) { question.setMax(Float.parseFloat(constraint)); } + else { + question.setMax(null); + } constraint = questionForm.getMin(); if (!StringUtils.isBlank(constraint)) { question.setMin(Float.parseFloat(constraint)); } + else { + question.setMin(null); + } constraint = questionForm.getDigitsDecimal(); if (!StringUtils.isBlank(constraint)) { question.setDigitsDecimal(Short.parseShort(constraint)); @@ -350,7 +356,13 @@ } question.setRequired(questionForm.isQuestionRequired()); question.setAnswerOptions(answerOptions); - question.setSummary(questionForm.getSummary()); + Short summary = questionForm.getSummary(); + if (summary != null && summary > 0) { + question.setSummary(questionForm.getSummary()); + } + else { + question.setSummary(null); + } question.setDescription(StringUtils.isBlank(questionForm.getDescription()) ? null : questionForm.getDescription().trim()); @@ -660,14 +672,14 @@ } } else { + form.setMin(min == null ? null : String.valueOf(min)); + form.setMax(max == null ? null : String.valueOf(max)); form.setDigitsDecimal(null); } } else { - form.setMin(min == null ? null : min.toString()); - if (max != null) { - form.setMax(String.valueOf((int) max.floatValue())); - } + form.setMin(min == null ? null : String.valueOf(min.intValue())); + form.setMax(max == null ? null : String.valueOf(max.intValue())); } if (questionType == DacoConstants.QUESTION_TYPE_RADIO || questionType == DacoConstants.QUESTION_TYPE_DROPDOWN Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/LearningAction.java =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/LearningAction.java (.../LearningAction.java) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/LearningAction.java (.../LearningAction.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -65,6 +65,7 @@ import org.lamsfoundation.lams.tool.daco.service.IDacoService; import org.lamsfoundation.lams.tool.daco.service.UploadDacoFileException; import org.lamsfoundation.lams.tool.daco.util.DacoQuestionComparator; +import org.lamsfoundation.lams.tool.daco.util.QuestionSummary; import org.lamsfoundation.lams.tool.daco.web.form.RecordForm; import org.lamsfoundation.lams.tool.daco.web.form.ReflectionForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -121,6 +122,10 @@ return changeView(mapping, request); } + if (param.equals("refreshQuestionSummaries")) { + return refreshQuestionSummaries(mapping, request); + } + // ================ Reflection ======================= if (param.equals("newReflection")) { return newReflection(mapping, form, request, response); @@ -202,6 +207,9 @@ List> records = service.getDacoAnswersByUserAndDaco(dacoUser.getUid(), daco); sessionMap.put(DacoConstants.ATTR_RECORD_LIST, records); + List summaries = service.getQuestionSummaries(daco.getUid(), dacoUser.getUid()); + sessionMap.put(DacoConstants.ATTR_QUESTION_SUMMARIES, summaries); + // add define later support if (daco.isDefineLater()) { return mapping.findForward(DacoConstants.DEFINE_LATER); @@ -284,20 +292,22 @@ RecordForm recordForm = (RecordForm) form; String sessionMapID = request.getParameter(DacoConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - Set questionList = ((Daco) sessionMap.get(DacoConstants.ATTR_DACO)).getDacoQuestions(); + Daco daco = (Daco) sessionMap.get(DacoConstants.ATTR_DACO); + Set questionList = daco.getDacoQuestions(); + Long sessionId = (Long) sessionMap.get(DacoConstants.ATTR_TOOL_SESSION_ID); + IDacoService service = getDacoService(); + DacoUser user = getCurrentUser(service, sessionId); + request.setAttribute(DacoConstants.ATTR_SESSION_MAP_ID, sessionMapID); sessionMap.put(DacoConstants.ATTR_LEARNING_CURRENT_TAB, 1); ActionErrors errors = validateRecordForm(recordForm, questionList); if (!errors.isEmpty()) { this.addErrors(request, errors); + refreshQuestionSummaries(mapping, request); return mapping.findForward(DacoConstants.SUCCESS); } - Long sessionId = (Long) sessionMap.get(DacoConstants.ATTR_TOOL_SESSION_ID); - IDacoService service = getDacoService(); - DacoUser user = getCurrentUser(service, sessionId); - List record = null; List> records = (List>) sessionMap.get(DacoConstants.ATTR_RECORD_LIST); @@ -333,11 +343,16 @@ switch (question.getType()) { case DacoConstants.QUESTION_TYPE_NUMBER: { String formAnswer = recordForm.getAnswer(formAnswerNumber); - if (!StringUtils.isBlank(formAnswer) && question.getDigitsDecimal() != null) { - formAnswer = NumberUtil.formatLocalisedNumber(Double.parseDouble(formAnswer), (Locale) null, question - .getDigitsDecimal()); + if (StringUtils.isBlank(formAnswer)) { + answer.setAnswer(null); } - answer.setAnswer(formAnswer); + else { + if (question.getDigitsDecimal() != null) { + formAnswer = NumberUtil.formatLocalisedNumber(Double.parseDouble(formAnswer), (Locale) null, question + .getDigitsDecimal()); + } + answer.setAnswer(formAnswer); + } formAnswerNumber++; } break; @@ -363,11 +378,12 @@ String[] checkboxes = formAnswer.split("&"); if (isEdit) { DacoAnswer localAnswer = answer; + answerNumber--; do { service.deleteDacoAnswer(localAnswer.getUid()); - record.remove(answerNumber - 1); + record.remove(answerNumber); if (answerNumber <= record.size()) { - localAnswer = record.get(answerNumber - 1); + localAnswer = record.get(answerNumber); if (localAnswer.getQuestion().getType() != DacoConstants.QUESTION_TYPE_CHECKBOX) { localAnswer = null; } @@ -388,13 +404,19 @@ answer.setAnswer(checkboxes[checkboxNumber]); if (checkboxNumber < checkboxes.length - 1) { service.saveOrUpdateAnswer(answer); - record.add(answer); + if (isEdit) { + record.add(answerNumber++, answer); + } + else { + record.add(answer); + } + answer = (DacoAnswer) answer.clone(); } } } if (isEdit) { - record.add(answer); + record.add(answerNumber++, answer); } } formAnswerNumber++; @@ -457,6 +479,7 @@ } sessionMap.put(DacoConstants.ATTR_RECORD_LIST, records); request.setAttribute(DacoConstants.ATTR_DISPLAYED_RECORD_NUMBER, records.size() + 1); + refreshQuestionSummaries(mapping, request); return mapping.findForward(DacoConstants.SUCCESS); } @@ -550,11 +573,13 @@ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); int recordCount = ((List) sessionMap.get(DacoConstants.ATTR_RECORD_LIST)).size(); Daco daco = (Daco) sessionMap.get(DacoConstants.ATTR_DACO); - if (daco.getMinRecords() != null && recordCount < daco.getMinRecords()) { + Short min = daco.getMinRecords(); + Short max = daco.getMaxRecords(); + if (min != null && min > 0 && recordCount < min) { errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(DacoConstants.ERROR_MSG_RECORD_NOTENOUGH, daco .getMinRecords())); } - else if (daco.getMaxRecords() != null && recordCount > daco.getMaxRecords()) { + else if (max != null && max > 0 && recordCount > max) { errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(DacoConstants.ERROR_MSG_RECORD_TOOMUCH, daco .getMaxRecords())); } @@ -932,10 +957,11 @@ for (int answerNumber = 0; answerNumber < record.size(); answerNumber++) { DacoAnswer answer = record.get(answerNumber); short questionType = answer.getQuestion().getType(); + if (questionType == DacoConstants.QUESTION_TYPE_CHECKBOX) { if (checkboxes == null) { checkboxes = new StringBuilder(record.size() * 3); - checkboxQuestionNumber = formAnswerNumber; + checkboxQuestionNumber = formAnswerNumber++; } checkboxes.append(answer.getAnswer()).append('&'); } @@ -964,6 +990,7 @@ if (checkboxes != null) { recordForm.setAnswer(checkboxQuestionNumber, checkboxes.toString()); } + request.setAttribute(DacoConstants.ATTR_SESSION_MAP_ID, sessionMapID); sessionMap.put(DacoConstants.ATTR_LEARNING_CURRENT_TAB, 1); request.setAttribute(DacoConstants.ATTR_DISPLAYED_RECORD_NUMBER, recordIndex); @@ -979,8 +1006,11 @@ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); int recordIndex = NumberUtils.stringToInt(request.getParameter(DacoConstants.PARAM_RECORD_INDEX), -1); List> records = (List>) sessionMap.get(DacoConstants.ATTR_RECORD_LIST); + IDacoService service = getDacoService(); if (recordIndex != -1 && records != null && records.size() >= recordIndex) { - records.remove(recordIndex - 1); + List record = records.get(recordIndex - 1); + service.deleteDacoRecord(record); + records.remove(record); sessionMap.put(DacoConstants.ATTR_RECORD_LIST, records); request.setAttribute(DacoConstants.ATTR_SESSION_MAP_ID, sessionMapID); return mapping.findForward(DacoConstants.SUCCESS); @@ -996,6 +1026,7 @@ request.setAttribute(DacoConstants.ATTR_SESSION_MAP_ID, sessionMapID); request.setAttribute(DacoConstants.ATTR_DISPLAYED_RECORD_NUMBER, WebUtil.readIntParam(request, DacoConstants.ATTR_DISPLAYED_RECORD_NUMBER)); + String currentView = (String) sessionMap.get(DacoConstants.ATTR_LEARNING_VIEW); if (DacoConstants.LEARNING_VIEW_HORIZONTAL.equals(currentView)) { sessionMap.put(DacoConstants.ATTR_LEARNING_VIEW, DacoConstants.LEARNING_VIEW_VERTICAL); @@ -1005,4 +1036,20 @@ } return mapping.findForward(DacoConstants.SUCCESS); } + + protected ActionForward refreshQuestionSummaries(ActionMapping mapping, HttpServletRequest request) { + String sessionMapID = WebUtil.readStrParam(request, DacoConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + Daco daco = (Daco) sessionMap.get(DacoConstants.ATTR_DACO); + Long sessionId = (Long) sessionMap.get(DacoConstants.ATTR_TOOL_SESSION_ID); + IDacoService service = getDacoService(); + DacoUser user = getCurrentUser(service, sessionId); + + List summaries = service.getQuestionSummaries(daco.getUid(), user.getUid()); + sessionMap.put(DacoConstants.ATTR_QUESTION_SUMMARIES, summaries); + request.setAttribute(DacoConstants.ATTR_SESSION_MAP_ID, sessionMapID); + + return mapping.findForward(DacoConstants.SUCCESS); + } + } \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/form/RecordForm.java =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/form/RecordForm.java (.../RecordForm.java) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/form/RecordForm.java (.../RecordForm.java) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -47,7 +47,6 @@ private List answer; private List file; - private List filePath; private int displayedRecordNumber = 1; public void setAnswer(int number, String answer) { @@ -67,23 +66,6 @@ return answer.get(number); } - public void setFilePath(int number, String filePath) { - if (this.filePath == null) { - this.filePath = new ArrayList(); - } - while (number >= this.filePath.size()) { - this.filePath.add(null); - } - this.filePath.set(number, filePath); - } - - public String getFilePath(int number) { - if (filePath == null || number >= filePath.size()) { - return null; - } - return filePath.get(number); - } - public void setFile(int number, FormFile file) { if (file.getFileSize() > 0) { if (this.file == null) { Index: lams_tool_daco/web/includes/css/daco.css =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/includes/css/daco.css (.../daco.css) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/web/includes/css/daco.css (.../daco.css) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -86,13 +86,20 @@ vertical-align: middle; } -form#recordForm table.alternative-color-inner-table td, table.recordList table.alternative-color-inner-table td, table#horizontalListTable table.alternative-color-inner-table td { +form#recordForm table.alternative-color-inner-table td, table.recordList table.alternative-color-inner-table td, +table#horizontalListTable table.alternative-color-inner-table td, table#summaryTable table.alternative-color-inner-table td{ margin: 0px; padding: 0px; border: none; background: transparent; vertical-align: middle; } + +table#summaryTable td.singleSummaryCell { + vertical-align: middle; + text-align: center; +} + table#recordListTable td.fixedCellWidth{ width: 160px; } \ No newline at end of file Index: lams_tool_daco/web/includes/javascript/dacoLearning.js =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/includes/javascript/dacoLearning.js (.../dacoLearning.js) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/web/includes/javascript/dacoLearning.js (.../dacoLearning.js) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -27,7 +27,6 @@ var elementCount = document.getElementById("recordForm").elements.length; for (var questionNumber=1;questionNumber<=elementCount;questionNumber++){ var checkboxQuestion=document.getElementById("checkbox-"+questionNumber); - var fileQuestion = document.getElementById("file-"+questionNumber); if (checkboxQuestion!=null){ var checkboxQuestionValue = ""; var checkboxNumber = 1; @@ -41,18 +40,13 @@ } checkboxQuestion.value=checkboxQuestionValue; } - - if (fileQuestion!=null){ - document.getElementById("filePath-"+questionNumber).value=document.getElementById("file-"+questionNumber).value; - } } } function readHiddenFormValues(){ var elementCount = document.getElementById("recordForm").elements.length; for (var questionNumber=1;questionNumber<=elementCount;questionNumber++){ var checkboxQuestion=document.getElementById("checkbox-"+questionNumber); - var fileQuestion = document.getElementById("file-"+questionNumber); if (checkboxQuestion!=null){ var checkboxValues = checkboxQuestion.value.split("&"); var checkboxNumber = 1; @@ -67,16 +61,13 @@ checkbox = document.getElementById("checkbox-"+questionNumber+"-"+checkboxNumber); } } - if (fileQuestion!=null){ - document.getElementById("file-"+questionNumber).value=document.getElementById("filePath-"+questionNumber).value; - } } } function editRecord (sessionMapID, recordIndex){ var param = "sessionMapID="+sessionMapID+"&recordIndex="+recordIndex+"&reqID="+((new Date()).getTime()); new Ajax.Updater( - document.getElementById("addRecordDiv"), + "addRecordDiv", editRecordUrl, { method:'post', @@ -121,7 +112,7 @@ var displayedRecordNumber = document.getElementById("displayedRecordNumber").value; var param = "sessionMapID="+sessionMapID+"&recordIndex="+recordIndex+"&displayedRecordNumber="+displayedRecordNumber+"&reqID="+((new Date()).getTime()); new Ajax.Updater( - document.getElementById("recordListDiv"), + "recordListDiv", removeRecordUrl, { method:'post', @@ -137,6 +128,7 @@ } document.getElementById("displayedRecordNumber").value=displayedRecordNumber; document.getElementById("displayedRecordNumberSpan").innerHTML=displayedRecordNumber; + refreshQuestionSummaries(sessionMapID); }, evalScripts:true } @@ -170,4 +162,17 @@ if (horizontalRecordListFrame!=null){ horizontalRecordListFrame.style.height=((questionListLength+1)*111)+'px'; } + } + + function refreshQuestionSummaries(sessionMapID){ + var param = "sessionMapID="+sessionMapID+"&reqID="+((new Date()).getTime()); + new Ajax.Updater( + "questionSummariesDiv", + refreshQuestionSummariesUrl, + { + method:'post', + parameters:param, + evalScripts:true + } + ); } \ No newline at end of file Index: lams_tool_daco/web/includes/javascript/dacoQuestion.js =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/includes/javascript/dacoQuestion.js (.../dacoQuestion.js) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/web/includes/javascript/dacoQuestion.js (.../dacoQuestion.js) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -24,7 +24,8 @@ if (checkNonDefaultValue("max") || checkNonDefaultValue("min") || checkNonDefaultValue("digitsDecimal") - || $('#questionRequired').attr('checked')){ + || $('#questionRequired').attr('checked') + || !($("#noSummaryOption").attr("selected"))) { toggleAdditionalOptionsArea(); } } Index: lams_tool_daco/web/pages/authoring/advanced.jsp =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/authoring/advanced.jsp (.../advanced.jsp) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/web/pages/authoring/advanced.jsp (.../advanced.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -22,7 +22,8 @@ ${index} - + Index: lams_tool_daco/web/pages/authoring/parts/addcheckbox.jsp =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/authoring/parts/addcheckbox.jsp (.../addcheckbox.jsp) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/web/pages/authoring/parts/addcheckbox.jsp (.../addcheckbox.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -46,11 +46,11 @@
-
+
- - - + + + Index: lams_tool_daco/web/pages/authoring/parts/adddropdown.jsp =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/authoring/parts/adddropdown.jsp (.../adddropdown.jsp) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/web/pages/authoring/parts/adddropdown.jsp (.../adddropdown.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -42,11 +42,11 @@ -
+
- - - + + + Index: lams_tool_daco/web/pages/authoring/parts/addnumber.jsp =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/authoring/parts/addnumber.jsp (.../addnumber.jsp) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/web/pages/authoring/parts/addnumber.jsp (.../addnumber.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -44,11 +44,12 @@
-
+
- - - + + + + Index: lams_tool_daco/web/pages/authoring/parts/addradio.jsp =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/authoring/parts/addradio.jsp (.../addradio.jsp) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/web/pages/authoring/parts/addradio.jsp (.../addradio.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -42,11 +42,11 @@ -
+
- - - + + + Index: lams_tool_daco/web/pages/authoring/parts/answeroptions.jsp =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/authoring/parts/answeroptions.jsp (.../answeroptions.jsp) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/web/pages/authoring/parts/answeroptions.jsp (.../answeroptions.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -4,8 +4,6 @@ - -
Index: lams_tool_daco/web/pages/learning/addRecord.jsp =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/learning/addRecord.jsp (.../addRecord.jsp) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/web/pages/learning/addRecord.jsp (.../addRecord.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -113,7 +113,6 @@ - @@ -122,7 +121,6 @@ - Index: lams_tool_daco/web/pages/learning/learning.jsp =================================================================== diff -u -ra4e564624bbf22983634d0e77a2e467403d0d7e5 -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/learning/learning.jsp (.../learning.jsp) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) +++ lams_tool_daco/web/pages/learning/learning.jsp (.../learning.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -35,6 +35,7 @@ var changeViewUrl = ""; var finishUrl = ''; var continueReflectUrl = ''; + var refreshQuestionSummariesUrl = ''; var questionListLength = ${fn:length(daco.dacoQuestions)}; @@ -48,6 +49,7 @@ +
@@ -72,7 +74,7 @@ - +
Index: lams_tool_daco/web/pages/learning/listRecords.jsp =================================================================== diff -u -r20efcf1f1ffa7e732d72deaf0c670f34836d9a0a -r2b2611326286bc64cc4e22c9d16642ad038b93c3 --- lams_tool_daco/web/pages/learning/listRecords.jsp (.../listRecords.jsp) (revision 20efcf1f1ffa7e732d72deaf0c670f34836d9a0a) +++ lams_tool_daco/web/pages/learning/listRecords.jsp (.../listRecords.jsp) (revision 2b2611326286bc64cc4e22c9d16642ad038b93c3) @@ -39,11 +39,11 @@ - - + + - +
QuestionsRecords
Record number