Index: openacs-4/packages/lors/lors.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors/lors.info,v
diff -u -r1.7 -r1.7.2.1
--- openacs-4/packages/lors/lors.info	17 May 2005 16:35:10 -0000	1.7
+++ openacs-4/packages/lors/lors.info	13 Jun 2005 15:10:40 -0000	1.7.2.1
@@ -7,16 +7,16 @@
     <initial-install-p>f</initial-install-p>
     <singleton-p>t</singleton-p>
 
-    <version name="0.5d" url="http://openacs.org/repository/download/apm/LORS-05d.apm">
+    <version name="0.6d4" url="http://openacs.org/repository/download/apm/LORS-06d4.apm">
         <owner url="mailto:ernieg@mm.st">Ernie Ghiglione</owner>
-        <summary>IMS Content Packaging and Medata Services. 
-Implementation of IMS CP and MD for .LRN </summary>
+        <summary>IMS Content Packaging and Medata Services. Implementation of IMS CP and MD for .LRN </summary>
         <release-date>2004-08-06</release-date>
         <description format="text/html">This is a service and library to manage IMS Content Packaging and Metadata. From version 0.4d onward it supports SCORM and Blackboard imports</description>
         <license>GPL</license>
         <license_url>http://www.gnu.org/copyleft/gpl.html</license_url>
         <maturity>1</maturity>
-        <provides url="lors" version="0.5d"/>
+        <provides url="lors" version="0.6d4"/>
+        <requires url="dotlrn" version="2.1.0b1"/>
         <requires url="file-storage" version="5.1.0d"/>
 
         <callbacks>
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.7 -r1.7.2.1
--- openacs-4/packages/lors/sql/postgresql/lors-imscp-create.sql	17 May 2005 16:35:10 -0000	1.7
+++ openacs-4/packages/lors/sql/postgresql/lors-imscp-create.sql	13 Jun 2005 15:10:41 -0000	1.7.2.1
@@ -96,7 +96,20 @@
 );
 
 
+create or replace function ims_manifest__get_title (integer)
+returns varchar as '
+declare
+  get_title__man_id             alias for $1;  
+  get_title__course_name        varchar(200);  
+begin
+  return course_name
+  from ims_cp_manifests
+  where man_id = get_title__man_id;
 
+end;' language 'plpgsql';
+
+
+
 -- Organizations
 create table ims_cp_organizations (
     org_id          integer
@@ -133,7 +146,17 @@
        'ims_organization__get_title' -- name_method
 );
 
+create or replace function ims_organization__get_title (integer)
+returns varchar as '
+declare
+  get_title__org_id             alias for $1;  
+  get_title__identifier        varchar(200);  
+begin
+  return identifier
+  from ims_cp_organizations
+  where org_id = get_title__org_id;
 
+end;' language 'plpgsql';
 
 
 -- Items
@@ -164,7 +187,8 @@
     timelimitaction varchar(1000),
     datafromlms     varchar(200),
     masteryscore    varchar(255),
-    isshared	    boolean default 'f' not null
+    isshared	    boolean default 'f' not null,
+    sort_order      integer
 );
 
 -- create index for ims_cp_items
@@ -183,8 +207,19 @@
        'ims_item__get_title' -- name_method
 );
 
+create or replace function ims_item__get_title (integer)
+returns varchar as '
+declare
+  get_title__ims_item_id       	alias for $1;  
+  get_title__item_title        varchar(200);  
+begin
+  return item_title
+  from ims_cp_items
+  where ims_item_id = get_title__ims_item_id;
 
+end;' language 'plpgsql';
 
+
 -- Resources
     
 create table ims_cp_resources (
@@ -222,7 +257,19 @@
        'ims_resource__get_title' -- name_method
 );
 
+create or replace function ims_resource__get_title (integer)
+returns varchar as '
+declare
+  get_title__res_id             alias for $1;  
+  get_title__identifier        varchar(200);  
+begin
+  return identifier
+  from ims_cp_resources
+  where res_id = get_title__res_id;
 
+end;' language 'plpgsql';
+
+
 -- An item can have reference to one of more resources
 -- therefore we need a table that takes care of this multiple
 -- relationship
@@ -266,7 +313,7 @@
 create table ims_cp_files (
     file_id         integer
                     constraint ims_cp_files_file_if_fk
-                    references cr_items(item_id)
+                    references cr_revisions(revision_id)
                     on delete cascade,
     res_id          integer
                     constraint ims_cp_file_res_id_fk
@@ -298,8 +345,8 @@
 			constraint ims_cp_manifest_class__class_key_fk
   			references dotlrn_community_types(community_type),
     isenabled           boolean default 't' not null,
-    istrackable         boolean default 'f' not null,
-                        primary key (man_id, lorsm_instance_id)
+    istrackable         boolean default 'f' not null
+                        -- primary key (man_id, lorsm_instance_id)
 );
 
 comment on table ims_cp_manifest_class is '
Index: openacs-4/packages/lors/sql/postgresql/lors-imscp-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors/sql/postgresql/lors-imscp-drop.sql,v
diff -u -r1.5 -r1.5.2.1
--- openacs-4/packages/lors/sql/postgresql/lors-imscp-drop.sql	17 May 2005 16:35:10 -0000	1.5
+++ openacs-4/packages/lors/sql/postgresql/lors-imscp-drop.sql	13 Jun 2005 15:10:41 -0000	1.5.2.1
@@ -19,5 +19,5 @@
 drop table ims_cp_items;
 drop table ims_cp_organizations;
 drop table ims_cp_manifests;
+drop table lors_available_presentation_formats;
 
-
Index: openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d-0.6d3.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d-0.6d3.sql,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d-0.6d3.sql	25 Apr 2005 08:12:42 -0000	1.1
+++ openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d-0.6d3.sql	13 Jun 2005 15:10:41 -0000	1.1.2.1
@@ -28,7 +28,8 @@
 comment on table lorsm_course_presentation_formats is '
 This table stores the available presentation formats for the courses. Its contains the pretty name
 for the format, an id, and the folder in packages/lorsm/www/ where the presentation format is stored.
-Currently just two presentation formats exists, delivery and delivery-wihout-index, which we store on creation';
+Currently just tree presentation formats exists, delivery, delivery-wihout-index and delivery-bottom-bar, 
+which we store on creation';
 
 --Change presentation_id to format_id.
 alter table ims_cp_manifests rename column presentation_id to course_presentation_format;
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `openacs-4/packages/lors/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `openacs-4/packages/lors/tcl/lors-callback-procs.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/lors/tcl/lors-imscp-blackboard5-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-imscp-blackboard5-procs.tcl,v
diff -u -r1.4 -r1.4.2.1
--- openacs-4/packages/lors/tcl/lors-imscp-blackboard5-procs.tcl	17 May 2005 16:35:11 -0000	1.4
+++ openacs-4/packages/lors/tcl/lors-imscp-blackboard5-procs.tcl	13 Jun 2005 15:10:41 -0000	1.4.2.1
@@ -165,7 +165,7 @@
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
 
-    set docx [dom parse [read [open $file]]]
+    set docx [dom parse [::tDOM::xmlReadFile $file]]
     set usersnode [$docx documentElement]
 
     set userlist [list]
Index: openacs-4/packages/lors/tcl/lors-imscp-blackboard6-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-imscp-blackboard6-procs.tcl,v
diff -u -r1.4 -r1.4.2.1
--- openacs-4/packages/lors/tcl/lors-imscp-blackboard6-procs.tcl	17 May 2005 16:35:11 -0000	1.4
+++ openacs-4/packages/lors/tcl/lors-imscp-blackboard6-procs.tcl	13 Jun 2005 15:10:41 -0000	1.4.2.1
@@ -207,12 +207,8 @@
     @option file filename
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
-    
-    # set utf-8 system encoding
-    encoding system utf-8
-
     # open xml file
-    set doc [dom parse [read [open $file]]]
+    set doc [dom parse [::tDOM::xmlReadFile $file]]
     # coursetoc
     set coursetoc [$doc documentElement]
 
@@ -247,12 +243,8 @@
     @option file filename
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
-
-    # set utf-8 system encoding
-    encoding system utf-8
-
     # open xml file
-    set doc [dom parse [read [open $file]]]
+    set doc [dom parse [::tDOM::xmlReadFile $file]]
     # content
     set content [$doc documentElement]
 
@@ -328,10 +320,6 @@
     @option filename directory and filename where we are putting the file
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
-
-    # set utf-8 system encoding
-    encoding system utf-8
-
     # get directory info
     set dirname [file dirname $filename]
 
@@ -389,12 +377,8 @@
     @option file filename
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
-
-    # set utf-8 system encoding
-    encoding system utf-8
-
     # open xml file
-    set doc [dom parse [read [open $file]]]
+    set doc [dom parse [::tDOM::xmlReadFile $file]]
     # content
     set announcement [$doc documentElement]
 
@@ -552,12 +536,8 @@
     @option file filename
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
-
-    # set utf-8 system encoding
-    encoding system utf-8
-
     # open xml file
-    set doc [dom parse [read [open $file]]]
+    set doc [dom parse [::tDOM::xmlReadFile $file]]
     # content
     set forum [$doc documentElement]
 
@@ -594,11 +574,8 @@
     @option file filename
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
-    # set utf-8 system encoding
-    encoding system utf-8
-
     # open manifest file with tDOM
-    set doc [dom parse [read [open $tmp_dir/$file]]]
+    set doc [dom parse [::tDOM::xmlReadFile $tmp_dir/$file]]
     # gets the manifest tree
     set manifest [$doc documentElement]
     # we add the xml namespace for dotLRN
@@ -613,7 +590,7 @@
     if {[empty_string_p $metadata]} {
 	
 	set filex res00001.dat
-	set docx [dom parse [read [open $tmp_dir/$filex]]]
+	set docx [dom parse [::tDOM::xmlReadFile $tmp_dir/$filex]]
 	# gets BB's course info
 	set course [$docx documentElement]
 	
@@ -669,18 +646,8 @@
     @option file filename
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
-
-    # set utf-8 system encoding
-    encoding system utf-8
-
-    # search for manifest file
-    set file $file
-
-    # set utf-8 system encoding
-    encoding system utf-8
-
     # open xml file
-    set doc [dom parse [read [open $tmp_dir/$file]]]
+    set doc [dom parse [::tDOM::xmlReadFile $tmp_dir/$file]]
 
     # gets the manifest tree
     set manifest [$doc documentElement]
@@ -898,12 +865,8 @@
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
     ## Opens imsmanifest.xml
-
-    # set utf-8 system encoding
-    encoding system utf-8
-    
     # open manifest file with tDOM
-    set doc [dom parse [read [open $tmp_dir/$file]]]
+    set doc [dom parse [::tDOM::xmlReadFile $tmp_dir/$file]]
     # gets the manifest tree
     set manifest [$doc documentElement]
 
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.7 -r1.7.2.1
--- openacs-4/packages/lors/tcl/lors-imscp-procs.tcl	17 May 2005 16:35:11 -0000	1.7
+++ openacs-4/packages/lors/tcl/lors-imscp-procs.tcl	13 Jun 2005 15:10:41 -0000	1.7.2.1
@@ -213,6 +213,7 @@
     @option community_id Community ID
     @option user_id user that adds the category. [ad_conn user_id] used by default.
     @option creation_ip ip-address of the user that adds the category. [ad_conn peeraddr] used by default.
+    @option course_presentation_format course presentation format ID
     @author Ernie Ghiglione (ErnieG@mm.st)
 } {
 
Index: openacs-4/packages/lors/tcl/lors-imsmd-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors/tcl/lors-imsmd-procs.tcl,v
diff -u -r1.6 -r1.6.2.1
--- openacs-4/packages/lors/tcl/lors-imsmd-procs.tcl	17 May 2005 16:35:11 -0000	1.6
+++ openacs-4/packages/lors/tcl/lors-imsmd-procs.tcl	13 Jun 2005 15:10:41 -0000	1.6.2.1
@@ -140,7 +140,8 @@
                 set prefix [[$tree child all imsmd:record] prefix]
                 set lom [$tree child all $var_lom]
             } elseif { ![empty_string_p [$tree child all adlcp:location]] } {
-                set lom [[dom parse [read [open $dir/[[$tree child all adlcp:location] text]]]] documentElement]
+		set doc [dom parse [::tDOM::xmlReadFile $dir/[[$tree child all adlcp:location] text]]]
+		set lom [$doc documentElement]
                 set prefix [$lom prefix]
             } else {
                 set lom 0
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.1 -r1.1.2.1
--- openacs-4/packages/lors-central/lors-central.info	17 May 2005 16:07:47 -0000	1.1
+++ openacs-4/packages/lors-central/lors-central.info	13 Jun 2005 15:10:41 -0000	1.1.2.1
@@ -8,16 +8,16 @@
     <singleton-p>t</singleton-p>
     <auto-mount>lors-central</auto-mount>
 
-    <version name="0.1a3" url="http://openacs.org/repository/download/apm/lors-central-0.1a3.apm">
+    <version name="0.1a4" url="http://openacs.org/repository/download/apm/lors-central-0.1a4.apm">
         <owner url="mailto:miguelmarin@viaro.net">Miguel Marin</owner>
         <owner url="mailto:info@viaro.net">Viaro Netwoks (www.viaro.net) </owner>
         <summary>Application to manage the services from the Learning Object Repository. </summary>
         <release-date>2005-03-14</release-date>
         <description format="text/html">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. </description>
 
-        <provides url="lors-central" version="0.1a3"/>
+        <provides url="lors-central" version="0.1a4"/>
         <requires url="clipboard" version="0.1d"/>
-        <requires url="lors" version="0.4d"/>
+        <requires url="lors" version="0.6d4"/>
         <requires url="lorsm" version="0.6d2"/>
         <requires url="views" version="0.1d"/>
 
@@ -26,7 +26,8 @@
             <callback type="after-upgrade"  proc="lors_central::apm_callback::after_upgrade"/>
         </callbacks>
         <parameters>
-        <!-- No version parameters -->
+            <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ManageLorsCentralP"  default="0" description="Restricts the users who can acces and modify courses in lors-central package. 1 - Only the swa, 0 - everybody. Defaults to 0"/>
+            <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="UploadUsingLorsCentralP"  default="0" description="Set to 1 if you want to upload courses using lors-central package instead of lorsm. You will need to have installed  lors-central for this parameter to work."/>
         </parameters>
 
     </version>
Index: openacs-4/packages/lors-central/catalog/lors-central.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/catalog/lors-central.en_US.ISO-8859-1.xml,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/catalog/lors-central.en_US.ISO-8859-1.xml	17 May 2005 16:21:16 -0000	1.1
+++ openacs-4/packages/lors-central/catalog/lors-central.en_US.ISO-8859-1.xml	13 Jun 2005 15:10:41 -0000	1.1.2.1
@@ -1,32 +1,39 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<message_catalog package_key="lors-central" package_version="0.1a2" locale="en_US" charset="ISO-8859-1">
+<message_catalog package_key="lors-central" package_version="0.1a4" locale="en_US" charset="ISO-8859-1">
 
   <msg key="action_not">Action Not Allowed</msg>
   <msg key="add">Add Child</msg>
   <msg key="add_an_existent">Add an existent Learning Object</msg>
   <msg key="add_file">Add File</msg>
   <msg key="add_from_clip">Add From Clipboard:</msg>
+  <msg key="add_mat">Add Material</msg>
   <msg key="add_object">Add Object</msg>
   <msg key="add_this">Add This Item</msg>
   <msg key="Add_this_learn">Add this learning object to your clipboard</msg>
   <msg key="Add_to_clip">Add to Clipboard</msg>
   <msg key="add_to_course">Add to this course</msg>
   <msg key="add_to_resource">Add to this resource</msg>
+  <msg key="admin">Admin</msg>
   <msg key="All_views">All Views</msg>
   <msg key="All_views_of">All Views of this object</msg>
+  <msg key="and_in_the">and in the following Communities:</msg>
   <msg key="and_is_in">And is in use in the following courses</msg>
   <msg key="assoc">Associations:</msg>
   <msg key="associate">Associate</msg>
   <msg key="associate_drop">Associate/Drop</msg>
-  <msg key="associate_to">Associate to dotLRN Class</msg>
+  <msg key="associate_to">Associate to dotLRN Class or Community</msg>
   <msg key="associate_to_class">Associate to this class</msg>
   <msg key="associated">Already Associated</msg>
   <msg key="author">Author:</msg>
+  <msg key="back">Back</msg>
   <msg key="choose_the_file">Choose the file to upload</msg>
+  <msg key="class_memberships">Class Memberships</msg>
   <msg key="class_name">Class Name</msg>
   <msg key="Classes_using">Classes Using this Course</msg>
   <msg key="click_for_prev">Click For Preview</msg>
   <msg key="clip_this_res">Clip This Resource</msg>
+  <msg key="com_memberships">Community Memberships</msg>
+  <msg key="community_name">Community Name</msg>
   <msg key="course_name">Course Name</msg>
   <msg key="course_versions">Course Versions</msg>
   <msg key="courses">Courses</msg>
@@ -36,13 +43,19 @@
   <msg key="description">Description</msg>
   <msg key="disabled">Disabled</msg>
   <msg key="dotlrn_classes">dotLRN classes</msg>
+  <msg key="dotlrn_communities">dotLRN Communities</msg>
   <msg key="drop">Drop</msg>
   <msg key="drop_association">Drop association to this class</msg>
   <msg key="Edit">Edit</msg>
   <msg key="edit_object">Edit %name%</msg>
+  <msg key="email">E-mail</msg>
   <msg key="enabled">Enabled</msg>
   <msg key="everywhere">Everywhere</msg>
   <msg key="filename">Filename</msg>
+  <msg key="grant">Grant</msg>
+  <msg key="grant_per">Grant Permission to this users</msg>
+  <msg key="grant_permissions">Grant Permissions</msg>
+  <msg key="grant_rev">Grant / Revoke</msg>
   <msg key="help_text">Use the &quot;Browse...&quot; button to locate your file, then click &quot;Open&quot;</msg>
   <msg key="here">Here</msg>
   <msg key="hide">Hide</msg>
@@ -54,13 +67,18 @@
   <msg key="live">Live</msg>
   <msg key="live_classes">Live Classes?</msg>
   <msg key="lo_files">Learning Object Files</msg>
+  <msg key="lors_admin">Lors Central Admin</msg>
+  <msg key="lors_central_package">Lors Central Package</msg>
   <msg key="make">Make</msg>
   <msg key="make_live">Make Live Everywhere</msg>
   <msg key="make_this_live">Make this live</msg>
   <msg key="man_id">Manifest ID</msg>
+  <msg key="manage">Manage</msg>
+  <msg key="memberships">Memberships</msg>
   <msg key="new_file">Add New File</msg>
   <msg key="new_object">New Learning Object</msg>
   <msg key="no">No</msg>
+  <msg key="not_allowed">Not Allowed</msg>
   <msg key="of">of</msg>
   <msg key="of_title">of %name%</msg>
   <msg key="one_course">One Course</msg>
@@ -70,8 +88,14 @@
   <msg key="One_learning">One Learning Object</msg>
   <msg key="please_type">Please type a keyword</msg>
   <msg key="preview">Preview</msg>
+  <msg key="priv_all_memb">priviliges to all members</msg>
+  <msg key="privilege_on">Privilege on</msg>
+  <msg key="revoke">Revoke</msg>
+  <msg key="revoke_per">Revoke Permission to this users</msg>
   <msg key="search">Search</msg>
   <msg key="search_courses">Search Courses</msg>
+  <msg key="search_users">Search for users first names, last name or email:</msg>
+  <msg key="search_users_to">Search users to grant/revoke privileges</msg>
   <msg key="set_to">Set to</msg>
   <msg key="shared">Shared?</msg>
   <msg key="shared_items">Shared Items In The Repository</msg>
@@ -92,6 +116,8 @@
   <msg key="update_versions">Update Versions</msg>
   <msg key="upload_a_new">Upload a New File or....</msg>
   <msg key="Usage">Usage</msg>
+  <msg key="user_to_grant">users to grant privileges that match that search</msg>
+  <msg key="username">User Name</msg>
   <msg key="version">Version</msg>
   <msg key="version_number">Ver. #</msg>
   <msg key="versions">Versions</msg>
Index: openacs-4/packages/lors-central/catalog/lors-central.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/catalog/lors-central.es_ES.ISO-8859-1.xml,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/catalog/lors-central.es_ES.ISO-8859-1.xml	17 May 2005 16:21:16 -0000	1.1
+++ openacs-4/packages/lors-central/catalog/lors-central.es_ES.ISO-8859-1.xml	13 Jun 2005 15:10:41 -0000	1.1.2.1
@@ -12,8 +12,10 @@
   <msg key="Add_to_clip">Agregar al sujetapapeles</msg>
   <msg key="add_to_course">Agregar a este curso</msg>
   <msg key="add_to_resource">Agregar a este recurso</msg>
+  <msg key="admin">Administrar</msg>  
   <msg key="All_views">Todas las vistas</msg>
   <msg key="All_views_of">Todas las vistas de este objeto</msg>
+  <msg key="and_in_the">y en las siguientes comunidades:</msg>
   <msg key="and_is_in">Y esta siendo utilizado en los siguientes cursos</msg>
   <msg key="assoc">Asociaciones:</msg>
   <msg key="associate">Asociar</msg>
@@ -23,26 +25,35 @@
   <msg key="associated">Already Asociado</msg>
   <msg key="author">Autor:</msg>
   <msg key="choose_the_file">Escoja el archivo que desea subir</msg>
+  <msg key="class_memberships">Membresias con Clases</msg>  
   <msg key="class_name">Nombre de la Clase</msg>
   <msg key="Classes_using">Clases que utilizan este curso</msg>
   <msg key="click_for_prev">Click para previsualizar</msg>
   <msg key="clip_this_res">Sujetar este Recurso</msg>
+  <msg key="com_memberships">Membresias con Comunidades</msg> 
+  <msg key="community_name">Nombre de la comunidad</msg> 
   <msg key="course_name">Nombre del Curso</msg>
   <msg key="course_versions">Versiones del Curso</msg>
   <msg key="courses">Cursos</msg>
-  <msg key="create_your_new">Crear el nuevo archivo</msg>
+  <msg key="create_your_new">Crear el nuevo archivo o ...</msg>
   <msg key="current">Actual</msg>
   <msg key="dep_name">Nombre del Departamento</msg>
   <msg key="description">Descripcion</msg>
   <msg key="disabled">Deshabilitado</msg>
   <msg key="dotlrn_classes">classes de dotLRN</msg>
+  <msg key="dotlrn_communities">comunidades de dotLRN/msg>
   <msg key="drop">Quitar</msg>
   <msg key="drop_association">Quitar la asociacion de esta clase</msg>
   <msg key="Edit">Editar</msg>
   <msg key="edit_object">Editar %name%</msg>
+  <msg key="email">Correo Electronico</msg>
   <msg key="enabled">Habilitado</msg>
   <msg key="everywhere">En todos lados</msg>
   <msg key="filename">Nombre del archivo</msg>
+  <msg key="grant">Otorgar</msg>
+  <msg key="grant_per">Otorgar permisos a este usuario</msg>
+  <msg key="grant_permissions">Otorgar permisos</msg>
+  <msg key="grant_rev">Otorgar / Quitar</msg>
   <msg key="help_text">Utilizar el boton de &quot;Browse...&quot; para localizar el archivo, luego presionar&quot;Open&quot;</msg>
   <msg key="here">Aqui</msg>                                  
   <msg key="hide">Ocultar</msg>
@@ -54,13 +65,16 @@
   <msg key="live">Actual</msg> 
   <msg key="live_classes">Clases donde es el actual?</msg>
   <msg key="lo_files">Archivos del Objeto de Aprendizaje</msg>   
+  <msg key="lors_admin">Administracion de Lors Central</msg> 
   <msg key="make">Hacer</msg>
   <msg key="make_live">Cambiar a actual en todas las clases</msg>
   <msg key="make_this_live">Poner actual en esta clase</msg>
   <msg key="man_id">ID del Manifesto</msg>
+  <msg key="memberships">Membresias</msg>
   <msg key="new_file">Agregar Nuevo Archivo</msg>
   <msg key="new_object">Nuevo Objeto de Aprendisaje</msg>
   <msg key="no">No</msg>
+  <msg key="not_allowed">no otorgado</msg>
   <msg key="of">de</msg>
   <msg key="of_title">de %name%</msg>
   <msg key="one_course">Un Curso</msg>
@@ -70,8 +84,14 @@
   <msg key="One_learning">Un Objeto de Aprendizaje</msg>
   <msg key="please_type">Por favor ingrese una palabra</msg>
   <msg key="preview">Previsualizacion</msg>
+  <msg key="priv_all_memb">privilegios a todos los miembros</msg>
+  <msg key="privilege_on">Privilegios sobre</msg>
+  <msg key="revoke">Quitar</msg>
+  <msg key="revoke_per">Quitar privilegios a estos usuarios</msg>
   <msg key="search">Buscar</msg>
   <msg key="search_courses">Buscar Cursos</msg>
+  <msg key="search_users">Buscar por el nombre, apellido o correo electronico del usuario:</msg>
+  <msg key="search_users_to">Buscar usarios a Otorgar/Quitar privilegios</msg>
   <msg key="set_to">Establecer a</msg
   <msg key="shared">Compartido?</msg>
   <msg key="shared_items">Objetos Compartidos en el repositorio</msg>>
@@ -92,6 +112,8 @@
   <msg key="update_versions">Actualizar Versiones</msg>
   <msg key="upload_a_new">Subir un Nuevo Archivo o....</msg>
   <msg key="Usage">Utilizacion</msg>
+  <msg key="user_to_grant">hay usarios a otorgar privilefios que coincidan con esa busqueda</msg>
+  <msg key="username">Nombre del Usuario</msg>
   <msg key="version">Version</msg>
   <msg key="version_number">Ver. #</msg>
   <msg key="versions">Versiones</msg>
Index: openacs-4/packages/lors-central/catalog/lors-central.es_GT.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/catalog/lors-central.es_GT.ISO-8859-1.xml,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/catalog/lors-central.es_GT.ISO-8859-1.xml	17 May 2005 16:21:16 -0000	1.1
+++ openacs-4/packages/lors-central/catalog/lors-central.es_GT.ISO-8859-1.xml	13 Jun 2005 15:10:41 -0000	1.1.2.1
@@ -12,8 +12,10 @@
   <msg key="Add_to_clip">Agregar al sujetapapeles</msg>
   <msg key="add_to_course">Agregar a este curso</msg>
   <msg key="add_to_resource">Agregar a este recurso</msg>
+  <msg key="admin">Administrar</msg>  
   <msg key="All_views">Todas las vistas</msg>
   <msg key="All_views_of">Todas las vistas de este objeto</msg>
+  <msg key="and_in_the">y en las siguientes comunidades:</msg>
   <msg key="and_is_in">Y esta siendo utilizado en los siguientes cursos</msg>
   <msg key="assoc">Asociaciones:</msg>
   <msg key="associate">Asociar</msg>
@@ -23,26 +25,35 @@
   <msg key="associated">Already Asociado</msg>
   <msg key="author">Autor:</msg>
   <msg key="choose_the_file">Escoja el archivo que desea subir</msg>
+  <msg key="class_memberships">Membresias con Clases</msg>  
   <msg key="class_name">Nombre de la Clase</msg>
   <msg key="Classes_using">Clases que utilizan este curso</msg>
   <msg key="click_for_prev">Click para previsualizar</msg>
   <msg key="clip_this_res">Sujetar este Recurso</msg>
+  <msg key="com_memberships">Membresias con Comunidades</msg> 
+  <msg key="community_name">Nombre de la comunidad</msg> 
   <msg key="course_name">Nombre del Curso</msg>
   <msg key="course_versions">Versiones del Curso</msg>
   <msg key="courses">Cursos</msg>
-  <msg key="create_your_new">Crear el nuevo archivo</msg>
+  <msg key="create_your_new">Crear el nuevo archivo o ...</msg>
   <msg key="current">Actual</msg>
   <msg key="dep_name">Nombre del Departamento</msg>
   <msg key="description">Descripcion</msg>
   <msg key="disabled">Deshabilitado</msg>
   <msg key="dotlrn_classes">classes de dotLRN</msg>
+  <msg key="dotlrn_communities">comunidades de dotLRN/msg>
   <msg key="drop">Quitar</msg>
   <msg key="drop_association">Quitar la asociacion de esta clase</msg>
   <msg key="Edit">Editar</msg>
   <msg key="edit_object">Editar %name%</msg>
+  <msg key="email">Correo Electronico</msg>
   <msg key="enabled">Habilitado</msg>
   <msg key="everywhere">En todos lados</msg>
   <msg key="filename">Nombre del archivo</msg>
+  <msg key="grant">Otorgar</msg>
+  <msg key="grant_per">Otorgar permisos a este usuario</msg>
+  <msg key="grant_permissions">Otorgar permisos</msg>
+  <msg key="grant_rev">Otorgar / Quitar</msg>
   <msg key="help_text">Utilizar el boton de &quot;Browse...&quot; para localizar el archivo, luego presionar&quot;Open&quot;</msg>
   <msg key="here">Aqui</msg>                                  
   <msg key="hide">Ocultar</msg>
@@ -54,13 +65,16 @@
   <msg key="live">Actual</msg> 
   <msg key="live_classes">Clases donde es el actual?</msg>
   <msg key="lo_files">Archivos del Objeto de Aprendizaje</msg>   
+  <msg key="lors_admin">Administracion de Lors Central</msg> 
   <msg key="make">Hacer</msg>
   <msg key="make_live">Cambiar a actual en todas las clases</msg>
   <msg key="make_this_live">Poner actual en esta clase</msg>
   <msg key="man_id">ID del Manifesto</msg>
+  <msg key="memberships">Membresias</msg>
   <msg key="new_file">Agregar Nuevo Archivo</msg>
   <msg key="new_object">Nuevo Objeto de Aprendisaje</msg>
   <msg key="no">No</msg>
+  <msg key="not_allowed">no otorgado</msg>
   <msg key="of">de</msg>
   <msg key="of_title">de %name%</msg>
   <msg key="one_course">Un Curso</msg>
@@ -70,8 +84,14 @@
   <msg key="One_learning">Un Objeto de Aprendizaje</msg>
   <msg key="please_type">Por favor ingrese una palabra</msg>
   <msg key="preview">Previsualizacion</msg>
+  <msg key="priv_all_memb">privilegios a todos los miembros</msg>
+  <msg key="privilege_on">Privilegios sobre</msg>
+  <msg key="revoke">Quitar</msg>
+  <msg key="revoke_per">Quitar privilegios a estos usuarios</msg>
   <msg key="search">Buscar</msg>
   <msg key="search_courses">Buscar Cursos</msg>
+  <msg key="search_users">Buscar por el nombre, apellido o correo electronico del usuario:</msg>
+  <msg key="search_users_to">Buscar usarios a Otorgar/Quitar privilegios</msg>
   <msg key="set_to">Establecer a</msg
   <msg key="shared">Compartido?</msg>
   <msg key="shared_items">Objetos Compartidos en el repositorio</msg>>
@@ -92,6 +112,8 @@
   <msg key="update_versions">Actualizar Versiones</msg>
   <msg key="upload_a_new">Subir un Nuevo Archivo o....</msg>
   <msg key="Usage">Utilizacion</msg>
+  <msg key="user_to_grant">hay usarios a otorgar privilefios que coincidan con esa busqueda</msg>
+  <msg key="username">Nombre del Usuario</msg>
   <msg key="version">Version</msg>
   <msg key="version_number">Ver. #</msg>
   <msg key="versions">Versiones</msg>
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.1 -r1.1.2.1
--- openacs-4/packages/lors-central/sql/postgresql/lors-central-create.sql	17 May 2005 16:21:17 -0000	1.1
+++ openacs-4/packages/lors-central/sql/postgresql/lors-central-create.sql	13 Jun 2005 15:10:41 -0000	1.1.2.1
@@ -1,8 +1,3 @@
-ALTER TABLE ims_cp_manifest_class DROP CONSTRAINT ims_cp_manifest_class_pkey;
-ALTER TABLE ims_cp_items ADD sort_order integer;
-ALTER TABLE ims_cp_files DROP CONSTRAINT ims_cp_files_file_if_fk;
-ALTER TABLE ims_cp_files ADD CONSTRAINT ims_cp_files_file_if_fk FOREIGN KEY (file_id) REFERENCES cr_revisions(revision_id) ON DELETE CASCADE;
-
 create table ims_cp_items_map (
     man_id         int
                    constraint ims_cp_items_map_man_id_fk references ims_cp_manifests (man_id),
Index: openacs-4/packages/lors-central/tcl/apm-callbacks-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/tcl/apm-callbacks-procs.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/tcl/apm-callbacks-procs.tcl	17 May 2005 16:21:18 -0000	1.1
+++ openacs-4/packages/lors-central/tcl/apm-callbacks-procs.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -86,5 +86,10 @@
 	    0.1a2 0.1a3 {
 		lors_central::apm_callback::package_install
 	    }
+	    0.1a3 0.1a4 {
+		apm_parameter_register "ManageLorsCentralP" "Restricts the users who can acces and modify courses in lors-central package. 1 - Only the swa, 0 - everybody. Defaults to 0" "lors-central" "0" "number"
+		
+		apm_parameter_register "UploadUsingLorsCentralP" "Set to 1 if you want to upload courses using lors-central package instead of lorsm. You will need to have installed  lors-central for this parameter to work." "lors-central" "0" "number"
+	    }
 	}
-}
\ No newline at end of file
+}
Index: openacs-4/packages/lors-central/tcl/lors-central-install-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/tcl/lors-central-install-procs.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/tcl/lors-central-install-procs.tcl	17 May 2005 16:21:18 -0000	1.1
+++ openacs-4/packages/lors-central/tcl/lors-central-install-procs.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -95,3 +95,19 @@
     # Calling apm callback proc for notifications 
     lors_central::apm_callback::package_install
 }
+
+ad_proc -private lors_central::install::package_uninstall {} {
+
+    Uninstall lors-central
+    
+} {
+    set folder_id [lors_central::get_root_folder_id]
+    content::folder::delete -folder_id $folder_id -cascade_p "t"
+    set folder_id [lors_central::get_root_organizations_folder_id]
+    content::folder::delete -folder_id $folder_id -cascade_p "t"
+    set folder_id [lors_central::get_root_resources_folder_id]
+    content::folder::delete -folder_id $folder_id -cascade_p "t"
+    set folder_id [lors_central::get_root_manifest_folder_id]
+    content::folder::delete -folder_id $folder_id -cascade_p "t"
+    set folder_id [lors_central::get_root_items_folder_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.1 -r1.1.2.1
--- openacs-4/packages/lors-central/tcl/lors-central-procs.tcl	17 May 2005 16:21:18 -0000	1.1
+++ openacs-4/packages/lors-central/tcl/lors-central-procs.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -8,6 +8,14 @@
 
 namespace eval lors_central {}
 
+ad_proc -private lors_central::owner {
+    -user_id:required
+    -object_id:required
+} {
+    Returns 1 if user_id is the creator of the object_id, 0 otherwise
+} {
+    return [db_string get_creation_user { } -default 0]
+}
 
 ad_proc -private lors_central::get_ims_item_id_or_res_id {
     {-ims_item_id ""}
@@ -23,14 +31,68 @@
     } 
 }
 
-ad_proc -private lors_central::is_swa {
+ad_proc -private lors_central::check_permissions {
+    {-object_id ""}
+    {-check_inst ""}
 } {
-    Check if the user (default to logged in user) has site_wide_admin privileges
+    Checks several privileges for user_id, default to logged user over the system.
+
+    @object_id   Send this if you want to check if user_id has permissions over this object_id.
+    @check_inst  Set it to "t" if you want to check if the user_id that watch's this page is an dotlrn
+                 instructor.
 } {
-    if { ![acs_user::site_wide_admin_p] } {
-	ad_returnredirect "not-allowed"
+    if { ![info exist user_id] } {
+	set user_id [ad_conn user_id]
+    }
+    set package_id [ad_conn package_id]
+
+    # Get the number specified in the parameter, this parameter tell if 
+    # only the swa can manage lors-central or any one else
+    set sec_level [parameter::get -parameter "ManageLorsCentralP"]
+
+    if { $sec_level } {
+	if { ![acs_user::site_wide_admin_p] } {
+	    ad_return_complaint 1 "<b>[_ lors-central.we_are_sorry]</b>"
+	    ad_script_abort
+	} else {
+	    return
+	}
+    } else {
+	if { ![empty_string_p $check_inst] } {
+	    if { ![lors_central::check_inst -user_id $user_id] } { 
+		ad_return_complaint 1 "<b>[_ lors-central.we_are_sorry]</b>"
+		ad_script_abort
+	    }
+	} 
+	if { ![empty_string_p $object_id] } {
+	    permission::require_permission -party_id $user_id -object_id $object_id -privilege "admin"
+	}
+    }
+    return
+}
+
+ad_proc -private lors_central::check_inst {
+    -user_id:required
+    {-community_id ""}
+} {
+    Checks if user id has instructor or admin role in @community_id@ or any community_id, returns 1 if it does,
+    0 otherwise
+} {
+    if { [acs_user::site_wide_admin_p] } {
+	return 1
 	ad_script_abort
     }
+    if { ![empty_string_p $community_id] } {
+	set extra_query "and community_id = $community_id"
+    } else {
+	set extra_query ""
+    }
+    set count [db_string check_inst { } -default 0]
+    if { $count > 0 } {
+	return 1
+    } else {
+	return 0
+    }
 }
 
 ad_proc -private lors_central::set_sort_order {
@@ -88,27 +150,33 @@
 
 
 ad_proc -private lors_central::get_root_folder_id { } {
-    Returns the folder_id of the folder with the name "LORS Root Folder"
+    Returns the folder_id of the folder with the name "LORSM Root Folder"
 } {
     return [db_string get_folder_id_from_name { } ]
 }
 
+ad_proc -private lors_central::get_root_organizations_folder_id { } {
+    Returns the folder_id of the folder with the name "LORSM Organizations Folder"
+} {
+    return [db_string get_folder_id_from_name { } ]
+}
 
+
 ad_proc -private lors_central::get_root_resources_folder_id { } {
-    Returns the folder_id of the folder with the name "LORS Resources Folder"
+    Returns the folder_id of the folder with the name "LORSM Resources Folder"
 } {
     return [db_string get_folder_id_from_name { } ]
 }
 
 ad_proc -private lors_central::get_root_manifest_folder_id { } {
-    Returns the folder_id of the folder with the name "LORS Manifest Folder"
+    Returns the folder_id of the folder with the name "LORSM Manifest Folder"
 } {
     return [db_string get_folder_id_from_name { } ]
 }
 
 
 ad_proc -private lors_central::get_root_items_folder_id { } {
-    Returns the folder_id of the folder with the name "LORS Items Folder"
+    Returns the folder_id of the folder with the name "LORSM Items Folder"
 } {
     return [db_string get_folder_id_from_name { } ]
 }
@@ -267,14 +335,19 @@
 
 
 ad_proc -private lors_central::relation_between { 
-    -item_id:required
+    {-item_id ""}
     -community_id:required
+    {-man_id ""}
 } {
     Returns the 1 if there is an association between a dotlrn class or community 
-    and the item_id, 0 otherwise.
+    and the item_id, 0 otherwise, you should provide either man_id or item_id
     @man_id@         The manifest id of the course
+    @item_id@        The item_id that has all manifests as revisions
     @community_id@   The class_id or community_id of dotlrn
 } {
+    if { ![empty_string_p $man_id] } {
+	set item_id [lors_central::get_item_id -revision_id $man_id]
+    }
     return [db_string get_relation { } -default 0]
 }
 
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.1 -r1.1.2.1
--- openacs-4/packages/lors-central/tcl/lors-central-procs.xql	17 May 2005 16:21:18 -0000	1.1
+++ openacs-4/packages/lors-central/tcl/lors-central-procs.xql	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -1,7 +1,31 @@
 <?xml version="1.0"?>
 <queryset>
 
+<fullquery name="lors_central::owner.get_creation_user">
+  <querytext>
+       	select
+		1
+       	from
+		acs_objects
+	where
+		creation_user = :user_id and
+	        object_id = :object_id
+  </querytext>
+</fullquery>
 
+<fullquery name="lors_central::check_inst.check_inst">
+  <querytext>
+       	select
+		count(user_id)
+       	from
+		dotlrn_member_rels_full
+	where
+		user_id = :user_id and
+		( role = 'admin' or role = 'instructor' )
+	        $extra_query
+  </querytext>
+</fullquery>
+
 <fullquery name="lors_central::get_ims_item_id_or_res_id.get_res_id">
   <querytext>
        select
@@ -238,6 +262,18 @@
   </querytext>
 </fullquery>
 
+<fullquery name="lors_central::get_root_organizations_folder_id.get_folder_id_from_name">
+  <querytext>
+        select 
+               folder_id 
+        from 
+               cr_folders
+        where 
+               label = 'LORSM Organizations Folder'
+  </querytext>
+</fullquery>
+
+
 <fullquery name="lors_central::get_root_resources_folder_id.get_folder_id_from_name">
   <querytext>
         select 
Index: openacs-4/packages/lors-central/www/add-exist-item.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/add-exist-item.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/add-exist-item.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/add-exist-item.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -11,8 +11,8 @@
     item_man_id:notnull
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set the_ims_item_id $ims_item_id
 set user_id [ad_conn user_id]
Index: openacs-4/packages/lors-central/www/add-lo.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/add-lo.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/add-lo.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/add-lo.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -13,8 +13,8 @@
 
 set user_id [ad_conn user_id]
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set new_lo_link "man_id=$man_id&org_id=$org_id&parent=$parent_item"
 set page_title [_ lors-central.add_an_existent]
Index: openacs-4/packages/lors-central/www/change-lo-version.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/change-lo-version.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/change-lo-version.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/change-lo-version.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -12,8 +12,8 @@
     live_hide_p:notnull
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 if { ![info exist name] } {
     set name [db_string get_name { select item_title from ims_cp_items where ims_item_id = :ims_item_id }]
Index: openacs-4/packages/lors-central/www/change-one-lo-version.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/change-one-lo-version.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/change-one-lo-version.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/change-one-lo-version.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -10,8 +10,8 @@
     objects_value:multiple
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 # object_id:     A list of communities ids
 # object_value:  The version number to set the revision
Index: openacs-4/packages/lors-central/www/change-one-version.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/change-one-version.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/change-one-version.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/change-one-version.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -14,8 +14,8 @@
     }
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 # Validation of Range
 set i 0
Index: openacs-4/packages/lors-central/www/course-add-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-add-2.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-add-2.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-add-2.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -26,8 +26,8 @@
     }
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 # To support versions
 if { ![info exist man_id] } {
Index: openacs-4/packages/lors-central/www/course-add-3.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-add-3.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-add-3.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-add-3.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -27,13 +27,13 @@
     }
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
-
 #check permission
 set user_id [ad_conn user_id]
-# ad_require_permission $folder_id admin
 
+# Checking privilege over lors-central
+lors_central::check_permissions
+
+
 # Display progress bar
 ad_progress_bar_begin \
     -title "[_ lorsm.Uploading_course]" \
@@ -316,6 +316,7 @@
         ns_write "[_ lorsm.lt_Granting_permissions__1 [list course_name $course_name]]<br>"
 
 	# PERMISSIONS FOR MANIFEST and learning objects
+	permission::grant -party_id $user_id -object_id $man_id -privilege admin
 
 	# set up in the same way as permissions for the file storage
 	# objects. As we want to maintain consistency btw the
Index: openacs-4/packages/lors-central/www/course-add.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-add.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-add.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-add.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -13,8 +13,8 @@
 set user_id [ad_conn user_id]
 set community_id [dotlrn_community::get_community_id]
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 if { ![info exists man_id] } { 
    set man_id ""
Index: openacs-4/packages/lors-central/www/course-admin.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-admin.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-admin.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-admin.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -8,7 +8,7 @@
 }
 
 # Checking swa privilege over lors-central
-lors_central::is_swa
+lors_central::check_permissions
 
 
 set title "[_ lorsm.lt_Manage_Courses_in_Rep]"
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.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-associate.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-associate.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -10,9 +10,16 @@
     { return_url "" }
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
+# Display progress bar
+ad_progress_bar_begin \
+    -title "[_ lors-central.associate_to]" \
+    -message_1 "[_ lors-central.associate_to]" \
+    -message_2 "[_ lorsm.lt_We_will_continue_auto]"
+
+
 set man_id [content::item::get_live_revision -item_id $item_id]
 
 foreach community_id $object_id {
@@ -34,8 +41,8 @@
 
 
 if { [empty_string_p $return_url] } {
-    ad_returnredirect "course-dotlrn-assoc?item_id=$item_id"
+    ad_progress_bar_end -url "course-dotlrn-assoc?item_id=$item_id"
 } else {
-    ad_returnredirect $return_url
+    ad_progress_bar_end -url $return_url
 }
 
Index: openacs-4/packages/lors-central/www/course-association-drop.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-association-drop.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-association-drop.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-association-drop.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -9,10 +9,17 @@
     { return_url "" }
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Display progress bar
+ad_progress_bar_begin \
+    -title "[_ lors-central.associate_to]" \
+    -message_1 "[_ lors-central.associate_to]" \
+    -message_2 "[_ lorsm.lt_We_will_continue_auto]"
 
 
+# Checking privilege over lors-central
+lors_central::check_permissions
+
+
 set man_list [db_list_of_lists get_man_ids { }]
 foreach community_id $object_id {
     lors_central::drop_relation -item_id $item_id -community_id $community_id
@@ -25,8 +32,8 @@
 }
 
 if { [empty_string_p $return_url] } {
-    ad_returnredirect "course-dotlrn-assoc?item_id=$item_id"
+    ad_progress_bar_end -url "course-dotlrn-assoc?item_id=$item_id"
 } else {
-    ad_returnredirect $return_url
+    ad_progress_bar_end -url $return_url
 }
 
Index: openacs-4/packages/lors-central/www/course-dotlrn-assoc.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-dotlrn-assoc.adp,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-dotlrn-assoc.adp	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-dotlrn-assoc.adp	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -2,6 +2,23 @@
 <property name="title">@title;noquote@</property>
 <property name="context">@context;noquote@</property>
 
-<listtemplate name="dotlrn_classes"></listtemplate>
-<br><br>
-<listtemplate name="drop_dotlrn_classes"></listtemplate>
+<h3>#lors-central.dotlrn_classes#</h3>
+<if @classes_list:rowcount@ gt 0>
+   <listtemplate name="dotlrn_classes"></listtemplate>
+   <br>
+</if>
+<if @drop_classes_list:rowcount@ gt 0>
+   <br>
+   <listtemplate name="drop_dotlrn_classes"></listtemplate>
+</if>
+<br>
+<h3>#lors-central.dotlrn_communities#</h3>
+<if @coms_list:rowcount@ gt 0>
+   <br>
+   <listtemplate name="coms_list"></listtemplate>
+</if>
+
+<if @coms_list_drop:rowcount@ gt 0>
+   <br>
+   <listtemplate name="coms_list_drop"></listtemplate>
+</if>
\ No newline at end of file
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.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-dotlrn-assoc.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-dotlrn-assoc.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -8,8 +8,8 @@
     item_id:integer,optional
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set title [_ lors-central.associate_to]
 
@@ -25,7 +25,17 @@
 
 set user_id [ad_conn user_id]
 
+if { ![acs_user::site_wide_admin_p] } {
+    set extra_query_class "and drf.role = 'instructor' and drf.community_id = dc.class_instance_id and drf.user_id = :user_id "
+    set extra_query_community "and dm.community_id = dc.community_id 
+                               and dm.user_id = :user_id 
+                               and dm.role = 'admin'"
+} else {
+    set extra_query_class ""
+    set extra_query_community ""
+}
 
+
 ##################################### TO ASSOCIATE ##########################################################
 
 db_multirow -extend { rel type } classes_list get_dotlrn_classes { } {
@@ -155,3 +165,98 @@
 	}
     }
 
+
+##################################### COMMUNITIES ###########################################################
+##################################### TO ASSOCIATE ##########################################################
+
+db_multirow -extend { rel type } 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 \
+    -name coms_list \
+    -multirow coms_list \
+    -key community_id \
+    -has_checkboxes\
+    -bulk_actions {
+                   "\#lors-central.associate\#" "course-associate" "\#lors-central.associate_to_class\#" \
+    } \
+    -bulk_action_method post \
+    -bulk_action_export_vars {
+	item_id
+        type
+    }\
+    -row_pretty_plural "[_ lors-central.dotlrn_communities]" \
+    -elements {
+	check_box {
+	    class "list-narrow"
+	    label "<input type=\"checkbox\" name=\"_dummy\" onclick=\"acs_ListCheckAll('coms_list', this.checked)\" \
+                   title=\"\#lors-central.label_title\#\">"
+	    display_template {
+		    <input type="checkbox" name="object_id" value="@coms_list.com_id@" \
+		    id="coms_list,@coms_list.com_id@" \
+		    title="\#lors-central.title\#">
+	    }
+	}
+	class  {
+	    label "[_ lors-central.community_name]"
+	    display_template {
+		<a href="@coms_list.url@">@coms_list.pretty_name@</a> 
+	    }
+	}
+	associate {
+	    display_template {
+		<if @coms_list.rel@ not eq 0>
+		    #lors-central.associated#
+		</if>
+	    }
+	}
+    }
+
+
+############################## TO DROP ASSOCIATION ######################################
+
+db_multirow -extend { rel type } coms_list_drop get_dotlrn_coms_drop { } {
+    set rel [lors_central::relation_between -item_id $item_id -community_id $com_id]
+}
+
+template::list::create \
+    -name coms_list_drop \
+    -multirow coms_list_drop \
+    -key community_id \
+    -has_checkboxes\
+    -bulk_actions {
+                   "\#lors-central.drop\#" "course-association-drop" "\#lors-central.drop_association\#" \
+    } \
+    -bulk_action_method post \
+    -bulk_action_export_vars {
+	item_id
+        type
+    }\
+    -row_pretty_plural "[_ lors-central.dotlrn_classes]" \
+    -elements {
+	check_box {
+	    class "list-narrow"
+	    label "<input type=\"checkbox\" name=\"_dummy\" onclick=\"acs_ListCheckAll('coms_list_drop', this.checked)\" \
+                   title=\"\#lors-central.label_title\#\">"
+	    display_template {
+		    <input type="checkbox" name="object_id" value="@coms_list_drop.com_id@" \
+		    id="coms_list_drop,@coms_list_drop.com_id@" \
+		    title="\#lors-central.title\#">
+	    }
+	}
+	class  {
+	    label "[_ lors-central.community_name]"
+	    display_template {
+		<a href="@coms_list_drop.url@">@coms_list_drop.pretty_name@</a> 
+	    }
+	}
+	associate {
+	    display_template {
+		<if @coms_list_drop.rel@ not eq 0>
+		    #lors-central.associated#
+		</if>
+	    }
+	}
+    }
Index: openacs-4/packages/lors-central/www/course-dotlrn-assoc.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-dotlrn-assoc.xql,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-dotlrn-assoc.xql	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-dotlrn-assoc.xql	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -11,7 +11,7 @@
                    dc.pretty_name, 
                    dc.url
 	    from 
-                   dotlrn_class_instances_full dc
+                   dotlrn_class_instances_full dc, dotlrn_instructor_rels_full drf
             where           
                    dc.class_instance_id not in 
                    (
@@ -27,7 +27,8 @@
                           from cr_revisions 
                           where item_id = :item_id
                           )
-                   )
+                   ) 
+	           $extra_query_class
 	    order by department_name, term_name, class_name, pretty_name
         </querytext>
     </fullquery>
@@ -42,7 +43,7 @@
                    dc.pretty_name, 
                    dc.url
 	    from 
-                   dotlrn_class_instances_full dc
+                   dotlrn_class_instances_full dc, dotlrn_instructor_rels_full drf
             where           
                    dc.class_instance_id in 
                    (
@@ -57,11 +58,69 @@
                           from cr_revisions 
                           where item_id = :item_id
                           )
+                   ) 
+	  	   $extra_query_class
+	    order by department_name, term_name, class_name, pretty_name
+        </querytext>
+    </fullquery>
+
+    <fullquery name="get_dotlrn_coms">
+        <querytext>
+            select 
+	           distinct
+                   dc.community_id as com_id, 
+                   dc.pretty_name, 
+                   dc.url
+	    from 
+                   dotlrn_communities_full dc, dotlrn_member_rels_full dm
+            where           
+                   dc.community_id not in 
+                   (
+                   select
+                          icmc.community_id 
+                   from
+                          ims_cp_manifest_class icmc
+                   where
+                          icmc.community_id is not null and
+                          man_id in 
+                          (
+                          select revision_id 
+                          from cr_revisions 
+                          where item_id = :item_id
+                          )
+                   ) 
+	           and ( dc.community_type = 'dotlrn_club' or  dc.community_type = 'dotlrn_community') 
+                   $extra_query_community
+	    order by pretty_name
+        </querytext>
+    </fullquery>
+
+    <fullquery name="get_dotlrn_coms_drop">
+        <querytext>
+            select distinct
+                   dc.community_id as com_id, 
+                   dc.pretty_name, 
+                   dc.url
+	    from 
+                   dotlrn_communities_full dc, dotlrn_member_rels_full dm
+            where           
+                   dc.community_id in 
+                   (
+                   select
+                          icmc.community_id 
+                   from
+                          ims_cp_manifest_class icmc
+                   where
+                          man_id in 
+                          (
+                          select revision_id 
+                          from cr_revisions 
+                          where item_id = :item_id
+                          )
                    )
-	    order by department_name, 
-                     term_name, 
-                     class_name, 
-                     pretty_name
+	           and ( dc.community_type = 'dotlrn_club' or  dc.community_type = 'dotlrn_community') 
+	           $extra_query_community
+	    order by pretty_name
         </querytext>
     </fullquery>
 
Index: openacs-4/packages/lors-central/www/course-live-in.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-live-in.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-live-in.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-live-in.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -6,8 +6,8 @@
    man_id:integer,optional
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set title "[_ lors-central.Classes_using]"
 set context [list [list "one-course-associations?man_id=$man_id" [_ lors-central.one_course_assoc]] \
Index: openacs-4/packages/lors-central/www/course-version-change.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-version-change.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-version-change.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-version-change.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -7,8 +7,8 @@
 
 set user_id [ad_conn user_id]
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set item_id [lors_central::get_item_id -revision_id $man_id]
 
Index: openacs-4/packages/lors-central/www/course-versions.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/course-versions.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/course-versions.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/course-versions.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -9,8 +9,8 @@
 
 set user_id [ad_conn user_id]
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 
 if { ![info exist item_id ] } {
Index: openacs-4/packages/lors-central/www/edit-content.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/edit-content.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/edit-content.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/edit-content.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -23,8 +23,8 @@
 
 set user_id [ad_conn user_id]
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set folder [db_string select_folder_key {select key from fs_folders where folder_id = :folder_id}]
 set fs_root_folder [db_string sql {select file_storage__get_root_folder(:fs_package_id)}]
Index: openacs-4/packages/lors-central/www/file-content-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/file-content-edit.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/file-content-edit.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/file-content-edit.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -32,8 +32,8 @@
 nsv_lappend delivery_vars [ad_conn session_id] $ims_item_id
 
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 # check they have read permission on this file
 
Index: openacs-4/packages/lors-central/www/folder-description.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/folder-description.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/folder-description.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/folder-description.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -6,8 +6,8 @@
     folder_id:integer,optional
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 if { ![info exists folder_id] } {
     # Get lorsm root folder_id
Index: openacs-4/packages/lors-central/www/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/index.adp,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/index.adp	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/index.adp	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -2,6 +2,7 @@
   <property name="title">@title@</property>
   <property name="context">@context@</property>
 
+<div align="right"><a href="lc-admin/" title="admin"><img border=0 src="images/admin.gif" alt="admin"></a></div>
 <h2>#lorsm.lt_Courses_in_your_Repos#</h2>
 
 <table width="100%">
Index: openacs-4/packages/lors-central/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/index.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/index.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/index.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -8,9 +8,12 @@
     keyword:optional
 }
 
-# Checking swa privilege over lors-central       
-lors_central::is_swa
+set user_id [ad_conn user_id]
 
+
+# Checking privilege over lors-central       
+lors_central::check_permissions
+
 set title "[_ lorsm.lt_Manage_Courses_in_Rep]"
 set context [list "[_ lorsm.Manage_Courses]"]
 
@@ -32,6 +35,11 @@
    set extra_query ""
 }
 
+# If user is not site wide we just show the courses where he/she has admin privilege over
+if { ![acs_user::site_wide_admin_p] } {
+    append extra_query " and p.object_id = acs.object_id and p.privilege = 'admin' and p.grantee_id = :user_id"
+}
+
 set package_id [ad_conn package_id]
 set user_id [ad_conn user_id]
 set community_id [dotlrn_community::get_community_id]
@@ -49,10 +57,11 @@
 
 set actions [list]
 
-lappend actions  "[_ lorsm.Add_Course]" [export_vars -base "course-add"] "[_ lorsm.lt_Add_a_IMSSCORM_Compli]"
-lappend actions  "[_ lorsm.lt_Search_Learning_Objec]" [export_vars -base "search"] "[_ lorsm.lt_Search_for_Learninng_]"
+if { [lors_central::check_inst -user_id $user_id] } {
+    lappend actions  "[_ lorsm.Add_Course]" [export_vars -base "course-add"] "[_ lorsm.lt_Add_a_IMSSCORM_Compli]"
+    lappend actions  "[_ lorsm.lt_Search_Learning_Objec]" [export_vars -base "search"] "[_ lorsm.lt_Search_for_Learninng_]"
+}
 
-
 template::list::create \
     -name get_courses \
     -multirow get_courses \
Index: openacs-4/packages/lors-central/www/index.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/index.xql,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/index.xql	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/index.xql	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -19,7 +19,7 @@
              acs.creation_user,
              acs.creation_date
       from 
-             cr_revisions cr, acs_objects acs, cr_items ci
+             cr_revisions cr, acs_objects acs, cr_items ci, acs_permissions p
       where 
             acs.object_id = cr.item_id and
 	    ci.item_id = cr.item_id and
Index: openacs-4/packages/lors-central/www/new-clipboard-files.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/new-clipboard-files.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/new-clipboard-files.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/new-clipboard-files.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -12,6 +12,8 @@
 
 set user_id [ad_conn user_id]
 
+lors_central::check_permissions
+
 foreach object $object_id {
     #The same file can not be added to the same res_id twice so we are going to check that
     set ims_res_id [db_string get_res_id { } ]
Index: openacs-4/packages/lors-central/www/new-file.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/new-file.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/new-file.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/new-file.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -13,8 +13,8 @@
 
 
 set user_id [ad_conn user_id]
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set page_title "[_ lors-central.new_file]"
 set context "[list [list [export_vars -base one-resource {res_id}] \
Index: openacs-4/packages/lors-central/www/new-learning-object.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/new-learning-object.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/new-learning-object.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/new-learning-object.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -16,8 +16,8 @@
 }
 
 set user_id [ad_conn user_id]
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 
 set title "[_ lors-central.new_object]"
Index: openacs-4/packages/lors-central/www/one-course-associations.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-course-associations.adp,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-course-associations.adp	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-course-associations.adp	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -10,6 +10,10 @@
 
 <listtemplate name="dotlrn_classes"></listtemplate>
 
+<h3>#lors-central.and_in_the#</h3>
+
+<listtemplate name="dotlrn_communities"></listtemplate>
+
 <br>
 <if @man_id@ not nil>
     <a class=button href="course-dotlrn-assoc?man_id=@man_id;noquote@">#lors-central.associate_drop#</a>
Index: openacs-4/packages/lors-central/www/one-course-associations.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-course-associations.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-course-associations.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-course-associations.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -11,8 +11,9 @@
 }
 
 
+set user_id [ad_conn user_id]
+lors_central::check_permissions
 
-
 # Get the item_id that the manifest_id has associated
 if { ![info exist item_id] } {
     set item_id [lors_central::get_item_id -revision_id $man_id]
@@ -202,3 +203,78 @@
 }
 
 
+############################################ Communities ###############################################
+
+
+template::list::create \
+    -name dotlrn_communities \
+    -multirow com_list \
+    -key com_id \
+    -has_checkboxes \
+    -bulk_actions { #lors-central.update_versions# "change-one-version" #lors-central.update_course_ver# }\
+    -bulk_action_method post \
+    -bulk_action_export_vars {
+        item_id 
+    } \
+    -row_pretty_plural "[_ lors-central.dotlrn_classes]" \
+    -elements {
+	community  {
+	    label "[_ lors-central.community_name]"
+	    display_template {
+		@com_list.pretty_name@&nbsp;&nbsp;
+                <a href="one-course-views?man_id=@com_list.manifest_id@&community_id=@com_list.com_id@">
+                [_ lors-central.views]
+                </a> 
+	    }
+	}
+	current  {
+	    label "[_ lors-central.current]"
+	    display_template {
+		@com_list.ver_num@ [_ lors-central.of] @com_list.ver_count@
+	    }
+	}
+	set_to  {
+	    label "[_ lors-central.set_to]"
+	    display_template {
+                <input type=hidden name="objects_id" value=@com_list.com_id@>
+                <input type=hidden name="objects_count" value=@com_list.ver_count@>
+                <select name="objects_value">
+  		    @com_list.options;noquote@
+                </select>
+	    }
+	}
+	tracking  {
+	    label "[_ lors-central.tracking]"
+	    display_template {
+                <center>
+		<a href="tracker?man_id=@com_list.manifest_id@&community_id=@com_list.com_id@">
+                <if @com_list.tracking@>
+		[_ lors-central.enabled]
+                </if>
+                <else>
+		[_ lors-central.disabled]
+                </else>
+                </a>
+                </center>
+	    }
+	}
+    } 
+
+db_multirow -extend { ver_num  ver_count manifest_id options tracking } com_list get_dotlrn_communities { } {
+    set manifest_id [lors_central::get_man_id -community_id $com_id -item_id $item_id]
+    set ver_count [lors_central::count_versions -man_id $manifest_id]
+    set ver_num [lors_central::get_version_num -revision_id $manifest_id]
+    set tracking [db_string get_tracking { }]
+    # Create the options for the select menu
+    set options ""
+    for { set i 1 } { $i < [expr $ver_count + 1] } { incr i } {
+	if { [string equal $i $ver_num] } {
+            append options "<option value=$i selected>$i</options>"
+	} else {
+            append options "<option value=$i>$i</options>"
+	}
+    }
+}
+
+
+
Index: openacs-4/packages/lors-central/www/one-course-associations.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-course-associations.xql,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-course-associations.xql	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-course-associations.xql	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -91,4 +91,34 @@
         </querytext>
     </fullquery>
 
+    <fullquery name="get_dotlrn_communities">
+        <querytext>
+            select 
+	           distinct
+                   dc.community_id as com_id, 
+                   dc.pretty_name, 
+                   dc.url
+	    from 
+                   dotlrn_communities_full dc, dotlrn_member_rels_full dm
+            where           
+                   dc.community_id in 
+                   (
+                   select
+                          icmc.community_id 
+                   from
+                          ims_cp_manifest_class icmc
+                   where
+                          icmc.community_id is not null and
+                          man_id in 
+                          (
+                          select revision_id 
+                          from cr_revisions 
+                          where item_id = :item_id
+                          )
+                   ) 
+	           and ( dc.community_type = 'dotlrn_club' or  dc.community_type = 'dotlrn_community') 
+		   order by pretty_name asc
+        </querytext>
+    </fullquery>
+
 </queryset>
\ No newline at end of file
Index: openacs-4/packages/lors-central/www/one-course-item.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-course-item.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-course-item.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-course-item.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -11,8 +11,8 @@
     {orderby "class,asc"}
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set displayed_object_id $ims_item_id
 
Index: openacs-4/packages/lors-central/www/one-course-views.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-course-views.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-course-views.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-course-views.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -6,8 +6,8 @@
     community_id:integer,notnull
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 # Get the item_id that the manifest_id has associated
 if { ![info exist item_id] } {
Index: openacs-4/packages/lors-central/www/one-course.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-course.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-course.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-course.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -5,9 +5,6 @@
    man_id:integer,optional
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
-
 if { ![info exist item_id] && ![info exist man_id] } {
    ad_return_complaint 1 "You must pass either item_id or man_id"
 } else {
@@ -19,7 +16,11 @@
     }
 }
 
+set user_id [ad_conn user_id]
+# Checking privilege over lors-central
+lors_central::check_permissions -object_id $item_id
 
+
 set package_id ""
 set title "[_ lors-central.one_course]"
 set assoc_num [db_string get_associations_num { } -default 0]
Index: openacs-4/packages/lors-central/www/one-file-live.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-file-live.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-file-live.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-file-live.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -11,8 +11,8 @@
     {name "" }
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set file_item_id [lors_central::get_item_id -revision_id $file_id]
 
Index: openacs-4/packages/lors-central/www/one-file.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-file.tcl,v
diff -u -r1.2 -r1.2.2.1
--- openacs-4/packages/lors-central/www/one-file.tcl	17 May 2005 22:58:36 -0000	1.2
+++ openacs-4/packages/lors-central/www/one-file.tcl	13 Jun 2005 15:10:42 -0000	1.2.2.1
@@ -13,8 +13,8 @@
     ims_item_id:notnull
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 #if { [empty_string_p $name] } {
 #    set name [db_string get_name { } -default "..."]
Index: openacs-4/packages/lors-central/www/one-learning-object.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-learning-object.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-learning-object.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-learning-object.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -11,8 +11,8 @@
     {orderby "class,asc"}
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set displayed_object_id $ims_item_id
 
Index: openacs-4/packages/lors-central/www/one-lo-files.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-lo-files.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-lo-files.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-lo-files.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -9,8 +9,8 @@
     {name ""}
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 if { [empty_string_p $name] } {
     set name [db_string get_name { } -default "..."]
Index: openacs-4/packages/lors-central/www/one-object-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/one-object-edit.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/one-object-edit.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/one-object-edit.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -15,8 +15,8 @@
     {edit_p ""}
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set parent_item [db_string get_parent_item "select parent_item from ims_cp_items where ims_item_id = :ims_item_id"]
 
Index: openacs-4/packages/lors-central/www/reorder-items.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/reorder-items.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/reorder-items.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/reorder-items.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -7,8 +7,8 @@
    sort_order:notnull
 } 
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set ims_item_id $item_id
 set item_sort [db_string get_item_sort { }]
Index: openacs-4/packages/lors-central/www/shared.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/shared.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/shared.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/shared.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -10,8 +10,8 @@
     org_id:notnull
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 if { $shared } {
     set isshared f
Index: openacs-4/packages/lors-central/www/tracker.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/tracker.tcl,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lors-central/www/tracker.tcl	17 May 2005 16:21:19 -0000	1.1
+++ openacs-4/packages/lors-central/www/tracker.tcl	13 Jun 2005 15:10:42 -0000	1.1.2.1
@@ -16,8 +16,8 @@
 } -errors {
 }
 
-# Checking swa privilege over lors-central
-lors_central::is_swa
+# Checking privilege over lors-central
+lors_central::check_permissions
 
 set lorsm_instance_id [db_string get_lorsm_instance_id { 
     select lorsm_instance_id from ims_cp_manifest_class where man_id = :man_id and community_id = :community_id
Index: openacs-4/packages/lors-central/www/images/admin.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lors-central/www/images/admin.gif,v
diff -u -r1.1.2.1 -r1.1.2.2
Binary files differ
Index: openacs-4/packages/lorsm/lorsm.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/lorsm.info,v
diff -u -r1.6 -r1.6.2.1
--- openacs-4/packages/lorsm/lorsm.info	24 Feb 2005 13:33:21 -0000	1.6
+++ openacs-4/packages/lorsm/lorsm.info	13 Jun 2005 15:10:42 -0000	1.6.2.1
@@ -8,13 +8,13 @@
     <singleton-p>f</singleton-p>
     <auto-mount>lorsm</auto-mount>
 
-    <version name="0.6d2" url="http://openacs.org/repository/download/apm/lorsm-0.6d2.apm">
+    <version name="0.7d" url="http://openacs.org/repository/download/apm/lorsm-0.7d.apm">
         <owner url="mailto:ernieg@mm.st">Ernie Ghiglione</owner>
         <summary>Application to manage the services from the Learning Object Repository. </summary>
-        <release-date>2005-01-19</release-date>
+        <release-date>2005-05-26</release-date>
         <description format="text/html">This application manages the services from the Learning Object Repository: upload courses, manage and create metadata, delete resources and courses. </description>
 
-        <provides url="lorsm" version="0.6d2"/>
+        <provides url="lorsm" version="0.7d"/>
         <requires url="lors" version="0.4d"/>
         <requires url="views" version="0.1d"/>
 
Index: openacs-4/packages/lorsm/catalog/lorsm.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/catalog/lorsm.en_US.ISO-8859-1.xml,v
diff -u -r1.6 -r1.6.2.1
--- openacs-4/packages/lorsm/catalog/lorsm.en_US.ISO-8859-1.xml	17 May 2005 17:03:39 -0000	1.6
+++ openacs-4/packages/lorsm/catalog/lorsm.en_US.ISO-8859-1.xml	13 Jun 2005 15:10:43 -0000	1.6.2.1
@@ -682,6 +682,7 @@
   <msg key="lt_Were_sorry_but_it_app">We're sorry, but it appears that you do not have the permission to perform this operation.</msg>
   <msg key="lt_Whether_copyright_or_">Whether copyright or other restrictions apply</msg>
   <msg key="lt_Whether_use_of_the_re">Whether use of the resource requires payment</msg>
+  <msg key="lt_With_Bottom_Navigatio">With Bottom Navigation Bar</msg>
   <msg key="lt_Without_LORSM_Index_S">Without LORSM Index Style</msg>
   <msg key="lt_You_are_about_to_add_">You are about to add %course_name% to your class.</msg>
   <msg key="lt_You_can_add_courses_a">You can add courses already existing in the repository</msg>
@@ -786,6 +787,7 @@
   <msg key="Size_1">Size</msg>
   <msg key="Source">Source:</msg>
   <msg key="Source_1">Source</msg>
+  <msg key="Start">Begin with the Course</msg>
   <msg key="Start_Course">Start Course</msg>
   <msg key="Status">Status:</msg>
   <msg key="Status_1">Status</msg>
@@ -845,4 +847,7 @@
   <msg key="Yes">Yes</msg>
   <msg key="You_can">You can</msg>
   <msg key="Your_Stats">Your Stats:</msg>
+  <msg key="Default_delivery">Default delivery?</msg>
+  <msg key="SCORM_session">SCORM session</msg>
+  <msg key="Sesion_Runtime_Data">Sesion_Runtime_Data</msg>
 </message_catalog>
Index: openacs-4/packages/lorsm/lib/user-lorsm.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/lib/user-lorsm.tcl,v
diff -u -r1.8 -r1.8.2.1
--- openacs-4/packages/lorsm/lib/user-lorsm.tcl	17 May 2005 17:03:39 -0000	1.8
+++ openacs-4/packages/lorsm/lib/user-lorsm.tcl	13 Jun 2005 15:10:43 -0000	1.8.2.1
@@ -15,60 +15,123 @@
 } -errors {
 }
 
+set user_id [ad_conn user_id]
+set community_id [dotlrn_community::get_community_id]
+
+set lors_central_package_id [apm_package_id_from_key "lors-central"]
+set lors_central_url [apm_package_url_from_id $lors_central_package_id]
+
+
+set elements_list {
+    course_name {
+	label "[_ lorsm.Course_Name_1]"
+	display_template {
+	    @d_courses.course_url;noquote@ 
+	    <if @d_courses.admin_p@>
+	    <i>
+            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            <a href="${lors_central_url}one-course?item_id=@d_courses.item_id@">[_ lors-central.add_mat]</a>
+            </i>
+	    </if> 
+	}
+	html { width 70% }
+    }
+    subject {
+	label "[_ lorsm.Subject]"
+	display_eval {[dotlrn_community::get_community_name $community_id]}
+	html { align center width 20% }
+	link_url_eval {[dotlrn_community::get_community_url $community_id]}
+	link_html {title "[_ lorsm.Access_Course]"}
+    }
+    last_viewed {
+	label "[_ lorsm.Last_Viewed_On]"
+	html { align center width 10% }
+	display_eval {[lc_time_fmt $last_viewed "%x"]}
+    }
+    viewed_percent {
+	label "[_ lorsm._Viewed]"
+	html { align right }
+	display_eval {[lc_numeric $viewed_percent "%.2f"]}
+    }
+}
+
+
+if { ![string equal $lors_central_package_id 0] && ![empty_string_p $community_id] } {
+    if { [lors_central::check_inst -user_id $user_id -community_id $community_id] } {
+	append elements_list " 
+	grant_permissions {
+	    label \"[_ lors-central.grant_permissions]\"
+	    display_template {
+                <center>
+		<a href=\"${lors_central_url}lc-admin/grant-user-list?man_id=@d_courses.item_id@&creation_user=@d_courses.creation_user@\">[_ lors-central.manage]</a>
+		</center>
+	    }
+	}"
+    }
+}
+
+
 template::list::create \
     -name d_courses \
     -multirow d_courses \
     -html {width 100%} \
     -key man_id \
     -no_data "[_ lorsm.No_Courses]" \
-    -elements {
-        course_name {
-            label "[_ lorsm.Course_Name_1]"
-	    display_template {@d_courses.course_url;noquote@}
-	    html { width 70% }
-        }
-        subject {
-            label "[_ lorsm.Subject]"
-            display_eval {[dotlrn_community::get_community_name $community_id]}
-	    html { align center width 20% }
-            link_url_eval {[dotlrn_community::get_community_url $community_id]}
-            link_html {title "[_ lorsm.Access_Course]"}
-        }
-        last_viewed {
-            label "[_ lorsm.Last_Viewed_On]"
-            html { align center width 10% }
-            display_eval {[lc_time_fmt $last_viewed "%x"]}
-        }
-        viewed_percent {
-            label "[_ lorsm._Viewed]"
-            html { align right }
-            display_eval {[lc_numeric $viewed_percent "%.2f"]}
-        }
-    }
+    -elements $elements_list
 
-set user_id [ad_conn user_id]
-set community_id [dotlrn_community::get_community_id]
 set extra_query ""
 if {![empty_string_p $community_id]} {
     set extra_query "and cpmc.community_id = :community_id"
 }
 foreach package $package_id {
-    db_multirow -extend { ims_md_id last_viewed total_item_count viewed_item_count viewed_percent course_url } -append d_courses select_d_courses { } {
+    db_multirow -extend { admin_p item_id ims_md_id last_viewed total_item_count viewed_item_count viewed_percent course_url } -append d_courses select_d_courses { } {
         set ims_md_id $man_id
 	if { [string eq $format_name "default"] } {
-			set course_url "<a href=\"[site_node::get_url_from_object_id -object_id $lorsm_instance_id]${folder_name}/?[export_vars man_id]\" title=\"[_ lorsm.Access_Course]\">$course_name</a>" 
+
+            # micheles
+   	    set context [site_node::get_url_from_object_id -object_id $lorsm_instance_id]
+	    if ([db_0or1row query "
+    		select
+           		cpr.man_id,
+           		cpr.res_id,
+           		case
+              			when upper(scorm_type) = 'SCO' then 'delivery-scorm'
+              			else 'delivery'
+           		end as needscorte
+    			from
+           			ims_cp_resources cpr
+    			where
+				cpr.man_id = :man_id 
+			order by cpr.scorm_type desc limit 1"
+		]) {
+
+		set delivery_method $needscorte
+		ns_log Debug "lorsm - $needscorte"
+
+		set course_url "<a href=\"$context$delivery_method/?[export_vars man_id]\" title=\"[_ lorsm.Access_Course]\">$course_name</a>" 
+		ns_log Debug "lorsm - course_url: $course_url"
+	    } else {
+		set course_url "NO RESOURCES ERROR"
+	    } 
 	} else {
-			set course_url "<a href=\"[site_node::get_url_from_object_id -object_id $lorsm_instance_id]${folder_name}/?[export_vars man_id]\" title=\"[_ lorsm.Access_Course]\" target=_blank>$course_name</a>" 
+	    set course_url "<a href=\"[site_node::get_url_from_object_id -object_id $lorsm_instance_id]${folder_name}/?[export_vars man_id]\" title=\"[_ lorsm.Access_Course]\" target=_blank>$course_name</a>" 
 	}
+
         # DEDS: these are expensive
         # and for demo purposes only
         db_0or1row get_last_viewed { }
         set all_items [db_list get_total_items { }]
         set total_item_count [llength $all_items]
         set viewed_items [db_list get_viewed_items { }]
         set viewed_item_count [llength $viewed_items]
+
+        ns_log Debug "lorsm - viewed_item_count: $viewed_item_count"
+
         set viewed_percent [expr [expr $viewed_item_count * 1.00] / $total_item_count * 100]
+	set item_id [db_string get_item_id { }]
+	set admin_p [permission::permission_p -party_id $user_id -object_id $item_id -privilege "admin"]
     }
 }
 
 
+
Index: openacs-4/packages/lorsm/lib/user-lorsm.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/lib/user-lorsm.xql,v
diff -u -r1.1 -r1.1.2.1
--- openacs-4/packages/lorsm/lib/user-lorsm.xql	17 May 2005 17:23:27 -0000	1.1
+++ openacs-4/packages/lorsm/lib/user-lorsm.xql	13 Jun 2005 15:10:43 -0000	1.1.2.1
@@ -9,6 +9,9 @@
            cp.identifier,
            cp.version,
            cp.fs_package_id,
+	   case when cp.fs_package_id is null then 't'
+		else 'f'
+	   end as lorsm_p,
            cp.folder_id,
 	   acs.creation_user,
 	   acs.creation_date,
@@ -71,4 +74,15 @@
   </querytext>
 </fullquery>
 
+<fullquery name="get_item_id">
+  <querytext>
+	select 
+		item_id 
+	from 
+		cr_revisions 
+	where 
+		revision_id = :man_id
+  </querytext>
+</fullquery>
+
 </queryset>
\ No newline at end of file
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `openacs-4/packages/lorsm/sql/postgresql/lorsm-cmi-create.sql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `openacs-4/packages/lorsm/sql/postgresql/lorsm-cmi-drop.sql'.
Fisheye: No comparison available.  Pass `N' to diff?
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.3 -r1.3.2.1
--- openacs-4/packages/lorsm/sql/postgresql/lorsm-create.sql	17 May 2005 17:03:39 -0000	1.3
+++ openacs-4/packages/lorsm/sql/postgresql/lorsm-create.sql	13 Jun 2005 15:10:43 -0000	1.3.2.1
@@ -109,3 +109,4 @@
 
 
 \i lorsm-packages.sql
+\i lorsm-cmi-create.sql
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `openacs-4/packages/lorsm/sql/postgresql/lorsm-drop.sql'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/lorsm/tcl/lorsm-install-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/tcl/lorsm-install-procs.tcl,v
diff -u -r1.5 -r1.5.2.1
--- openacs-4/packages/lorsm/tcl/lorsm-install-procs.tcl	17 May 2005 17:03:39 -0000	1.5
+++ openacs-4/packages/lorsm/tcl/lorsm-install-procs.tcl	13 Jun 2005 15:10:56 -0000	1.5.2.1
@@ -52,16 +52,23 @@
 
     }
 
-	set pretty_name "[_ lorsm.Classic_Style]"
-	# Insert default values for the course presentation formats
-	db_dml create_default_format {
-		insert into lorsm_course_presentation_formats values (-1,:pretty_name,'default','delivery')
-	}
+    # by the moment we only have tree format presentations and there is no
+    # way (by the moment) to add more dinamically, so we create them with an non dynamic id
 
-	set pretty_name "[_ lorsm.lt_Without_LORSM_Index_S]"
-	db_dml create_no_index_format {
-		insert into lorsm_course_presentation_formats values (-2,:pretty_name,'without_index','delivery-no-index')
-	}
+    set pretty_name "[_ lorsm.Classic_Style]"
+    # Insert default values for the course presentation formats
+    db_dml create_default_format {
+	insert into lorsm_course_presentation_formats values (-1,:pretty_name,'default','delivery')
+    }
+    
+    set pretty_name "[_ lorsm.lt_Without_LORSM_Index_S]"
+    db_dml create_no_index_format {
+	insert into lorsm_course_presentation_formats values (-2,:pretty_name,'without_index','delivery-no-index')
+    }
+    
+    set pretty_name "[_ lorsm.lt_With_Bottom_Navigatio]"
+    db_dml create_no_index_format {
+	insert into lorsm_course_presentation_formats values (-3,:pretty_name,'bottom_navigation_bar','delivery-bottom-bar')
+    }
 
-
 }
Index: openacs-4/packages/lorsm/tcl/lorsm-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/tcl/lorsm-procs.tcl,v
diff -u -r1.6 -r1.6.2.1
--- openacs-4/packages/lorsm/tcl/lorsm-procs.tcl	17 May 2005 17:03:39 -0000	1.6
+++ openacs-4/packages/lorsm/tcl/lorsm-procs.tcl	13 Jun 2005 15:10:56 -0000	1.6.2.1
@@ -339,7 +339,7 @@
 	db_foreach organizations {
 		select 
 		org.org_id,
-		org.title as org_title,
+		org.org_title as org_title,
 		org.hasmetadata,
 		tree_level(o.tree_sortkey) as indent
 		from
@@ -355,21 +355,21 @@
 		db_foreach sql {		   
 			SELECT
 			(tree_level(tree_sortkey) - :indent) as indent,
-			i.item_id,
-			i.title as item_title
+			i.ims_item_id,
+			i.item_title as item_title
 			FROM 
 			acs_objects o, ims_cp_items i
 			WHERE 
 			o.object_type = 'ims_item'
 			AND
 			i.org_id = :org_id
 			AND
-			o.object_id = i.item_id
+			o.object_id = i.ims_item_id
 			AND 
 			EXISTS
 			(select 1
 			 from acs_object_party_privilege_map p
-			 where p.object_id = i.item_id 
+			 where p.object_id = i.ims_item_id 
 			 and p.party_id = :user_id
 			 and p.privilege = 'read')
 
@@ -395,9 +395,9 @@
 
 	set url2 "[db_string select_folder_key {select key from fs_folders where folder_id = :folder_id}]/"
 
-	set href [db_string href "select href from ims_cp_resources r, ims_cp_items_to_resources ir where ir.item_id = :item_id and ir.res_id = r.res_id" -default ""]
+	set href [db_string href "select href from ims_cp_resources r, ims_cp_items_to_resources ir where ir.ims_item_id = :item_id and ir.res_id = r.res_id" -default ""]
 
-	db_1row item_info "select title from ims_cp_items where item_id = :item_id"
+	db_1row item_info "select item_title from ims_cp_items where ims_item_id = :item_id"
 
 	set fs_item_id [fs::get_item_id -folder_id $folder_id -name $href]
 
@@ -442,7 +442,7 @@
 }
 
 ad_proc -public init { urlvar rootvar {content_root ""} {template_root ""} {context "public"} {rev_id ""} {content_type ""} } {
-    
+
     upvar $urlvar url $rootvar root_path 
     
     variable ims_item_id
@@ -460,14 +460,15 @@
     db_0or1row get_item_id ""
     db_0or1row get_item_type ""
     # No item found, so do not handle this request
-    if { ![info exists item_id] } { 
-	db_0or1row get_template_info "" -column_array item_info
-	
-	if { ![info exists item_info] } { 
-	    ns_log notice "content::init: no content found for url $url"
-	    return 0 
-	}
-    }
+    if { ![exists_and_not_null item_id] } { 
+
+		db_0or1row get_template_info "" -column_array item_info
+		
+		if { ![info exists item_info] } { 
+			ns_log warning "lorsm - init: no content found for url $url"
+			return 0 
+		}
+    } 
     
     variable item_url
     set item_url $url
@@ -476,17 +477,18 @@
 	set content_type $item_info(content_type)
     }
     
+    ns_log debug "lorsm - init: urlvar rootvar rev_id item_id ims_item_id- $urlvar $rootvar $rev_id $item_id $ims_item_id"
+    
     # Make sure that a live revision exists
     if { [empty_string_p $rev_id] } {
-
-       set live_revision [db_string get_live_revision ""]
+       set live_revision [db_string get_live_revision "" -default ""]
 	if { [template::util::is_nil live_revision] } {
-	    ns_log notice "content::init: no live revision found for content item $item_id"
+	    ns_log warning "lorsm - init: no live revision found for content item $item_id"
 	    return 0
 	}
 	set revision_id $live_revision
     } else {
-	set revision_id $rev_id
+		set revision_id $rev_id
     }
 
     variable template_path
@@ -495,7 +497,7 @@
     set template_found_p [db_0or1row get_template_url "" -column_array info]
     
     if { !$template_found_p || [string equal $info(template_url) {}] } { 
-	ns_log notice "content::init: No template found to render content item $item_id in context '$context'"
+	ns_log warning "lorsm - init: No template found to render content item $item_id in context '$context'"
 	return 0
     }
     
@@ -540,7 +542,7 @@
 
 set item_id $ims_item_id
     if { [template::util::is_nil item_id] } {
-	ns_log warning "content::get_content: No active item in content::get_content"
+	ns_log warning "lorsm - get_content: No active item in lorsm - get_content"
 	return
     }
 
@@ -549,15 +551,15 @@
     set revision_id [db_string get_revision ""]
 
     if { [template::util::is_nil revision_id] } {
-	ns_log notice "content::get_content: No live revision for item $item_id"
+	ns_log warning "lorsm - get_content: No live revision for item $item_id"
 	return
     }
 
     # Get the mime type, decide if we want the text
     set mime_type [db_string get_mime_type ""]
   
     if { [template::util::is_nil mime_type] } {
-	ns_log notice "content::get_content: No such revision: $revision_id"
+	ns_log warning "lorsm - get_content: No such revision: $revision_id"
 	return
     }  
 
@@ -576,13 +578,13 @@
 }
 
 ad_proc -public lorsm::get_root_folder_id { } { } {
-    return [db_string get_root_folder { select folder_id from cr_folders where label = 'LORSM Root Folder' }]
+    return [db_string get_root_folder { select folder_id from cr_folders where label = 'LORSM Root Folder' } -default ""]
 }    
 
 ad_proc -public lorsm::get_folder_id { 
     -name:required
 } {
-    return [db_string get_root_folder { select folder_id from cr_folders where label = :name }]
+    return [db_string get_root_folder { select folder_id from cr_folders where label = :name } -default ""]
 }    
 
 ad_proc -public lorsm::get_items_indent {
Index: openacs-4/packages/lorsm/tcl/lorsm-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/tcl/lorsm-procs.xql,v
diff -u -r1.2 -r1.2.2.1
--- openacs-4/packages/lorsm/tcl/lorsm-procs.xql	17 May 2005 17:03:39 -0000	1.2
+++ openacs-4/packages/lorsm/tcl/lorsm-procs.xql	13 Jun 2005 15:10:56 -0000	1.2.2.1
@@ -69,14 +69,6 @@
       </querytext>
 </fullquery>
 
-<fullquery name="lorsm::init_all.get_live_revision">      
-      <querytext>
-
-    select live_revision from cr_items where item_id = :item_id
-
-      </querytext>
-</fullquery>
-
 <fullquery name="lorsm::get_root_folder_id.get_root_folder">      
       <querytext>
          select folder_id from cr_folders where label = 'LORSM Root Folder'
Index: openacs-4/packages/lorsm/templates/lorsm-default.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/templates/lorsm-default.tcl,v
diff -u -r1.7 -r1.7.2.1
--- openacs-4/packages/lorsm/templates/lorsm-default.tcl	17 May 2005 17:03:40 -0000	1.7
+++ openacs-4/packages/lorsm/templates/lorsm-default.tcl	13 Jun 2005 15:10:56 -0000	1.7.2.1
@@ -30,6 +30,13 @@
 
 set imsitem_id [lorsm::get_ims_item_id] 
 
+set html_document_p 0
+if { [string eq $content(mime_type) "text/html"] && [regexp -nocase {<html>} $text match] } {
+	set html_document_p 1
+	# parent window
+ 	regsub -all -nocase {target=.?(_top)} $text {target="content"} text
+}
+
 # We set all this blank variables in the case that the ims_item does
 # not have a resource id
 
Index: openacs-4/packages/lorsm/templates/lorsm-no-index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/templates/lorsm-no-index.tcl,v
diff -u -r1.4 -r1.4.2.1
--- openacs-4/packages/lorsm/templates/lorsm-no-index.tcl	26 Apr 2005 16:48:29 -0000	1.4
+++ openacs-4/packages/lorsm/templates/lorsm-no-index.tcl	13 Jun 2005 15:10:56 -0000	1.4.2.1
@@ -62,7 +62,9 @@
 		} else {
 			set viewed_item_id [lindex $item_list [expr [lsearch -exact $item_list $viewed_item_id] - 1]]
 		}
-		lorsm::record_view $viewed_item_id $man_id
+		if { [lsearch -exact $item_list $viewed_item_id] >= 0 } {
+		    lorsm::record_view $viewed_item_id $man_id
+		}
 
 		# Student tracking
 		set package_id [ad_conn package_id]
Index: openacs-4/packages/lorsm/www/course-add-3.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/Attic/course-add-3.tcl,v
diff -u -r1.9 -r1.9.2.1
--- openacs-4/packages/lorsm/www/course-add-3.tcl	17 May 2005 17:03:40 -0000	1.9
+++ openacs-4/packages/lorsm/www/course-add-3.tcl	13 Jun 2005 15:10:56 -0000	1.9.2.1
@@ -435,20 +435,13 @@
                 set res_files [lors::imsmd::getResource -node $resource -att files]
                 set res_scormtype [lors::imsmd::getAtt $resource adlcp:scormtype]
 
-### Addition provided by e-lane people to integrate on deployment with 
-# assessment package.
+                # Integration with other packages
+                # This callback gets the href of the imported content (if some package imported it)
+                set res_href_tmp [callback -catch lors::import -res_type $res_type -res_href $res_href -tmp_dir $tmp_dir -community_id $community_id]
+                if {![empty_string_p $res_href_tmp]} {
+                    set res_href $res_href_tmp
+                }
 
-# In the future we need to come up with a nicier way to do this as
-# this is rather a dirty hack for now. 
-
-# 		if {$res_type == "imsqti_xmlv1p0" || $res_type == "imsqti_xmlv1p1" || $res_type =="imsqti_item_xmlv2p0"} {
-# 		    set res_href [lors::assessment::ims_qti_register_assessment \
-# 	    			-tmp_dir $tmp_dir/$res_href \
-# 				-community_id $community_id]
-# 		}
-
-## End integration showcase                
-		
                 set resource_id [lors::imscp::resource_add \
                                      -man_id $man_id \
                                      -identifier $res_identifier \
Index: openacs-4/packages/lorsm/www/course-structure.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/Attic/course-structure.tcl,v
diff -u -r1.7 -r1.7.2.1
--- openacs-4/packages/lorsm/www/course-structure.tcl	17 May 2005 17:03:40 -0000	1.7
+++ openacs-4/packages/lorsm/www/course-structure.tcl	13 Jun 2005 15:10:56 -0000	1.7.2.1
@@ -101,7 +101,7 @@
 
     set total_items [db_string items_count {select count(*) from ims_cp_items where org_id=:org_id} -default 0]
     # We get the indent of the items in this org_id
-    set indent_list [lors_central::get_items_indent -org_id $org_id]
+    set indent_list [lorsm::get_items_indent -org_id $org_id]
     template::util::list_of_lists_to_array $indent_list indent_array
 
 
Index: openacs-4/packages/lorsm/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/index.tcl,v
diff -u -r1.7 -r1.7.2.1
--- openacs-4/packages/lorsm/www/index.tcl	17 May 2005 17:03:40 -0000	1.7
+++ openacs-4/packages/lorsm/www/index.tcl	13 Jun 2005 15:10:56 -0000	1.7.2.1
@@ -35,7 +35,6 @@
 lappend actions  "[_ lorsm.lt_Search_Learning_Objec]" [export_vars -base "/search"] "[_ lorsm.lt_Search_for_Learninng_]"
 lappend actions  "[_ lorsm.Available_Courses]" [export_vars -base "shared/"] "[_ lorsm.lt_View_Available_Course]"
  
-
 template::list::create \
     -name d_courses \
     -multirow d_courses \
@@ -48,20 +47,21 @@
             label "[_ lorsm.Available_Courses]"
 	    display_template {@d_courses.course_url;noquote@}
             display_col course_name
+            link_html {title "Access Course"}
         }
         hasmetadata {
             label "[_ lorsm.Metadata_1]"
             display_template {
 		<if @d_courses.lorsm_p@>
 		<center>
-                  <a href=md/?ims_md_id=@d_courses.ims_md_id@ title="[_ lorsm.See_metadata]">@d_courses.hasmetadata@</a>
-                </center>
-                </if>
-                <else>
+		<a href=md/?ims_md_id=@d_courses.ims_md_id@ title="[_ lorsm.See_metadata]">@d_courses.hasmetadata@</a>
+		                </center>
+		                </if>
+		                <else>
 		   <center> @d_courses.hasmetadata@</center>
-                </else>
+		                </else>
 	    }
-        }
+	}
         isscorm {
             label "[_ lorsm.SCORM]"
 	    html { align center }
@@ -73,9 +73,22 @@
         istrackable {
             label "[_ lorsm.Tracking]"
             link_url_eval {tracking/?[export_vars man_id]}
-            link_html {title "[_ lorsm.lt_Track_Students_Progre]" class button}
+	    link_html {title "[_ lorsm.lt_Track_Students_Progre]" class button}
 	    html { align center }
         }
+        deliverymethod {
+            label "[_ lorsm.Default_delivery]"
+	    html { align center }
+        }
+        hasrtedata {
+            label "[_ lorsm.SCORM_session]"
+            display_template {
+		<if @d_courses.hasrtedata@>
+		<center>
+		<a href=tracking-rte/?man_id=@d_courses.man_id@ title="[_ lorsm.Sesion_Runtime_Data]">@d_courses.hasrtedata@</a>
+		</if>
+	    }
+        }
         creation_user {
             label "[_ lorsm.Owner]"
             display_eval {[person::name -person_id $creation_user]}
@@ -112,7 +125,7 @@
            cp.identifier,
            cp.version,
            case
-              when hasmetadata = 't' then 'Yes'
+              when cp.hasmetadata = 't' then 'Yes'
               else 'No'
            end as hasmetadata,
            case 
@@ -136,10 +149,30 @@
            case
               when cpmc.istrackable = 't' then 'Yes'
              else 'No'
-           end as istrackable
-              
+           end as istrackable,
+           -- micheles
+           -- addition for rte stuff
+--	   'Click here' as hasrtedata,   
+ 	   case
+               when 
+                   upper(scorm_type) = 'SCO' 
+	       then 'Click here'
+               else ''
+           end as hasrtedata,
+ 	   case
+               when 
+                   upper(scorm_type) = 'SCO' 
+	       then 'delivery-scorm'
+               else 'delivery'
+           end as deliverymethod
+
     from
-           ims_cp_manifests cp, acs_objects acs, ims_cp_manifest_class cpmc, lorsm_course_presentation_formats pf
+           acs_objects acs, 
+           ims_cp_manifest_class cpmc, 
+           lorsm_course_presentation_formats pf,
+           -- micheles
+           ims_cp_manifests cp left join (select man_id, max(scorm_type) as scorm_type from ims_cp_resources group by man_id ) as cpr using (man_id) 
+
     where 
            cp.man_id = acs.object_id
     and
@@ -151,11 +184,13 @@
     and    
            cp.man_id in (select cr.live_revision
                          from cr_items cr where content_type = 'ims_manifest_object')
-    order by acs.creation_date desc
+
+    order by acs.creation_date desc, cp.man_id asc
+
 } {
     set ims_md_id $man_id
     if { [string eq $format_name "default"] } { 
-	set course_url "<a href=\"${folder_name}/?[export_vars man_id]\" title=\"[_ lorsm.Access_Course]\">$course_name</a>"
+	set course_url "<a href=\"$deliverymethod/?[export_vars man_id]\" title=\"[_ lorsm.Access_Course]\">$course_name</a>"
     } else {
 	set course_url "<a href=\"${folder_name}/?[export_vars man_id]\" title=\"[_ lorsm.Access_Course]\" target=_blank>$course_name</a>"
     }
Index: openacs-4/packages/lorsm/www/delivery/record-view.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery/record-view.tcl,v
diff -u -r1.2 -r1.2.2.1
--- openacs-4/packages/lorsm/www/delivery/record-view.tcl	17 May 2005 17:03:40 -0000	1.2
+++ openacs-4/packages/lorsm/www/delivery/record-view.tcl	13 Jun 2005 15:10:56 -0000	1.2.2.1
@@ -64,6 +64,12 @@
     }
 }
 
+# get already imported data (like an assessment)
+# it normally points relatively to the correct location in some parent folder
+if {[regexp {^\.\.} $href]} {
+    ad_returnredirect $href
+}
+
 # If no cr_item_id, this item is probably a folder
 # Else deliver the page
 
Index: openacs-4/packages/lorsm/www/delivery-no-index/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery-no-index/index.tcl,v
diff -u -r1.3 -r1.3.2.1
--- openacs-4/packages/lorsm/www/delivery-no-index/index.tcl	17 May 2005 21:48:05 -0000	1.3
+++ openacs-4/packages/lorsm/www/delivery-no-index/index.tcl	13 Jun 2005 15:10:56 -0000	1.3.2.1
@@ -103,5 +103,5 @@
 }
 
 if { !$viewed_item_count } {
-	set first_item_id [lindex [lorsm::get_item_list $man_id $user_id] 1]
+	set first_item_id [lindex [lorsm::get_item_list $man_id $user_id] 0]
 }
Index: openacs-4/packages/lorsm/www/delivery-no-index/record-view.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery-no-index/record-view.tcl,v
diff -u -r1.2 -r1.2.2.1
--- openacs-4/packages/lorsm/www/delivery-no-index/record-view.tcl	17 May 2005 21:48:05 -0000	1.2
+++ openacs-4/packages/lorsm/www/delivery-no-index/record-view.tcl	13 Jun 2005 15:10:56 -0000	1.2.2.1
@@ -51,6 +51,11 @@
 
 set cr_item_id [lors::cr::get_item_id -folder_id $content_root -name $href]
 
+# get already imported data (like an assessment)
+# it normally points relatively to the correct location in some parent folder
+if {[regexp {^\.\.} $href]} {
+    ad_returnredirect $href
+}
 
 # If no fs_item_id, this item is probably a folder
 # Else deliver the page
Index: openacs-4/packages/lorsm/www/delivery-no-index/view/index.vuh
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery-no-index/view/index.vuh,v
diff -u -r1.2 -r1.2.2.1
--- openacs-4/packages/lorsm/www/delivery-no-index/view/index.vuh	17 May 2005 21:48:05 -0000	1.2
+++ openacs-4/packages/lorsm/www/delivery-no-index/view/index.vuh	13 Jun 2005 15:10:56 -0000	1.2.2.1
@@ -20,6 +20,7 @@
 # Get the paths
 set the_root [ns_info pageroot]
 set the_url [ad_conn path_info]
+
 set content_type "content_revision"
 
 set content_root [lindex [nsv_get delivery_vars [ad_conn session_id]] 0]
Index: openacs-4/packages/lorsm/www/doc/index.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/doc/index.html,v
diff -u -r1.3 -r1.3.2.1
--- openacs-4/packages/lorsm/www/doc/index.html	17 May 2005 17:03:41 -0000	1.3
+++ openacs-4/packages/lorsm/www/doc/index.html	13 Jun 2005 15:10:57 -0000	1.3.2.1
@@ -32,6 +32,8 @@
 
   <li><a href="creating_package.html">Authoring/Creating Course Packages</a></li>
 
+  <li><a href="lorsm-rte.html">SCORM delivery in LORS</a></li>
+
 </ol>
 <p>
 <hr size="1">
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `openacs-4/packages/lorsm/www/doc/lorsm-rte.html'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/lorsm/www/doc/images/scorm1.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/doc/images/Attic/scorm1.png,v
diff -u -r1.1.2.1 -r1.1.2.2
Binary files differ
Index: openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.adp,v
diff -u -r1.3 -r1.3.4.1
--- openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.adp	29 Nov 2004 17:28:23 -0000	1.3
+++ openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.adp	13 Jun 2005 15:10:57 -0000	1.3.4.1
@@ -1,3 +1,17 @@
+<if @use_lc_p@>
+  <ul>
+    <li>
+      <a href="@lors_central_url@">#lorsm-portlet.Manage_LORS#</a>
+    </li>
+    <li>
+      <a href="@lors_central_url@course-add">#lorsm-portlet.Add_a_Course#</a>
+    </li>
+    <li>
+      <a href="/search">#lorsm-portlet.lt_Search_Learning_Objec#</a>
+    </li>
+  </ul>
+</if>
+<else>
 <ul>
   <li>
     <a href="@url@">#lorsm-portlet.Manage_LORS#</a>
@@ -9,4 +23,4 @@
     <a href="/search">#lorsm-portlet.lt_Search_Learning_Objec#</a>
   </li>
 </ul>
-
+</else>
Index: openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.tcl,v
diff -u -r1.3 -r1.3.2.1
--- openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.tcl	17 May 2005 17:53:36 -0000	1.3
+++ openacs-4/packages/lorsm-portlet/www/lorsm-admin-portlet.tcl	13 Jun 2005 15:10:59 -0000	1.3.2.1
@@ -10,6 +10,17 @@
     
 }
 
+
+set lors_central_package_id [apm_package_id_from_key "lors-central"]
+set lors_central_url [apm_package_url_from_id $lors_central_package_id]
+
+if { ![string equal $lors_central_package_id 0] } {
+    set use_lc_p [parameter::get -parameter "UploadUsingLorsCentralP" -package_id $lors_central_package_id]
+} else {
+    set use_lc_p 0
+}
+
+
 array set config $cf
 set list_of_package_ids $config(package_id)
 
@@ -23,3 +34,4 @@
 set url [lindex [site_node::get_url_from_object_id -object_id $package_id] 0]
 
 ad_return_template 
+
Index: openacs-4/packages/lorsm-portlet/www/lorsm-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm-portlet/www/lorsm-portlet.adp,v
diff -u -r1.2 -r1.2.4.1
--- openacs-4/packages/lorsm-portlet/www/lorsm-portlet.adp	4 Sep 2004 14:09:02 -0000	1.2
+++ openacs-4/packages/lorsm-portlet/www/lorsm-portlet.adp	13 Jun 2005 15:10:59 -0000	1.2.4.1
@@ -10,7 +10,6 @@
 
 </else>
 
-
 </if>
 <else>
   &nbsp;