Index: openacs-4/packages/dotlrn-ecommerce/lib/tree-chunk.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/lib/tree-chunk.tcl,v
diff -u -r1.39 -r1.40
--- openacs-4/packages/dotlrn-ecommerce/lib/tree-chunk.tcl	4 Aug 2005 03:10:04 -0000	1.39
+++ openacs-4/packages/dotlrn-ecommerce/lib/tree-chunk.tcl	5 Aug 2005 12:03:50 -0000	1.40
@@ -307,6 +307,7 @@
 		</else>
 		<if @course_list.section_grades@ not nil> (@course_list.section_grades@)</if>
 		<if @course_list.sessions@ not nil and @course_list.show_sessions_p@ eq "t"><br />@course_list.sessions;noquote@</if>
+		<if @course_list.section_zones@ not nil><br />@course_list.section_zones;noquote@</if>
 		<if @course_list.instructor_names@ not nil><br />@course_list.instructor_names;noquote@</if>
 		<if @course_list.prices@ not nil><br />@course_list.prices;noquote@</if>
 		<if @course_list.show_participants_p@ eq "t">
@@ -405,7 +406,7 @@
 
 set grade_tree_id [parameter::get -package_id [ad_conn package_id] -parameter GradeCategoryTree -default 0]
 
-db_multirow -extend { fs_chunk section_folder_id section_pages_url category_name community_url course_edit_url section_add_url section_edit_url course_grades section_grades sections_url member_p sessions instructor_names prices shopping_cart_add_url attendees available_slots pending_p waiting_p approved_p instructor_p registration_approved_url button waiting_list_number asm_url } course_list get_courses { } {
+db_multirow -extend { fs_chunk section_folder_id section_pages_url category_name community_url course_edit_url section_add_url section_edit_url course_grades section_grades section_zones sections_url member_p sessions instructor_names prices shopping_cart_add_url attendees available_slots pending_p waiting_p approved_p instructor_p registration_approved_url button waiting_list_number asm_url } course_list get_courses { } {
 
     # Since dotlrn-ecommerce is based on dotlrn-catalog,
     # it's possible to have a dotlrn_catalog object without an
@@ -528,6 +529,16 @@
 		set button "[_ dotlrn-ecommerce.join_waiting_list]"
 	    }
 	}
+	
+	set section_zones [util_memoize [list dotlrn_ecommerce::section::section_zones $community_id]]
+
+	if { [llength $section_zones] == 1 } {
+	    set section_zones "[_ dotlrn-ecommerce.Zone]: [join $section_zones]"
+	} elseif { [llength $section_zones] > 1 } {
+	    set section_zones "[_ dotlrn-ecommerce.Zones]: [join $section_zones ,]"
+	} else {
+	    set section_zones ""
+	}
     }
 
     if { ! [empty_string_p $product_id] } {
Index: openacs-4/packages/dotlrn-ecommerce/tcl/section-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/tcl/section-procs-postgresql.xql,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/dotlrn-ecommerce/tcl/section-procs-postgresql.xql	16 Jul 2005 12:51:06 -0000	1.2
+++ openacs-4/packages/dotlrn-ecommerce/tcl/section-procs-postgresql.xql	5 Aug 2005 12:03:50 -0000	1.3
@@ -60,4 +60,14 @@
 	</querytext>
 	</fullquery>
 
+	<fullquery name="dotlrn_ecommerce::section::section_zones.section_zones">
+	<querytext>
+		select t.name
+		from category_object_map_tree m, category_translations t
+		where t.category_id = m.category_id
+		and t.locale = coalesce(:locale, 'en_US')
+		and m.object_id = :community_id
+		and m.tree_id = :zone_tree_id
+	</querytext>
+	</fullquery>
 </queryset>
Index: openacs-4/packages/dotlrn-ecommerce/tcl/section-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/tcl/section-procs.tcl,v
diff -u -r1.17 -r1.18
--- openacs-4/packages/dotlrn-ecommerce/tcl/section-procs.tcl	26 Jul 2005 23:11:22 -0000	1.17
+++ openacs-4/packages/dotlrn-ecommerce/tcl/section-procs.tcl	5 Aug 2005 12:03:50 -0000	1.18
@@ -177,6 +177,7 @@
     util_memoize_flush [list dotlrn_ecommerce::section::price $section_id]
     util_memoize_flush [list dotlrn_ecommerce::section::member_price $section_id]
     util_memoize_flush [list dotlrn_ecommerce::section::application_assessment $section_id]
+    util_memoize_flush [list dotlrn_ecommerce::section::section_zones $community_id]
 
     if { [exists_and_not_null user_id] } {
 	util_memoize_flush [list dotlrn_ecommerce::section::member_state $user_id $community_id]
@@ -583,3 +584,32 @@
 	      order by o.creation_date) r
     } -default ""]
 }
+
+ad_proc -public dotlrn_ecommerce::section::section_zones {
+    community_id
+} {
+    Return zones
+    
+    @author Roel Canicula (roelmc@pldtdsl.net)
+    @creation-date 2005-08-05
+    
+    @param section_id
+
+    @return 
+    
+    @error 
+} {
+    set locale [ad_conn locale]
+
+    if { [db_0or1row zone {
+	select tree_id as zone_tree_id
+	from category_tree_translations
+	where name = 'Zone'
+	and locale = :locale
+	limit 1
+    }] } {
+	return [db_list section_zones { }]    
+    }
+
+    return [list]
+}