Index: openacs-4/packages/assessment/www/asm-admin/results-users.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/results-users.tcl,v diff -u -r1.9.2.1 -r1.9.2.2 --- openacs-4/packages/assessment/www/asm-admin/results-users.tcl 24 Jan 2007 20:15:30 -0000 1.9.2.1 +++ openacs-4/packages/assessment/www/asm-admin/results-users.tcl 7 Jul 2007 00:27:51 -0000 1.9.2.2 @@ -8,6 +8,7 @@ assessment_id {start_time:optional ""} {end_time:optional ""} + status:optional,notnull } -properties { context:onevalue page_title:onevalue @@ -21,13 +22,15 @@ # Get the assessment data as::assessment::data -assessment_id $assessment_id +set package_id [ad_conn package_id] +set folder_id [as::assessment::folder_id -package_id $package_id] if {![info exists assessment_data(assessment_id)]} { ad_return_complaint 1 "[_ assessment.Requested_assess_does]" ad_script_abort } set user_id [ad_conn user_id] -set assessment_rev_id $assessment_data(assessment_rev_id) + set page_title "[_ assessment.Results_by_user]" set context [list [list index [_ assessment.admin]] [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] $page_title] set format "[lc_get formbuilder_date_format], [lc_get formbuilder_time_format]" @@ -53,19 +56,19 @@ regsub -all -- {to_date} $end_time {to_timestamp} end_time } + if {![empty_string_p $start_time]} { set start_date_sql [db_map restrict_start_date] } if {![empty_string_p $end_time]} { set end_date_sql [db_map restrict_end_date] } - #ad_returnredirect [export_vars -base results-users {assessment_id start_time end_time}] } template::list::create \ -name results \ -multirow results \ - -key sessions_id \ + -key session_id \ -elements { session_id { label {[_ assessment.View_Results]} @@ -75,7 +78,7 @@ label {[_ assessment.Name]} } status { - label {#assessment.Status#} + label {\#assessment.Status\#} } completed_datetime { label {[_ assessment.Finish_Time]} @@ -88,17 +91,37 @@ } delete { label {} - display_template {[_ assessment.Delete_Attempts]} + display_template {[_ assessment.Delete_Attempts] + } } - } -main_class { - narrow - } + } -filters { + assessment_id { + where_clause { + a.item_id = :assessment_id + } + } + subject_id { + where_clause { + cs.subject_id = :subject_id + } + } + status { + values {{"[_ assessment.Complete]" complete} {"[_ assessment.Incomplete]" incomplete} {"[_ assessment.Not_Taken]" nottaken}} + where_clause { + (case when :status = 'complete' + then not cs.completed_datetime is null + when :status = 'incomplete' + then cs.completed_datetime is null and ns.session_id is not null + else cs.completed_datetime is null and ns.session_id is null end) + } + } + } -bulk_actions {"#assessment.Send_Email#" send-mail "#assessment.Send_an_email_to_the_selected users#"} \ + -bulk_action_export_vars {assessment_id} template::multirow create subjects subject_id subject_url subject_name -db_multirow -extend { result_url subject_url status delete_url } results assessment_results { -} { +db_multirow -extend { result_url subject_url status delete_url } results assessment_results {} { # to display list of users who answered the assessment if anonymous template::multirow append subjects $subject_id [acs_community_member_url -user_id $subject_id] $subject_name @@ -133,15 +156,13 @@ } } -# FIXME -set dotlrn_installed_p [apm_package_installed_p dotlrn] -if {$dotlrn_installed_p} { - set count_all_users [llength [dotlrn_community::list_users [dotlrn_community::get_community_id]]] -} else { - # TODO get count from subsite - set count_all_users 0 -} - +set count_all_users [db_string q "select count(*) from users u + where u.user_id <> 0 + and exists (select 1 + from acs_object_party_privilege_map + where party_id = u.user_id + and object_id = :assessment_id + and privilege = 'read')" -default 0] set count_complete [template::multirow size subjects] set count_incomplete [expr {$count_all_users - $count_complete}] ad_return_template