Index: openacs-4/packages/lors/lors.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/lors.info,v diff -u -r1.15 -r1.16 --- openacs-4/packages/lors/lors.info 17 Oct 2008 10:58:15 -0000 1.15 +++ openacs-4/packages/lors/lors.info 9 Feb 2009 03:57:30 -0000 1.16 @@ -7,16 +7,15 @@ f t - + Ernie Ghiglione IMS Content Packaging and Medata Services. Implementation of IMS CP and MD for .LRN 2004-08-06 This is a service and library to manage IMS Content Packaging and Metadata. From version 0.4d onward it supports SCORM and Blackboard imports GPL http://www.gnu.org/copyleft/gpl.html 1 - - + Index: openacs-4/packages/lors/sql/postgresql/lors-imscp-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/sql/postgresql/lors-imscp-create.sql,v diff -u -r1.10 -r1.11 --- openacs-4/packages/lors/sql/postgresql/lors-imscp-create.sql 7 Jun 2006 13:45:20 -0000 1.10 +++ openacs-4/packages/lors/sql/postgresql/lors-imscp-create.sql 9 Feb 2009 03:57:30 -0000 1.11 @@ -340,10 +340,7 @@ references apm_packages (package_id), community_id integer constraint ims_cp_manifest_class__comm_id_fk - references dotlrn_communities_all(community_id), - class_key varchar(100) - constraint ims_cp_manifest_class__class_key_fk - references dotlrn_community_types(community_type), + references groups(group_id), isenabled boolean default 't' not null, istrackable boolean default 'f' not null -- primary key (man_id, lorsm_instance_id) @@ -367,10 +364,6 @@ This is the package_id for the class/community that the manifest got uploaded '; -comment on column ims_cp_manifest_class.class_key is ' -This is the class_key for the class/community -'; - comment on column ims_cp_manifest_class.isenabled is ' Whether the course is enabled for that community instance. default true @@ -379,4 +372,4 @@ comment on column ims_cp_manifest_class.istrackable is ' Whether the course is trackable for that community instance. default false -'; \ No newline at end of file +'; Index: openacs-4/packages/lors/sql/postgresql/lors-imscp-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/sql/postgresql/lors-imscp-package-create.sql,v diff -u -r1.5 -r1.6 --- openacs-4/packages/lors/sql/postgresql/lors-imscp-package-create.sql 7 Jun 2006 13:45:20 -0000 1.5 +++ openacs-4/packages/lors/sql/postgresql/lors-imscp-package-create.sql 9 Feb 2009 03:57:30 -0000 1.6 @@ -37,7 +37,6 @@ varchar, -- creation_ip integer, -- package_id integer, -- community_id - varchar, -- class_key integer, -- new revision_id for the item in the CR boolean, -- is shared integer -- course_presentation_format @@ -58,10 +57,9 @@ p_creation_ip alias for $12; p_package_id alias for $13; p_community_id alias for $14; - p_class_key alias for $15; - p_revision_id alias for $16; - p_isshared alias for $17; - p_course_presentation_format alias for $18; + p_revision_id alias for $15; + p_isshared alias for $16; + p_course_presentation_format alias for $17; begin -- we make an update here because the content::item::new already inserts a row in the ims_cp_manifests @@ -74,9 +72,9 @@ -- now we add it to the manifest_class relation table insert into ims_cp_manifest_class - (man_id, lorsm_instance_id, community_id, class_key, isenabled, istrackable) + (man_id, lorsm_instance_id, community_id, isenabled, istrackable) values - (p_revision_id, p_package_id, p_community_id, p_class_key, ''t'', ''f''); + (p_revision_id, p_package_id, p_community_id, ''t'', ''f''); return p_revision_id; end; Index: openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql 7 Jun 2006 13:45:20 -0000 1.2 +++ openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql 9 Feb 2009 03:57:30 -0000 1.3 @@ -73,7 +73,6 @@ man_id integer, lorsm_instance_id integer, community_id integer, - class_key varchar(100), isenabled boolean default 't' not null, istrackable boolean default 'f' not null ); @@ -177,7 +176,6 @@ man_id, lorsm_instance_id, community_id, - class_key, isenabled, istrackable ) select * from ims_cp_manifest_class; Index: openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.7d1-0.7d2.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.7d1-0.7d2.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.7d1-0.7d2.sql 9 Feb 2009 03:57:30 -0000 1.1 @@ -0,0 +1,64 @@ +alter table ims_cp_manifest_class drop column class_key; +alter table ims_cp_manifest_class drop constraint ims_cp_manifest_class__comm_id_fk; +alter table ims_cp_manifest_class add constraint ims_cp_manifest_class__comm_id_fk +foreign key (community_id) references groups(group_id); + + +create or replace function ims_manifest__new ( + varchar, -- course_name + varchar, -- identifier + varchar, -- version + varchar, -- orgs_default + boolean, -- hasmetadata + integer, -- parent_man_id + boolean, -- isscorm + integer, -- folder_id + integer, -- fs_package_id + timestamp with time zone, -- creation_date + integer, -- creation_user + varchar, -- creation_ip + integer, -- package_id + integer, -- community_id + integer, -- new revision_id for the item in the CR + boolean, -- is shared + integer -- course_presentation_format +) +returns integer as ' +declare + p_course_name alias for $1; + p_identifier alias for $2; + p_version alias for $3; + p_orgs_default alias for $4; + p_hasmetadata alias for $5; + p_parent_man_id alias for $6; + p_isscorm alias for $7; + p_folder_id alias for $8; + p_fs_package_id alias for $9; + p_creation_date alias for $10; + p_creation_user alias for $11; + p_creation_ip alias for $12; + p_package_id alias for $13; + p_community_id alias for $14; + p_revision_id alias for $15; + p_isshared alias for $16; + p_course_presentation_format alias for $17; +begin + + -- we make an update here because the content::item::new already inserts a row in the ims_cp_manifests + update ims_cp_manifests + set course_name=p_course_name, identifier=p_identifier, version=p_version, + orgs_default=p_orgs_default, hasmetadata=p_hasmetadata, parent_man_id=p_parent_man_id, + isscorm=p_isscorm, folder_id=p_folder_id, fs_package_id=p_fs_package_id, isshared = p_isshared, + course_presentation_format=p_course_presentation_format + where man_id = p_revision_id; + -- now we add it to the manifest_class relation table + + insert into ims_cp_manifest_class + (man_id, lorsm_instance_id, community_id, isenabled, istrackable) + values + (p_revision_id, p_package_id, p_community_id, ''t'', ''f''); + + return p_revision_id; +end; +' language 'plpgsql'; + Index: openacs-4/packages/lors/tcl/apm-callbacks-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/apm-callbacks-procs.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/lors/tcl/apm-callbacks-procs.xql 3 Dec 2008 12:36:42 -0000 1.1 +++ openacs-4/packages/lors/tcl/apm-callbacks-procs.xql 9 Feb 2009 03:57:30 -0000 1.2 @@ -44,7 +44,7 @@ insert into ims_cp_manifest_class - ( man_id, lorsm_instance_id, community_id, class_key, isenabled,istrackable) + ( man_id, lorsm_instance_id, community_id, isenabled,istrackable) select * from ims_cp_manifest_class_copy where man_id = :new_man_revision_id Index: openacs-4/packages/lors/tcl/lors-imscp-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-imscp-procs.tcl,v diff -u -r1.19 -r1.20 --- openacs-4/packages/lors/tcl/lors-imscp-procs.tcl 3 Dec 2008 12:36:42 -0000 1.19 +++ openacs-4/packages/lors/tcl/lors-imscp-procs.tcl 9 Feb 2009 03:57:30 -0000 1.20 @@ -237,8 +237,6 @@ set content_folder_id $folder_id } - set class_key [dotlrn_community::get_community_type_from_community_id $community_id] - ######################################################################################### # Since now we dont use acs-objects for the manifest, then a new cr_item and revision # needs to be done to store the manifest. The cr_item and cr_revision are created here Index: openacs-4/packages/lors/tcl/lors-imscp-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-imscp-procs.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/lors/tcl/lors-imscp-procs.xql 3 Dec 2008 12:36:42 -0000 1.3 +++ openacs-4/packages/lors/tcl/lors-imscp-procs.xql 9 Feb 2009 03:57:30 -0000 1.4 @@ -27,7 +27,7 @@ ( :course_name, :identifier, :version, :orgs_default, :hasmetadata, :parent_man_id, :isscorm, :content_folder_id, :fs_package_id, current_timestamp, :user_id, :creation_ip, :package_id, - :community_id, :class_key, :revision_id, :isshared, + :community_id, :revision_id, :isshared, :course_presentation_format ) Index: openacs-4/packages/lors/tcl/lors-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-procs.tcl,v diff -u -r1.12 -r1.13 --- openacs-4/packages/lors/tcl/lors-procs.tcl 3 Dec 2008 12:36:42 -0000 1.12 +++ openacs-4/packages/lors/tcl/lors-procs.tcl 9 Feb 2009 03:57:30 -0000 1.13 @@ -11,6 +11,15 @@ namespace eval lors:: {} +ad_proc lors::community_id { + -node_id +} { + if { ![info exists node_id] } { + set node_id [ad_conn node_id] + } + application_group::closest_ancestor_application_group_id -node_id $node_id +} + ad_proc -public lors::object_url { -object_id {-man_id ""} Index: openacs-4/packages/lors/tcl/lors-test-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-test-procs.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/lors/tcl/lors-test-procs.xql 8 Jan 2009 11:14:26 -0000 1.2 +++ openacs-4/packages/lors/tcl/lors-test-procs.xql 9 Feb 2009 03:57:30 -0000 1.3 @@ -28,7 +28,6 @@ null, :__package_id, null, --community_id - null, --class_key null) --presentation_format Index: openacs-4/packages/lors-central/lors-central.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/lors-central.info,v diff -u -r1.5 -r1.6 --- openacs-4/packages/lors-central/lors-central.info 22 Jan 2007 08:09:24 -0000 1.5 +++ openacs-4/packages/lors-central/lors-central.info 9 Feb 2009 03:57:30 -0000 1.6 @@ -8,17 +8,17 @@ t lors-central - + Miguel Marin Viaro Netwoks (www.viaro.net) Application to manage the services from the Learning Object Repository. 2005-03-14 This application manages the services from the Learning Object Repository: upload master courses, manage and create metadata, add resources and files to existent courses, creates new versions of LO's. - + - - + + Index: openacs-4/packages/lors-central/sql/postgresql/lors-central-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/sql/postgresql/lors-central-create.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/lors-central/sql/postgresql/lors-central-create.sql 20 May 2005 18:49:28 -0000 1.2 +++ openacs-4/packages/lors-central/sql/postgresql/lors-central-create.sql 9 Feb 2009 03:57:30 -0000 1.3 @@ -4,7 +4,7 @@ org_id int constraint ims_cp_items_map_org_id_fk references ims_cp_organizations (org_id), community_id int - constraint ims_cp_items_map_com_id_fk references dotlrn_communities_all(community_id), + constraint ims_cp_items_map_com_id_fk references groups(group_id), hide_p boolean default 'f', ims_item_id int constraint ims_cp_items_map_ims_item_id_fk references ims_cp_items (ims_item_id), @@ -14,4 +14,4 @@ -\i lors-central-imscp-package-create.sql \ No newline at end of file +\i lors-central-imscp-package-create.sql Index: openacs-4/packages/lors-central/sql/postgresql/upgrade/upgrade-0.2d1-0.2d2.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/sql/postgresql/upgrade/upgrade-0.2d1-0.2d2.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lors-central/sql/postgresql/upgrade/upgrade-0.2d1-0.2d2.sql 9 Feb 2009 03:57:30 -0000 1.1 @@ -0,0 +1,3 @@ +alter table ims_cp_items_map drop constraint ims_cp_items_map_com_id_fk; +alter table ims_cp_items_map add constraint ims_cp_items_map_com_id_fk +foreign key (community_id) references groups (group_id); Index: openacs-4/packages/lors-central/tcl/lors-central-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/tcl/lors-central-procs.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/lors-central/tcl/lors-central-procs.tcl 13 Apr 2007 23:26:25 -0000 1.3 +++ openacs-4/packages/lors-central/tcl/lors-central-procs.tcl 9 Feb 2009 03:57:30 -0000 1.4 @@ -355,13 +355,11 @@ ad_proc -private lors_central::add_relation { -item_id:required -community_id:required - -class_key:required } { Add a new row to the ims_cp_manifest_class to associate one community_id (class or community) with a man_id @item_id@ Item id that has man_id as revisions @community_id@ The community_id of the dotlrn class or community - @class_key@ The name of the dotlrn class or community } { set lorsm_instance_id [lors_central::get_package_instance_id -community_id $community_id] set man_id [content::item::get_live_revision -item_id $item_id] @@ -566,7 +564,6 @@ select icmc.community_id as com_id, icmc.lorsm_instance_id as lors_ins_id, - icmc.class_key as cl_key, icmc.isenabled as ie, icmc.istrackable as it from @@ -583,7 +580,6 @@ set man_id = :man_id, lorsm_instance_id = :lors_ins_id, - class_key = :cl_key, isenabled = :ie, istrackable = :it where Index: openacs-4/packages/lors-central/tcl/lors-central-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/tcl/lors-central-procs.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/lors-central/tcl/lors-central-procs.xql 31 May 2005 22:57:22 -0000 1.2 +++ openacs-4/packages/lors-central/tcl/lors-central-procs.xql 9 Feb 2009 03:57:30 -0000 1.3 @@ -509,8 +509,7 @@ ims_cp_manifest_class set lorsm_instance_id = :lorsm_instance_id, - community_id = :community_id, - class_key = :class_key + community_id = :community_id where man_id = :man_id @@ -519,9 +518,9 @@ insert into ims_cp_manifest_class - (man_id, lorsm_instance_id, community_id, class_key, isenabled, istrackable) + (man_id, lorsm_instance_id, community_id, isenabled, istrackable) values - (:man_id, :lorsm_instance_id, :community_id, :class_key, 't', 'f') + (:man_id, :lorsm_instance_id, :community_id, 't', 'f') @@ -660,7 +659,6 @@ select icmc.community_id as com_id, icmc.lorsm_instance_id as lors_ins_id, - icmc.class_key as cl_key, icmc.isenabled as ie, icmc.istrackable as it from @@ -678,7 +676,6 @@ set man_id = :man_id, lorsm_instance_id = :lors_ins_id, - class_key = :cl_key, isenabled = :ie, istrackable = :it where @@ -853,4 +850,4 @@ - \ No newline at end of file + Index: openacs-4/packages/lors-central/tcl/test/lors-central-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/tcl/test/lors-central-procs.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/lors-central/tcl/test/lors-central-procs.tcl 17 May 2005 16:21:18 -0000 1.1 +++ openacs-4/packages/lors-central/tcl/test/lors-central-procs.tcl 9 Feb 2009 03:57:30 -0000 1.2 @@ -53,13 +53,8 @@ where revision_id = :test_man_id }] - set test_class_key [db_string get_class_key { - select community_type - from dotlrn_communities_all - where community_id = :test_com_id - }] # Testing where there is no association - lors_central::add_relation -item_id $test_item_id -community_id $test_com_id -class_key $test_class_key + lors_central::add_relation -item_id $test_item_id -community_id $test_com_id set row_count [db_string get_row_count { select count(man_id) from ims_cp_manifest_class @@ -73,7 +68,7 @@ aa_true "Creates only one row" [string equal "1" "$success_p"] # Testing where there is already one association - lors_central::add_relation -item_id $test_item_id -community_id $test_com_id_2 -class_key $test_class_key + lors_central::add_relation -item_id $test_item_id -community_id $test_com_id_2 set row_count [db_string get_row_count { select count(man_id) from ims_cp_manifest_class Index: openacs-4/packages/lors-central/www/course-add-3.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-add-3.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/lors-central/www/course-add-3.xql 17 May 2005 16:21:19 -0000 1.1 +++ openacs-4/packages/lors-central/www/course-add-3.xql 9 Feb 2009 03:57:30 -0000 1.2 @@ -6,7 +6,6 @@ select icmc.community_id as com_id, icmc.lorsm_instance_id as lors_ins_id, - icmc.class_key as cl_key, icmc.isenabled as ie, icmc.istrackable as it from @@ -24,7 +23,6 @@ set man_id = :man_id, lorsm_instance_id = :lors_ins_id, - class_key = :cl_key, isenabled = :ie, istrackable = :it where @@ -37,9 +35,8 @@ delete from ims_cp_manifest_class where community_id is null and - class_key is null and man_id = :man_id - \ No newline at end of file + Index: openacs-4/packages/lors-central/www/course-associate.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-associate.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/lors-central/www/course-associate.tcl 22 Jan 2007 08:09:25 -0000 1.3 +++ openacs-4/packages/lors-central/www/course-associate.tcl 9 Feb 2009 03:57:30 -0000 1.4 @@ -5,7 +5,6 @@ @author Viaro Networks www.viaro.net } { item_id:notnull - type:notnull object_id:multiple { return_url "" } } @@ -30,7 +29,7 @@ } # Here we associate the course with every community_id that was checked - lors_central::add_relation -item_id $item_id -community_id $community_id -class_key $type + lors_central::add_relation -item_id $item_id -community_id $community_id # Now we have to make insert in the ims_cp_items_map in orther to tell which version # of which course will be shown to an especific dotlrn class. Index: openacs-4/packages/lors-central/www/course-dotlrn-assoc.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-dotlrn-assoc.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/lors-central/www/course-dotlrn-assoc.tcl 9 Jun 2005 21:03:16 -0000 1.3 +++ openacs-4/packages/lors-central/www/course-dotlrn-assoc.tcl 9 Feb 2009 03:57:30 -0000 1.4 @@ -38,9 +38,8 @@ ##################################### TO ASSOCIATE ########################################################## -db_multirow -extend { rel type } classes_list get_dotlrn_classes { } { +db_multirow -extend { rel } classes_list get_dotlrn_classes { } { set rel [lors_central::relation_between -item_id $item_id -community_id $com_id] - set type dotlrn_class_instance } template::list::create \ @@ -54,7 +53,6 @@ -bulk_action_method post \ -bulk_action_export_vars { item_id - type }\ -row_pretty_plural "[_ lors-central.dotlrn_classes]" \ -elements { @@ -169,9 +167,8 @@ ##################################### COMMUNITIES ########################################################### ##################################### TO ASSOCIATE ########################################################## -db_multirow -extend { rel type } coms_list get_dotlrn_coms { } { +db_multirow -extend { rel } coms_list get_dotlrn_coms { } { set rel [lors_central::relation_between -item_id $item_id -community_id $com_id] - set type dotlrn_club } template::list::create \ @@ -185,7 +182,6 @@ -bulk_action_method post \ -bulk_action_export_vars { item_id - type }\ -row_pretty_plural "[_ lors-central.dotlrn_communities]" \ -elements { @@ -217,7 +213,7 @@ ############################## TO DROP ASSOCIATION ###################################### -db_multirow -extend { rel type } coms_list_drop get_dotlrn_coms_drop { } { +db_multirow -extend { rel } coms_list_drop get_dotlrn_coms_drop { } { set rel [lors_central::relation_between -item_id $item_id -community_id $com_id] } @@ -232,7 +228,6 @@ -bulk_action_method post \ -bulk_action_export_vars { item_id - type }\ -row_pretty_plural "[_ lors-central.dotlrn_classes]" \ -elements { Index: openacs-4/packages/lorsm/lorsm.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/lorsm.info,v diff -u -r1.20 -r1.21 --- openacs-4/packages/lorsm/lorsm.info 8 Feb 2009 22:36:49 -0000 1.20 +++ openacs-4/packages/lorsm/lorsm.info 9 Feb 2009 03:57:30 -0000 1.21 @@ -7,13 +7,13 @@ f f - + Ernie Ghiglione Application to manage the services from the Learning Object Repository. 2008-10-17 This application manages the services from the Learning Object Repository: upload courses, manage and create metadata, delete resources and courses. - + Index: openacs-4/packages/lorsm/sql/postgresql/lorsm-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/sql/postgresql/lorsm-create.sql,v diff -u -r1.6 -r1.7 --- openacs-4/packages/lorsm/sql/postgresql/lorsm-create.sql 6 Apr 2007 19:30:20 -0000 1.6 +++ openacs-4/packages/lorsm/sql/postgresql/lorsm-create.sql 9 Feb 2009 03:57:30 -0000 1.7 @@ -30,13 +30,13 @@ track_id int constraint lorsm_st_track_id_pk primary key, - user_id int + user_id integer constraint lorsm_st_track_user_id_fk references users (user_id), - community_id int + community_id integer constraint lorsm_st_track_comm_id_fk - references dotlrn_communities_all (community_id), - course_id int + references groups (group_id), + course_id integer constraint lorsm_st_track_course_id_fk references ims_cp_manifests (man_id), start_time timestamptz not null default current_timestamp, @@ -61,13 +61,13 @@ '; create table lorsm_student_bookmark ( - user_id int + user_id integer constraint lorsm_st_track_user_id_fk references users (user_id), - community_id int + community_id integer constraint lorsm_st_track_comm_id_fk - references dotlrn_communities_all (community_id), - course_id int + references groups (group_id), + course_id integer constraint lorsm_st_track_course_id_fk references ims_cp_manifests (man_id), date timestamptz,