# /assessment-portlet/www/assessment-portlet.tcl
ad_page_contract {
The display logic for the assessment portlet
@author jopez@galileo.edu
@creation-date Oct 2004
@cvs-id $Id: assessment-portlet.tcl,v 1.23 2018/07/12 09:02:29 gustafn Exp $
} {
{page_num:naturalnum,notnull 0}
} -properties {
}
set user_id [ad_conn user_id]
array set config $cf
set shaded_p $config(shaded_p)
set list_of_package_ids $config(package_id)
set one_instance_p [ad_decode [llength $list_of_package_ids] 1 1 0]
set elements [list]
if {!$one_instance_p} {
set elements [list community_name \
[list \
label "[_ dotlrn.Community]" \
display_template {@assessments.community_name@ }]]
}
lappend elements title \
[list \
label "[_ assessment.Title]" \
display_template {@assessments.title@
(#assessment.anonymous#)}]
lappend elements status {
label "[_ assessment.Status]"
display_template {#assessment.Incomplete##assessment.Finished##assessment.Untaken#}
}
lappend elements take {
label "[_ acs-kernel.common_Actions]"
display_template {#assessment.Finish##assessment.Take##assessment.Retake#}
}
if {[llength $list_of_package_ids]==1} {
set admin_p [permission::permission_p \
-party_id $user_id \
-privilege admin \
-object_id $list_of_package_ids]
} else {
set admin_p 0
}
if {$admin_p} {
set hide 0
} else {
set hide 1
}
lappend elements session \
[list \
label "[_ assessment.Review]" \
display_template {[_ assessment.Review]}]
lappend elements admin {
label "[_ acs-kernel.common_Administration]"
display_template {\#acs-kernel.common_Administration\#}
}
lappend elements results {
label "[_ assessment.Results]"
display_template {\#assessment.Results\#}
}
# create a list with all open assessments
template::list::create \
-name assessments \
-multirow assessments \
-key assessment_id \
-elements $elements \
-no_data "\#assessment.No_open_assessments\#"
# get the information of all open assessments
template::multirow create assessments assessment_id title description assessment_url community_url community_name anonymous_p in_progress_p completed_p status number_tries admin_p
set old_comm_node_id 0
db_foreach open_assessments {} {
if {$comm_node_id == $old_comm_node_id} {
set community_name ""
}
set community_url [site_node::get_url -node_id $comm_node_id]
set assessment_url [site_node::get_url -node_id $as_node_id]
set old_comm_node_id $comm_node_id
if {$password eq ""} {
append assessment_url [export_vars -base "instructions" {assessment_id}]
} else {
append assessment_url [export_vars -base "assessment-password" {assessment_id}]
}
if {$in_progress_p > 0 } {
set status in_progress
} elseif {$completed_p >0} {
set status finished
} else {
set status untaken
}
template::multirow append assessments $assessment_id $title $description $assessment_url $community_url $community_name $anonymous_p $in_progress_p $completed_p $status $number_tries $admin_p
}
set elements [list]
if {!$one_instance_p} {
set elements [list community_name \
[list \
label "[_ dotlrn.Community]" \
display_template {@sessions.community_name@ }]]
set package_id_sql ""
} else {
# set package_id_sql "and cf.package_id in ([join $list_of_package_ids ", "])"
set package_id_sql ""
}
lappend elements title \
[list \
label "[_ assessment.Title]"]
lappend elements session \
[list \
label "[_ assessment.Review]" \
display_template {[_ assessment.Review]}]
lappend elements admin {
label "[_ acs-kernel.common_Administration]"
display_template {\#acs-kernel.common_Administration\#}
}
lappend elements results {
label "[_ assessment.Results]"
display_template {\#assessment.Results\#}
}
# create a list with all answered assessments and their sessions
template::list::create \
-name sessions \
-multirow sessions \
-key assessment_id \
-elements $elements \
-no_data "\#assessment.No_answered_assessments\#"
# get the information of all assessments store in the database
set old_comm_node_id 0
db_multirow -extend { session_url community_url } sessions answered_assessments {} {
if {$comm_node_id == $old_comm_node_id} {
set community_name ""
}
set community_url [site_node::get_url -node_id $comm_node_id]
set session_url "[site_node::get_url -node_id $as_node_id][export_vars -base session {assessment_id}]"
set old_comm_node_id $comm_node_id
}
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End: