Index: openacs-4/packages/simulation/lib/sim-template-tasks.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/simulation/lib/sim-template-tasks.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/simulation/lib/sim-template-tasks.tcl 1 Dec 2003 10:16:56 -0000 1.7 +++ openacs-4/packages/simulation/lib/sim-template-tasks.tcl 9 Dec 2003 15:58:12 -0000 1.8 @@ -42,48 +42,129 @@ set actions "" } +set elements [list] +lappend elements edit { + hide_p {[ad_decode $display_mode edit 0 1]} + sub_class narrow + link_url_col edit_url + display_template { + Edit + } +} +lappend elements initialize { + label "Initialize" + display_template { + + Initial action + + + Set as initial action + + } + html { align center } +} +lappend elements name { + label "Name" + display_col pretty_name + link_url_col {[ad_decode $display_mode edit view_url ""]} +} + +set states [list] + +db_foreach select_states { + select s.state_id, + s.pretty_name, + s.short_name + from workflow_fsm_states s + where workflow_id = :workflow_id + order by s.sort_order +} { + set "label_state_$state_id" $pretty_name + lappend elements state_$state_id \ + [list label "\"Edit\" \${label_state_$state_id}" \ + html { align center } \ + display_template " + + + Assigned + + + Enabled + + +   + + + "] + + lappend states $state_id +} + +lappend elements add_state { + label { +
+ [export_vars -form { workflow_id}] + +
+ } + display_template { } +} + + + +lappend elements delete { + sub_class narrow + hide_p {[ad_decode $display_mode edit 0 1]} + display_template { + + Edit + + } +} + template::list::create \ -name tasks \ -multirow tasks \ -no_data "No tasks in this Simulation Template" \ -actions $actions \ - -elements { - edit { - hide_p {[ad_decode $display_mode edit 0 1]} - sub_class narrow - link_url_col edit_url - display_template { - Edit - } - } - name { - label "Name" - display_col pretty_name - link_url_col {[ad_decode $display_mode edit view_url ""]} - } - assigned_name { - label "Assigned to" - } - recipient_name { - label "Recipient" - } - delete { - sub_class narrow - hide_p {[ad_decode $display_mode edit 0 1]} - display_template { - - Edit - - } - } - } + -elements $elements #------------------------------------------------------------- # tasks db_multirow #------------------------------------------------------------- -# TODO: fix this so it returns rows when it should -set return_url "[ad_conn url]?[ad_conn query]" -db_multirow -extend { edit_url view_url delete_url } tasks select_tasks " +# TODO: fix this so it returns rows when it should + +set initial_action_id [workflow::get_element \ + -workflow_id $workflow_id \ + -element initial_action_id] + +set extend [list] +lappend extend edit_url view_url delete_url initial_p set_initial_url + +foreach state_id $states { + lappend extend state_$state_id +} + +array set enabled_in_state [list] + +# Ordering by assigned_p, so we get assigned states ('t') last +db_foreach select_enabled_in_states { + select aeis.action_id, + aeis.state_id, + aeis.assigned_p + from workflow_actions a, + workflow_fsm_action_en_in_st aeis + where a.workflow_id = :workflow_id + and aeis.action_id = a.action_id + order by aeis.assigned_p +} { + set enabled_in_state($action_id,$state_id) $assigned_p +} + +ds_comment [array get enabled_in_state] + + +db_multirow -extend $extend tasks select_tasks " select wa.action_id, wa.pretty_name, (select pretty_name @@ -92,15 +173,33 @@ (select pretty_name from workflow_roles where role_id = st.recipient) as recipient_name, - wa.sort_order + wa.sort_order, + wa.always_enabled_p from workflow_actions wa, sim_tasks st where wa.workflow_id = :workflow_id and st.task_id = wa.action_id - order by lower(pretty_name) + order by wa.sort_order " { set edit_url [export_vars -base "[apm_package_url_from_id $package_id]simbuild/task-edit" { action_id }] set view_url [export_vars -base "[apm_package_url_from_id $package_id]simbuild/task-edit" { action_id }] - set delete_url [export_vars -base "[apm_package_url_from_id $package_id]simbuild/task-delete" { action_id return_url }] + set delete_url [export_vars -base "[apm_package_url_from_id $package_id]simbuild/task-delete" { action_id {return_url [ad_return_url]} }] + set initial_p [string equal $initial_action_id $action_id] + set set_initial_url [export_vars -base "[apm_package_url_from_id $package_id]simbuild/initial-action-set" { action_id {return_url [ad_return_url]} }] + + foreach state_id $states { + ds_comment "enabled_in_state($action_id,$state_id)" + if { [info exists enabled_in_state($action_id,$state_id)] } { + if { [template::util::is_true $enabled_in_state($action_id,$state_id)] } { + ds_comment "Assigned" + set state_$state_id assigned + ds_comment "set state_$state_id assigned -- $extend" + } else { + ds_comment "Enabled" + set state_$state_id enabled + ds_comment "set state_$state_id enabled -- $extend" + } + } + } }