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" *