Index: openacs-4/packages/curriculum/lib/admin-curriculums-tab.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/lib/admin-curriculums-tab.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/curriculum/lib/admin-curriculums-tab.adp	13 Jun 2003 11:44:33 -0000	1.1
@@ -0,0 +1,9 @@
+<table width="0">
+  <tr>
+    <td>
+      <tabstrip id="states"></tabstrip>
+    </td>
+  </tr>
+</table>
+
+<include src="admin-curriculums" state_id="@states.tab@" workflow_id="@workflow_id@" \>
Index: openacs-4/packages/curriculum/lib/admin-curriculums-tab.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/lib/admin-curriculums-tab.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/curriculum/lib/admin-curriculums-tab.tcl	13 Jun 2003 11:44:33 -0000	1.1
@@ -0,0 +1,32 @@
+ad_page_contract {
+
+    Curriculum admin page tabbed.
+
+    @author Ola Hansson (ola@polyxena.net)
+    @creation-date 2003-06-11
+    @cvs-id $Id: admin-curriculums-tab.tcl,v 1.1 2003/06/13 11:44:33 olah Exp $
+
+} {
+} -properties {
+    title:onevalue
+    context:onevalue
+}
+
+set title "Curriculum"
+set context {}
+
+# Create the tab strip that filters curriculums by workflow state.
+template::tabstrip create states -base_url [ad_conn url]
+
+# Workflow.
+set workflow_id [curriculum::get_instance_workflow_id]
+
+array set state_data [workflow::state::fsm::get_all_info -workflow_id $workflow_id]
+
+foreach state_id $state_data(state_ids) {
+    array set state $state_data($state_id)
+    template::tabstrip add_tab states $state(state_id) $state(pretty_name) $state(short_name)
+}
+template::tabstrip add_tab states any "Any" any
+
+ad_return_template
Index: openacs-4/packages/curriculum/lib/admin-curriculums.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/lib/admin-curriculums.adp,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/curriculum/lib/admin-curriculums.adp	10 Jun 2003 09:28:29 -0000	1.3
+++ openacs-4/packages/curriculum/lib/admin-curriculums.adp	13 Jun 2003 11:44:33 -0000	1.4
@@ -39,7 +39,7 @@
     <td width="15%">
       [WF Actions]
       <a href="curriculum-delete?@curriculums.curriculum_id_export@" onclick="return confirm('Are you sure you want to delete this curriculum?');" title="Delete">
-        <img src="../../shared/images/Delete16.gif" border="0" width="16" height="16">
+        <img src="/shared/images/Delete16.gif" border="0" width="16" height="16">
       </a>
     </td>
     <td width="5%">
@@ -84,7 +84,7 @@
     <td width="5%">
       <a href="element-enable?@curriculums.element_id_export@">Enable</a>
       <a href="element-delete?@curriculums.element_id_export@" onclick="return confirm('Are you sure you want to delete this element?');" title="Delete">
-        <img src="../../shared/images/Delete16.gif" border="0" width="16" height="16">
+        <img src="/shared/images/Delete16.gif" border="0" width="16" height="16">
       </a>
     </else>
     </td>
Index: openacs-4/packages/curriculum/lib/admin-curriculums.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/lib/admin-curriculums.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/curriculum/lib/admin-curriculums.tcl	3 Jun 2003 10:21:50 -0000	1.1
+++ openacs-4/packages/curriculum/lib/admin-curriculums.tcl	13 Jun 2003 11:44:33 -0000	1.2
@@ -9,17 +9,16 @@
 } {
 } -properties {
     state_id:onevalue
+    workflow_id:onevalue
 }
 # state_id is an integer or the string "any", provided as an <include> property.
+# workflow_id. Get this from an <include> property, also.
 
 # Scoping.
 set package_id [curriculum::conn package_id]
 
 permission::require_permission -object_id $package_id -privilege admin
 
-# Workflow.
-set workflow_id [curriculum::get_instance_workflow_id]
-
 # We might need this if we want to present statistics, see bug-tracker (we need it for this page, too).
 set initial_state_id [workflow::fsm::get_initial_state -workflow_id $workflow_id]
 
Index: openacs-4/packages/curriculum/lib/user-curriculums.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/lib/user-curriculums.adp,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/curriculum/lib/user-curriculums.adp	10 Jun 2003 09:28:29 -0000	1.5
+++ openacs-4/packages/curriculum/lib/user-curriculums.adp	13 Jun 2003 11:44:33 -0000	1.6
@@ -1,10 +1,10 @@
 <if @elements:rowcount@ not nil>
 <p>
   [
-  <a href="start-over">Refresh all curriculums</a>
+  <a href="@url@start-over">Refresh all curriculums</a>
 <if @logged_in_p@>
   |
-  <a href="remove-from-bar">Remove all curriculums</a>
+  <a href="@url@remove-from-bar">Remove all curriculums</a>
 </if>
   ]
 </p>
@@ -16,12 +16,12 @@
     <th width="15%">Options</th>
   </tr>
 </table>
-<br>
 <multiple name="elements">
+<br>
 <table bgcolor="#cccccc" border="0" cellpadding="2" cellspacing="0" width="100%">
   <tr>
     <td width="25%">
-      <a href="curriculum-ave?curriculum_id=@elements.curriculum_id@" title="Detailed information">@elements.curriculum_name@</a>
+      <a href="@url@curriculum-ave?curriculum_id=@elements.curriculum_id@" title="Detailed information">@elements.curriculum_name@</a>
     </td>
     <td width="50%">@elements.curriculum_desc@</td>
     <td width="10%">
@@ -31,19 +31,19 @@
     </td>
     <td width="15%">
       <if @elements.completed_p@>
-        <a href="add-to-bar?curriculum_id=@elements.curriculum_id@&refresh_p=1">Retake</a>
+        <a href="@url@add-to-bar?curriculum_id=@elements.curriculum_id@&refresh_p=1">Retake</a>
       </if>
       <else>
-        <a href="add-to-bar?curriculum_id=@elements.curriculum_id@">Resume</a>
+        <a href="@url@add-to-bar?curriculum_id=@elements.curriculum_id@">Resume</a>
       </else>
       </if>
       <else>
         <if @elements.completed_p@>Completed</if><else>Ongoing</else>
     </td>
     <td width="15%">
-        <a href="start-over?curriculum_id=@elements.curriculum_id@">Refresh</a>
+        <a href="@url@start-over?curriculum_id=@elements.curriculum_id@">Refresh</a>
         |
-        <a href="remove-from-bar?curriculum_id=@elements.curriculum_id@">
+        <a href="@url@remove-from-bar?curriculum_id=@elements.curriculum_id@">
           <if @elements.completed_p@>Remove</if><else>Drop</else>
         </a>
       </else>
@@ -52,7 +52,7 @@
       <if @elements.completed_p@>Completed</if><else>Ongoing</else>
     </td>
     <td width="15%">
-      <a href="start-over?curriculum_id=@elements.curriculum_id@">Refresh</a>
+      <a href="@url@start-over?curriculum_id=@elements.curriculum_id@">Refresh</a>
     </else>
     </td>
   </tr>
@@ -65,7 +65,7 @@
   <if @elements.groupnum@ even><tr bgcolor="#eeeedd"></if><else><tr bgcolor="#eeeeee"></else>
     <td>
       <li>
-        <a href="element-ave?curriculum_id=@elements.curriculum_id@&element_id=@elements.element_id@" title="Detailed information">@elements.element_name@</a>
+        <a href="@url@element-ave?curriculum_id=@elements.curriculum_id@&element_id=@elements.element_id@" title="Detailed information">@elements.element_name@</a>
       </li>
     </td>
     <td width="50%">@elements.element_desc;noquote@</td>
@@ -75,7 +75,7 @@
     </td>
     <td width="15%">
       <if @elements.external_p@>
-        <a href="ext?curriculum_id=@elements.curriculum_id@&element_id=@elements.element_id@&position=@position@">
+        <a href="@url@ext?curriculum_id=@elements.curriculum_id@&element_id=@elements.element_id@&position=@position@">
       </if>
       <else><a href="@elements.url@"></else>Revisit</a>
     </if>
@@ -84,7 +84,7 @@
     </td>
     <td width="15%">
       <if @elements.external_p@>
-        <a href="ext?curriculum_id=@elements.curriculum_id@&element_id=@elements.element_id@&position=@position@">
+        <a href="@url@ext?curriculum_id=@elements.curriculum_id@&element_id=@elements.element_id@&position=@position@">
       </if>
       <else><a href="@elements.url@"></else>Visit</a>
     </else>
@@ -102,11 +102,10 @@
     </td>
   </tr>
 </table>
-<br>
 </multiple>
 </if>
-<if @elements.curriculum_id@ nil>
+<else>
 <li>
   <i>No published curriculums</i>
 </li>
-</if>
+</else>
Index: openacs-4/packages/curriculum/lib/user-curriculums.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/lib/user-curriculums.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/curriculum/lib/user-curriculums.tcl	10 Jun 2003 09:28:29 -0000	1.2
+++ openacs-4/packages/curriculum/lib/user-curriculums.tcl	13 Jun 2003 11:44:33 -0000	1.3
@@ -11,16 +11,18 @@
     logged_in_p:onevalue
 }
 
+set package_id [curriculum::conn package_id]
+
 set logged_in_p [ad_conn user_id]
 
-#set curriculum_count [curriculum::conn -nocache curriculum_count]
-
 # Upvar the "elements" multirow datasource for the curriculum bar.
-curriculum::get_bar -bar_p 0
+curriculum::get_bar -bar_p 0 -package_id $package_id
 
-set package_id [curriculum::conn package_id]
-
 # Top, bottom, left, right.
 set position [parameter::get -package_id $package_id -parameter ExternalSiteBarPosition -default bottom]
 
+# Prefix relevant urls with @url@ and they'll work when <include>d
+# into the dotLRN portlet.
+set url [lindex [site_node::get_url_from_object_id -object_id $package_id] 0]
+
 ad_return_template
Index: openacs-4/packages/curriculum/tcl/misc-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/tcl/misc-procs.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/curriculum/tcl/misc-procs.tcl	10 Jun 2003 09:29:49 -0000	1.4
+++ openacs-4/packages/curriculum/tcl/misc-procs.tcl	13 Jun 2003 11:44:33 -0000	1.5
@@ -49,7 +49,7 @@
 		    # "ad_conn subsite_id" does not work when called from within a filter
 		    # (which we do for the curriculum bar), so we use the following instead.
 
-		    return [site_node_closest_ancestor_package acs-subsite]
+		    return [site_node_closest_ancestor_package [list dotlrn acs-subsite]]
 		}
 		package_id -
 		package_url -
@@ -350,11 +350,14 @@
 
 # FIXME. Integrate with "enabled_elements" above?
 ad_proc -private curriculum::user_elements {
+    {-package_id ""}
 } {
     Not meant to be cached.
 } {
-    set package_id [conn package_id]
-
+    if { [empty_string_p $package_id] } {
+	set package_id [conn package_id]
+    }
+    
     set workflow_id [curriculum::get_instance_workflow_id -package_id $package_id]
 
     # We need to get elements of published curriculums.
@@ -453,18 +456,18 @@
 
 ad_proc -private curriculum::get_bar_internal {
     -bar_p:required
-    {-package_id ""}
+    -package_id:required
     cookie_value
 } {
     if { $bar_p } {
 
 	# Get the cached curriculum list for the bar.
-	set rows [enabled_elements_memoized]
+	set rows [enabled_elements_memoized -package_id $package_id]
 
     } else {
 
 	# Get the NOT cached curriculum list for index page use.
-	set rows [user_elements]
+	set rows [user_elements -package_id $package_id]
 
     }
 
Index: openacs-4/packages/curriculum/www/add-to-bar.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/www/add-to-bar.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/curriculum/www/add-to-bar.tcl	6 Jun 2003 13:58:35 -0000	1.2
+++ openacs-4/packages/curriculum/www/add-to-bar.tcl	13 Jun 2003 11:44:33 -0000	1.3
@@ -13,7 +13,7 @@
 }
 
 if { [info exists refresh_p] } {
-    set return_url "start-over?[ad_conn extra_url]"
+    set return_url "start-over?[export_vars -url curriculum_id]"
 }
 set package_id [curriculum::conn package_id]
 
Index: openacs-4/packages/curriculum/www/start-over.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/www/start-over.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/curriculum/www/start-over.tcl	3 Jun 2003 10:40:53 -0000	1.1
+++ openacs-4/packages/curriculum/www/start-over.tcl	13 Jun 2003 11:44:33 -0000	1.2
@@ -16,10 +16,14 @@
 if { [info exists curriculum_id] } {
     set new_cookie [curriculum::curriculum_progress_cookie_value \
 			-package_id $package_id reset_one_curriculum $curriculum_id]
+
     set extra_where_clause { and curriculum_id = :curriculum_id }
+
 } else {
+
     set new_cookie [curriculum::curriculum_progress_cookie_value \
 			-package_id $package_id]
+
     set extra_where_clause {}
 }
 
Index: openacs-4/packages/curriculum/www/admin/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/www/admin/index.adp,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/curriculum/www/admin/index.adp	4 Jun 2003 16:43:24 -0000	1.2
+++ openacs-4/packages/curriculum/www/admin/index.adp	13 Jun 2003 11:44:34 -0000	1.3
@@ -2,12 +2,4 @@
 <property name="title">@title@</property>
 <property name="context">@context@</property>
 
-<table width="0">
-  <tr>
-    <td>
-      <tabstrip id="states"></tabstrip>
-    </td>
-  </tr>
-</table>
-
-<include src="../../lib/admin-curriculums" state_id="@states.tab@">
+<include src="../../lib/admin-curriculums-tab" \>
Index: openacs-4/packages/curriculum/www/admin/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum/www/admin/index.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/curriculum/www/admin/index.tcl	3 Jun 2003 10:32:38 -0000	1.1
+++ openacs-4/packages/curriculum/www/admin/index.tcl	13 Jun 2003 11:44:34 -0000	1.2
@@ -15,19 +15,4 @@
 set title "Curriculum"
 set context {}
 
-# Create the tab strip that filters curriculums by workflow state.
-set url [ad_conn url]
-
-template::tabstrip create states -base_url $url
-
-set workflow_id [curriculum::get_instance_workflow_id]
-array set state_data [workflow::state::fsm::get_all_info -workflow_id $workflow_id]
-
-foreach state_id $state_data(state_ids) {
-    array set state $state_data($state_id)
-    template::tabstrip add_tab states $state(state_id) $state(pretty_name) $state(short_name)
-}
-
-template::tabstrip add_tab states any "Any" any
-
 ad_return_template