Index: openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml,v
diff -u -r1.10 -r1.11
--- openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml	15 Dec 2005 06:27:40 -0000	1.10
+++ openacs-4/packages/curriculum-central/catalog/curriculum-central.en_US.ISO-8859-1.xml	15 Dec 2005 11:15:05 -0000	1.11
@@ -2,6 +2,7 @@
 <message_catalog package_key="curriculum-central" package_version="0.1d" locale="en_US" charset="ISO-8859-1">
 
   <msg key="uos">UoS</msg>
+  <msg key="go_live">Go Live</msg>
   <msg key="search">Search</msg>
   <msg key="activity_log">Activity Log</msg>
   <msg key="coordinate">Coordinate</msg>
Index: openacs-4/packages/curriculum-central/sql/postgresql/uos-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/sql/postgresql/uos-create.sql,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/curriculum-central/sql/postgresql/uos-create.sql	15 Dec 2005 06:27:41 -0000	1.4
+++ openacs-4/packages/curriculum-central/sql/postgresql/uos-create.sql	15 Dec 2005 11:15:05 -0000	1.5
@@ -346,22 +346,6 @@
 		p_recommended_uos_for, p_prerequisites, p_objectives,
 		p_outcomes, p_activity_log, p_activity_log_format);
 
-	-- make the revision live
-	-- PERFORM content_item__set_live_revision(v_revision_id);
-
-	-- update the cache
-	-- update cc_uos
-	-- set	live_revision_id = v_revision_id,
-	-- 	uos_code = p_uos_code,
-	--	uos_name = p_uos_name,
-	--	unit_coordinator_id = p_unit_coordinator_id
-	-- where	uos_id = p_uos_id;
-
-	-- update the title in acs_objects
-	-- update acs_objects
-	-- set	title = cc_uos__name(p_uos_id)
-	-- where object_id = p_uos_id;
-
 	return v_revision_id;
 end;
 ' language 'plpgsql';
Index: openacs-4/packages/curriculum-central/tcl/install-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/tcl/install-procs.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/curriculum-central/tcl/install-procs.tcl	11 Dec 2005 07:47:40 -0000	1.2
+++ openacs-4/packages/curriculum-central/tcl/install-procs.tcl	15 Dec 2005 11:15:06 -0000	1.3
@@ -75,6 +75,7 @@
 	curriculum_central::install::register_stream_coordinator_impl	
         curriculum_central::install::register_format_log_title_impl
         curriculum_central::install::register_uos_notification_info_impl
+	curriculum_central::install::register_uos_go_live_impl
     }
 }
 
@@ -98,6 +99,10 @@
         acs_sc::impl::delete \
 	    -contract_name [workflow::service_contract::notification_info] \
 	    -impl_name "UoSNotificationInfo"
+
+        acs_sc::impl::delete \
+	    -contract_name [workflow::service_contract::action_side_effect] \
+	    -impl_name "UoSGoLive"
     }
 }
 
@@ -176,6 +181,26 @@
 }
 
 
+ad_proc -private curriculum_central::install::register_uos_go_live_impl {} {
+    Registers a service contract implementation for UoSGoLive.
+} {
+    set spec {
+	name "UoSGoLive"
+	aliases {
+	    GetObjectType curriculum_central::uos::object_type
+	    GetPrettyName curriculum_central::uos::go_live::pretty_name
+	    DoSideEffect  curriculum_central::uos::go_live::do_side_effect
+	}
+    }
+
+    lappend spec contract_name [workflow::service_contract::action_side_effect]
+
+    lappend spec owner [curriculum_central::package_key]
+
+    acs_sc::impl::new_from_spec -spec $spec
+}
+
+
 ad_proc -private curriculum_central::install::roles_create {} {
     Creates the Stream Coordinator, Unit Coordinator and Lecturer roles.
 } {
Index: openacs-4/packages/curriculum-central/tcl/uos-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/tcl/uos-procs-postgresql.xql,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/curriculum-central/tcl/uos-procs-postgresql.xql	15 Dec 2005 06:27:41 -0000	1.2
+++ openacs-4/packages/curriculum-central/tcl/uos-procs-postgresql.xql	15 Dec 2005 11:15:06 -0000	1.3
@@ -52,4 +52,11 @@
        );
      </querytext>
    </fullquery>
+
+   <fullquery name="curriculum_central::uos::go_live::do_side_effect.get_latest_revision">
+     <querytext>
+       SELECT latest_revision FROM cr_items WHERE item_id = :object_id
+     </querytext>
+   </fullquery>
+
 </queryset>
Index: openacs-4/packages/curriculum-central/tcl/uos-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/tcl/uos-procs.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/curriculum-central/tcl/uos-procs.tcl	15 Dec 2005 06:27:41 -0000	1.4
+++ openacs-4/packages/curriculum-central/tcl/uos-procs.tcl	15 Dec 2005 11:15:06 -0000	1.5
@@ -15,7 +15,9 @@
 namespace eval curriculum_central::uos::get_unit_coordinator {}
 namespace eval curriculum_central::uos::get_stream_coordinator {}
 namespace eval curriculum_central::uos::notification_info {}
+namespace eval curriculum_central::uos::go_live {}
 
+
 ad_proc -public curriculum_central::uos::workflow_short_name {} {
     Get the short name of the workflow for Units of Study.
 } {
@@ -118,7 +120,7 @@
                     privileges { write }
                     enabled_states { submitted }
                     assigned_states { open }
-                    edit_fields { unit_coordinator_id }
+                    edit_fields { role_unit_coordinator }
                 }
                 submit {
                     pretty_name "#curriculum-central.submit#"
@@ -136,6 +138,9 @@
                     assigned_states { submitted }
                     new_state closed
                     privileges { write }
+		    callbacks {
+			curriculum-central.UoSGoLive
+		    }
                 }
                 reopen {
                     pretty_name "#curriculum-central.reopen#"
@@ -563,3 +568,29 @@
 
     return [list $url $one_line $details_list $notification_subject_tag]
 }
+
+
+#####
+#
+# UoS Go Live
+#
+#####
+
+ad_proc -private curriculum_central::uos::go_live::pretty_name {} {
+    return "[_ curriculum-central.go_live]"
+}
+
+
+ad_proc -private curriculum_central::uos::go_live::do_side_effect {
+    case_id
+    object_id
+    action_id
+    entry_id
+} {
+    # Get the latest revision for the given content item.
+    db_1row get_latest_revision {}
+
+    # Set the latest revision as the live revision for the given
+    # content item (object_id).
+    content::item::set_live_revision -revision_id $latest_revision
+}
Index: openacs-4/packages/curriculum-central/www/coordinate/uos-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/curriculum-central/www/coordinate/uos-edit.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/curriculum-central/www/coordinate/uos-edit.tcl	15 Dec 2005 06:27:41 -0000	1.1
+++ openacs-4/packages/curriculum-central/www/coordinate/uos-edit.tcl	15 Dec 2005 11:15:06 -0000	1.2
@@ -18,9 +18,6 @@
 
 set return_url [export_vars -base [ad_conn url] [curriculum_central::get_export_variables {uos_id} ]]
 
-set page_title "Edit UoS"
-set context [list [list . "Coordinate"] "Edit UoS"]
-
 set case_id [workflow::case::get_id \
 		-object_id $uos_id \
 		 -workflow_short_name \
@@ -56,6 +53,9 @@
     -array uos \
     -enabled_action_id $enabled_action_id
 
+set page_title "$uos(uos_code) $uos(uos_name)"
+set context [list [list . [_ curriculum-central.coordinate]] $page_title]
+
 # Create the form
 # Create widgets for displaying UoS information that should already
 # have been entered by the Stream Coordinator when the UoS was