Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java
===================================================================
diff -u -rf685d0c3f89b3efd86c9fbdf22742425247f5e3a -rd5a281b774f24a41894aac08200627f18e2b25e2
--- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision f685d0c3f89b3efd86c9fbdf22742425247f5e3a)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -310,6 +310,9 @@
createLessonClass(lesson, orgMap.getOrganisation(), userMap.getUser());
// 3. start lesson
LessonManagerServlet.monitoringService.startLesson(lesson.getLessonId(), userMap.getUser().getUserId());
+
+ //store information which extServer has started the lesson
+ integrationService.createExtServerLessonMap(lesson.getLessonId(), serverMap);
return lesson.getLessonId();
} catch (Exception e) {
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerLessonMap.hbm.xml
===================================================================
diff -u
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerLessonMap.hbm.xml (revision 0)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerLessonMap.hbm.xml (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerOrgMap.hbm.xml
===================================================================
diff -u -r2f21856ec2ab85b47c93cfcc3fa2c8769be65077 -rd5a281b774f24a41894aac08200627f18e2b25e2
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerOrgMap.hbm.xml (.../ExtServerOrgMap.hbm.xml) (revision 2f21856ec2ab85b47c93cfcc3fa2c8769be65077)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerOrgMap.hbm.xml (.../ExtServerOrgMap.hbm.xml) (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -1,239 +1,188 @@
-
+
+
-
-
-
-
-
-
- @hibernate.class
+
-
-
-
- @hibernate.id
- generator-class="native"
- type="java.lang.Integer"
+
+
+
+
+
+
-
-
- true
-
-
-
-
- true
-
- @hibernate.property
+
-
-
- true
-
- @hibernate.property
+ unique="true"
+ />
+
+
-
-
- true
-
- @hibernate.property
+ />
+
+
-
-
-
- @hibernate.property
+ />
+
+
-
-
-
- @hibernate.property
+ />
+
+
-
-
-
- @hibernate.property
+ unique="true"
+ />
+
+
-
-
-
- @hibernate.property
+ />
+
+
-
-
-
- @hibernate.property
+ />
+
+
-
-
-
- @hibernate.property
+ />
+
+
+
+
-
+ />
-
-
-
-
-
- @hibernate.set
+
+
+
+
+
- @hibernate.collection-key
- column="ext_server_org_map_id"
+
+
- @hibernate.collection-one-to-many
- class="org.lamsfoundation.lams.integration.ExtCourseClassMap"
-
-
-
-
-
-
-
-
-
- @hibernate.set
+
+
+
+
+
- @hibernate.collection-key
- column="ext_server_org_map_id"
+
+
- @hibernate.collection-one-to-many
- class="org.lamsfoundation.lams.integration.ExtUserUseridMap"
-
-
-
-
-
-
-
-
-
- @hibernate.many-to-one
- @hibernate.column name="orgid"
-
-
-
+
-
+
+
+
+
+
+
Index: lams_common/db/sql/create_integration_tables.sql
===================================================================
diff -u -r2f21856ec2ab85b47c93cfcc3fa2c8769be65077 -rd5a281b774f24a41894aac08200627f18e2b25e2
--- lams_common/db/sql/create_integration_tables.sql (.../create_integration_tables.sql) (revision 2f21856ec2ab85b47c93cfcc3fa2c8769be65077)
+++ lams_common/db/sql/create_integration_tables.sql (.../create_integration_tables.sql) (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -12,6 +12,7 @@
`userinfo_url` text NOT NULL,
`server_url` varchar(255) DEFAULT NULL,
`timeout_url` text NOT NULL,
+ `lesson_finish_url` text DEFAULT NULL,
`disabled` bit(1) NOT NULL,
`orgid` bigint(20),
PRIMARY KEY (`sid`),
@@ -67,3 +68,17 @@
CONSTRAINT lams_ext_server_tool_map_fk1 FOREIGN KEY (ext_server_org_map_id) REFERENCES lams_ext_server_org_map (sid) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT lams_ext_server_tool_map_fk2 FOREIGN KEY (tool_id) REFERENCES lams_tool (tool_id) ON DELETE CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;
+
+--
+-- Table structure for table `lams_ext_server_lesson_map`
+--
+DROP TABLE IF EXISTS lams_ext_server_lesson_map;
+CREATE TABLE lams_ext_server_lesson_map (
+ uid BIGINT(20) NOT NULL auto_increment,
+ lesson_id BIGINT(20) NOT NULL,
+ ext_server_org_map_id int(11) NOT NULL,
+ PRIMARY KEY (uid),
+ UNIQUE KEY `lesson_id` (`lesson_id`),
+ CONSTRAINT lams_ext_server_lesson_map_fk1 FOREIGN KEY (ext_server_org_map_id) REFERENCES lams_ext_server_org_map (sid) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT lams_ext_server_lesson_map_fk2 FOREIGN KEY (lesson_id) REFERENCES lams_lesson (lesson_id) ON DELETE CASCADE ON UPDATE CASCADE
+) TYPE=InnoDB;
Index: lams_common/db/sql/insert_types_data.sql
===================================================================
diff -u -r8cbd631849cddfbfc7fb887e8a847894e5baaefa -rd5a281b774f24a41894aac08200627f18e2b25e2
--- lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision 8cbd631849cddfbfc7fb887e8a847894e5baaefa)
+++ lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -343,7 +343,7 @@
-- external server mapping to a lams organisation
INSERT INTO lams_ext_server_org_map VALUES
- (1,'moodle','moodle','moodle','moodle','mdl','http://localhost/moodle/mod/lamstwo/userinfo.php?ts=%timestamp%&un=%username%&hs=%hash%', '', 'http://dummy','\0',7);
+ (1,'moodle','moodle','moodle','moodle','mdl','http://localhost/moodle/mod/lamstwo/userinfo.php?ts=%timestamp%&un=%username%&hs=%hash%', '', 'http://dummy', '', '\0',7);
-- set default configs for SIF openid
Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
diff -u -r8cbd631849cddfbfc7fb887e8a847894e5baaefa -rd5a281b774f24a41894aac08200627f18e2b25e2
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 8cbd631849cddfbfc7fb887e8a847894e5baaefa)
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -79,6 +79,7 @@
classpath:org/lamsfoundation/lams/integration/ExtCourseClassMap.hbm.xml
classpath:org/lamsfoundation/lams/integration/ExtUserUseridMap.hbm.xml
classpath:org/lamsfoundation/lams/integration/ExtServerToolAdapterMap.hbm.xml
+ classpath:org/lamsfoundation/lams/integration/ExtServerLessonMap.hbm.xml
classpath:org/lamsfoundation/lams/planner/PedagogicalPlannerSequenceNode.hbm.xml
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql
===================================================================
diff -u -rb7c51aaeec744ac2ad7eb74c64194251d75540c0 -rd5a281b774f24a41894aac08200627f18e2b25e2
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql (.../patch02040006.sql) (revision b7c51aaeec744ac2ad7eb74c64194251d75540c0)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql (.../patch02040006.sql) (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -123,5 +123,19 @@
insert into lams_configuration (config_key, config_value, description_key, header_name, format, required)
values ('DisplayPrintButton','false', 'config.display.print.button', 'config.header.features', 'BOOLEAN', 1);
+-- LDEV-2628 Report instant completion
+ALTER TABLE lams_ext_server_org_map ADD COLUMN lesson_finish_url text DEFAULT NULL;
+
+CREATE TABLE lams_ext_server_lesson_map (
+ uid BIGINT(20) NOT NULL auto_increment,
+ lesson_id BIGINT(20) NOT NULL,
+ ext_server_org_map_id int(11) NOT NULL,
+ PRIMARY KEY (uid),
+ UNIQUE KEY `lesson_id` (`lesson_id`),
+ CONSTRAINT lams_ext_server_lesson_map_fk1 FOREIGN KEY (ext_server_org_map_id) REFERENCES lams_ext_server_org_map (sid) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT lams_ext_server_lesson_map_fk2 FOREIGN KEY (lesson_id) REFERENCES lams_lesson (lesson_id) ON DELETE CASCADE ON UPDATE CASCADE
+) TYPE=InnoDB;
+
+
COMMIT;
SET AUTOCOMMIT = 1;
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerLessonMap.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerLessonMap.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerLessonMap.java (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -0,0 +1,76 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.integration;
+
+/**
+ * Maps a lesson to multiple integrated server instances
+ *
+ * @hibernate.class table="lams_ext_server_lesson_map"
+ */
+public class ExtServerLessonMap {
+
+ private Long uid;
+ private Long lessonId;
+ private ExtServerOrgMap extServer;
+
+ public ExtServerLessonMap() {
+ }
+
+ /**
+ * @hibernate.id generator-class="native" type="java.lang.Long" column="uid"
+ *
+ */
+ public Long getUid() {
+ return uid;
+ }
+
+ public void setUid(Long uid) {
+ this.uid = uid;
+ }
+
+ /**
+ * @hibernate.property column="lesson_id" type="java.lang.Long" not-null="true"
+ *
+ */
+ public Long getLessonId() {
+ return lessonId;
+ }
+
+ public void setLessonId(Long lessonId) {
+ this.lessonId = lessonId;
+ }
+
+ /**
+ * @hibernate.many-to-one not-null="true"
+ * @hibernate.column name="ext_server_org_map_id"
+ *
+ */
+ public ExtServerOrgMap getExtServer() {
+ return extServer;
+ }
+
+ public void setExtServer(ExtServerOrgMap extServer) {
+ this.extServer = extServer;
+ }
+}
Index: lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerOrgMap.java
===================================================================
diff -u -r2f21856ec2ab85b47c93cfcc3fa2c8769be65077 -rd5a281b774f24a41894aac08200627f18e2b25e2
--- lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerOrgMap.java (.../ExtServerOrgMap.java) (revision 2f21856ec2ab85b47c93cfcc3fa2c8769be65077)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerOrgMap.java (.../ExtServerOrgMap.java) (revision d5a281b774f24a41894aac08200627f18e2b25e2)
@@ -39,6 +39,9 @@
/** persistent field */
private String timeoutUrl;
+
+ /** persistent field */
+ private String lessonFinishUrl;
/** persistent field */
private Boolean disabled;
@@ -200,7 +203,19 @@
public void setTimeoutUrl(String timeoutUrl) {
this.timeoutUrl = timeoutUrl;
}
+
+ /**
+ * @hibernate.property column="lesson_finish_url" length="65535" not-null="false"
+ *
+ */
+ public String getLessonFinishUrl() {
+ return this.lessonFinishUrl;
+ }
+ public void setLessonFinishUrl(String lessonFinishUrl) {
+ this.lessonFinishUrl = lessonFinishUrl;
+ }
+
/**
* @hibernate.property column="disabled" length="1" not-null="true"
*