Index: openacs-4/contrib/packages/simulation/lib/sim-template-tasks.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/lib/Attic/sim-template-tasks.tcl,v
diff -u -r1.7 -r1.8
--- openacs-4/contrib/packages/simulation/lib/sim-template-tasks.tcl 1 Dec 2003 10:16:56 -0000 1.7
+++ openacs-4/contrib/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 {
+
+ }
+}
+lappend elements initialize {
+ label "Initialize"
+ display_template {
+
+
+
+
+
+
+ }
+ 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 " \${label_state_$state_id}" \
+ html { align center } \
+ display_template "
+
+
+ Assigned
+
+
+ Enabled
+
+
+
+
+
+ "]
+
+ lappend states $state_id
+}
+
+lappend elements add_state {
+ label {
+
+ }
+ display_template { }
+}
+
+
+
+lappend elements delete {
+ sub_class narrow
+ hide_p {[ad_decode $display_mode edit 0 1]}
+ display_template {
+
+
+
+ }
+}
+
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 {
-
- }
- }
- 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 {
-
-
-
- }
- }
- }
+ -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"
+ }
+ }
+ }
}