Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/pojos/McContent.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/pojos/McOptsContent.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/pojos/McQueContent.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/pojos/McQueUsr.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/pojos/McSession.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mc/pojos/McUsrAttempt.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcContentDAO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcContentDAO.java (.../IMcContentDAO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcContentDAO.java (.../IMcContentDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -24,8 +24,8 @@ import java.util.List; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McSession; /** * @author Ozgur Demirtas Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcOptionsContentDAO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcOptionsContentDAO.java (.../IMcOptionsContentDAO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcOptionsContentDAO.java (.../IMcOptionsContentDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -25,7 +25,7 @@ import java.util.List; import org.lamsfoundation.lams.tool.mc.dto.McOptionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; /** * Interface for the McOptionsContent DAO, defines methods needed to access/modify mc options content Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcQueContentDAO.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcQueContentDAO.java (.../IMcQueContentDAO.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcQueContentDAO.java (.../IMcQueContentDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -24,7 +24,7 @@ import java.util.List; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; /** * Interface for the McQueContent DAO, defines methods needed to access/modify mc question content @@ -91,5 +91,4 @@ List getAllQuestionEntriesSorted(final long qaContentId); void releaseQuestionFromCache(McQueContent question); - } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcSessionDAO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcSessionDAO.java (.../IMcSessionDAO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcSessionDAO.java (.../IMcSessionDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -22,7 +22,7 @@ package org.lamsfoundation.lams.tool.mc.dao; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; +import org.lamsfoundation.lams.tool.mc.model.McSession; /** * @author Ozgur Demirtas Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (.../IMcUserDAO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (.../IMcUserDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -25,7 +25,7 @@ import java.util.List; import org.lamsfoundation.lams.tool.mc.dto.McUserMarkDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; /** Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java (.../IMcUsrAttemptDAO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java (.../IMcUsrAttemptDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -25,7 +25,7 @@ import java.util.List; import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; /** * Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McContentDAO.java =================================================================== diff -u -r70d1adeee6d96136e69aa91bb50d94c4a3b826d2 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McContentDAO.java (.../McContentDAO.java) (revision 70d1adeee6d96136e69aa91bb50d94c4a3b826d2) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McContentDAO.java (.../McContentDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -26,8 +26,8 @@ import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcContentDAO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McSession; import org.springframework.stereotype.Repository; /** Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McOptionsContentDAO.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McOptionsContentDAO.java (.../McOptionsContentDAO.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McOptionsContentDAO.java (.../McOptionsContentDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -29,7 +29,7 @@ import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcOptionsContentDAO; import org.lamsfoundation.lams.tool.mc.dto.McOptionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; import org.springframework.stereotype.Repository; /** @@ -41,14 +41,14 @@ public class McOptionsContentDAO extends LAMSBaseDAO implements IMcOptionsContentDAO { private static Logger logger = Logger.getLogger(McOptionsContentDAO.class.getName()); - private static final String FIND_OPTIONS_BY_QUESTION_UID = "from mcOptsContent in class McOptsContent where mcOptsContent.mcQueContentId=:mcQueContentUid order by mcOptsContent.displayOrder"; + private static final String FIND_OPTIONS_BY_QUESTION_UID = "from mcOptsContent in class McOptsContent where mcOptsContent.mcQueContent.uid=:mcQueContentUid order by mcOptsContent.displayOrder"; @SuppressWarnings("unchecked") @Override public List findMcOptionsContentByQueId(Long questionUid) { if (questionUid != null) { List list = getSessionFactory().getCurrentSession().createQuery(FIND_OPTIONS_BY_QUESTION_UID) - .setParameter("mcQueContentUid", questionUid.longValue()).list(); + .setParameter("mcQueContentUid", questionUid).list(); return list; } return null; @@ -61,7 +61,7 @@ if (questionUid != null) { List options = getSessionFactory().getCurrentSession() - .createQuery(FIND_OPTIONS_BY_QUESTION_UID).setParameter("mcQueContentUid", questionUid.longValue()) + .createQuery(FIND_OPTIONS_BY_QUESTION_UID).setParameter("mcQueContentUid", questionUid) .list(); if (options != null && options.size() > 0) { Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McQueContentDAO.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McQueContentDAO.java (.../McQueContentDAO.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McQueContentDAO.java (.../McQueContentDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -26,7 +26,7 @@ import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcQueContentDAO; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; import org.springframework.stereotype.Repository; /** @@ -37,21 +37,21 @@ @Repository public class McQueContentDAO extends LAMSBaseDAO implements IMcQueContentDAO { - private static final String LOAD_QUESTION_CONTENT_BY_CONTENT_ID = "from mcQueContent in class McQueContent where mcQueContent.mcContentId=:mcContentId order by mcQueContent.displayOrder"; + private static final String LOAD_QUESTION_CONTENT_BY_CONTENT_ID = "from mcQueContent in class McQueContent where mcQueContent.mcContent.uid=:mcContentId order by mcQueContent.displayOrder"; private static final String FIND_QUESTION_CONTENT_BY_UID = "from mcQueContent in class McQueContent where mcQueContent.uid=:uid"; - private static final String REFRESH_QUESTION_CONTENT = "from mcQueContent in class McQueContent where mcQueContent.mcContentId=:mcContentId order by mcQueContent.displayOrder"; + private static final String REFRESH_QUESTION_CONTENT = "from mcQueContent in class McQueContent where mcQueContent.mcContent.uid=:mcContentId order by mcQueContent.displayOrder"; - private static final String LOAD_QUESTION_CONTENT_BY_DISPLAY_ORDER = "from mcQueContent in class McQueContent where mcQueContent.displayOrder=:displayOrder and mcQueContent.mcContentId=:mcContentUid"; + private static final String LOAD_QUESTION_CONTENT_BY_DISPLAY_ORDER = "from mcQueContent in class McQueContent where mcQueContent.displayOrder=:displayOrder and mcQueContent.mcContent.uid=:mcContentUid"; - private static final String SORT_QUESTION_CONTENT_BY_DISPLAY_ORDER = "from mcQueContent in class McQueContent where mcQueContent.mcContentId=:mcContentId order by mcQueContent.displayOrder"; + private static final String SORT_QUESTION_CONTENT_BY_DISPLAY_ORDER = "from mcQueContent in class McQueContent where mcQueContent.mcContent.uid=:mcContentId order by mcQueContent.displayOrder"; @Override public McQueContent findMcQuestionContentByUid(Long uid) { if (uid != null) { List list = getSessionFactory().getCurrentSession().createQuery(FIND_QUESTION_CONTENT_BY_UID) - .setParameter("uid", uid.longValue()).list(); + .setParameter("uid", uid).list(); if (list != null && list.size() > 0) { McQueContent mcq = (McQueContent) list.get(0); @@ -73,7 +73,7 @@ @Override public List refreshQuestionContent(final Long mcContentId) { List list = getSessionFactory().getCurrentSession().createQuery(REFRESH_QUESTION_CONTENT) - .setParameter("mcContentId", mcContentId.longValue()).list(); + .setParameter("mcContentId", mcContentId).list(); return list; } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McSessionDAO.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McSessionDAO.java (.../McSessionDAO.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McSessionDAO.java (.../McSessionDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -26,7 +26,7 @@ import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcSessionDAO; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; +import org.lamsfoundation.lams.tool.mc.model.McSession; import org.springframework.stereotype.Repository; /** @@ -47,7 +47,7 @@ public McSession getMcSessionById(Long mcSessionId) { List list = getSessionFactory().getCurrentSession().createQuery(LOAD_MCSESSION_BY_MCSESSIONID) - .setParameter("mcSessionId", mcSessionId.longValue()).list(); + .setParameter("mcSessionId", mcSessionId).list(); if (list != null && list.size() > 0) { McSession mcs = (McSession) list.get(0); @@ -73,7 +73,7 @@ @Override public McSession getMcSessionByUser(final Long userId) { - return (McSession) getSession().createQuery(LOAD_MCSESSION_BY_USER).setParameter("userId", userId.longValue()) + return (McSession) getSession().createQuery(LOAD_MCSESSION_BY_USER).setParameter("userId", userId) .uniqueResult(); } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (.../McUserDAO.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (.../McUserDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -32,7 +32,7 @@ import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO; import org.lamsfoundation.lams.tool.mc.dto.McUserMarkDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.springframework.stereotype.Repository; @@ -45,7 +45,7 @@ @Repository public class McUserDAO extends LAMSBaseDAO implements IMcUserDAO { - private static final String GET_USER_BY_USER_ID_SESSION = "from mcQueUsr in class McQueUsr where mcQueUsr.queUsrId=:queUsrId and mcQueUsr.mcSessionId=:mcSessionUid"; + private static final String GET_USER_BY_USER_ID_SESSION = "from mcQueUsr in class McQueUsr where mcQueUsr.queUsrId=:queUsrId and mcQueUsr.mcSession.uid=:mcSessionUid"; private static final String LOAD_MARKS_FOR_SESSION = "SELECT last_attempt_total_mark " + " FROM tl_lamc11_que_usr usr " @@ -87,7 +87,7 @@ public McQueUsr getMcUserBySession(final Long queUsrId, final Long mcSessionUid) { List list = getSessionFactory().getCurrentSession().createQuery(GET_USER_BY_USER_ID_SESSION) - .setLong("queUsrId", queUsrId.longValue()).setLong("mcSessionUid", mcSessionUid.longValue()).list(); + .setParameter("queUsrId", queUsrId).setParameter("mcSessionUid", mcSessionUid).list(); if (list != null && list.size() > 0) { McQueUsr usr = (McQueUsr) list.get(0); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java (.../McUsrAttemptDAO.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java (.../McUsrAttemptDAO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -28,8 +28,8 @@ import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcUsrAttemptDAO; import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; import org.lamsfoundation.lams.usermanagement.User; import org.springframework.stereotype.Repository; @@ -50,14 +50,14 @@ public class McUsrAttemptDAO extends LAMSBaseDAO implements IMcUsrAttemptDAO { private static final String LOAD_PARTICULAR_QUESTION_ATTEMPT = "from attempt in class McUsrAttempt where attempt.mcQueUsr.uid=:queUsrUid" - + " and attempt.mcQueContentId=:mcQueContentId" + " order by attempt.mcOptionsContent.uid"; + + " and attempt.mcQueContent.uid=:mcQueContentId" + " order by attempt.mcOptionsContent.uid"; private static final String LOAD_FINAL_USER_QUESTION_ATTEMPTS_FOR_QUESTION_SESSION = "from attempt in class McUsrAttempt where " - + " attempt.mcQueUsr.mcSessionId=:sessionUid AND attempt.mcQueContentId=:mcQueContentId " + + " attempt.mcQueUsr.mcSessionId=:sessionUid AND attempt.mcQueContent.uid=:mcQueContentId " + " AND attempt.mcQueUsr.responseFinalised = true order by attempt.mcQueUsr.uid"; private static final String LOAD_ALL_QUESTION_ATTEMPTS = "from attempt in class McUsrAttempt where attempt.mcQueUsr.uid=:queUsrUid" - + " AND attempt.mcQueUsr.responseFinalised = true order by attempt.mcQueContentId, attempt.mcOptionsContent.uid"; + + " AND attempt.mcQueUsr.responseFinalised = true order by attempt.mcQueContent.uid, attempt.mcOptionsContent.uid"; private static final String FIND_ATTEMPTS_COUNT_BY_OPTION = "select count(*) from " + McUsrAttempt.class.getName() + " as attempt where attempt.mcOptionsContent.uid=? AND attempt.mcQueUsr.responseFinalised = true"; @@ -79,7 +79,7 @@ @Override public List getFinalizedUserAttempts(final Long userUid) { return getSessionFactory().getCurrentSession().createQuery(LOAD_ALL_QUESTION_ATTEMPTS) - .setParameter("queUsrUid", userUid.longValue()).list(); + .setParameter("queUsrUid", userUid).list(); } @Override @@ -106,7 +106,7 @@ @Override public int getUserTotalMark(final Long userUid) { List list = getSessionFactory().getCurrentSession().createQuery(FIND_USER_TOTAL_MARK) - .setLong("userUid", userUid.longValue()).list(); + .setParameter("userUid", userUid).list(); if (list == null || list.size() == 0) { return 0; @@ -119,8 +119,8 @@ @SuppressWarnings("unchecked") public McUsrAttempt getUserAttemptByQuestion(final Long queUsrUid, final Long mcQueContentId) { List userAttemptList = getSessionFactory().getCurrentSession() - .createQuery(LOAD_PARTICULAR_QUESTION_ATTEMPT).setParameter("queUsrUid", queUsrUid.longValue()) - .setParameter("mcQueContentId", mcQueContentId.longValue()).list(); + .createQuery(LOAD_PARTICULAR_QUESTION_ATTEMPT).setParameter("queUsrUid", queUsrUid) + .setParameter("mcQueContentId", mcQueContentId).list(); if (userAttemptList.size() > 1) { throw new RuntimeException("There are more than 1 latest question attempt"); } @@ -133,8 +133,8 @@ @SuppressWarnings("unchecked") public List getUserAttemptsByQuestionSession(final Long sessionUid, final Long mcQueContentId) { List userAttemptList = getSessionFactory().getCurrentSession() - .createQuery(LOAD_FINAL_USER_QUESTION_ATTEMPTS_FOR_QUESTION_SESSION).setParameter("sessionUid", sessionUid.longValue()) - .setParameter("mcQueContentId", mcQueContentId.longValue()).list(); + .createQuery(LOAD_FINAL_USER_QUESTION_ATTEMPTS_FOR_QUESTION_SESSION).setParameter("sessionUid", sessionUid) + .setParameter("mcQueContentId", mcQueContentId).list(); return userAttemptList; } @@ -146,7 +146,7 @@ @Override public void removeAllUserAttempts(Long queUserUid) { List userAttempts = getSessionFactory().getCurrentSession() - .createQuery(LOAD_ALL_QUESTION_ATTEMPTS).setParameter("queUsrUid", queUserUid.longValue()).list(); + .createQuery(LOAD_ALL_QUESTION_ATTEMPTS).setParameter("queUsrUid", queUserUid).list(); for (McUsrAttempt userAttempt : userAttempts) { this.getSession().delete(userAttempt); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/AnswerDTO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/AnswerDTO.java (.../AnswerDTO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/AnswerDTO.java (.../AnswerDTO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -25,7 +25,7 @@ import java.util.List; import org.apache.commons.lang.builder.ToStringBuilder; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; /** *

Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/McGeneralLearnerFlowDTO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/McGeneralLearnerFlowDTO.java (.../McGeneralLearnerFlowDTO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/McGeneralLearnerFlowDTO.java (.../McGeneralLearnerFlowDTO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -25,7 +25,7 @@ import java.util.Map; import org.apache.commons.lang.builder.ToStringBuilder; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; /** *

Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/McOptionDTO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/McOptionDTO.java (.../McOptionDTO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/McOptionDTO.java (.../McOptionDTO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -22,7 +22,7 @@ package org.lamsfoundation.lams.tool.mc.dto; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; /** * DTO that holds candiate answers data for summary page Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/ReflectionDTO.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/ReflectionDTO.java (.../ReflectionDTO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/ReflectionDTO.java (.../ReflectionDTO.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -24,7 +24,7 @@ import org.apache.commons.lang.builder.ToStringBuilder; import org.lamsfoundation.lams.notebook.model.NotebookEntry; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; /** *

Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McContent.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McContent.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McContent.java (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -0,0 +1,507 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ***********************************************************************/ + +package org.lamsfoundation.lams.tool.mc.model; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashSet; +import java.util.Set; +import java.util.TreeSet; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OrderBy; +import javax.persistence.Table; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + *

+ * Persistent object/bean that defines the content for the MCQ tool. Provides accessors and mutators to get/set + * attributes It maps to database table: tl_lamc11_content + *

+ * + * @author Ozgur Demirtas + */ +@SuppressWarnings("serial") +@Entity +@Table(name = "tl_lamc11_content") +public class McContent implements Serializable { + + @Id + @Column + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long uid; + + @Column(name = "content_id") + private Long mcContentId; + + @Column + private String title; + + @Column + private String instructions; + + @Column(name = "define_later") + private boolean defineLater; + + @Column + private boolean reflect; + + @Column(name = "creation_date") + private Date creationDate; + + @Column(name = "update_date") + private Date updateDate; + + @Column(name = "questions_sequenced") + private boolean questionsSequenced; + + @Column(name = "created_by") + private long createdBy; + + @Column + private boolean retries; + + @Column(name = "show_report") + private boolean showReport; + + @Column + private boolean randomize; + + @Column + private boolean displayAnswers; + + @Column(name = "display_feedback_only") + private boolean displayFeedbackOnly; + + @Column + private boolean showMarks; + + @Column(name = "use_select_leader_tool_ouput") + private boolean useSelectLeaderToolOuput; + + @Column(name = "prefix_answers_with_letters") + private boolean prefixAnswersWithLetters; + + @Column(name = "submission_deadline") + private Date submissionDeadline; + + @Column(name = "pass_mark") + private Integer passMark; + + @Column(name = "enable_confidence_levels") + private boolean enableConfidenceLevels; + + @Column + private String reflectionSubject; + + @OneToMany(mappedBy = "mcContent", + cascade = CascadeType.ALL) + @OrderBy("displayOrder") + private Set mcQueContents; + + @OneToMany(mappedBy = "mcContent", + cascade = CascadeType.ALL, + orphanRemoval = true) + private Set mcSessions; + + /** full constructor */ + public McContent(Long mcContentId, String title, String instructions, boolean defineLater, Date creationDate, + Date updateDate, boolean questionsSequenced, long createdBy, Integer passMark, + boolean enableConfidenceLevels, boolean showReport, boolean randomize, boolean displayAnswers, + boolean displayFeedbackOnly, boolean showMarks, boolean useSelectLeaderToolOuput, + boolean prefixAnswersWithLetters, boolean retries, boolean reflect, String reflectionSubject, + Set mcQueContents, Set mcSessions) { + + this.mcContentId = mcContentId; + this.title = title; + this.instructions = instructions; + this.defineLater = defineLater; + this.creationDate = creationDate; + this.updateDate = updateDate; + this.questionsSequenced = questionsSequenced; + this.createdBy = createdBy; + this.retries = retries; + this.reflectionSubject = reflectionSubject; + this.reflect = reflect; + this.passMark = passMark; + this.enableConfidenceLevels = enableConfidenceLevels; + this.showReport = showReport; + this.randomize = randomize; + this.displayAnswers = displayAnswers; + this.displayFeedbackOnly = displayFeedbackOnly; + this.showMarks = showMarks; + this.useSelectLeaderToolOuput = useSelectLeaderToolOuput; + this.prefixAnswersWithLetters = prefixAnswersWithLetters; + this.mcQueContents = mcQueContents != null ? mcQueContents : new HashSet(); + this.mcSessions = mcSessions != null ? mcSessions : new HashSet(); + } + + /** default constructor */ + public McContent() { + this.mcQueContents = new HashSet(); + this.mcSessions = new HashSet(); + } + + /** minimal constructor */ + public McContent(Long mcContentId, Set mcQueContents, Set mcSessions) { + this.mcContentId = mcContentId; + this.mcQueContents = mcQueContents != null ? mcQueContents : new HashSet(); + this.mcSessions = mcSessions != null ? mcSessions : new HashSet(); + } + + /** + * gets called as part of the copyToolContent + * + * Copy Construtor to create a new mc content instance. Note that we don't copy the mc session data here because the + * mc session will be created after we copied tool content. + * + * @param mc + * the original mc content. + * @param newContentId + * the new mc content id. + * @return the new mc content object. + */ + public static McContent newInstance(McContent mc, Long newContentId) { + McContent newContent = new McContent(newContentId, mc.getTitle(), mc.getInstructions(), mc.isDefineLater(), + mc.getCreationDate(), mc.getUpdateDate(), mc.isQuestionsSequenced(), mc.getCreatedBy(), + mc.getPassMark(), mc.isEnableConfidenceLevels(), mc.isShowReport(), mc.isRandomize(), + mc.isDisplayAnswers(), mc.displayFeedbackOnly, mc.isShowMarks(), mc.isUseSelectLeaderToolOuput(), + mc.isPrefixAnswersWithLetters(), mc.isRetries(), mc.isReflect(), mc.getReflectionSubject(), + new TreeSet(), new TreeSet()); + newContent.setMcQueContents(mc.deepCopyMcQueContent(newContent)); + + return newContent; + } + + /** + * gets called as part of the copyToolContent + * + * @param newQaContent + * @return Set + */ + public Set deepCopyMcQueContent(McContent newMcContent) { + + Set newMcQueContent = new TreeSet(); + for (McQueContent queContent : this.getMcQueContents()) { + if (queContent.getMcContent() != null) { + McQueContent mcQueContent = McQueContent.newInstance(queContent, newMcContent); + newMcQueContent.add(mcQueContent); + } + } + return newMcQueContent; + } + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public Long getMcContentId() { + return this.mcContentId; + } + + public void setMcContentId(Long mcContentId) { + this.mcContentId = mcContentId; + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getInstructions() { + return this.instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public boolean isDefineLater() { + return this.defineLater; + } + + public void setDefineLater(boolean defineLater) { + this.defineLater = defineLater; + } + + public Date getUpdateDate() { + return this.updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public boolean isQuestionsSequenced() { + return this.questionsSequenced; + } + + public void setQuestionsSequenced(boolean questionsSequenced) { + this.questionsSequenced = questionsSequenced; + } + + public long getCreatedBy() { + return this.createdBy; + } + + public void setCreatedBy(long createdBy) { + this.createdBy = createdBy; + } + + public Integer getPassMark() { + return this.passMark; + } + + public void setPassMark(Integer passMark) { + this.passMark = passMark; + } + + /** + * + * @return + */ + public boolean isEnableConfidenceLevels() { + return enableConfidenceLevels; + } + + public void setEnableConfidenceLevels(boolean enableConfidenceLevels) { + this.enableConfidenceLevels = enableConfidenceLevels; + } + + public Set getMcQueContents() { + return this.mcQueContents; + } + + public void setMcQueContents(Set mcQueContents) { + this.mcQueContents = mcQueContents; + } + + public Set getMcSessions() { + return this.mcSessions; + } + + public void setMcSessions(Set mcSessions) { + this.mcSessions = mcSessions; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", getUid()).toString(); + } + + /** + * @return Returns the retries. + */ + public boolean isRetries() { + return retries; + } + + /** + * @param retries + * The retries to set. + */ + public void setRetries(boolean retries) { + this.retries = retries; + } + + /** + * @return Returns the showReport. + */ + public boolean isShowReport() { + return showReport; + } + + /** + * @param showReport + * The showReport to set. + */ + public void setShowReport(boolean showReport) { + this.showReport = showReport; + } + + /** + * @return Returns the creationDate. + */ + public Date getCreationDate() { + return creationDate; + } + + /** + * @param creationDate + * The creationDate to set. + */ + public void setCreationDate(Date creationDate) { + this.creationDate = creationDate; + } + + /** + * @return Returns the reflect. + */ + public boolean isReflect() { + return reflect; + } + + /** + * @param reflect + * The reflect to set. + */ + public void setReflect(boolean reflect) { + this.reflect = reflect; + } + + public String getReflectionSubject() { + return reflectionSubject; + } + + /** + * @param reflectionSubject + * The reflectionSubject to set. + */ + public void setReflectionSubject(String reflectionSubject) { + this.reflectionSubject = reflectionSubject; + } + + /** + * @return Returns the showMarks. + */ + public boolean isShowMarks() { + return showMarks; + } + + /** + * @param showMarks + * The showMarks to set. + */ + public void setShowMarks(boolean showMarks) { + this.showMarks = showMarks; + } + + /** + * @return + */ + public boolean isUseSelectLeaderToolOuput() { + return useSelectLeaderToolOuput; + } + + /** + * @param useSelectLeaderToolOuput + */ + public void setUseSelectLeaderToolOuput(boolean useSelectLeaderToolOuput) { + this.useSelectLeaderToolOuput = useSelectLeaderToolOuput; + } + + /** + * @return + */ + public boolean isPrefixAnswersWithLetters() { + return prefixAnswersWithLetters; + } + + /** + * @param prefixAnswersWithLetters + */ + public void setPrefixAnswersWithLetters(boolean prefixAnswersWithLetters) { + this.prefixAnswersWithLetters = prefixAnswersWithLetters; + } + + /** + * @return Returns the randomize. + */ + public boolean isRandomize() { + return randomize; + } + + /** + * @param randomize + * The randomize to set. + */ + public void setRandomize(boolean randomize) { + this.randomize = randomize; + } + + /** + * @return Returns the displayAnswers. + */ + public boolean isDisplayAnswers() { + return displayAnswers; + } + + /** + * @param displayAnswers + * The displayAnswers to set. + */ + public void setDisplayAnswers(boolean displayAnswers) { + this.displayAnswers = displayAnswers; + } + + public boolean isDisplayFeedbackOnly() { + return displayFeedbackOnly; + } + + public void setDisplayFeedbackOnly(boolean displayFeedbackOnly) { + this.displayFeedbackOnly = displayFeedbackOnly; + } + + /** + * @return date submissionDeadline + */ + public Date getSubmissionDeadline() { + return submissionDeadline; + } + + public void setSubmissionDeadline(Date submissionDeadline) { + this.submissionDeadline = submissionDeadline; + } + + /** + * Get total possible marks for this content. Iterates over the McQueContents set + */ + public Integer getTotalMarksPossible() { + + int totalMarksPossible = 0; + for (McQueContent mcQueContent : this.getMcQueContents()) { + Integer mark = mcQueContent.getMark(); + totalMarksPossible += (mark != null ? mark.intValue() : 0); + } + + return Integer.valueOf(totalMarksPossible); + } + + public boolean isPassMarkApplicable() { + return passMark != null; + } +} Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McOptsContent.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McOptsContent.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McOptsContent.java (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -0,0 +1,173 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ***********************************************************************/ + +package org.lamsfoundation.lams.tool.mc.model; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + * Persistent object/bean that defines the content for the MCQ tool. Provides accessors and mutators to get/set + * attributes It maps to database table: tl_lamc11_options_content + * + * @author Ozgur Demirtas + */ +@SuppressWarnings("serial") +@Entity +@Table(name = "tl_lamc11_options_content") +public class McOptsContent implements Serializable, Comparable { + + @Id + @Column + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long uid; + + @Column(name = "correct_option") + private boolean correctOption; + + @Column(name = "mc_que_option_text") + private String mcQueOptionText; + + @Column + private Integer displayOrder; + + @ManyToOne + @JoinColumn(name = "mc_que_content_id") + private McQueContent mcQueContent; + + @Transient + private boolean selected; + + @Transient + private String escapedOptionText; + + public McOptsContent(Integer displayOrder, boolean correctOption, String mcQueOptionText, + McQueContent mcQueContent) { + this.displayOrder = displayOrder; + this.correctOption = correctOption; + this.mcQueOptionText = mcQueOptionText; + this.mcQueContent = mcQueContent; + } + + public static McOptsContent newInstance(McOptsContent mcOptsContent, McQueContent newMcQueContent) { + McOptsContent newMcOptsContent = new McOptsContent(mcOptsContent.getDisplayOrder(), + mcOptsContent.isCorrectOption(), mcOptsContent.getMcQueOptionText(), newMcQueContent); + return newMcOptsContent; + } + + /** default constructor */ + public McOptsContent() { + } + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public boolean isCorrectOption() { + return this.correctOption; + } + + public void setCorrectOption(boolean correctOption) { + this.correctOption = correctOption; + } + + public String getMcQueOptionText() { + return this.mcQueOptionText; + } + + public void setMcQueOptionText(String mcQueOptionText) { + this.mcQueOptionText = mcQueOptionText; + } + + public McQueContent getMcQueContent() { + return this.mcQueContent; + } + + public void setMcQueContent(McQueContent mcQueContent) { + this.mcQueContent = mcQueContent; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", getUid()).toString(); + } + + @Override + public int compareTo(McOptsContent optContent) { + // if the object does not exist yet, then just return any one of 0, -1, 1. Should not make a difference. + if (uid == null) { + return 1; + } else { + return (int) (uid.longValue() - optContent.uid.longValue()); + } + } + + /** + * @return Returns the displayOrder. + */ + public Integer getDisplayOrder() { + return displayOrder; + } + + /** + * @param displayOrder + * The displayOrder to set. + */ + public void setDisplayOrder(Integer displayOrder) { + this.displayOrder = displayOrder; + } + + public boolean isSelected() { + return this.selected; + } + + public void setSelected(boolean selected) { + this.selected = selected; + } + + public String getEscapedOptionText() { + return this.escapedOptionText; + } + + public void setEscapedOptionText(String escapedOptionText) { + this.escapedOptionText = escapedOptionText; + } + + public String formatPrefixLetter(int index) { + return new String(Character.toChars(97 + index)) + ")"; + } +} Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McQueContent.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McQueContent.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McQueContent.java (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -0,0 +1,254 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ***********************************************************************/ + +package org.lamsfoundation.lams.tool.mc.model; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; +import java.util.TreeSet; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.OrderBy; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + *

+ * Persistent object/bean that defines the question content for the MCQ tool. Provides accessors and mutators to get/set + * attributes It maps to database table: tl_lamc11_que_content + *

+ * + * @author Ozgur Demirtas + */ +@SuppressWarnings("serial") +@Entity +@Table(name = "tl_lamc11_que_content") +public class McQueContent implements Serializable, Comparable { + + @Id + @Column + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long uid; + + @Column + private String question; + + /** + * It stores sha1(question) value that allows us to search for the McQueContentc with the same question + */ + @Column(name = "question_hash") + private String questionHash; + + @Column(name = "display_order") + private Integer displayOrder; + + @Column + private Integer mark; + + @Column + private String feedback; + + @ManyToOne + @JoinColumn(name = "mc_content_id") + private org.lamsfoundation.lams.tool.mc.model.McContent mcContent; + + // TODO Make this orphanRemoval = true, but first fix McService.createQuestions() to stop mucking around with the collections. + // Currently options that are deleted in authoring leave junk records in the database with the mc_que_content_id set to null + @OneToMany(cascade = CascadeType.ALL) + @OrderBy("displayOrder") + @JoinColumn(name = "mc_que_content_id") + private Set mcOptionsContents; + + //DTO fields + @Transient + private String escapedQuestion; + + public McQueContent(String question, String questionHash, Integer displayOrder, Integer mark, String feedback, + McContent mcContent, Set mcOptionsContents) { + this.question = question; + this.questionHash = questionHash; + this.displayOrder = displayOrder; + this.mark = mark; + this.feedback = feedback; + this.mcContent = mcContent; + this.mcOptionsContents = mcOptionsContents != null ? mcOptionsContents : new HashSet() ; + } + + /** default constructor */ + public McQueContent() { + this.mcOptionsContents = new HashSet(); + } + + /** + * gets called by copyToolContent + * + * Copy constructor + * + * @param queContent + * the original qa question content + * @return the new qa question content object + */ + public static McQueContent newInstance(McQueContent queContent, McContent newMcContent) { + McQueContent newQueContent = new McQueContent(queContent.getQuestion(), queContent.getQuestionHash(), + queContent.getDisplayOrder(), queContent.getMark(), queContent.getFeedback(), newMcContent, + new TreeSet()); + newQueContent.setMcOptionsContents(queContent.deepCopyMcOptionsContent(newQueContent)); + return newQueContent; + } + + public Set deepCopyMcOptionsContent(McQueContent newQueContent) { + Set newMcOptionsContent = new TreeSet(); + for (McOptsContent mcOptsContent : this.getMcOptionsContents()) { + McOptsContent mcNewOptsContent = McOptsContent.newInstance(mcOptsContent, newQueContent); + newMcOptionsContent.add(mcNewOptsContent); + } + return newMcOptionsContent; + } + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public String getQuestion() { + return this.question; + } + + public void setQuestion(String question) { + this.question = question; + } + + /** + * Returns sha1(question) value that allows us to search for the McQueContent with the same question + */ + public String getQuestionHash() { + return questionHash; + } + public void setQuestionHash(String questionHash) { + this.questionHash = questionHash; + } + + public Integer getDisplayOrder() { + return this.displayOrder; + } + + public void setDisplayOrder(Integer displayOrder) { + this.displayOrder = displayOrder; + } + + public org.lamsfoundation.lams.tool.mc.model.McContent getMcContent() { + return this.mcContent; + } + + public void setMcContent(org.lamsfoundation.lams.tool.mc.model.McContent mcContent) { + this.mcContent = mcContent; + } + + public Set getMcOptionsContents() { + return this.mcOptionsContents; + } + + public void setMcOptionsContents(Set mcOptionsContents) { + this.mcOptionsContents = mcOptionsContents; + } + + /** + * Get an options content record by its uid. Iterates over the set from getMcOptionsContents(). + */ + public McOptsContent getOptionsContentByUID(Long uid) { + for ( McOptsContent elem : getMcOptionsContents() ) { + if (elem.getUid().equals(uid)) { + return elem; + } + } + return null; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", getUid()).toString(); + } + + /** + * @return Returns the feedback. + */ + public String getFeedback() { + return feedback; + } + + /** + * @param feedback + * The feedback to set. + */ + public void setFeedback(String feedback) { + this.feedback = feedback; + } + + @Override + public int compareTo(McQueContent queContent) { + // if the object does not exist yet, then just return any one of 0, -1, 1. Should not make a difference. + if (uid == null) { + return 1; + } else if ( queContent.getUid() == null ) { + return -1; + } else { + return (int) (uid.longValue() - queContent.getUid().longValue()); + } + } + + /** + * @return Returns the mark. + */ + public Integer getMark() { + return mark; + } + + /** + * @param mark + * The mark to set. + */ + public void setMark(Integer mark) { + this.mark = mark; + } + + public String getEscapedQuestion() { + return this.escapedQuestion; + } + + public void setEscapedQuestion(String escapedQuestion) { + this.escapedQuestion = escapedQuestion; + } +} Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McQueUsr.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McQueUsr.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McQueUsr.java (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -0,0 +1,203 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ***********************************************************************/ + +package org.lamsfoundation.lams.tool.mc.model; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + *

+ * Persistent object/bean that defines the user for the MCQ tool. Provides accessors and mutators to get/set attributes + * It maps to database table: tl_lamc11_que_usr + *

+ * + * @author Ozgur Demirtas + */ +@SuppressWarnings("serial") +@Entity +@Table(name = "tl_lamc11_que_usr") +public class McQueUsr implements Serializable, Comparable { + + @Id + @Column + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long uid; + + @Column(name = "que_usr_id") + private Long queUsrId; + + @Column + private String username; + + @Column + private String fullname; + + @Column + private boolean responseFinalised; + + //please pay attention this columns is the *sessionUid* and not sessionId (this is due to Ozgur gave wrong name to this field) + @ManyToOne + @JoinColumn(name = "mc_session_id") + private McSession mcSession; + + @Column(name = "number_attempts") + private Integer numberOfAttempts; + + @Column(name = "last_attempt_total_mark") + private Integer lastAttemptTotalMark; + + /** default constructor */ + public McQueUsr() { + } + + /** full constructor */ + public McQueUsr(Long queUsrId, String username, String fullname, McSession mcSession) { + this.queUsrId = queUsrId; + this.username = username; + this.fullname = fullname; + this.mcSession = mcSession; + this.numberOfAttempts = 0; + } + + /** + * @return Returns the responseFinalised. + */ + public boolean isResponseFinalised() { + return responseFinalised; + } + + /** + * @param responseFinalised + * The responseFinalised to set. + */ + public void setResponseFinalised(boolean responseFinalised) { + this.responseFinalised = responseFinalised; + } + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public Long getQueUsrId() { + return this.queUsrId; + } + + public void setQueUsrId(Long queUsrId) { + this.queUsrId = queUsrId; + } + + public String getUsername() { + return this.username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getFullname() { + return this.fullname; + } + + public void setFullname(String fullname) { + this.fullname = fullname; + } + + public McSession getMcSession() { + return this.mcSession; + } + + public void setMcSession(McSession mcSession) { + this.mcSession = mcSession; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", getUid()).append("queUsrId", getQueUsrId()) + .append("username", getUsername()).append("fullname", getFullname()) + .append("responseFinalised", isResponseFinalised()) + .append("numberOfAttempts", getNumberOfAttempts()) + .append("lastAttemptTotalMark", getLastAttemptTotalMark()).toString(); + } + + public Integer getNumberOfAttempts() { + return numberOfAttempts; + } + + public void setNumberOfAttempts(Integer numberOfAttempts) { + this.numberOfAttempts = numberOfAttempts; + } + + public Integer getLastAttemptTotalMark() { + return lastAttemptTotalMark; + } + + public void setLastAttemptTotalMark(Integer lastAttemptTotalMark) { + this.lastAttemptTotalMark = lastAttemptTotalMark; + } + + /** + * Is the latest attempt a pass? True if and only if passmark is applicable for the related content and the user's + * lastAttemptTotalMark >= passmark. + */ + public boolean isLastAttemptMarkPassed() { + return isMarkPassed(lastAttemptTotalMark); + } + + /** + * Does this mark count as a pass? True if and only if passmark is applicable for the related content and the given + * mark >= passmark. Used to calculate if the user has passed before setting up the learner's attempts. + */ + public boolean isMarkPassed(Integer mark) { + McContent content = mcSession.getMcContent(); + if (mark != null && content.isPassMarkApplicable()) { + Integer passMark = content.getPassMark(); + return passMark != null && (mark.compareTo(passMark) >= 0); + } + return false; + } + + @Override + public int compareTo(McQueUsr other) { + // if the object does not exist yet, then just return any one of 0, -1, 1. Should not make a difference. + if (uid == null) { + return 1; + } else { + return (int) (uid.longValue() - other.uid.longValue()); + } + } + +} Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McSession.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McSession.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McSession.java (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -0,0 +1,271 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ***********************************************************************/ + +package org.lamsfoundation.lams.tool.mc.model; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + *

+ * Persistent object/bean that defines the content for the MCQ tool. Provides accessors and mutators to get/set + * attributes It maps to database table: tl_lamc11_session + *

+ * + * @author Ozgur Demirtas + */ +@SuppressWarnings("serial") +@Entity +@Table(name = "tl_lamc11_session") +public class McSession implements Serializable, Comparable { + + public final static String INCOMPLETE = "INCOMPLETE"; + + public static final String COMPLETED = "COMPLETED"; + + @Id + @Column + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long uid; + + @Column(name = "mc_session_id") + private Long mcSessionId; + + @Column(name = "session_start_date") + private Date sessionStartDate; + + @Column(name = "session_end_date") + private Date sessionEndDate; + + @Column(name = "session_status") + private String sessionStatus; + + @Column(name = "session_name") + private String session_name; + + @ManyToOne + @JoinColumn(name = "mc_content_id") + private org.lamsfoundation.lams.tool.mc.model.McContent mcContent; + + @OneToMany(mappedBy = "mcSession", + cascade = CascadeType.ALL, + orphanRemoval = true) + private Set mcQueUsers; + + @ManyToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "mc_group_leader_uid") + private McQueUsr groupLeader; + + /** full constructor */ + public McSession(Long mcSessionId, Date sessionStartDate, Date sessionEndDate, String sessionStatus, + org.lamsfoundation.lams.tool.mc.model.McContent mcContent, Set mcQueUsers) { + this.mcSessionId = mcSessionId; + this.sessionStartDate = sessionStartDate; + this.sessionEndDate = sessionEndDate; + this.sessionStatus = sessionStatus; + this.mcContent = mcContent; + this.mcQueUsers = mcQueUsers != null ? mcQueUsers : new HashSet(); + } + + public McSession(Long mcSessionId, Date sessionStartDate, String sessionStatus, String session_name, + org.lamsfoundation.lams.tool.mc.model.McContent mcContent, Set mcQueUsers) { + this.mcSessionId = mcSessionId; + this.sessionStartDate = sessionStartDate; + this.sessionStatus = sessionStatus; + this.session_name = session_name; + this.mcContent = mcContent; + this.mcQueUsers = mcQueUsers != null ? mcQueUsers : new HashSet(); + } + + public McSession(Long mcSessionId, Date sessionStartDate, String sessionStatus, + org.lamsfoundation.lams.tool.mc.model.McContent mcContent, Set mcQueUsers) { + this.mcSessionId = mcSessionId; + this.sessionStartDate = sessionStartDate; + this.sessionStatus = sessionStatus; + this.mcContent = mcContent; + this.mcQueUsers = mcQueUsers != null ? mcQueUsers : new HashSet(); + } + + /** default constructor */ + public McSession() { + this.mcQueUsers = new HashSet(); + } + + /** minimal constructor */ + public McSession(Long mcSessionId, Set mcQueUsers) { + this.mcSessionId = mcSessionId; + this.mcQueUsers = mcQueUsers != null ? mcQueUsers : new HashSet(); + } + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public Long getMcSessionId() { + return this.mcSessionId; + } + + public void setMcSessionId(Long mcSessionId) { + this.mcSessionId = mcSessionId; + } + + public org.lamsfoundation.lams.tool.mc.model.McContent getMcContent() { + return this.mcContent; + } + + public void setMcContent(org.lamsfoundation.lams.tool.mc.model.McContent mcContent) { + this.mcContent = mcContent; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", getUid()).toString(); + } + + /** + * @return Returns the sessionEndDate. + */ + public Date getSessionEndDate() { + return sessionEndDate; + } + + /** + * @param sessionEndDate + * The sessionEndDate to set. + */ + public void setSessionEndDate(Date sessionEndDate) { + this.sessionEndDate = sessionEndDate; + } + + /** + * @return Returns the sessionStartDate. + */ + public Date getSessionStartDate() { + return sessionStartDate; + } + + /** + * @param sessionStartDate + * The sessionStartDate to set. + */ + public void setSessionStartDate(Date sessionStartDate) { + this.sessionStartDate = sessionStartDate; + } + + /** + * @return Returns the sessionStatus. + */ + public String getSessionStatus() { + return sessionStatus; + } + + /** + * @param sessionStatus + * The sessionStatus to set. + */ + public void setSessionStatus(String sessionStatus) { + this.sessionStatus = sessionStatus; + } + + /** + * @return Returns the mcQueUsers. + */ + + public Set getMcQueUsers() { + return this.mcQueUsers; + } + + /** + * @param mcQueUsers + * The mcQueUsers to set. + */ + public void setMcQueUsers(Set mcQueUsers) { + this.mcQueUsers = mcQueUsers; + } + + /** + * @return Returns the session_name. + */ + public String getSession_name() { + return session_name; + } + + /** + * @param session_name + * The session_name to set. + */ + public void setSession_name(String session_name) { + this.session_name = session_name; + } + + /** + * @return groupLeader + */ + public McQueUsr getGroupLeader() { + return this.groupLeader; + } + + /** + * @param groupLeader + */ + public void setGroupLeader(McQueUsr groupLeader) { + this.groupLeader = groupLeader; + } + + public boolean isUserGroupLeader(McQueUsr user) { + + McQueUsr groupLeader = this.getGroupLeader(); + + boolean isUserLeader = (groupLeader != null) && user.getUid().equals(groupLeader.getUid()); + return isUserLeader; + } + + @Override + public int compareTo(McSession other) { + // if the object does not exist yet, then just return any one of 0, -1, 1. Should not make a difference. + if (uid == null) { + return 1; + } else { + return (int) (uid.longValue() - other.uid.longValue()); + } + } + +} Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McUsrAttempt.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McUsrAttempt.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/model/McUsrAttempt.java (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -0,0 +1,254 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ***********************************************************************/ + +package org.lamsfoundation.lams.tool.mc.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + *

+ * Persistent object/bean that defines the user attempt for the MCQ tool. Provides accessors and mutators to get/set + * attributes It maps to database table: tl_lamc11_usr_attempt + *

+ * + * @author Ozgur Demirtas + */ +@Entity +@Table(name = "tl_lamc11_usr_attempt") +public class McUsrAttempt implements Serializable, Comparable { + + private static final long serialVersionUID = 4514268732673337338L; + + @Id + @Column + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long uid; + + @Column(name = "attempt_time") + private Date attemptTime; + + @Column + private Integer mark; + + @Column(name = "isAttemptCorrect") + private boolean attemptCorrect; + + @Column + private boolean passed; + + @ManyToOne + @JoinColumn(name = "mc_que_content_id") + private McQueContent mcQueContent; + + @ManyToOne + @JoinColumn(name = "que_usr_id") + private McQueUsr mcQueUsr; + + @ManyToOne + @JoinColumn(name = "mc_que_option_id") + private McOptsContent mcOptionsContent; + + @Column(name = "confidence_level") + private int confidenceLevel; + + public McUsrAttempt(Date attemptTime, McQueContent mcQueContent, McQueUsr mcQueUsr, McOptsContent mcOptionsContent, + Integer mark, boolean passed, boolean attemptCorrect, int confidenceLevel) { + this.attemptTime = attemptTime; + this.mcQueContent = mcQueContent; + this.mcQueUsr = mcQueUsr; + this.mcOptionsContent = mcOptionsContent; + this.mark = mark; + this.passed = passed; + this.attemptCorrect = attemptCorrect; + this.confidenceLevel = confidenceLevel; + } + + /** default constructor */ + public McUsrAttempt() { + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((uid == null) ? 0 : uid.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + McUsrAttempt other = (McUsrAttempt) obj; + if (uid == null) { + if (other.uid != null) { + return false; + } + } else if (!uid.equals(other.uid)) { + return false; + } + return true; + } + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public Date getAttemptTime() { + return this.attemptTime; + } + + public void setAttemptTime(Date attemptTime) { + this.attemptTime = attemptTime; + } + + public org.lamsfoundation.lams.tool.mc.model.McQueContent getMcQueContent() { + return this.mcQueContent; + } + + public void setMcQueContent(org.lamsfoundation.lams.tool.mc.model.McQueContent mcQueContent) { + this.mcQueContent = mcQueContent; + } + + public org.lamsfoundation.lams.tool.mc.model.McQueUsr getMcQueUsr() { + return this.mcQueUsr; + } + + public void setMcQueUsr(org.lamsfoundation.lams.tool.mc.model.McQueUsr mcQueUsr) { + this.mcQueUsr = mcQueUsr; + } + + public org.lamsfoundation.lams.tool.mc.model.McOptsContent getMcOptionsContent() { + return this.mcOptionsContent; + } + + public void setMcOptionsContent(org.lamsfoundation.lams.tool.mc.model.McOptsContent mcOptionsContent) { + this.mcOptionsContent = mcOptionsContent; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", getUid()).toString(); + } + + /** + * @return Returns the mark. + */ + public Integer getMark() { + return mark; + } + + /** + * @param mark + * The mark to set. + */ + public void setMark(Integer mark) { + this.mark = mark; + } + + /** + * @return Returns the passed. + */ + public boolean isPassed() { + return passed; + } + + /** + * @param passed + * The passed to set. + */ + public void setPassed(boolean isPassed) { + this.passed = isPassed; + } + + /** + * @return Returns the attemptCorrect. + */ + public boolean isAttemptCorrect() { + return attemptCorrect; + } + + /** + * @param attemptCorrect + * The attemptCorrect to set. + */ + public void setAttemptCorrect(boolean attemptCorrect) { + this.attemptCorrect = attemptCorrect; + } + + public int getConfidenceLevel() { + return confidenceLevel; + } + + public void setConfidenceLevel(int confidenceLevel) { + this.confidenceLevel = confidenceLevel; + } + + /** + * Get the mark for displaying to the user. If retries or passmark is off, then just check whether or not answer is + * correct If retries and passmark is on, then we only want the marks if the user has passed! + */ + public Integer getMarkForShow(boolean allowRetries) { + //TODO check if we really allowed to return full mark +// if (isAttemptCorrect() && (!allowRetries || (allowRetries && isPassed()))) { +// return getMark(); +// } else { +// return new Integer(0); +// } + + return getMark(); + } + + @Override + public int compareTo(McUsrAttempt other) { + // if the object does not exist yet, then just return any one of 0, -1, 1. Should not make a difference. + if (uid == null) { + return 1; + } else { + return (int) (uid.longValue() - other.uid.longValue()); + } + } + +} Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McOptsContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McQueContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McQueUsr.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McSession.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag d03a1456d2d0ee7a482273fe35412c67054f133d refers to a dead (removed) revision in file `lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McUsrAttempt.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -40,12 +40,12 @@ import org.lamsfoundation.lams.tool.mc.dto.ReflectionDTO; import org.lamsfoundation.lams.tool.mc.dto.SessionDTO; import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McSession; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; /** * Interface that defines the contract that all MCQ service provider must follow. Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/MCOutputFactory.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/MCOutputFactory.java (.../MCOutputFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/MCOutputFactory.java (.../MCOutputFactory.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -35,12 +35,12 @@ import org.lamsfoundation.lams.tool.ToolOutputDefinition; import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McSession; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; public class MCOutputFactory extends OutputFactory { Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McImportContentVersionFilter.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McImportContentVersionFilter.java (.../McImportContentVersionFilter.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McImportContentVersionFilter.java (.../McImportContentVersionFilter.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -1,10 +1,10 @@ package org.lamsfoundation.lams.tool.mc.service; import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; /** * Import filter class for different version of MC content. Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -87,12 +87,12 @@ import org.lamsfoundation.lams.tool.mc.dto.ReflectionDTO; import org.lamsfoundation.lams.tool.mc.dto.SessionDTO; import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McSession; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.util.McSessionComparator; import org.lamsfoundation.lams.tool.mc.util.McStringComparator; import org.lamsfoundation.lams.tool.service.ILamsToolService; @@ -165,7 +165,7 @@ User leaderDto = (User) userManagementService.findById(User.class, leaderUserId.intValue()); String userName = leaderDto.getLogin(); String fullName = leaderDto.getFirstName() + " " + leaderDto.getLastName(); - leader = new McQueUsr(leaderUserId, userName, fullName, mcSession, new TreeSet()); + leader = new McQueUsr(leaderUserId, userName, fullName, mcSession); mcUserDAO.saveMcUser(user); } @@ -276,7 +276,7 @@ // in case question doesn't exist if (question == null) { question = new McQueContent(currentQuestionText, null, new Integer(displayOrder), - new Integer(currentMark), currentFeedback, content, null, null); + new Integer(currentMark), currentFeedback, content, null); // adding a new question to content content.getMcQueContents().add(question); @@ -295,6 +295,7 @@ List optionDTOs = questionDTO.getOptionDtos(); Set oldOptions = question.getMcOptionsContents(); Set newOptions = new HashSet(); + Set wantedUids = new HashSet(); int displayOrderOption = 1; for (McOptionDTO optionDTO : optionDTOs) { @@ -314,13 +315,12 @@ option.setCorrectOption(isCorrectOption); option.setMcQueOptionText(optionText); option.setMcQueContent(question); - + newOptions.add(option); displayOrderOption++; } - question.setMcOptionsContents(newOptions); - + // updating the existing question content saveOrUpdateMcQueContent(question); @@ -345,7 +345,7 @@ String fullName = toolUser.getFirstName() + " " + toolUser.getLastName(); McSession mcSession = getMcSessionById(toolSessionID.longValue()); - McQueUsr user = new McQueUsr(userId, userName, fullName, mcSession, new TreeSet()); + McQueUsr user = new McQueUsr(userId, userName, fullName, mcSession); mcUserDAO.saveMcUser(user); return user; @@ -1537,7 +1537,7 @@ McUsrAttempt userAttempt = (McUsrAttempt) userAttemptAndPortraitIter[0]; Long portraitUuid = userAttemptAndPortraitIter[1] == null ? null : ((Number) userAttemptAndPortraitIter[1]).longValue(); - Long userId = userAttempt.getQueUsrId(); + Long userId = userAttempt.getMcQueUsr().getQueUsrId(); //fill in question's and user answer's hashes McQueContent question = userAttempt.getMcQueContent(); @@ -1575,7 +1575,7 @@ String userName = user.getLogin(); String fullName = user.getFirstName() + " " + user.getLastName(); - mcUser = new McQueUsr(userId, userName, fullName, session, new TreeSet()); + mcUser = new McQueUsr(userId, userName, fullName, session); mcUserDAO.saveMcUser(mcUser); } @@ -1934,8 +1934,7 @@ ArrayNode questions = JsonUtil.optArray(toolContentJSON, RestTags.QUESTIONS); for (JsonNode questionData : questions) { McQueContent question = new McQueContent(JsonUtil.optString(questionData, RestTags.QUESTION_TEXT), null, - JsonUtil.optInt(questionData, RestTags.DISPLAY_ORDER), 1, "", mcq, null, - new HashSet()); + JsonUtil.optInt(questionData, RestTags.DISPLAY_ORDER), 1, "", mcq, new HashSet()); ArrayNode optionsData = JsonUtil.optArray(questionData, RestTags.ANSWERS); for (JsonNode optionData : optionsData) { @@ -1947,9 +1946,5 @@ saveOrUpdateMcQueContent(question); } - // TODO - // mcq.setContent(content) - can't find in database - // mcq.setConditions(conditions); - } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/AuthoringUtil.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/AuthoringUtil.java (.../AuthoringUtil.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/AuthoringUtil.java (.../AuthoringUtil.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -36,9 +36,9 @@ import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.dto.McOptionDTO; import org.lamsfoundation.lams.tool.mc.dto.McQuestionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/LearningUtil.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/LearningUtil.java (.../LearningUtil.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/LearningUtil.java (.../LearningUtil.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -30,7 +30,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.mc.dto.AnswerDTO; import org.lamsfoundation.lams.tool.mc.dto.McGeneralLearnerFlowDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; +import org.lamsfoundation.lams.tool.mc.model.McContent; import org.lamsfoundation.lams.tool.mc.web.form.McLearningForm; /** Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/McSessionComparator.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/McSessionComparator.java (.../McSessionComparator.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/util/McSessionComparator.java (.../McSessionComparator.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -2,7 +2,7 @@ import java.util.Comparator; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; +import org.lamsfoundation.lams.tool.mc.model.McSession; import org.lamsfoundation.lams.util.AlphanumComparator; /** Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McController.java (.../McController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McController.java (.../McController.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -44,8 +44,8 @@ import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.dto.McOptionDTO; import org.lamsfoundation.lams.tool.mc.dto.McQuestionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.util.AuthoringUtil; import org.lamsfoundation.lams.tool.mc.web.form.McAuthoringForm; @@ -78,7 +78,7 @@ @Autowired @Qualifier("lamcMessageService") - private static MessageService messageService; + private MessageService messageService; @RequestMapping("/authoring") public String execute(@ModelAttribute McAuthoringForm mcAuthoringForm, HttpServletRequest request) { @@ -368,7 +368,7 @@ Iterator iter = questionDTOs.iterator(); while (iter.hasNext()) { McQuestionDTO questionDto = iter.next(); - McQuestionDTO tempQuestion = new McQuestionDTO(); + McQuestionDTO tempQuestion = null; if ((!questionDto.getDisplayOrder().equals(originalQuestionIndex)) && !questionDto.getDisplayOrder().equals(replacedQuestionIndex)) { Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McLearningController.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McLearningController.java (.../McLearningController.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McLearningController.java (.../McLearningController.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -46,12 +46,12 @@ import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.dto.AnswerDTO; import org.lamsfoundation.lams.tool.mc.dto.McGeneralLearnerFlowDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McSession; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.util.LearningUtil; import org.lamsfoundation.lams.tool.mc.util.McComparator; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McMonitoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McMonitoringController.java (.../McMonitoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McMonitoringController.java (.../McMonitoringController.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -50,12 +50,12 @@ import org.lamsfoundation.lams.tool.mc.dto.McUserMarkDTO; import org.lamsfoundation.lams.tool.mc.dto.ReflectionDTO; import org.lamsfoundation.lams.tool.mc.dto.SessionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McSession; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.util.McSessionComparator; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McPedagogicalPlannerController.java =================================================================== diff -u -r8846e87b362ce07b580e3750128c5826e667f7e5 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McPedagogicalPlannerController.java (.../McPedagogicalPlannerController.java) (revision 8846e87b362ce07b580e3750128c5826e667f7e5) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McPedagogicalPlannerController.java (.../McPedagogicalPlannerController.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -36,9 +36,9 @@ import org.apache.commons.lang.math.NumberUtils; import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.dto.McOptionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.web.form.McPedagogicalPlannerForm; import org.lamsfoundation.lams.util.MessageService; @@ -128,7 +128,6 @@ McQueContent mcQueContent = new McQueContent(); mcQueContent.setDisplayOrder(questionIndex); mcQueContent.setMcContent(mcContent); - mcQueContent.setMcContentId(mcContent.getMcContentId()); mcQueContent.setQuestion(question); mcQueContent.setMark(McAppConstants.QUESTION_DEFAULT_MARK); Set candidateAnswers = mcQueContent.getMcOptionsContents(); @@ -138,7 +137,7 @@ McOptsContent candidateAnswer = new McOptsContent(candidateAnswerDTOIndex + 1, McAppConstants.CORRECT.equals(answerDTO.getCorrect()), answerDTO.getCandidateAnswer(), mcQueContent); - candidateAnswer.setMcQueContentId(mcQueContent.getMcContentId()); + candidateAnswer.setMcQueContent(mcQueContent); candidateAnswers.add(candidateAnswer); } mcService.saveOrUpdateMcQueContent(mcQueContent); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/TblMonitoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -10,12 +10,12 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.mc.dto.McOptionDTO; import org.lamsfoundation.lams.tool.mc.dto.McQuestionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; -import org.lamsfoundation.lams.tool.mc.pojos.McSession; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; +import org.lamsfoundation.lams.tool.mc.model.McContent; +import org.lamsfoundation.lams.tool.mc.model.McOptsContent; +import org.lamsfoundation.lams.tool.mc.model.McQueContent; +import org.lamsfoundation.lams.tool.mc.model.McQueUsr; +import org.lamsfoundation.lams.tool.mc.model.McSession; +import org.lamsfoundation.lams.tool.mc.model.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/form/McPedagogicalPlannerForm.java =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -rd03a1456d2d0ee7a482273fe35412c67054f133d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/form/McPedagogicalPlannerForm.java (.../McPedagogicalPlannerForm.java) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/form/McPedagogicalPlannerForm.java (.../McPedagogicalPlannerForm.java) (revision d03a1456d2d0ee7a482273fe35412c67054f133d) @@ -36,7 +36,7 @@ import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.dto.McOptionDTO; import org.lamsfoundation.lams.tool.mc.dto.McQuestionDTO; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; +import org.lamsfoundation.lams.tool.mc.model.McContent; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.util.AuthoringUtil; import org.lamsfoundation.lams.util.MessageService;