Index: openacs-4/packages/dotlrn-ecommerce/lib/cal-view.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/lib/cal-view.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn-ecommerce/lib/cal-view.adp 3 Jun 2005 01:31:50 -0000 1.1 @@ -0,0 +1,22 @@ +
+ + + + + + + +
+ + +

View All

+ +
+ + Index: openacs-4/packages/dotlrn-ecommerce/lib/cal-view.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/lib/cal-view.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn-ecommerce/lib/cal-view.tcl 3 Jun 2005 01:31:50 -0000 1.1 @@ -0,0 +1,246 @@ +ad_page_contract { + Display an ident tree of categories and courses. + @author Miguel Marin (miguelmarin@viaro.net) + @author Viaro Networks www.viaro.net + @creation-date 11-02-2005 + +} { + category_f:optional + uncat_f:optional + + { level "" } + { date "" } + { orderby course_name } + { groupby course_name } +} + +set calendar_id_list [list] + +set package_id [ad_conn package_id] +set user_id [ad_conn user_id] +set filters [list] +set view calendar + +# Generate filters based on categories +lappend filters category_f { + label "[_ dotlrn-catalog.categories]" + values { ${Course Type} } + where_clause { ${Course Type_where_query} } + } uncat_f { + label "[_ dotlrn-catalog.uncat]" + values { "Watch" } + where_clause { dc.course_id not in ( select object_id from category_object_map where category_id in \ + ( select category_id from categories where tree_id =:tree_id )) + } + } + + +set filter_list [list category_f] + +set form [ns_getform] + +foreach tree [category_tree::get_mapped_trees $package_id] { + set tree_name [lindex $tree 1] + regsub -all { } $tree_name _ f + set f [string tolower $f]_f + + ns_log notice "DEBUG:: CATEGORY:: $tree_name" + + lappend filter_list $f + set ff [ns_set get $form $f] + + if { ! [empty_string_p $ff] } { + set $f $ff + } +} + +ns_log notice "DEBUG:: FILTER:: $filter_list" + +foreach f $filter_list { + if { [info exists $f] } { + set var_list [split [set $f] "&"] + set ${f}_category_v [lindex $var_list 0] + set ${f}_level [lindex [split [lindex $var_list 1] "="] 1] + } else { + set ${f}_category_v "" + set ${f}_level "" + } + + ns_log notice "DEBUG:: VARS:: category_v [set ${f}_category_v], level [set ${f}_level]" +} + +if { ! [empty_string_p $level] } { + set category_f_level $level +} + +# Get all tree categories +set category_trees [linsert [category_tree::get_mapped_trees $package_id] 0 $tree_id] + +set count 0 +foreach tree_id $category_trees { + + set tree_id [lindex $tree_id 0] + + set tree_list [category_tree::get_tree -all $tree_id] + set tree_length [llength $tree_list] + + db_1row get_tree_name { + select name + from category_trees t, category_tree_translations tt + where t.tree_id = tt.tree_id + and t.tree_id = :tree_id + } + + # Create a list of values for the list filter + set $name [list] + + foreach element $tree_list { + set ident [lindex $element 3] + set spacer "" + for { set i 1 } { $i < $ident } { incr i } { + append spacer ". . " + } + lappend $name [list "${spacer}[lindex "$element" 1]" "[lindex $element 0]&level=[lindex $element 3]" ] + } + + if { $count == 0 } { + set f category_f + } else { + regsub -all { } $name _ f + set f [string tolower $f]_f + } + + # Get all sub categories + set map_tree "(" + if { ![string equal [set ${f}_level] ""] } { + ns_log notice "DEBUG:: SUBCATEGORIES:: $f, $tree_length" + + set j 0 + set i 0 + while { $i < $tree_length } { + set element [lindex $tree_list $i] + if {[string equal [set ${f}_category_v] [lindex $element 0]] } { + append map_tree "[lindex $element 0]," + set pos $i + set i $tree_length + } + incr i + } + set j 0 + set i [expr $pos + 1] + while { $i < $tree_length } { + set element [lindex $tree_list $i] + if { [set ${f}_level] < [lindex $element 3] } { + append map_tree "[lindex $element 0]," + incr i + } else { + set i $tree_length + } + } + append map_tree "0)" + } + + if { $count == 0 } { + if { [string equal $[set ${f}_category_v] ""] } { + set ${name}_where_query "dc.course_id in ( select object_id from category_object_map_tree where tree_id = $tree_id )" + } else { + set ${name}_where_query "dc.course_id in ( select object_id from category_object_map_tree where tree_id = $tree_id and category_id in $map_tree )" + } + } else { + if { [string equal $[set ${f}_category_v] ""] } { + set ${name}_where_query "dec.community_id in ( select object_id from category_object_map_tree where tree_id = $tree_id )" + } else { + set ${name}_where_query "dec.community_id in ( select object_id from category_object_map_tree where tree_id = $tree_id and category_id in $map_tree )" + } + } + incr count +} + +foreach tree [category_tree::get_mapped_trees $package_id] { + set tree_name [lindex $tree 1] + regsub -all { } $tree_name _ f + set f [string tolower $f]_f + + lappend filters "$f" \ + [list \ + label "$tree_name" \ + values "[set $tree_name]" \ + where_clause "[set ${tree_name}_where_query]" + ] +} + + +# Section categories +#foreach section_tree [category_tree::get_mapped_trees $package_id] { +# set tree_list [category_tree::get_tree -all $section_tree] +#} + +# age_description_f { +# label "Age Description" +# values { ${Age Description} } +# where_clause { ${Age Description_where_query} } +# } + +set filters [linsert $filters 0 date {} view { + label "View" + values { {List ""} {"" ""} } +}] +set cc_package_id [apm_package_id_from_key "dotlrn-catalog"] +set admin_p [permission::permission_p -object_id $cc_package_id -privilege "admin"] +template::list::create \ + -name course_list \ + -multirow course_list \ + -key course_id \ + -pass_properties { admin_p } \ + -actions {"View All" ? "View All"} \ + -filters $filters \ + -bulk_action_method post \ + -bulk_action_export_vars { + }\ + -row_pretty_plural "[_ dotlrn-catalog.courses]" \ + -elements { + course_key { + label "[_ dotlrn-catalog.course_key]" + display_template { +
+ @course_list.course_key@ +
+ } + hide_p 1 + } + } + +set instructor_community_id [parameter::get -package_id [ad_conn package_id] -parameter InstructorCommunityId -default 0 ] +set _instructors [dotlrn_community::list_users $instructor_community_id] +if { [llength $_instructors] == 0 } { + set _instructors 0 +} else { + foreach instructor $_instructors { + lappend __instructors [ns_set get $instructor user_id] + } +} +set grade_tree_id [db_string grade_tree { + select tree_id + from category_tree_translations + where name = 'Grade' +} -default 0] + +db_multirow course_list get_courses { } { + + if { ! [empty_string_p $community_id] } { + + # Build sessions + set calendar_id [dotlrn_calendar::get_group_calendar_id -community_id $community_id] + lappend calendar_id_list $calendar_id + + } +} + +set date +set item_template "one-course?cal_item_id=\$item_id" +set export [list] +foreach {name discard} $filters { + lappend export $name +} +set next_month_template "[export_vars -no_empty -base . $export]&date=\[ad_urlencode \$next_month\]" +set prev_month_template "[export_vars -no_empty -base . $export]&date=\[ad_urlencode \$prev_month\]" \ No newline at end of file Index: openacs-4/packages/dotlrn-ecommerce/lib/cal-view.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/lib/Attic/cal-view.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn-ecommerce/lib/cal-view.xql 3 Jun 2005 01:31:50 -0000 1.1 @@ -0,0 +1,22 @@ + + + + + + select dc.course_id, dc.course_key, dc.course_name, + dc.assessment_id, dec.section_id, dec.section_name, + dec.product_id, dec.community_id, dc.course_info, + ci.item_id + from dotlrn_catalog dc, + cr_items ci + left join dotlrn_ecommerce_section dec + on (ci.item_id = dec.course_id) + + where dc.course_id = ci.live_revision + [template::list::filter_where_clauses -and -name course_list] + + order by lower(dc.course_name), lower(dec.section_name) + + + +