Index: openacs-4/contrib/packages/simulation/www/simplay/case-admin.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/www/simplay/Attic/case-admin.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/contrib/packages/simulation/www/simplay/case-admin.tcl 12 Jan 2004 15:14:36 -0000 1.3
+++ openacs-4/contrib/packages/simulation/www/simplay/case-admin.tcl 15 Jan 2004 13:19:18 -0000 1.4
@@ -1,11 +1,99 @@
ad_page_contract {
- This page allows users to choose which group to join. It is only relevant for simulations with casting type of group.
+ This page allows admins to see all the roles in a simulation case and the user
+ playing each role.
} {
case_id:integer
+ {assigned_only_p 0}
}
-set title "Administer"
+simulation::case::get -case_id $case_id -array case
+
+set title "Administer $case(label)"
set context [list [list . "SimPlay"] $title]
set user_id [ad_conn user_id]
set package_id [ad_conn package_id]
set section_uri [apm_package_url_from_id $package_id]simplay/
+
+set elements {
+ role {
+ label "Role"
+ display_template {
+ @roles.role@ \[\add user]
+ }
+ }
+ user_name {
+ label "User"
+ display_template {
+ @roles.user_name@ \[move|remove\]
+ }
+ }
+ max_n_users {
+ label "Target # users"
+ }
+ }
+
+if { $assigned_only_p } {
+ lappend elements assigned_action {
+ label "Assigned action"
+ }
+}
+
+if { $assigned_only_p } {
+ set assigned_filter "Show all roles"
+} else {
+ set assigned_filter "Show only roles with assigned actions"
+}
+
+# -filters {
+# role_id {
+# label "Role"
+# }
+# } -groupby {
+# {"Role" {{groupby role_id}}}
+# }
+template::list::create \
+ -name roles \
+ -multirow roles \
+ -no_data "There are no roles or users in this simulation case" \
+ -elements $elements
+
+# Set clauses for the assigned only filter
+set select_clause ""
+set from_clause ""
+set where_clause ""
+if { $assigned_only_p } {
+ set select_clause ",
+ wa.pretty_name as assigned_action"
+ set from_clause ",
+ workflow_case_enabled_actions wcea,
+ workflow_actions wa"
+ set where_clause " and wcea.case_id = :case_id
+ and wcea.action_id = wa.action_id
+ and wa.assigned_role = wr.role_id"
+}
+
+db_multirow -extend {add_url move_url remove_url} roles select_case_info "
+ select wr.role_id,
+ wr.pretty_name as role,
+ cu.user_id,
+ cu.first_names || ' ' || cu.last_name as user_name,
+ sr.users_per_case as max_n_users
+ $select_clause
+ from workflow_roles wr,
+ workflow_cases wc,
+ workflow_case_role_party_map wcrpm,
+ cc_users cu,
+ sim_roles sr
+ $from_clause
+ where wr.workflow_id = wc.workflow_id
+ and wc.case_id = :case_id
+ and wcrpm.case_id = wc.case_id
+ and wcrpm.role_id = wr.role_id
+ and cu.user_id = wcrpm.party_id
+ and sr.role_id = wr.role_id
+ $where_clause
+" {
+ set add_url [export_vars -base case-admin-user-add { case_id role_id }]
+ set move_url [export_vars -base case-admin-user-move { case_id user_id }]
+ set remove_url [export_vars -base case-admin-user-remove { case_id role_id user_id }]
+}