Index: openacs-4/contrib/packages/simulation/www/siminst/simulation-casting.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/www/siminst/Attic/simulation-casting.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/contrib/packages/simulation/www/siminst/simulation-casting.tcl 12 Dec 2003 11:22:20 -0000 1.3 +++ openacs-4/contrib/packages/simulation/www/siminst/simulation-casting.tcl 12 Dec 2003 13:39:05 -0000 1.4 @@ -2,8 +2,81 @@ Create a new simulation } -set page_title "Simulation Casting" -set context [list $page_title] +set page_title "Cast simulation" +set context [list [list "." "SimInst"] $page_title] set package_id [ad_conn package_id] +# TODO: only one aplication group per package - need different solution +set group_id [application_group::group_id_from_package_id -package_id $package_id] +set group_name [group::get_element -group_id $group_id -element group_name] +set group_options [list [list $group_name $group_id]] +# TODO: Possible future casting_type options: +# choose_role +# choose_role_and_instance + +# TODO: provide more sensible default dates? +# Notification send could be start date minus some parameter +set in_a_month_date [clock format [expr [clock seconds] + 3600*24*31] -format "%Y %m %d"] +set in_two_months_date [clock format [expr [clock seconds] + 2*3600*24*31] -format "%Y %m %d"] +set in_two_and_a_half_months_date [clock format [expr [clock seconds] + 3*3600*24*31 - 3600*24*15] -format "%Y %m %d"] +set in_three_months_date [clock format [expr [clock seconds] + 3*3600*24*31] -format "%Y %m %d"] +set in_four_months_date [clock format [expr [clock seconds] + 4*3600*24*31] -format "%Y %m %d"] +ad_form -export { workflow_id } -name simulation \ + -form { + {enroll_start:date,optional + {label "Enrollment start date"} + {value $in_a_month_date} + } + {enroll_end:date,optional + {label "Enrollment end date"} + {value $in_two_months_date} + } + {notification_date:date + {label "Date to send start notification"} + {value $in_two_and_a_half_months_date} + } + {case_start:date + {label "Simulation start date"} + {value $in_three_months_date} + } + {case_end:date + {label "Simulation end date"} + {value $in_four_months_date} + } + {enroll_type:text(radio) + {label "Enrollment type"} + {options {{Closed closed} {Open closed}}} + {value closed} + } + {casting_type:text(radio) + {label "Casting type"} + {options {{Automatic automatic} {Group group} {Open open}}} + {value automatic} + } + {user_group:integer(checkbox),multiple + {label "Invite all users in these groups"} + {options $group_options} + } + } -on_submit { + # Convert dates to ANSI format + foreach var_name {enroll_start enroll_end notification_date case_start case_end} { + set ${var_name}_ansi "[lindex [set $var_name] 0]-[lindex [set $var_name] 1]-[lindex [set $var_name] 2]" + } + + simulation::template::instantiate_edit \ + -workflow_id $workflow_id \ + -enroll_start $enroll_start_ansi \ + -enroll_end $enroll_end_ansi \ + -notification_date $notification_date_ansi \ + -case_start $case_start_ansi \ + -case_end $case_end_ansi \ + -enroll_type $enroll_type \ + -casting_type $casting_type \ + -parties $user_group + + # Proceed to choosing actors + ad_returnredirect [export_vars -base cast-actors { workflow_id }] + ad_script_abort + } +