ad_page_contract { task chunk to be displayed in the index page } set package_id [ad_conn package_id] set user_id [ad_verify_and_get_user_id] set admin_p [permission::permission_p -party_id $user_id -object_id $package_id -privilege admin] db_1row grade_names { *SQL* } set base_url [ad_conn package_url] set mode display set return_url "[ad_conn url]?[export_vars { grade_id }]" set elements [list task_name \ [list label "Name" \ link_url_col task_url \ orderby_asc {task_name asc} \ orderby_desc {task_name desc}] \ pretty_due_date \ [list label "Due date" \ orderby_asc {pretty_due_date asc} \ orderby_desc {pretty_due_date desc}] \ ] if { $admin_p } { #admin lappend elements solution \ [list label "" \ link_url_col solution_url \ link_html { title "Add/edit solution" }] lappend elements audit_info \ [list label "" \ link_url_col audit_info_url \ link_html { title "Audit info" }] lappend elements groups_admin \ [list label "" \ link_url_col groups_admin_url \ link_html { title "Groups administration" }] lappend elements view \ [list label "" \ sub_class narrow \ display_template {} \ link_url_eval {[export_vars -base "${base_url}evaluation/admin/tasks/task-add-edit" { grade_id task_id return_url mode }]} \ link_html { title "View task" }] lappend elements edit \ [list label "" \ sub_class narrow \ display_template {} \ link_url_eval {[export_vars -base "${base_url}evaluation/admin/tasks/task-add-edit" { return_url item_id grade_id task_id }]} \ link_html { title "Edit task" }] lappend elements delete \ [list label "" \ sub_class narrow \ display_template {} \ link_url_eval {[export_vars -base "${base_url}evaluation/admin/tasks/task-delete" { grade_id task_id return_url }]} \ link_html { title "Delete task" }] set multirow_name tasks_admin set actions [list "Add $grade_name" [export_vars -base "${base_url}evaluation/admin/tasks/task-add-edit" { return_url grade_id }] ] } else { #student lappend elements answer \ [list label "" \ link_url_col answer_url \ link_html { title "Add/edit answer" }] lappend elements view \ [list label "" \ sub_class narrow \ display_template {} \ link_url_eval {[export_vars -base "${base_url}evaluation/task-view" { grade_id task_id return_url }]} \ link_html { title "View task" }] set multirow_name tasks set actions "" } template::list::create \ -name tasks \ -multirow $multirow_name \ -actions $actions \ -key task_id \ -pass_properties { return_url mode base_url } \ -filters { grade_id {} } \ -orderby_name assignments_orderby \ -elements $elements \ -orderby { default_value task_name } set assignments_orderby [template::list::orderby_clause -orderby -name tasks] if {[string equal $assignments_orderby ""]} { set assignments_orderby " order by task_name asc" } if { $admin_p } { db_multirow -extend { solution_url solution solution_mode task_url audit_info audit_info_url groups_admin groups_admin_url } tasks_admin get_tasks_admin { *SQL* } { # working with task stuff (if it has a file/url attached) if { [empty_string_p $task_data] } { set task_url "[export_vars -base "${base_url}evaluation/task-view" { grade_id task_id return_url }]" set task_name "$task_name (No data)" } elseif { [regexp "http://" $task_data] } { set task_url "[export_vars -base "$task_data" { }]" set task_name "$task_name (URL)" } else { # we assume it's a file set task_url "[export_vars -base "${base_url}evaluation/view/$task_title" { revision_id }]" set task_name "$task_name ([format %.0f [expr ($content_length/1024)]] Kb)" } if { ![empty_string_p $solution_id] } { set solution_mode display set solution_url "[export_vars -base "${base_url}evaluation/admin/tasks/solution-add-edit" { grade_id task_id solution_id return_url solution_mode }]" set solution "View/Edit Solution" } else { set solution_mode edit set solution_url "[export_vars -base "${base_url}evaluation/admin/tasks/solution-add-edit" { grade_id task_id return_url solution_mode }]" set solution "Upload Solution" } set audit_info_url "[export_vars -base "${base_url}evaluation/admin/evaluations/audit-info" { grade_id task_id }]" set audit_info "Audit Info." if { ![string eq $number_of_members 1] } { set groups_admin_url "[export_vars -base "${base_url}evaluation/admin/groups/one-task" { grade_id task_id }]" set groups_admin "Groups Admin." } } } else { db_multirow -extend { task_url solution_url solution solution_mode answer answer_url } tasks get_tasks { *SQL* } { set answer_mode display # working with task stuff (if it has a file/url attached) if { [empty_string_p $task_data] } { set task_url "[export_vars -base "${base_url}evaluation/task-view" { grade_id task_id return_url }]" set task_name "$task_name (No data)" } elseif { [regexp "http://" $task_data] } { set task_url "[export_vars -base "$task_data" { }]" set task_name "$task_name (URL)" } else { # we assume it's a file set task_url "[export_vars -base "${base_url}evaluation/view/$task_title" { revision_id }]" set task_name "$task_name ([format %.0f [expr ($content_length/1024)]] Kb)" } if { [string eq $online_p "t"] } { if { ([template::util::date::compare $due_date [template::util::date::now]] > 0) } { if { [empty_string_p $answer_id] } { set answer "submit answer" set answer_mode edit set answer_url "[export_vars -base "${base_url}evaluation/answer-add-edit" { grade_id task_id return_url answer_mode }]" } else { set answer "submit answer again" set answer_mode display set answer_url "[export_vars -base "${base_url}evaluation/answer-add-edit" { grade_id task_id answer_id return_url answer_mode }]" } } elseif { [string eq $turn_in_late_p "t"] } { if { [empty_string_p $answer_id] } { set answer "submit answer " set answer_mode edit set answer_url "[export_vars -base "${base_url}evaluation/answer-add-edit" { grade_id task_id return_url answer_mode }]" } else { set answer "submit answer again" set answer_mode display set answer_url "[export_vars -base "${base_url}evaluation/admin/tasks/solution-add-edit" { grade_id task_id answer_id return_url solution_mode }]" } } if { $number_of_members > 1 && [string eq [db_string get_group_id { *SQL* }] 0] } { set answer "" set answer_url "" } } } }