Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java
===================================================================
diff -u -r5926b5cb145649a9f978ab4c14146169684a849c -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision 5926b5cb145649a9f978ab4c14146169684a849c)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -204,14 +204,22 @@
ExtServerLessonMap createExtServerLessonMap(Long lessonId, String resourceLinkId, ExtServer extServer);
/**
- * Checks whether the lesson was created from extServer and returns lessonFinishCallbackUrl if it's not blank.
+ * Checks whether the lesson was created from extServer (not an LTI consumer one) and returns lessonFinishCallbackUrl if it's not blank.
*
* @param user
* @param lesson
* @return
* @throws UnsupportedEncodingException
*/
String getLessonFinishCallbackUrl(User user, Lesson lesson) throws UnsupportedEncodingException;
+
+ /**
+ * Check whether specified lesson was created using LTI consumer, and if so - push user mark to that server
+ *
+ * @param user
+ * @param lesson
+ */
+ void pushMarkToLtiConsumer(User user, Lesson lesson, Double mark);
/**
* Checks whether lesson was created using integrations and whether according integrated server has ExtGroupsUrl
Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java
===================================================================
diff -u -rc975a1230b65f2245c5c77ba413afe97a2816df9 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision c975a1230b65f2245c5c77ba413afe97a2816df9)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -102,10 +102,8 @@
* @author Fei Yang
*/
public class IntegrationService implements IIntegrationService {
-
private static Logger log = Logger.getLogger(IntegrationService.class);
- private IGradebookService gradebookService;
private IUserManagementService service;
private ILessonService lessonService;
private ILamsCoreToolService toolService;
@@ -634,88 +632,95 @@
@Override
public String getLessonFinishCallbackUrl(User user, Lesson lesson) throws UnsupportedEncodingException {
+ if (lesson == null) {
+ return null;
+ }
+
// the callback url must contain %username%, %lessonid%, %timestamp% and %hash% eg:
// "http://server.com/lams--bb/UserData?uid=%username%&lessonid=%lessonid%&ts=%timestamp%&hash=%hash%";
// where %username%, %lessonid%, %timestamp% and %hash% will be replaced with their real values
String lessonFinishCallbackUrl = null;
- if (lesson != null) {
- Long lessonId = lesson.getLessonId();
- ExtServerLessonMap extServerLesson = getExtServerLessonMap(lessonId);
- // checks whether the lesson was created from extServer and whether it has lessonFinishCallbackUrl setting
- if (extServerLesson != null
- && StringUtils.isNotBlank(extServerLesson.getExtServer().getLessonFinishUrl())) {
- ExtServer server = extServerLesson.getExtServer();
+ Long lessonId = lesson.getLessonId();
+ ExtServerLessonMap extServerLesson = getExtServerLessonMap(lessonId);
+ ExtServer server = extServerLesson == null ? null : extServerLesson.getExtServer();
+ ExtUserUseridMap extUser = extServerLesson == null ? null
+ : getExtUserUseridMapByUserId(server, user.getUserId());
- ExtUserUseridMap extUser = getExtUserUseridMapByUserId(server, user.getUserId());
- if (extUser != null) {
- String extUsername = extUser.getExtUsername();
+ // checks whether the lesson was created from extServer and whether it has lessonFinishCallbackUrl setting
+ if (extServerLesson != null && extUser != null
+ && server.getServerTypeId().equals(ExtServer.INTEGRATION_SERVER_TYPE)
+ && StringUtils.isNotBlank(extServerLesson.getExtServer().getLessonFinishUrl())) {
- //return URL in case of integration server
- if (server.getServerTypeId().equals(ExtServer.INTEGRATION_SERVER_TYPE)) {
- // construct real lessonFinishCallbackUrl
- lessonFinishCallbackUrl = server.getLessonFinishUrl();
- String timestamp = Long.toString(new Date().getTime());
- String hash = hash(server, extUsername, timestamp);
- String encodedExtUsername = URLEncoder.encode(extUsername, "UTF8");
+ // construct real lessonFinishCallbackUrl
+ lessonFinishCallbackUrl = server.getLessonFinishUrl();
+ String timestamp = Long.toString(new Date().getTime());
+ String extUsername = extUser.getExtUsername();
+ String hash = hash(server, extUsername, timestamp);
+ String encodedExtUsername = URLEncoder.encode(extUsername, "UTF8");
- // set the values for the parameters
- lessonFinishCallbackUrl = lessonFinishCallbackUrl.replaceAll("%username%", encodedExtUsername)
- .replaceAll("%lessonid%", lessonId.toString()).replaceAll("%timestamp%", timestamp)
- .replaceAll("%hash%", hash);
- log.debug(lessonFinishCallbackUrl);
+ // set the values for the parameters
+ lessonFinishCallbackUrl = lessonFinishCallbackUrl.replaceAll("%username%", encodedExtUsername)
+ .replaceAll("%lessonid%", lessonId.toString()).replaceAll("%timestamp%", timestamp)
+ .replaceAll("%hash%", hash);
+ log.debug(lessonFinishCallbackUrl);
+ }
+ // in case of LTI Tool Consumer - pushMarkToIntegratedServer() method will be invoked from GradebookService on mark update
- // in case of LTI Tool Consumer - create a new thread to report score back to LMS (in order to do this task in parallel not to slow down later work)
- } else {
+ return lessonFinishCallbackUrl;
+ }
+
+ @Override
+ public void pushMarkToLtiConsumer(User user, Lesson lesson, Double userMark) {
+ if (lesson == null) {
+ return;
+ }
+ Long lessonId = lesson.getLessonId();
+ ExtServerLessonMap extServerLesson = getExtServerLessonMap(lessonId);
+ ExtServer server = extServerLesson == null ? null : extServerLesson.getExtServer();
+ ExtUserUseridMap extUser = extServerLesson == null ? null
+ : getExtUserUseridMapByUserId(server, user.getUserId());
+
+ // checks whether the lesson was created from extServer and whether it's a LTI Tool Consumer - create a new thread to report score back to LMS (in order to do this task in parallel not to slow down later work)
+ if (extServerLesson != null && extUser != null
+ && server.getServerTypeId().equals(ExtServer.LTI_CONSUMER_SERVER_TYPE)
+ && StringUtils.isNotBlank(extServerLesson.getExtServer().getLessonFinishUrl())) {
- // calculate lesson's MaxPossibleMark
- Long lessonMaxPossibleMark = toolService.getLessonMaxPossibleMark(lesson);
- GradebookUserLesson gradebookUserLesson = gradebookService.getGradebookUserLesson(lessonId,
- user.getUserId());
- Double userTotalMark = (gradebookUserLesson == null) || (gradebookUserLesson.getMark() == null)
- ? null
- : gradebookUserLesson.getMark();
+ // calculate lesson's MaxPossibleMark
+ Long lessonMaxPossibleMark = toolService.getLessonMaxPossibleMark(lesson);
- final String lessonFinishUrl = server.getLessonFinishUrl();
- if (userTotalMark != null && StringUtils.isNotBlank(lessonFinishUrl)) {
+ final String lessonFinishUrl = server.getLessonFinishUrl();
+ if (userMark != null && StringUtils.isNotBlank(lessonFinishUrl)) {
+ Double score = lessonMaxPossibleMark.equals(0L) ? 0 : userMark / lessonMaxPossibleMark;
+ final String scoreStr = (userMark == null) || lessonMaxPossibleMark.equals(0L) ? ""
+ : score.toString();
- Double score = lessonMaxPossibleMark.equals(0L) ? 0 : userTotalMark / lessonMaxPossibleMark;
- final String scoreStr = (userTotalMark == null) || lessonMaxPossibleMark.equals(0L) ? ""
- : score.toString();
+ final String serverKey = server.getServerid();
+ final String serverSecret = server.getServerkey();
+ final String tcGradebookId = extUser.getTcGradebookId();
+ final ExtUserUseridMap extUserFinal = extUser;
- final String serverKey = server.getServerid();
- final String serverSecret = server.getServerkey();
- final String tcGradebookId = extUser.getTcGradebookId();
- final ExtUserUseridMap extUserFinal = extUser;
-
- Thread preaddLearnersMonitorsThread = new Thread(new Runnable() {
- @Override
- public void run() {
- //send Request directly
- try {
- IMSPOXRequest.sendReplaceResult(lessonFinishUrl, serverKey, serverSecret,
- tcGradebookId, scoreStr);
- } catch (IOException e) {
- throw new RuntimeException(e);
- } catch (OAuthException e) {
- throw new RuntimeException(e);
- } catch (GeneralSecurityException e) {
- throw new RuntimeException(e);
- }
- log.debug("Score (" + scoreStr + ") posted to Tool Consumer (serverKey:" + serverKey
- + "). extUsername:" + extUserFinal.getExtUsername());
- }
- }, "LAMS_sendScoresLTI_thread");
- preaddLearnersMonitorsThread.start();
-
+ Thread sendMarkToLtiConsumerThread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ //send Request directly
+ try {
+ IMSPOXRequest.sendReplaceResult(lessonFinishUrl, serverKey, serverSecret, tcGradebookId,
+ scoreStr);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } catch (OAuthException e) {
+ throw new RuntimeException(e);
+ } catch (GeneralSecurityException e) {
+ throw new RuntimeException(e);
}
+ log.debug("Score (" + scoreStr + ") posted to Tool Consumer (serverKey:" + serverKey
+ + "). extUsername:" + extUserFinal.getExtUsername());
}
-
- }
+ }, "LAMS_sendScoresLTI_thread");
+ sendMarkToLtiConsumerThread.start();
}
}
-
- return lessonFinishCallbackUrl;
}
@Override
@@ -1080,10 +1085,6 @@
this.lessonService = lessonService;
}
- public void setGradebookService(IGradebookService gradebookService) {
- this.gradebookService = gradebookService;
- }
-
public void setToolService(ILamsCoreToolService toolService) {
this.toolService = toolService;
}
Index: lams_common/src/java/org/lamsfoundation/lams/integrationContext.xml
===================================================================
diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_common/src/java/org/lamsfoundation/lams/integrationContext.xml (.../integrationContext.xml) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd)
+++ lams_common/src/java/org/lamsfoundation/lams/integrationContext.xml (.../integrationContext.xml) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -6,7 +6,6 @@
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
-
Index: lams_common/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java
===================================================================
diff -u -r673e64304c12d78aa1b4ba819a39ae14f394ca42 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_common/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision 673e64304c12d78aa1b4ba819a39ae14f394ca42)
+++ lams_common/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -121,6 +121,12 @@
* Complete the activity in the progress engine and delegate to the progress engine to calculate the next activity
* in the learning design. It is currently triggered by various progress engine related action classes, which then
* calculate the url to go to next, based on the ActivityMapping class.
+ *
+ * @param learnerId
+ * the learner who are running this activity in the design.
+ * @param activity
+ * the activity is being run.
+ * @return the updated learner progress
*/
void completeActivity(Integer learnerId, Activity activity, Long progressID);
Index: lams_common/src/java/org/lamsfoundation/lams/tool/ToolSessionManager.java
===================================================================
diff -u -r9f98b5e2b822f824d857d3d677f21b1149f794c8 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_common/src/java/org/lamsfoundation/lams/tool/ToolSessionManager.java (.../ToolSessionManager.java) (revision 9f98b5e2b822f824d857d3d677f21b1149f794c8)
+++ lams_common/src/java/org/lamsfoundation/lams/tool/ToolSessionManager.java (.../ToolSessionManager.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -164,6 +164,8 @@
* @return
*/
List getConfidenceLevels(Long toolSessionId);
+
+ boolean isUserGroupLeader(Long userId, Long toolSessionId);
/**
* Notifies tool that the user is force completed. Currently it's been utilized only by leader aware tools, which
Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java (.../ILamsCoreToolService.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java (.../ILamsCoreToolService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -280,6 +280,14 @@
* @return
*/
List getConfidenceLevelsByToolSession(ToolSession toolSession);
+
+ /**
+ * Returns true in case this tool is leader-aware and specified user is a leader in his group, false otherwise.
+ *
+ * @param toolSession
+ * @param learner
+ */
+ boolean isUserLeaderInActivity(ToolSession toolSession, User user);
/**
* Notifies tool that the user is force completed. Currently it's been utilized only by leader aware tools, which
Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java
===================================================================
diff -u -r9f98b5e2b822f824d857d3d677f21b1149f794c8 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java (.../LamsCoreToolService.java) (revision 9f98b5e2b822f824d857d3d677f21b1149f794c8)
+++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java (.../LamsCoreToolService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -155,8 +155,8 @@
// if haven't found an existing tool session then create one
if (toolSession == null) {
- if (LamsCoreToolService.log.isDebugEnabled()) {
- LamsCoreToolService.log.debug("Creating tool session for [" + activity.getActivityId() + ","
+ if (log.isDebugEnabled()) {
+ log.debug("Creating tool session for [" + activity.getActivityId() + ","
+ activity.getTitle() + "] for learner [" + learner.getLogin() + "] lesson ["
+ lesson.getLessonId() + "," + lesson.getLessonName() + "].");
}
@@ -200,7 +200,7 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to create tool session. ToolActivity "
+ activity;
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
}
@@ -225,7 +225,7 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to copy/update the tool content. ToolActivity "
+ toolActivity;
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
@@ -239,14 +239,14 @@
if (toolContent == null) {
String error = "The toolContentID " + toolContentId
+ " is not valid. No such record exists on the database.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolContent.getTool();
if (tool == null) {
String error = "The tool for toolContentId " + toolContentId + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -262,7 +262,7 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to copy the tool content. ToolContentId "
+ toolContentId;
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
@@ -277,7 +277,7 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to delete the tool content. ToolActivity "
+ toolActivity;
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
}
@@ -292,7 +292,7 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to delete learner content. ToolActivity "
+ toolActivity;
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
} else if (activity.isGroupingActivity()) {
@@ -367,14 +367,14 @@
if (toolContent == null) {
String error = "The toolContentID " + toolContentId
+ " is not valid. No such record exists on the database.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolContent.getTool();
if (tool == null) {
String error = "The tool for toolContentId " + toolContentId + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -384,12 +384,12 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to get the tool output definitions. ToolContentId "
+ toolContentId;
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
} catch (java.lang.AbstractMethodError e) {
String message = "Tool " + tool.getToolDisplayName()
+ " doesn't support the getToolOutputDefinitions(toolContentId) method so no output definitions can be accessed.";
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
@@ -404,14 +404,14 @@
if (toolContent == null) {
String error = "The toolContentID " + inputToolContentId
+ " is not valid. No such record exists on the database.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolContent.getTool();
if (tool == null) {
String error = "The tool for toolContentId " + inputToolContentId + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -447,12 +447,12 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to get the tool output definitions. ToolContentId "
+ inputToolContentId;
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
} catch (java.lang.AbstractMethodError e) {
String message = "Tool " + tool.getToolDisplayName()
+ " doesn't support the getSupportedToolOutputDefinitionClasses(definitionType) method so no output definitions can be accessed.";
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
@@ -473,14 +473,14 @@
if (toolSession == null) {
String error = "The toolSession is not valid. Unable to get the tool output";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolSession.getToolActivity().getTool();
if (tool == null) {
String error = "The tool for toolSession " + toolSession.getToolSessionId() + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -491,12 +491,12 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to gt the tol output. toolSession "
+ toolSession.getToolSessionId();
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
} catch (java.lang.AbstractMethodError e) {
String message = "Tool " + tool.getToolDisplayName()
+ " doesn't support the getToolOutput(name, toolSessionId, learnerId) method so no output definitions can be accessed.";
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
}
@@ -506,14 +506,14 @@
if (toolActivity == null) {
String error = "The toolActivity is null. Unable to get tool outputs";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolActivity.getTool();
if (tool == null) {
String error = "The tool for toolActivity " + toolActivity.getActivityId() + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -523,12 +523,12 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to grt the tol output. toolActivity "
+ toolActivity.getActivityId();
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
} catch (java.lang.AbstractMethodError e) {
String message = "Tool " + tool.getToolDisplayName()
+ " doesn't support the getToolOutput(name, toolSessionId, learnerId) method so no output definitions can be accessed.";
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
}
@@ -538,14 +538,14 @@
if (toolSession == null) {
String error = "The toolSession is null. Unable to get confidence levels";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolSession.getToolActivity().getTool();
if (tool == null) {
String error = "The tool for toolSession " + toolSession.getToolSessionId() + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -555,29 +555,60 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to get the tool output. toolActivity "
+ toolSession.getToolActivity().getActivityId();
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
} catch (java.lang.AbstractMethodError e) {
String message = "Tool " + tool.getToolDisplayName()
+ " doesn't support the getToolOutput(name, toolSessionId, learnerId) method so no output definitions can be accessed.";
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
}
+
+ @Override
+ public boolean isUserLeaderInActivity(ToolSession toolSession, User learner) throws ToolException {
+ if (toolSession == null) {
+ String error = "The toolSession is not valid. Unable to check whether user is a leader.";
+ log.error(error);
+ throw new DataMissingException(error);
+ }
+ Tool tool = toolSession.getToolActivity().getTool();
+ if (tool == null) {
+ String error = "The tool for toolSession " + toolSession.getToolSessionId() + " is missing.";
+ log.error(error);
+ throw new DataMissingException(error);
+ }
+ try {
+ ToolSessionManager sessionManager = (ToolSessionManager) findToolService(tool);
+ //we get leader from the current tool rather than LeaderSelection tool in order to avoid making redundant calls to DB
+ return sessionManager.isUserGroupLeader(learner.getUserId().longValue(), toolSession.getToolSessionId());
+ } catch (NoSuchBeanDefinitionException e) {
+ String message = "A tool which is defined in the database appears to missing from the classpath. Unable to check whether user is a leader. toolSession "
+ + toolSession.getToolSessionId();
+ log.error(message, e);
+ throw new ToolException(message, e);
+ } catch (AbstractMethodError e) {
+ String message = "Tool " + tool.getToolDisplayName()
+ + " doesn't support the isUserLeaderInActivity(ToolSession, User) method so can't check whether user is a leader.";
+ log.error(message, e);
+ throw new ToolException(message, e);
+ }
+ }
+
@Override
public void forceCompleteActivity(ToolSession toolSession, User learner) throws ToolException {
if (toolSession == null) {
String error = "The toolSession is not valid. Unable to force complete activity.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolSession.getToolActivity().getTool();
if (tool == null) {
String error = "The tool for toolSession " + toolSession.getToolSessionId() + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -587,12 +618,12 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to force complete activity. toolSession "
+ toolSession.getToolSessionId();
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
} catch (java.lang.AbstractMethodError e) {
String message = "Tool " + tool.getToolDisplayName()
+ " doesn't support the forceCompleteUser(ToolSession toolSession, User learner) method so can't force complete learner.";
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
}
@@ -610,14 +641,14 @@
if (toolSession == null) {
String error = "The toolSession is not valid. Unable to get the tool output";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
Tool tool = toolSession.getToolActivity().getTool();
if (tool == null) {
String error = "The tool for toolSession " + toolSession.getToolSessionId() + " is missing.";
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new DataMissingException(error);
}
@@ -628,12 +659,12 @@
} catch (NoSuchBeanDefinitionException e) {
String message = "A tool which is defined in the database appears to missing from the classpath. Unable to gt the tol output. toolSession "
+ toolSession.getToolSessionId();
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
} catch (java.lang.AbstractMethodError e) {
String message = "Tool " + tool.getToolDisplayName()
+ " doesn't support the getToolOutput(name, toolSessionId, learnerId) method so no output definitions can be accessed.";
- LamsCoreToolService.log.error(message, e);
+ log.error(message, e);
throw new ToolException(message, e);
}
}
@@ -746,7 +777,7 @@
@Override
public void deleteToolSession(ToolSession toolSession) {
if (toolSession == null) {
- LamsCoreToolService.log.error("deleteToolSession: unable to delete tool session as tool session is null.");
+ log.error("deleteToolSession: unable to delete tool session as tool session is null.");
return;
}
@@ -757,10 +788,10 @@
try {
sessionManager.removeToolSession(toolSession.getToolSessionId());
} catch (DataMissingException e) {
- LamsCoreToolService.log.error("Unable to delete tool data for tool session "
+ log.error("Unable to delete tool data for tool session "
+ toolSession.getToolSessionId() + " as toolSession does not exist", e);
} catch (ToolException e) {
- LamsCoreToolService.log.error("Unable to delete tool data for tool session "
+ log.error("Unable to delete tool data for tool session "
+ toolSession.getToolSessionId() + " as tool threw an exception", e);
}
@@ -881,7 +912,7 @@
String error = "Unable to set up url as session does not exist. Activity "
+ (activity != null ? activity.getActivityId() + ":" + activity.getTitle() : "null") + " learner "
+ (learner != null ? learner.getUserId() + ":" + learner.getLogin() : "null");
- LamsCoreToolService.log.error(error);
+ log.error(error);
throw new LamsToolServiceException(error);
}
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/gradebookApplicationContext.xml
===================================================================
diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/gradebookApplicationContext.xml (.../gradebookApplicationContext.xml) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/gradebookApplicationContext.xml (.../gradebookApplicationContext.xml) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -20,11 +20,11 @@
-
+
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java
===================================================================
diff -u -rd471fb4d4ad60b6568b9f3cb4ec9cd82c6fbe495 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision d471fb4d4ad60b6568b9f3cb4ec9cd82c6fbe495)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -49,8 +49,8 @@
import org.lamsfoundation.lams.gradebook.model.GradebookUserActivityArchive;
import org.lamsfoundation.lams.gradebook.model.GradebookUserLessonArchive;
import org.lamsfoundation.lams.gradebook.util.GBGridView;
-import org.lamsfoundation.lams.gradebook.util.GradebookUtil;
import org.lamsfoundation.lams.gradebook.util.LessonComparator;
+import org.lamsfoundation.lams.integration.service.IIntegrationService;
import org.lamsfoundation.lams.learning.service.ILearnerService;
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.ActivityEvaluation;
@@ -131,12 +131,11 @@
private ILessonDAO lessonDAO;
private ILessonService lessonService;
private IUserManagementService userService;
- private IBaseDAO baseDAO;
private IActivityDAO activityDAO;
private MessageService messageService;
private ILogEventService logEventService;
private static ILearnerService learnerService;
-
+ private IIntegrationService integrationService;
private IOutcomeService outcomeService;
@Override
@@ -727,7 +726,6 @@
}
}
}
-
} catch (ToolException e) {
logger.debug(
"Runtime exception when attempted to get outputs for activity: " + toolActivity.getActivityId(), e);
@@ -737,7 +735,6 @@
@Override
public void updateGradebookUserActivityMark(Lesson lesson, User learner, Activity activity, Double mark,
Boolean markedInGradebook, boolean isAuditLogRequired) {
-
GradebookUserActivity gradebookUserActivity = gradebookDAO
.getGradebookUserDataForActivity(activity.getActivityId(), learner.getUserId());
@@ -748,19 +745,6 @@
gradebookUserActivity, gradebookUserLesson);
}
- private void updateUserActivityGradebookMark(Lesson lesson, User learner, Activity activity, Double mark,
- Boolean markedInGradebook, boolean isAuditLogRequired) {
-
- GradebookUserActivity gradebookUserActivity = gradebookDAO
- .getGradebookUserDataForActivity(activity.getActivityId(), learner.getUserId());
-
- GradebookUserLesson gradebookUserLesson = gradebookDAO.getGradebookUserDataForLesson(lesson.getLessonId(),
- learner.getUserId());
-
- updateUserActivityGradebookMark(lesson, learner, activity, mark, markedInGradebook, isAuditLogRequired,
- gradebookUserActivity, gradebookUserLesson);
- }
-
@Override
public boolean isWeightedMarks(Long lessonId) {
Lesson lesson = lessonService.getLesson(lessonId);
@@ -788,6 +772,9 @@
return evaluations;
}
+ /*
+ * TODO Method is not in use. Remove it?
+ *
private void updateUserActivityGradebookMark(Lesson lesson, Activity activity, User learner) {
ToolSession toolSession = toolService.getToolSessionByLearner(learner, activity);
@@ -815,7 +802,7 @@
// Only set the mark if it hasnt previously been set by a teacher
if ((gradebookUserActivity == null) || !gradebookUserActivity.getMarkedInGradebook()) {
- updateUserActivityGradebookMark(lesson, learner, toolActivity, outputDouble, false, false);
+ updateGradebookUserActivityMark(lesson, learner, toolActivity, outputDouble, false, false);
}
}
}
@@ -825,6 +812,7 @@
"Runtime exception when attempted to get outputs for activity: " + toolActivity.getActivityId(), e);
}
}
+ */
/**
* It's the same method as above, it only also accepts gradebookUserActivity and gradebookUserLesson as parameters.
@@ -870,6 +858,13 @@
logEventService.logEvent(LogEvent.TYPE_MARK_UPDATED, monitorUser.getUserID(), learner.getUserId(),
lesson.getLessonId(), activity.getActivityId(), message);
}
+
+ //propagade mark to integration server, if the lesson has been finished by the learner
+ LearnerProgress learnerProgress = lessonService.getUserProgressForLesson(learner.getUserId(),
+ lesson.getLessonId());
+ if (learnerProgress != null && learnerProgress.isComplete()) {
+ integrationService.pushMarkToLtiConsumer(learner, lesson, gradebookUserLesson.getMark());
+ }
}
}
@@ -941,7 +936,6 @@
Integer orgId = organisation.getOrganisationId();
if (organisation != null) {
-
List lessons = (view == GBGridView.MON_COURSE || view == GBGridView.LIST
|| view == GBGridView.MON_USER)
? gradebookDAO.getLessonsByGroupAndUser(isGroupManager ? null : viewer.getUserId(), true,
@@ -1035,12 +1029,8 @@
} else {
lessonRow.setSubGroup("");
}
-
}
}
-
- } else {
- logger.error("Request for gradebook grid with a null organisation");
}
return lessonRows;
@@ -1897,7 +1887,9 @@
}
}
- @Override
+ /*
+ * TODO Method is not in use. Remove it?
+ *
public void updateActivityMark(Double mark, String feedback, Integer userID, Long toolSessionID,
Boolean markedInGradebook) {
ToolSession toolSession = toolService.getToolSessionById(toolSessionID);
@@ -1909,12 +1901,13 @@
// If gradebook user activity is null or the mark is set by teacher or was set previously by user - save the
// mark and feedback
if ((gradebookUserActivity == null) || markedInGradebook || !gradebookUserActivity.getMarkedInGradebook()) {
- updateUserActivityGradebookMark(toolSession.getLesson(), learner, activity, mark, markedInGradebook,
+ updateGradebookUserActivityMark(toolSession.getLesson(), learner, activity, mark, markedInGradebook,
false);
updateUserActivityGradebookFeedback(activity, learner, feedback);
}
}
}
+ */
@Override
public void removeActivityMark(Integer userID, Long toolSessionID) {
@@ -1963,7 +1956,7 @@
logger.debug(
"Removing activity and lesson entries for learner ID " + learnerId + " and lesson ID " + lessonId);
}
- Lesson lesson = getLessonService().getLesson(lessonId);
+ Lesson lesson = lessonService.getLesson(lessonId);
List activities = getLessonActivitiesForLearner(lesson, learnerId);
for (ToolActivity activity : activities) {
GradebookUserActivity gradebookUserActivity = getGradebookUserActivity(activity.getActivityId(), learnerId);
@@ -1983,7 +1976,7 @@
logger.debug("Archiving activity and lesson entries for learner ID " + learnerId + " and lesson ID "
+ lessonId + " with archive date " + archiveDate);
}
- Lesson lesson = getLessonService().getLesson(lessonId);
+ Lesson lesson = lessonService.getLesson(lessonId);
List activities = getLessonActivitiesForLearner(lesson, learnerId);
for (ToolActivity activity : activities) {
GradebookUserActivity gradebookUserActivity = getGradebookUserActivity(activity.getActivityId(), learnerId);
@@ -2553,18 +2546,10 @@
this.logEventService = logEventService;
}
- public ILamsCoreToolService getToolService() {
- return toolService;
- }
-
public void setToolService(ILamsCoreToolService toolService) {
this.toolService = toolService;
}
- public IGradebookDAO getGradebookDAO() {
- return gradebookDAO;
- }
-
public void setGradebookDAO(IGradebookDAO gradebookDAO) {
this.gradebookDAO = gradebookDAO;
}
@@ -2577,34 +2562,14 @@
this.lessonDAO = lessonDAO;
}
- public ILessonService getLessonService() {
- return lessonService;
- }
-
public void setLessonService(ILessonService lessonService) {
this.lessonService = lessonService;
}
- public IUserManagementService getUserService() {
- return userService;
- }
-
public void setUserService(IUserManagementService userService) {
this.userService = userService;
}
- public IBaseDAO getBaseDAO() {
- return baseDAO;
- }
-
- public void setBaseDAO(IBaseDAO baseDAO) {
- this.baseDAO = baseDAO;
- }
-
- public IActivityDAO getActivityDAO() {
- return activityDAO;
- }
-
public void setActivityDAO(IActivityDAO activityDAO) {
this.activityDAO = activityDAO;
}
@@ -2620,4 +2585,8 @@
public void setOutcomeService(IOutcomeService outcomeService) {
this.outcomeService = outcomeService;
}
+
+ public void setIntegrationService(IIntegrationService integrationService) {
+ this.integrationService = integrationService;
+ }
}
\ No newline at end of file
Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookFullService.java
===================================================================
diff -u -rd471fb4d4ad60b6568b9f3cb4ec9cd82c6fbe495 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookFullService.java (.../IGradebookFullService.java) (revision d471fb4d4ad60b6568b9f3cb4ec9cd82c6fbe495)
+++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/IGradebookFullService.java (.../IGradebookFullService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -242,17 +242,6 @@
Double getAverageMarkForLesson(Long lessonID);
/**
- * Method for updating an activity mark that tools can call
- *
- * @param mark
- * @param feedback
- * @param userID
- * @param toolSessionID
- */
- void updateActivityMark(Double mark, String feedback, Integer userID, Long toolSessionID,
- Boolean markedInGradebook);
-
- /**
* Get an activity from the db by id
*
* @param activityID
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerFullService.java
===================================================================
diff -u -r471b903caa3365758fbdec0a22440b1b0b3f2947 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerFullService.java (.../ILearnerFullService.java) (revision 471b903caa3365758fbdec0a22440b1b0b3f2947)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerFullService.java (.../ILearnerFullService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -1,10 +1,15 @@
package org.lamsfoundation.lams.learning.service;
+import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
import org.lamsfoundation.lams.learning.command.model.Command;
+import org.lamsfoundation.lams.learning.web.util.ActivityMapping;
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.BranchingActivity;
import org.lamsfoundation.lams.learningdesign.Grouping;
@@ -59,14 +64,17 @@
* @return LearnerProgress
*/
LearnerProgress chooseActivity(Integer learnerId, Long lessonId, Activity activity, Boolean clearCompletedFlag);
-
+
/**
- * If specified activity is set to produce ToolOutput, calculates and stores mark to gradebook.
+ * "Complete" an activity from the web layer's perspective. Used for CompleteActivityAction and the Gate and
+ * Grouping actions. Calls the completeActivity(Integer, Activity, Long) to actually complete the activity and
+ * progress.
*
- * @param toolActivity
- * @param progress
+ * @param redirect
+ * Should this call redirect to the next screen (true) or use a forward (false)
*/
- void updateGradebookMark(Activity activity, LearnerProgress progress);
+ String completeActivity(ActivityMapping actionMappings, LearnerProgress progress, Activity currentActivity,
+ Integer learnerId, boolean redirect) throws UnsupportedEncodingException;
/**
* Perform grouping for the learners who have started the lesson, based on the grouping activity.
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java
===================================================================
diff -u -r673e64304c12d78aa1b4ba819a39ae14f394ca42 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 673e64304c12d78aa1b4ba819a39ae14f394ca42)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -23,6 +23,7 @@
package org.lamsfoundation.lams.learning.service;
+import java.io.UnsupportedEncodingException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
@@ -288,7 +289,7 @@
Lesson lesson = getLesson(lessonID);
if ((lesson == null) || !lesson.isLessonStarted()) {
- LearnerService.log.error("joinLesson: Learner " + learner.getLogin() + " joining lesson " + lesson
+ log.error("joinLesson: Learner " + learner.getLogin() + " joining lesson " + lesson
+ " but lesson has not started");
throw new LearnerServiceException("Cannot join lesson as lesson has not started");
}
@@ -305,7 +306,7 @@
try {
progressEngine.setUpStartPoint(learnerProgress);
} catch (ProgressException e) {
- LearnerService.log.error("error occurred in 'setUpStartPoint':" + e.getMessage());
+ log.error("error occurred in 'setUpStartPoint':" + e.getMessage());
throw new LearnerServiceException(e.getMessage());
}
// Use TimeStamp rather than Date directly to keep consistent with Hibnerate persiste object.
@@ -332,7 +333,7 @@
try {
progressEngine.setUpStartPoint(learnerProgress);
} catch (ProgressException e) {
- LearnerService.log.error("error occurred in 'setUpStartPoint':" + e.getMessage());
+ log.error("error occurred in 'setUpStartPoint':" + e.getMessage());
throw new LearnerServiceException(e.getMessage());
}
}
@@ -373,10 +374,10 @@
lamsCoreToolService.createToolSession(learnerProgress.getUser(), (ToolActivity) activity, lesson);
}
} catch (RequiredGroupMissingException e) {
- LearnerService.log.warn("error occurred in 'createToolSessionFor':" + e.getMessage());
+ log.warn("error occurred in 'createToolSessionFor':" + e.getMessage());
throw e;
} catch (ToolException e) {
- LearnerService.log.error("error occurred in 'createToolSessionFor':" + e.getMessage());
+ log.error("error occurred in 'createToolSessionFor':" + e.getMessage());
throw new LearnerServiceException(e.getMessage());
}
}
@@ -592,31 +593,44 @@
}
- if (LearnerService.log.isDebugEnabled()) {
- LearnerService.log.debug("CompleteToolSession() for tool session id " + toolSessionId + " learnerId "
+ if (log.isDebugEnabled()) {
+ log.debug("CompleteToolSession() for tool session id " + toolSessionId + " learnerId "
+ learnerId + " url is " + returnURL);
}
return returnURL;
+ }
+ @Override
+ public String completeActivity(ActivityMapping actionMappings, LearnerProgress progress, Activity currentActivity,
+ Integer learnerId, boolean redirect) throws UnsupportedEncodingException {
+ Lesson lesson = progress.getLesson();
+
+ if (currentActivity == null) {
+ progress = joinLesson(learnerId, lesson.getLessonId());
+
+ } else if (progress.getCompletedActivities().containsKey(currentActivity)) {
+ // recalculate activity mark and pass it to gradebook
+ updateGradebookMark(currentActivity, progress);
+ return actionMappings.getCloseForward(currentActivity, lesson.getLessonId());
+
+ } else {
+ completeActivity(learnerId, currentActivity, progress.getLearnerProgressId());
+ }
+
+ if (currentActivity != null && (currentActivity.isFloating() || (currentActivity.getParentActivity() != null
+ && progress.getCompletedActivities().containsKey(currentActivity.getParentActivity())))) {
+ return actionMappings.getCloseForward(currentActivity, lesson.getLessonId());
+ }
+
+ boolean displayParallelFrames = false;
+ return actionMappings.getProgressForward(progress, redirect, displayParallelFrames);
}
- /**
- * Complete the activity in the progress engine and delegate to the progress engine to calculate the next activity
- * in the learning design. It is currently triggered by various progress engine related action classes, which then
- * calculate the url to go to next, based on the ActivityMapping class.
- *
- * @param learnerId
- * the learner who are running this activity in the design.
- * @param activity
- * the activity is being run.
- * @return the updated learner progress
- */
@Override
public void completeActivity(Integer learnerId, Activity activity, Long progressID) {
- if (LearnerService.log.isDebugEnabled()) {
- LearnerService.log
- .debug("Completing activity ID " + activity.getActivityId() + " for learner " + learnerId);
+ if (log.isDebugEnabled()) {
+ log.debug("Completing activity ID " + activity.getActivityId() + " for learner " + learnerId);
}
LearnerProgress progress = learnerProgressDAO.getLearnerProgress(progressID);
if (progress.getCompletedActivities().keySet().contains(activity)) {
@@ -637,7 +651,7 @@
try {
progressEngine.setUpStartPoint(progress);
} catch (ProgressException e) {
- LearnerService.log.error("error occurred in 'setUpStartPoint':" + e.getMessage(), e);
+ log.error("error occurred in 'setUpStartPoint':" + e.getMessage(), e);
throw new LearnerServiceException(e);
}
@@ -656,16 +670,39 @@
activity.getTitle(), activity.getActivityId() }));
}
- @Override
- public void updateGradebookMark(Activity activity, LearnerProgress progress) {
+ /**
+ * If specified activity is set to produce ToolOutput, calculates and stores mark to gradebook.
+ *
+ * @param toolActivity
+ * @param progress
+ */
+ private void updateGradebookMark(Activity activity, LearnerProgress progress) {
User learner = progress.getUser();
Lesson lesson = progress.getLesson();
- gradebookService.updateGradebookUserActivityMark(lesson, activity, learner);
+
+ if ((learner == null) || (lesson == null) || (activity == null) || !(activity instanceof ToolActivity)
+ || (((ToolActivity) activity).getEvaluation() == null)) {
+ return;
+ }
+ ToolSession toolSession = lamsCoreToolService.getToolSessionByLearner(learner, activity);
+ if (toolSession == null) {
+ return;
+ }
+
+ //in case this is a leader - update marks for all users in the group, otherwise update marks only for the specified user
+ List learnersRequiringMarkUpdate = new ArrayList<>();
+ if (lamsCoreToolService.isUserLeaderInActivity(toolSession, learner)) {
+ learnersRequiringMarkUpdate.addAll(toolSession.getLearners());
+
+ } else {
+ learnersRequiringMarkUpdate.add(learner);
+ }
+
+ for (User learnerRequiringMarksUpdate : learnersRequiringMarkUpdate) {
+ gradebookService.updateGradebookUserActivityMark(lesson, activity, learnerRequiringMarksUpdate);
+ }
}
- /**
- * @see org.lamsfoundation.lams.learning.service.ICoreLearnerService#getActivity(java.lang.Long)
- */
@Override
public Activity getActivity(Long activityId) {
return activityDAO.getActivityByActivityId(activityId);
@@ -707,7 +744,7 @@
} else {
String error = "Grouping activity " + groupingActivity + " learner " + learnerId
+ " does not exist. Cannot perform grouping.";
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
} catch (LessonServiceException e) {
@@ -807,7 +844,7 @@
}
String error = "Gate activity " + gateActivityId + " does not exist. Cannot knock on gate.";
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
@@ -896,7 +933,7 @@
public Lesson getLessonByActivity(Activity activity) {
Lesson lesson = lessonDAO.getLessonForActivity(activity.getActivityId());
if (lesson == null) {
- LearnerService.log.warn(
+ log.warn(
"Tried to get lesson id for a non-lesson based activity. An error is likely to be thrown soon. Activity was "
+ activity);
}
@@ -934,7 +971,7 @@
User learner = (User) userManagementService.findById(User.class, learnerId);
if (learner == null) {
String error = "determineBranch: learner " + learnerId + " does not exist. Cannot determine branch.";
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
@@ -950,7 +987,7 @@
}
} catch (LessonServiceException e) {
String message = "determineBranch failed due to " + e.getMessage();
- LearnerService.log.error(message, e);
+ log.error(message, e);
throw new LearnerServiceException("determineBranch failed due to " + e.getMessage(), e);
}
}
@@ -1002,7 +1039,7 @@
if (toolOutput == null) {
toolOutput = lamsCoreToolService.getOutputFromTool(conditionName, toolSession, learner.getUserId());
if (toolOutput == null) {
- LearnerService.log.warn("Condition " + condition + " refers to a tool output " + conditionName
+ log.warn("Condition " + condition + " refers to a tool output " + conditionName
+ " but tool doesn't return any tool output for that name. Skipping this condition.");
} else {
toolOutputMap.put(conditionName, toolOutput);
@@ -1017,17 +1054,17 @@
// If no conditions match, use the branch that is the "default" branch for this branching activity.
if (matchedBranch != null) {
- if (LearnerService.log.isDebugEnabled()) {
- LearnerService.log.debug("Found branch " + matchedBranch.getActivityId() + ":"
+ if (log.isDebugEnabled()) {
+ log.debug("Found branch " + matchedBranch.getActivityId() + ":"
+ matchedBranch.getTitle() + " for branching activity " + branchingActivity.getActivityId()
+ ":" + branchingActivity.getTitle() + " for learner " + learner.getUserId() + ":"
+ learner.getLogin());
}
return matchedBranch;
} else if (defaultBranch != null) {
- if (LearnerService.log.isDebugEnabled()) {
- LearnerService.log.debug("Using default branch " + defaultBranch.getActivityId() + ":"
+ if (log.isDebugEnabled()) {
+ log.debug("Using default branch " + defaultBranch.getActivityId() + ":"
+ defaultBranch.getTitle() + " for branching activity " + branchingActivity.getActivityId()
+ ":" + branchingActivity.getTitle() + " for learner " + learner.getUserId() + ":"
+ learner.getLogin());
@@ -1036,8 +1073,8 @@
return (SequenceActivity) activityDAO.getActivityByActivityId(defaultBranch.getActivityId(),
SequenceActivity.class);
} else {
- if (LearnerService.log.isDebugEnabled()) {
- LearnerService.log.debug(
+ if (log.isDebugEnabled()) {
+ log.debug(
"No branches match and no default branch exists. Uable to allocate learner to a branch for the branching activity"
+ branchingActivity.getActivityId() + ":" + branchingActivity.getTitle()
+ " for learner " + learner.getUserId() + ":" + learner.getLogin());
@@ -1069,8 +1106,8 @@
}
if (sequenceActivity != null) {
- if (LearnerService.log.isDebugEnabled()) {
- LearnerService.log.debug("Found branch " + sequenceActivity.getActivityId() + ":"
+ if (log.isDebugEnabled()) {
+ log.debug("Found branch " + sequenceActivity.getActivityId() + ":"
+ sequenceActivity.getTitle() + " for branching activity "
+ branchingActivity.getActivityId() + ":" + branchingActivity.getTitle() + " for learner "
+ learner.getUserId() + ":" + learner.getLogin());
@@ -1116,7 +1153,7 @@
toolOutput = lamsCoreToolService.getOutputFromTool(conditionName, toolSession,
learner.getUserId());
if (toolOutput == null) {
- LearnerService.log.warn("Condition " + condition + " refers to a tool output "
+ log.warn("Condition " + condition + " refers to a tool output "
+ conditionName
+ " but tool doesn't return any tool output for that name. Skipping this condition.");
} else {
@@ -1154,7 +1191,7 @@
User learner = (User) userManagementService.findById(User.class, learnerId);
if (learner == null) {
String error = "selectBranch: learner " + learnerId + " does not exist. Cannot determine branch.";
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
@@ -1166,7 +1203,7 @@
|| !selectedBranch.getParentActivity().equals(branchingActivity)) {
String error = "selectBranch: activity " + selectedBranch
+ " is not a branch within the branching activity " + branchingActivity + ". Unable to branch.";
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
@@ -1192,7 +1229,7 @@
+ " for the branch " + selectedBranch + " for the lesson " + lesson.getLessonName()
+ " preview is " + lesson.isPreviewLesson()
+ ". This will only work if preview is true.";
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
}
@@ -1212,14 +1249,14 @@
String error = "selectBranch: learner " + learnerId + " cannot be added to the group " + group
+ " for the branch " + selectedBranch + " for the lesson " + lesson.getLessonName()
+ " preview is " + lesson.isPreviewLesson() + ". This will only work if preview is true.";
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
}
groupingDAO.update(grouping);
- if (LearnerService.log.isDebugEnabled()) {
- LearnerService.log.debug("Found branch " + selectedBranch.getActivityId() + ":"
+ if (log.isDebugEnabled()) {
+ log.debug("Found branch " + selectedBranch.getActivityId() + ":"
+ selectedBranch.getTitle() + " for branching activity " + branchingActivity.getActivityId()
+ ":" + branchingActivity.getTitle() + " for learner " + learner.getUserId() + ":"
+ learner.getLogin());
@@ -1229,7 +1266,7 @@
} else {
String error = "selectBranch: Unable to find branch for branch id " + branchId;
- LearnerService.log.error(error);
+ log.error(error);
throw new LearnerServiceException(error);
}
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/CompleteActivityController.java
===================================================================
diff -u -r9b4a3799f9589dbda9a792e10a4ebd649db1e3db -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/CompleteActivityController.java (.../CompleteActivityController.java) (revision 9b4a3799f9589dbda9a792e10a4ebd649db1e3db)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/CompleteActivityController.java (.../CompleteActivityController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -88,7 +88,7 @@
return null;
}
- // if user has already completed the lesson - we need to let integrations servers know to come and pick up
+ // if user has already completed the lesson - we need to let non-LTI integrations server know to come and pick up
// updated marks (as it won't happen at lessoncomplete.jsp page)
if (progress.isComplete()) {
String lessonFinishCallbackUrl = integrationService.getLessonFinishCallbackUrl(progress.getUser(),
@@ -101,14 +101,11 @@
}
}
- String forward = null;
// Set activity as complete
try {
- forward = LearningWebUtil.completeActivity(request, response, activityMapping, progress, activity, learnerId,
- learnerService, false);
+ return learnerService.completeActivity(activityMapping, progress, activity, learnerId, false);
} catch (LearnerServiceException e) {
return "error";
}
- return forward;
}
}
\ No newline at end of file
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/DisplayActivityController.java
===================================================================
diff -u -r9b4a3799f9589dbda9a792e10a4ebd649db1e3db -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/DisplayActivityController.java (.../DisplayActivityController.java) (revision 9b4a3799f9589dbda9a792e10a4ebd649db1e3db)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/DisplayActivityController.java (.../DisplayActivityController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -80,8 +80,7 @@
boolean displayParallelFrames = WebUtil.readBooleanParam(request,
DisplayActivityController.PARAM_INITIAL_DISPLAY, true);
- String forward = activityMapping.getProgressForward(learnerProgress, false, displayParallelFrames, request,
- learnerService);
+ String forward = activityMapping.getProgressForward(learnerProgress, false, displayParallelFrames);
if (log.isDebugEnabled()) {
log.debug(forward);
}
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GateController.java
===================================================================
diff -u -r9b4a3799f9589dbda9a792e10a4ebd649db1e3db -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GateController.java (.../GateController.java) (revision 9b4a3799f9589dbda9a792e10a4ebd649db1e3db)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GateController.java (.../GateController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -140,9 +140,7 @@
}
// gate is open, so let the learner go to the next activity ( updating the cached learner progress on the way )
- return LearningWebUtil.completeActivity(request, response, activityMapping, learnerProgress, activity,
- learner.getUserId(), learnerService, true);
-
+ return learnerService.completeActivity(activityMapping, learnerProgress, activity, learner.getUserId(), true);
}
// ---------------------------------------------------------------------
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GroupingController.java
===================================================================
diff -u -re325f88e2e856294ed9cde0f90303f84e2ceea8d -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GroupingController.java (.../GroupingController.java) (revision e325f88e2e856294ed9cde0f90303f84e2ceea8d)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GroupingController.java (.../GroupingController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -189,8 +189,7 @@
Integer learnerId = LearningWebUtil.getUserId();
// so manually resume the progress. The completeActivity code can cope with a missing activity.
- return LearningWebUtil.completeActivity(request, response, activityMapping, progress, groupingActivity,
- learnerId, learnerService, true);
+ return learnerService.completeActivity(activityMapping, progress, groupingActivity, learnerId, true);
}
/**
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LessonCompleteActivityController.java
===================================================================
diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LessonCompleteActivityController.java (.../LessonCompleteActivityController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LessonCompleteActivityController.java (.../LessonCompleteActivityController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -75,7 +75,7 @@
request.setAttribute(RELEASED_LESSONS_REQUEST_ATTRIBUTE, releasedLessonNames.toString());
}
- //checks for lessonFinishUrl parameter
+ //let non-LTI integrations server know to come and pick up updated marks (it will happen at lessoncomplete.jsp page)
String lessonFinishCallbackUrl = integrationService.getLessonFinishCallbackUrl(learnerProgress.getUser(),
lesson);
if (lessonFinishCallbackUrl != null) {
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/SequenceActivityController.java
===================================================================
diff -u -rf4e0bfe05f14ecc966f26ecb6eed46c9a8c59e1e -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/SequenceActivityController.java (.../SequenceActivityController.java) (revision f4e0bfe05f14ecc966f26ecb6eed46c9a8c59e1e)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/SequenceActivityController.java (.../SequenceActivityController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -73,7 +73,6 @@
return "error";
}
- String forward = null;
SequenceActivity sequenceActivity = (SequenceActivity) activity;
Activity firstIncompletedActivity = null;
@@ -93,8 +92,7 @@
} else {
// No activities exist in the sequence, so go to the next activity.
- return LearningWebUtil.completeActivity(request, response, activityMapping, learnerProgress, activity,
- learnerId, learnerService, true);
+ return learnerService.completeActivity(activityMapping, learnerProgress, activity, learnerId, true);
}
}
}
\ No newline at end of file
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java
===================================================================
diff -u -r9b4a3799f9589dbda9a792e10a4ebd649db1e3db -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 9b4a3799f9589dbda9a792e10a4ebd649db1e3db)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -99,8 +99,8 @@
* @return
* @throws UnsupportedEncodingException
*/
- public String getProgressForward(LearnerProgress progress, boolean redirect, boolean displayParallelFrames,
- HttpServletRequest request, ILearnerFullService learnerService) throws UnsupportedEncodingException {
+ public String getProgressForward(LearnerProgress progress, boolean redirect, boolean displayParallelFrames)
+ throws UnsupportedEncodingException {
String forward = null;
if (progress.isComplete()) {
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/LearningWebUtil.java
===================================================================
diff -u -r9b4a3799f9589dbda9a792e10a4ebd649db1e3db -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/LearningWebUtil.java (.../LearningWebUtil.java) (revision 9b4a3799f9589dbda9a792e10a4ebd649db1e3db)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/LearningWebUtil.java (.../LearningWebUtil.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -117,46 +117,6 @@
return activity;
}
- /**
- * "Complete" an activity from the web layer's perspective. Used for CompleteActivityAction and the Gate and
- * Grouping actions. Calls the learningService to actually complete the activity and progress.
- *
- * @param redirect
- * Should this call redirect to the next screen (true) or use a forward (false)
- * @param windowName
- * Name of the window that triggered this code. Normally LearnerActivity (the popup window) or lWindow
- * (normal learner window)
- * @throws UnsupportedEncodingException
- * @throws InterruptedException
- *
- */
- public static String completeActivity(HttpServletRequest request, HttpServletResponse response,
- ActivityMapping actionMappings, LearnerProgress progress, Activity currentActivity, Integer learnerId,
- ILearnerFullService learnerService, boolean redirect)
- throws LearnerServiceException, UnsupportedEncodingException {
-
- Lesson lesson = progress.getLesson();
-
- if (currentActivity == null) {
- progress = learnerService.joinLesson(learnerId, lesson.getLessonId());
- } else if (progress.getCompletedActivities().containsKey(currentActivity)) {
-
- // recalculate activity mark and pass it to gradebook
- learnerService.updateGradebookMark(currentActivity, progress);
-
- return actionMappings.getCloseForward(currentActivity, lesson.getLessonId());
- } else {
- learnerService.completeActivity(learnerId, currentActivity, progress.getLearnerProgressId());
- }
-
- if (currentActivity != null && (currentActivity.isFloating() || (currentActivity.getParentActivity() != null
- && progress.getCompletedActivities().containsKey(currentActivity.getParentActivity())))) {
- return actionMappings.getCloseForward(currentActivity, lesson.getLessonId());
- }
-
- return actionMappings.getProgressForward(progress, redirect, false, request, learnerService);
- }
-
public static ActivityURL getActivityURL(ActivityMapping activityMapping, LearnerProgress learnerProgress,
Activity activity, boolean defaultURL, boolean isFloating) {
ActivityURL activityURL = new ActivityURL();
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java
===================================================================
diff -u -r17de10bb40e34a174c19ccc0b8821bfe08025156 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 17de10bb40e34a174c19ccc0b8821bfe08025156)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -165,12 +165,11 @@
// Service method
// *******************************************************************************
@Override
- public boolean isUserGroupLeader(AssessmentUser user, Long toolSessionId) {
-
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
AssessmentSession session = getSessionBySessionId(toolSessionId);
- AssessmentUser groupLeader = session.getGroupLeader();
+ AssessmentUser groupLeader = session == null ? null : session.getGroupLeader();
- return (groupLeader != null) && user.getUserId().equals(groupLeader.getUserId());
+ return (groupLeader != null) && userId.equals(groupLeader.getUserId());
}
@Override
@@ -1159,7 +1158,7 @@
//if this is a leader finishes, complete all non-leaders as well, also copy leader results to them
AssessmentSession session = user.getSession();
Assessment assessment = session.getAssessment();
- if (assessment.isUseSelectLeaderToolOuput() && isUserGroupLeader(user, toolSessionId)) {
+ if (assessment.isUseSelectLeaderToolOuput() && isUserGroupLeader(userId, toolSessionId)) {
session.getAssessmentUsers().forEach(sessionUser -> {
//finish non-leader
sessionUser.setSessionFinished(true);
@@ -2861,7 +2860,7 @@
//if this is a leader finishes, complete all non-leaders as well, also copy leader results to them
AssessmentUser groupLeader = checkLeaderSelectToolForSessionLeader(assessmentUser, toolSessionId);
- if (isUserGroupLeader(assessmentUser, toolSessionId)) {
+ if (isUserGroupLeader(userId, toolSessionId)) {
session.getAssessmentUsers().forEach(sessionUser -> {
//finish non-leader
sessionUser.setSessionFinished(true);
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java
===================================================================
diff -u -r757ceb570a6d7b9ac11df60ef4de581848c79ba0 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 757ceb570a6d7b9ac11df60ef4de581848c79ba0)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -62,7 +62,7 @@
* @param toolSessionId
* @return
*/
- boolean isUserGroupLeader(AssessmentUser user, Long toolSessionId);
+ boolean isUserGroupLeader(Long userId, Long toolSessionId);
/**
* Set specified user as a leader. Also the previous leader (if any) is marked as non-leader.
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java
===================================================================
diff -u -r8518d9067746b5286f01a9ed5679a8b60cff0e95 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision 8518d9067746b5286f01a9ed5679a8b60cff0e95)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -187,7 +187,7 @@
}
sessionMap.put(AssessmentConstants.ATTR_GROUP_LEADER, groupLeader);
- boolean isUserLeader = service.isUserGroupLeader(user, toolSessionId);
+ boolean isUserLeader = service.isUserGroupLeader(user.getUserId(), toolSessionId);
sessionMap.put(AssessmentConstants.ATTR_IS_USER_LEADER, isUserLeader);
Set questionReferences = new TreeSet<>(new SequencableComparator());
Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbService.java
===================================================================
diff -u -r910f7a30fc4dc1b47e8b3e2df5927c64df977a45 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbService.java (.../BbbService.java) (revision 910f7a30fc4dc1b47e8b3e2df5927c64df977a45)
+++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbService.java (.../BbbService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -90,6 +90,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -221,6 +221,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/DacoServiceImpl.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/DacoServiceImpl.java (.../DacoServiceImpl.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/service/DacoServiceImpl.java (.../DacoServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -567,6 +567,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_dimdim/src/java/org/lamsfoundation/lams/tool/dimdim/service/DimdimService.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_dimdim/src/java/org/lamsfoundation/lams/tool/dimdim/service/DimdimService.java (.../DimdimService.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ lams_tool_dimdim/src/java/org/lamsfoundation/lams/tool/dimdim/service/DimdimService.java (.../DimdimService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -85,6 +85,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/model/DokumaranSession.java
===================================================================
diff -u -r1ee503e3d0e0228ea8a45025fddf15d9623c0377 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/model/DokumaranSession.java (.../DokumaranSession.java) (revision 1ee503e3d0e0228ea8a45025fddf15d9623c0377)
+++ lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/model/DokumaranSession.java (.../DokumaranSession.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -150,8 +150,6 @@
this.sessionName = sessionName;
}
- /**
- */
public DokumaranUser getGroupLeader() {
return this.groupLeader;
}
Index: lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/service/DokumaranService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/service/DokumaranService.java (.../DokumaranService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/service/DokumaranService.java (.../DokumaranService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -1041,7 +1041,15 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ DokumaranSession session = getDokumaranSessionBySessionId(toolSessionId);
+ DokumaranUser groupLeader = session == null ? null : session.getGroupLeader();
+ return (groupLeader != null) && userId.equals(groupLeader.getUserId());
+ }
+
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
// no actions required
Index: lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/service/EadventureServiceImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/service/EadventureServiceImpl.java (.../EadventureServiceImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ lams_tool_eadventure/src/java/org/eucm/lams/tool/eadventure/service/EadventureServiceImpl.java (.../EadventureServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -84,6 +84,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -1179,6 +1179,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/service/GmapService.java
===================================================================
diff -u -r910f7a30fc4dc1b47e8b3e2df5927c64df977a45 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/service/GmapService.java (.../GmapService.java) (revision 910f7a30fc4dc1b47e8b3e2df5927c64df977a45)
+++ lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/service/GmapService.java (.../GmapService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -87,6 +87,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java
===================================================================
diff -u -r1e26200cec472e799b29f548270b1a67027e9167 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 1e26200cec472e799b29f548270b1a67027e9167)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -1064,6 +1064,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/CommonCartridgeServiceImpl.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/CommonCartridgeServiceImpl.java (.../CommonCartridgeServiceImpl.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/CommonCartridgeServiceImpl.java (.../CommonCartridgeServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -859,6 +859,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_kaltura/src/java/org/lamsfoundation/lams/tool/kaltura/service/KalturaService.java
===================================================================
diff -u -rb1d90cebfaf11f221fd5f7c81008507b8f146842 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_kaltura/src/java/org/lamsfoundation/lams/tool/kaltura/service/KalturaService.java (.../KalturaService.java) (revision b1d90cebfaf11f221fd5f7c81008507b8f146842)
+++ lams_tool_kaltura/src/java/org/lamsfoundation/lams/tool/kaltura/service/KalturaService.java (.../KalturaService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -90,6 +90,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java
===================================================================
diff -u -r3b0e49dde2f5aed2b2cc53e70ae8fd8b30298315 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 3b0e49dde2f5aed2b2cc53e70ae8fd8b30298315)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -1563,6 +1563,14 @@
return confidenceLevelDtos;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ McSession session = getMcSessionById(toolSessionId);
+ McQueUsr mcUser = getMcUserBySession(userId, session.getUid());
+
+ return (session != null) && (mcUser != null) && session.isUserGroupLeader(mcUser);
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java
===================================================================
diff -u -r17de10bb40e34a174c19ccc0b8821bfe08025156 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision 17de10bb40e34a174c19ccc0b8821bfe08025156)
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -55,7 +55,7 @@
* @param toolSessionId
* @return
*/
- boolean isUserGroupLeader(QaQueUsr user, Long toolSessionId);
+ boolean isUserGroupLeader(Long userId, Long toolSessionId);
/**
* Set specified user as a leader. Also the previous leader (if any) is marked as non-leader.
Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaService.java
===================================================================
diff -u -r17de10bb40e34a174c19ccc0b8821bfe08025156 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaService.java (.../QaService.java) (revision 17de10bb40e34a174c19ccc0b8821bfe08025156)
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaService.java (.../QaService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -119,12 +119,11 @@
private Random generator = new Random();
@Override
- public boolean isUserGroupLeader(QaQueUsr user, Long toolSessionId) {
-
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
QaSession session = this.getSessionById(toolSessionId);
QaQueUsr groupLeader = session.getGroupLeader();
- boolean isUserLeader = (groupLeader != null) && user.getUid().equals(groupLeader.getUid());
+ boolean isUserLeader = (groupLeader != null) && userId.equals(groupLeader.getQueUsrId());
return isUserLeader;
}
@@ -931,7 +930,7 @@
//if this is a leader finishes, complete all non-leaders as well, also copy leader results to them
QaQueUsr groupLeader = checkLeaderSelectToolForSessionLeader(qaUser, toolSessionId);
- if (isUserGroupLeader(qaUser, toolSessionId)) {
+ if (isUserGroupLeader(userId, toolSessionId)) {
session.getQaQueUsers().forEach(sessionUser -> {
//finish users
sessionUser.setResponseFinalized(true);
@@ -1191,7 +1190,7 @@
//if this is a leader finishes, complete all non-leaders as well, also copy leader results to them
QaSession session = user.getQaSession();
QaQueUsr groupLeader = checkLeaderSelectToolForSessionLeader(user, toolSessionID);
- if (isUserGroupLeader(user, toolSessionID)) {
+ if (isUserGroupLeader(userID, toolSessionID)) {
session.getQaQueUsers().forEach(sessionUser -> {
//finish users
sessionUser.setResponseFinalized(true);
Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaLearningController.java
===================================================================
diff -u -r17de10bb40e34a174c19ccc0b8821bfe08025156 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaLearningController.java (.../QaLearningController.java) (revision 17de10bb40e34a174c19ccc0b8821bfe08025156)
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaLearningController.java (.../QaLearningController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -204,7 +204,7 @@
|| (mode != null) && mode.equals(ToolAccessMode.TEACHER.toString()));
sessionMap.put(ATTR_GROUP_LEADER, groupLeader);
- boolean isUserLeader = qaService.isUserGroupLeader(user, new Long(toolSessionID));
+ boolean isUserLeader = qaService.isUserGroupLeader(user.getQueUsrId(), new Long(toolSessionID));
boolean lockWhenFinished = qaContent.isLockWhenFinished();
sessionMap.put(ATTR_IS_USER_LEADER, isUserLeader);
sessionMap.put(AttributeNames.ATTR_MODE, mode);
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java
===================================================================
diff -u -rbbd1ae162c29e443f30ef696c36ba958be942272 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision bbd1ae162c29e443f30ef696c36ba958be942272)
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -1048,6 +1048,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/service/LeaderselectionService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/service/LeaderselectionService.java (.../LeaderselectionService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/service/LeaderselectionService.java (.../LeaderselectionService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -154,6 +154,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -175,6 +175,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardService.java (.../NoticeboardService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardService.java (.../NoticeboardService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -546,6 +546,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java (.../NotebookService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java (.../NotebookService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -171,6 +171,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/service/PixlrService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/service/PixlrService.java (.../PixlrService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/service/PixlrService.java (.../PixlrService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -165,6 +165,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java
===================================================================
diff -u -r757ceb570a6d7b9ac11df60ef4de581848c79ba0 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision 757ceb570a6d7b9ac11df60ef4de581848c79ba0)
+++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -883,6 +883,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java (.../ISubmitFilesService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java (.../ISubmitFilesService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -359,11 +359,11 @@
void createUser(SubmitUser submitUser);
/**
- * @param user
+ * @param userId
* @param toolSessionId
* @return
*/
- boolean isUserGroupLeader(SubmitUser user, Long toolSessionId);
+ boolean isUserGroupLeader(Long userId, Long toolSessionId);
void copyLearnerContent(SubmitUser fromUser, SubmitUser toUser);
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -538,6 +538,14 @@
}
@Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ SubmitFilesSession session = submitFilesSessionDAO.getSessionByID(toolSessionId);
+ SubmitUser groupLeader = session.getGroupLeader();
+
+ return (groupLeader != null) && userId.equals(groupLeader.getUserID().longValue());
+ }
+
+ @Override
public void forceCompleteUser(Long toolSessionId, User user) {
// no actions required
}
@@ -1386,13 +1394,4 @@
submitUserDAO.insertOrUpdate(user);
}
- @Override
- public boolean isUserGroupLeader(SubmitUser user, Long toolSessionId) {
-
- SubmitFilesSession session = submitFilesSessionDAO.getSessionByID(toolSessionId);
- SubmitUser groupLeader = session.getGroupLeader();
-
- return (groupLeader != null) && user.getUserID().equals(groupLeader.getUserID());
- }
-
}
\ No newline at end of file
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/LearnerController.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/LearnerController.java (.../LearnerController.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/LearnerController.java (.../LearnerController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -250,7 +250,7 @@
}
sessionMap.put(SbmtConstants.ATTR_GROUP_LEADER, groupLeader);
- boolean isUserLeader = submitFilesService.isUserGroupLeader(learner, toolSessionID);
+ boolean isUserLeader = submitFilesService.isUserGroupLeader(learner.getUserID().longValue(), toolSessionID);
sessionMap.put(SbmtConstants.ATTR_IS_USER_LEADER, isUserLeader);
boolean hasEditRight = !content.isUseSelectLeaderToolOuput()
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java
===================================================================
diff -u -r17de10bb40e34a174c19ccc0b8821bfe08025156 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 17de10bb40e34a174c19ccc0b8821bfe08025156)
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -301,7 +301,15 @@
public Set getPrecedingConfidenceLevelsActivities(Long toolContentId) {
return toolService.getPrecedingConfidenceLevelsActivities(toolContentId);
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ ScratchieSession session = getScratchieSessionBySessionId(toolSessionId);
+ ScratchieUser groupLeader = session.getGroupLeader();
+ return (groupLeader != null) && userId.equals(groupLeader.getUserId());
+ }
+
@Override
public ScratchieUser checkLeaderSelectToolForSessionLeader(ScratchieUser user, Long toolSessionId) {
if ((user == null) || (toolSessionId == null)) {
Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java (.../ScribeService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java (.../ScribeService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -163,6 +163,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java (.../SpreadsheetServiceImpl.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java (.../SpreadsheetServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -637,6 +637,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -864,6 +864,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -865,6 +865,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/service/VideoRecorderService.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/service/VideoRecorderService.java (.../VideoRecorderService.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ lams_tool_videorecorder/src/java/org/lamsfoundation/lams/tool/videoRecorder/service/VideoRecorderService.java (.../VideoRecorderService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -136,6 +136,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/IVoteService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/IVoteService.java (.../IVoteService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/IVoteService.java (.../IVoteService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -75,7 +75,7 @@
* @param toolSessionId
* @return
*/
- boolean isUserGroupLeader(VoteQueUsr user, Long toolSessionId);
+ boolean isUserGroupLeader(Long userId, Long toolSessionId);
/**
* Set specified user as a leader. Also the previous leader (if any) is marked as non-leader.
Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -133,11 +133,10 @@
}
@Override
- public boolean isUserGroupLeader(VoteQueUsr user, Long toolSessionId) {
-
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
VoteSession session = getSessionBySessionId(toolSessionId);
VoteQueUsr groupLeader = session.getGroupLeader();
- boolean isUserLeader = (groupLeader != null) && user.getUid().equals(groupLeader.getUid());
+ boolean isUserLeader = (groupLeader != null) && userId.equals(groupLeader.getQueUsrId());
return isUserLeader;
}
Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/LearningController.java
===================================================================
diff -u -r3ee06bc1b00b1673399c1871a73cfa1d8ec2c0db -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/LearningController.java (.../LearningController.java) (revision 3ee06bc1b00b1673399c1871a73cfa1d8ec2c0db)
+++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/LearningController.java (.../LearningController.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -780,7 +780,7 @@
voteLearningForm.setGroupLeaderName(groupLeader.getFullname());
voteLearningForm.setGroupLeaderUserId(
groupLeader.getQueUsrId() != null ? groupLeader.getQueUsrId().toString() : "");
- boolean isUserLeader = voteService.isUserGroupLeader(user, new Long(toolSessionID));
+ boolean isUserLeader = voteService.isUserGroupLeader(user.getQueUsrId(), new Long(toolSessionID));
voteLearningForm.setIsUserLeader(isUserLeader);
}
Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/WikiService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/WikiService.java (.../WikiService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/service/WikiService.java (.../WikiService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -226,6 +226,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieService.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieService.java (.../WookieService.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieService.java (.../WookieService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -137,6 +137,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {
Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r20aa6cbca9fc96d341080e6ad39f82593443f792
--- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomService.java (.../ZoomService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomService.java (.../ZoomService.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792)
@@ -164,6 +164,11 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
+
+ @Override
+ public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
+ return false;
+ }
@Override
public void forceCompleteUser(Long toolSessionId, User user) {