Index: lams_admin/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93)
+++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -527,6 +527,25 @@
sysadmin.lesson.delete.title =Delete all lessons from course
msg.delete.organisation.confirm =You are about to permanently remove a course. Are you sure want to do this?
msg.delete.organisation.delete.lessons.confirm =The course or one of its subcourses still contains lessons. They need to be permanently deleted first. You will be redirected to a page where you can do it.
+admin.org.password.change.title =Reset password for course members
+admin.org.password.change.button =Password reset
+admin.org.password.change.is.staff =Authors/monitors
+admin.org.password.change.is.learner =Students
+admin.org.password.change.generate =Generate new password
+admin.org.password.change.email =Email new password
+admin.org.password.change.force =Force change password after login
+admin.org.password.change.custom =Enter own password or generate one
+admin.org.password.change.grid.login =Login
+admin.org.password.change.grid.name =Name
+admin.org.password.change.grid.email =Email
+admin.org.password.change.grid.error.load =Error while loading users into grid
+admin.org.password.change.choose =Change password for
+admin.org.password.change.submit =Change password
+admin.org.password.change.error.prefix.staff =Authors/monitors password
+admin.org.password.change.error.prefix.learners =Authors/monitors password
+admin.org.password.change.success =Passwords successfully changed
+admin.org.password.change.email.subject =LAMS password change
+admin.org.password.change.email.body =Your password has been changed to: {0}\n\n-- email sent automatically by LAMS
label.event.log=Event (Audit) Log
label.event.topic=Topic
label.event.type=Type of Event
@@ -566,5 +585,4 @@
label.area.unknown=Unknown
audit.change.made.by=Changes Made By
audit.change.made.to=Changes Made To
-
#======= End labels: Exported 511 labels for en AU =====
Index: lams_admin/web/WEB-INF/struts-config.xml
===================================================================
diff -u -r5f82321c5864250c612773630ff209a45e71a3f1 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_admin/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 5f82321c5864250c612773630ff209a45e71a3f1)
+++ lams_admin/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -159,6 +159,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -975,6 +988,19 @@
path="/uploadPortraits"
type="org.lamsfoundation.lams.admin.web.action.PortraitBatchUploadAction"
/>
+
+
+
Index: lams_admin/web/WEB-INF/tiles-defs.xml
===================================================================
diff -u -r4b44632629e35a6b8dc8a970bc0ecc27f38d66ff -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_admin/web/WEB-INF/tiles-defs.xml (.../tiles-defs.xml) (revision 4b44632629e35a6b8dc8a970bc0ecc27f38d66ff)
+++ lams_admin/web/WEB-INF/tiles-defs.xml (.../tiles-defs.xml) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -211,6 +211,11 @@
+
+
+
+
+
Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb26f90eccf164c7058201360d2ca771adcfb597a
Binary files differ
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java
===================================================================
diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -377,6 +377,8 @@
*/
Integer getCountRoleForOrg(Integer orgId, Integer roleId, String searchPhrase);
+ Integer getCountRoleForOrg(Integer orgId, Integer[] roleIds, String searchPhrase);
+
/**
* Get default html theme of server.
*
@@ -465,8 +467,11 @@
* filters results by course name. It can be null and then doesn't affect results
* @return paged list of users
*/
- List getAllUsersPaged(int page, int size, String sortBy, String sortOrder, String searchString);
+ List getAllUsers(Integer page, Integer size, String sortBy, String sortOrder, String searchString);
+ List getAllUsers(Integer organisationID, String[] roleNames, Integer page, Integer size, String sortBy,
+ String sortOrder, String searchString);
+
/**
* Get all users, except for disabled users and users that are members of filteredOrg.
*
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java
===================================================================
diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -872,8 +872,8 @@
}
@Override
- public Integer getCountRoleForOrg(Integer orgId, Integer roleId, String searchPhrase) {
- Integer count = roleDAO.getCountRoleForOrg(roleId, orgId, searchPhrase);
+ public Integer getCountRoleForOrg(Integer orgId, Integer[] roleIds, String searchPhrase) {
+ Integer count = roleDAO.getCountRoleForOrg(roleIds, orgId, searchPhrase);
if (count != null) {
return count;
} else {
@@ -882,6 +882,11 @@
}
@Override
+ public Integer getCountRoleForOrg(Integer orgId, Integer roleId, String searchPhrase) {
+ return getCountRoleForOrg(orgId, new Integer[] { roleId }, searchPhrase);
+ }
+
+ @Override
public Theme getDefaultTheme() {
String htmlName = Configuration.get(ConfigurationKeys.DEFAULT_THEME);
List list = findByProperty(Theme.class, "name", "defaultHTML");
@@ -977,11 +982,17 @@
}
@Override
- public List getAllUsersPaged(int page, int size, String sortBy, String sortOrder, String searchString) {
+ public List getAllUsers(Integer page, Integer size, String sortBy, String sortOrder, String searchString) {
return userDAO.getAllUsersPaged(page, size, sortBy, sortOrder, searchString);
}
@Override
+ public List getAllUsers(Integer organisationID, String[] roleNames, Integer page, Integer size,
+ String sortBy, String sortOrder, String searchString) {
+ return userDAO.getAllUsersPaged(organisationID, roleNames, page, size, sortBy, sortOrder, searchString);
+ }
+
+ @Override
public List getAllUsers(Integer filteredOrgId) {
return userDAO.findUsers(filteredOrgId);
}
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java
===================================================================
diff -u -rbe985c136a1f176a3ebb3f48902fca8ebdc7de22 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision be985c136a1f176a3ebb3f48902fca8ebdc7de22)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -474,6 +474,11 @@
public GradebookUserActivity getGradebookUserActivity(Long activityID, Integer userID) {
return gradebookDAO.getGradebookUserDataForActivity(activityID, userID);
}
+
+ @Override
+ public List getGradebookUserActivities(Long activityId) {
+ return gradebookDAO.getAllGradebookUserActivitiesForActivity(activityId);
+ }
@Override
public Double getAverageMarkForActivity(Long activityID, Long groupID) {
Index: lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93)
+++ lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -412,5 +412,31 @@
tour.gradebook.show.weight =Show Weights
tour.gradebook.show.weight.content =Show/hide the activity weights used for marking this lesson.
+label.tbl.monitor =TBL Monitor
+label.teams =Teams
+label.students.teams =Students & Teams
+label.student =Student
+label.gates =Gates
+label.ira =iRA
+label.tra =tRA
+label.burning.questions =Burning Qs
+label.forum =Forum
+label.aes =AEs
+label.sequence =Sequence
+label.sequence.diagram =Sequence diagram
+label.refresh =Refresh
+label.attendance =Attendance
+label.users.knocking.on.gate ={0} users knocking on the gate...
+label.comparison =Comparison
+label.change.leader =Change leader
+label.bar.chart =Bar chart
+label.score =Score
+label.ira.responses.for =iRA responses for
+label.tra.responses.for =tRA responses for
+label.note.leader.change =Note that the leader change only will take place for the activities in which the existing leader has not been set or commenced.
+label.current.leader =Current leader:
+label.leader.successfully.changed =Leader has been successfully changed
+label.view.forum =View forum
+label.switch.to.regular.monitor =Switch to regular monitor
#======= End labels: Exported 401 labels for en AU =====
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java
===================================================================
diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -1895,9 +1895,9 @@
List recipients = getArchivedEmailNotificationRecipients(emailNotificationUid, null, null);
for (User recipient : recipients) {
row = new ExcelCell[1];
- row[0] = new ExcelCell(
- recipient.getFirstName() + " " + recipient.getLastName() + " [" + recipient.getLogin() + "]",
- false);
+ String recipientName = new StringBuilder(recipient.getLastName()).append(", ")
+ .append(recipient.getFirstName()).append(" [").append(recipient.getLogin()).append("]").toString();
+ row[0] = new ExcelCell(recipientName, false);
rows.add(row);
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailNotificationsAction.java
===================================================================
diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailNotificationsAction.java (.../EmailNotificationsAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailNotificationsAction.java (.../EmailNotificationsAction.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -332,7 +332,8 @@
rowJSON.put(GradebookConstants.ELEMENT_ID, recipient.getUserId());
JSONArray cellJSON = new JSONArray();
- cellJSON.put(recipient.getFirstName() + " " + recipient.getLastName() + " [" + recipient.getLogin() + "]");
+ cellJSON.put(new StringBuilder(recipient.getLastName()).append(", ").append(recipient.getFirstName())
+ .append(" [").append(recipient.getLogin()).append("]").toString());
rowJSON.put(GradebookConstants.ELEMENT_CELL, cellJSON);
rowsJSON.put(rowJSON);
@@ -602,9 +603,9 @@
// data is going into a jquery UI table that doesn't need to it be escaped. LDEV-4514
for (User user : users) {
JSONArray cell = new JSONArray();
- cell.put(new StringBuilder(user.getFirstName()).append(" ")
- .append(user.getLastName()).append(" (")
- .append(user.getLogin()) + ")").toString();
+ cell.put(new StringBuilder(user.getLastName()).append(", ")
+ .append(user.getFirstName()).append(" (")
+ .append(user.getLogin()).append(")").toString());
JSONObject cellobj = new JSONObject();
cellobj.put("id", "" + user.getUserId());
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java
===================================================================
diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -64,11 +64,13 @@
import org.lamsfoundation.lams.learningdesign.ComplexActivity;
import org.lamsfoundation.lams.learningdesign.ContributionTypes;
import org.lamsfoundation.lams.learningdesign.Group;
+import org.lamsfoundation.lams.learningdesign.GroupingActivity;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.learningdesign.OptionsWithSequencesActivity;
import org.lamsfoundation.lams.learningdesign.SequenceActivity;
import org.lamsfoundation.lams.learningdesign.ToolActivity;
import org.lamsfoundation.lams.learningdesign.Transition;
+import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO;
import org.lamsfoundation.lams.learningdesign.exception.LearningDesignException;
import org.lamsfoundation.lams.lesson.LearnerProgress;
import org.lamsfoundation.lams.lesson.Lesson;
@@ -933,10 +935,93 @@
.isUserInRole(user.getUserID(), organisation.getOrganisationId(), Role.AUTHOR);
request.setAttribute("enableLiveEdit", enableLiveEdit);
request.setAttribute("lesson", lessonDTO);
+ request.setAttribute("isTBLSequence", isTBLSequence(lessonId));
return mapping.findForward("monitorLesson");
}
+
+ /**
+ * If learning design contains the following activities Grouping->(MCQ or Assessment)->Leader Selection->Scratchie
+ * (potentially with some other gates or activities in the middle), there is a good chance this is a TBL sequence
+ * and all activities must be grouped.
+ */
+ private boolean isTBLSequence(Long lessonId) {
+
+ Lesson lesson = getLessonService().getLesson(lessonId);
+ Long firstActivityId = lesson.getLearningDesign().getFirstActivity().getActivityId();
+ //Hibernate CGLIB is failing to load the first activity in the sequence as a ToolActivity
+ Activity firstActivity = getMonitoringService().getActivityById(firstActivityId);
+
+ return verifyNextActivityFitsTbl(firstActivity, "Grouping");
+ }
+
+ /**
+ * Traverses the learning design verifying it follows typical TBL structure
+ *
+ * @param activity
+ * @param anticipatedActivity could be either "Grouping", "MCQ or Assessment", "Leaderselection" or "Scratchie"
+ */
+ private boolean verifyNextActivityFitsTbl(Activity activity, String anticipatedActivity) {
+
+ Transition transitionFromActivity = activity.getTransitionFrom();
+ //TBL can finish with the Scratchie
+ if (transitionFromActivity == null && !"Scratchie".equals(anticipatedActivity)) {
+ return false;
+ }
+ // query activity from DB as transition holds only proxied activity object
+ Long nextActivityId = transitionFromActivity == null ? null : transitionFromActivity.getToActivity().getActivityId();
+ Activity nextActivity = nextActivityId == null ? null : monitoringService.getActivityById(nextActivityId);
+
+ switch (anticipatedActivity) {
+ case "Grouping":
+ //the first activity should be a grouping
+ if (activity instanceof GroupingActivity) {
+ return verifyNextActivityFitsTbl(nextActivity, "MCQ or Assessment");
+
+ } else {
+ return verifyNextActivityFitsTbl(nextActivity, "Grouping");
+ }
+ case "MCQ or Assessment":
+ //the second activity shall be a MCQ or Assessment
+ if (activity.isToolActivity() && (CentralConstants.TOOL_SIGNATURE_ASSESSMENT
+ .equals(((ToolActivity) activity).getTool().getToolSignature())
+ || CentralConstants.TOOL_SIGNATURE_MCQ
+ .equals(((ToolActivity) activity).getTool().getToolSignature()))) {
+ return verifyNextActivityFitsTbl(nextActivity, "Leaderselection");
+
+ } else {
+ return verifyNextActivityFitsTbl(nextActivity, "MCQ or Assessment");
+ }
+
+ case "Leaderselection":
+ //the third activity shall be a Leader Selection
+ if (activity.isToolActivity() && CentralConstants.TOOL_SIGNATURE_LEADERSELECTION
+ .equals(((ToolActivity) activity).getTool().getToolSignature())) {
+ return verifyNextActivityFitsTbl(nextActivity, "Scratchie");
+
+ } else {
+ return verifyNextActivityFitsTbl(nextActivity, "Leaderselection");
+ }
+
+ case "Scratchie":
+ //the fourth activity shall be Scratchie
+ if (activity.isToolActivity() && CentralConstants.TOOL_SIGNATURE_SCRATCHIE
+ .equals(((ToolActivity) activity).getTool().getToolSignature())) {
+ return true;
+
+ } else if (nextActivity == null) {
+ return false;
+
+ } else {
+ return verifyNextActivityFitsTbl(nextActivity, "Scratchie");
+ }
+
+ default:
+ return false;
+ }
+ }
+
/**
* Gets users whose progress bars will be displayed in Learner tab in Monitor.
*/
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java
===================================================================
diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -164,7 +164,7 @@
@Override
public boolean isUserGroupLeader(AssessmentUser user, Long toolSessionId) {
- AssessmentSession session = getAssessmentSessionBySessionId(toolSessionId);
+ AssessmentSession session = getSessionBySessionId(toolSessionId);
AssessmentUser groupLeader = session.getGroupLeader();
return (groupLeader != null) && user.getUserId().equals(groupLeader.getUserId());
@@ -176,7 +176,7 @@
return null;
}
- AssessmentSession assessmentSession = getAssessmentSessionBySessionId(toolSessionId);
+ AssessmentSession assessmentSession = getSessionBySessionId(toolSessionId);
AssessmentUser leader = assessmentSession.getGroupLeader();
// check leader select tool for a leader only in case QA tool doesn't know it. As otherwise it will screw
// up previous scratches done
@@ -343,6 +343,11 @@
public int getCountUsersBySession(Long sessionId, String searchString) {
return assessmentUserDao.getCountUsersBySession(sessionId, searchString);
}
+
+ @Override
+ public int getCountUsersByContentId(Long contentId) {
+ return assessmentUserDao.getCountUsersByContentId(contentId);
+ }
@Override
public List getPagedUsersBySessionAndQuestion(Long sessionId, Long questionUid, int page,
@@ -396,9 +401,14 @@
}
@Override
- public AssessmentUser getUserByIDAndContent(Long userId, Long contentId) {
- return assessmentUserDao.getUserByUserIDAndContentID(userId, contentId);
+ public AssessmentUser getUserCreatedAssessment(Long userId, Long contentId) {
+ return assessmentUserDao.getUserCreatedAssessment(userId, contentId);
}
+
+ @Override
+ public AssessmentUser getUserByIdAndContent(Long userId, Long contentId) {
+ return assessmentUserDao.getUserByIdAndContent(userId, contentId);
+ }
@Override
public AssessmentUser getUserByIDAndSession(Long userId, Long sessionId) {
@@ -442,9 +452,14 @@
}
@Override
- public AssessmentSession getAssessmentSessionBySessionId(Long sessionId) {
+ public AssessmentSession getSessionBySessionId(Long sessionId) {
return assessmentSessionDao.getSessionBySessionId(sessionId);
}
+
+ @Override
+ public List getSessionsByContentId(Long toolContentId) {
+ return assessmentSessionDao.getByContentId(toolContentId);
+ }
@Override
public void setAttemptStarted(Assessment assessment, AssessmentUser assessmentUser, Long toolSessionId) {
@@ -899,6 +914,11 @@
public Integer getLastFinishedAssessmentResultTimeTaken(Long assessmentUid, Long userId) {
return assessmentResultDao.getLastFinishedAssessmentResultTimeTaken(assessmentUid, userId);
}
+
+ @Override
+ public int countAttemptsPerOption(Long optionUid) {
+ return assessmentResultDao.countAttemptsPerOption(optionUid);
+ }
@Override
public AssessmentResult getLastFinishedAssessmentResultNotFromChache(Long assessmentUid, Long userId) {
@@ -1280,7 +1300,7 @@
// in case of UseSelectLeaderToolOuput - display only one user
if (assessment.isUseSelectLeaderToolOuput()) {
- AssessmentSession session = getAssessmentSessionBySessionId(sessionId);
+ AssessmentSession session = getSessionBySessionId(sessionId);
AssessmentUser groupLeader = session.getGroupLeader();
if (groupLeader != null) {
@@ -1691,7 +1711,7 @@
sessionTitle[0] = new ExcelCell(sessionDTO.getSessionName(), true);
userSummaryTab.add(sessionTitle);
- AssessmentSession assessmentSession = getAssessmentSessionBySessionId(sessionDTO.getSessionId());
+ AssessmentSession assessmentSession = getSessionBySessionId(sessionDTO.getSessionId());
Set assessmentUsers = assessmentSession.getAssessmentUsers();
@@ -2489,7 +2509,7 @@
// reset it to new toolContentId
toolContentObj.setContentId(toolContentId);
- AssessmentUser user = assessmentUserDao.getUserByUserIDAndContentID(new Long(newUserUid.longValue()),
+ AssessmentUser user = assessmentUserDao.getUserCreatedAssessment(new Long(newUserUid.longValue()),
toolContentId);
if (user == null) {
user = new AssessmentUser();
@@ -2751,7 +2771,7 @@
public void forceCompleteUser(Long toolSessionId, User user) {
Long userId = user.getUserId().longValue();
- AssessmentSession session = getAssessmentSessionBySessionId(toolSessionId);
+ AssessmentSession session = getSessionBySessionId(toolSessionId);
if ((session == null) || (session.getAssessment() == null)) {
return;
}
@@ -2929,7 +2949,7 @@
"Assessment Tool does not support Overall Feedback for REST Authoring. " + toolContentJSON);
}
- AssessmentUser assessmentUser = getUserByIDAndContent(userID.longValue(), toolContentID);
+ AssessmentUser assessmentUser = getUserCreatedAssessment(userID.longValue(), toolContentID);
if (assessmentUser == null) {
assessmentUser = new AssessmentUser();
assessmentUser.setFirstName(toolContentJSON.getString("firstName"));
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java
===================================================================
diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -377,14 +377,14 @@
}
@Override
- public McQueUsr getMcUserByUID(Long uid) throws McApplicationException {
- try {
- return mcUserDAO.getMcUserByUID(uid);
- } catch (DataAccessException e) {
- throw new McApplicationException(
- "Exception occured when lams is getting the mc QueUsr by uid." + e.getMessage(), e);
- }
+ public McQueUsr getMcUserByUID(Long uid) {
+ return mcUserDAO.getMcUserByUID(uid);
}
+
+ @Override
+ public McQueUsr getMcUserByContentId(Long userId, Long contentId) {
+ return mcUserDAO.getMcUserByContentId(userId, contentId);
+ }
@Override
public Long getPortraitId(Long userId) {
@@ -473,6 +473,11 @@
e);
}
}
+
+ @Override
+ public int getAttemptsCountPerOption(Long optionUid) {
+ return mcUsrAttemptDAO.getAttemptsCountPerOption(optionUid);
+ }
@Override
public List getAnswersFromDatabase(McContent mcContent, McQueUsr user) {
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java
===================================================================
diff -u -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 -rb26f90eccf164c7058201360d2ca771adcfb597a
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision b26f90eccf164c7058201360d2ca771adcfb597a)
@@ -201,9 +201,13 @@
@Override
public ScratchieUser getUserByIDAndSession(Long userId, Long sessionId) {
-
return scratchieUserDao.getUserByUserIDAndSessionID(userId, sessionId);
}
+
+ @Override
+ public int countUsersByContentId(Long contentId) {
+ return scratchieUserDao.countUsersByContentId(contentId);
+ }
@Override
public void saveOrUpdateScratchie(Scratchie scratchie) {
@@ -408,6 +412,11 @@
public ScratchieSession getScratchieSessionBySessionId(Long sessionId) {
return scratchieSessionDao.getSessionBySessionId(sessionId);
}
+
+ @Override
+ public int countSessionsByContentId(Long toolContentId) {
+ return scratchieSessionDao.getByContentId(toolContentId).size();
+ }
@Override
public void saveOrUpdateScratchieSession(ScratchieSession resSession) {
@@ -631,6 +640,11 @@
public List getUsersBySession(Long toolSessionId) {
return scratchieUserDao.getBySessionID(toolSessionId);
}
+
+ @Override
+ public ScratchieUser getUserByUserIDAndContentID(Long userId, Long contentId) {
+ return scratchieUserDao.getUserByUserIDAndContentID(userId, contentId);
+ }
@Override
public void saveUser(ScratchieUser user) {
@@ -1896,7 +1910,6 @@
user.setLastName(sysUser.getLastName());
user.setLoginName(sysUser.getLogin());
user.setUserId(new Long(newUserUid.longValue()));
- user.setScratchie(toolContentObj);
}
scratchieDao.saveObject(toolContentObj);