Index: openacs-4/contrib/packages/simulation/tcl/template-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/tcl/Attic/template-procs.tcl,v diff -u -r1.36 -r1.37 --- openacs-4/contrib/packages/simulation/tcl/template-procs.tcl 8 Jan 2004 13:03:32 -0000 1.36 +++ openacs-4/contrib/packages/simulation/tcl/template-procs.tcl 8 Jan 2004 15:54:01 -0000 1.37 @@ -766,7 +766,7 @@ # Special for simulation template: # If there is no initial-action, we create one now - set initial_action_id [workflow::get -workflow_id $workflow_id -element initial_action_id] + set initial_action_id [workflow::get_element -workflow_id $workflow_id -element initial_action_id] if { [empty_string_p $initial_action_id] } { set action_row(pretty_name) "Start" Index: openacs-4/contrib/packages/simulation/test/demo-data-setup.test =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/test/Attic/demo-data-setup.test,v diff -u -r1.17 -r1.18 --- openacs-4/contrib/packages/simulation/test/demo-data-setup.test 8 Jan 2004 11:27:38 -0000 1.17 +++ openacs-4/contrib/packages/simulation/test/demo-data-setup.test 8 Jan 2004 15:54:01 -0000 1.18 @@ -10,19 +10,12 @@ ::twt::simulation::setup::citybuild_objects - ::twt::simulation::setup::elementary_private_law_template - ::twt::simulation::setup::legislative_drafting_template - ::twt::simulation::setup::tilburg_template_from_spec - # TODO: click the ready_p link for the templates + ::twt::simulation::setup::all_templates - ::twt::simulation::test::permissions_anonymous - ::twt::simulation::test::permissions_city_admin - ::twt::simulation::test::permissions_sim_admin - ::twt::simulation::test::permissions_template_author - ::twt::simulation::test::permissions_case_author - ::twt::simulation::test::permissions_service_admin - ::twt::simulation::test::permissions_actor + ::twt::simulation::play::tilburg_template_user_1 + ::twt::simulation::test::permissions_all + } result] } { global errorInfo Index: openacs-4/contrib/packages/simulation/test/simulation-test-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/test/Attic/simulation-test-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/contrib/packages/simulation/test/simulation-test-procs.tcl 8 Jan 2004 11:27:38 -0000 1.7 +++ openacs-4/contrib/packages/simulation/test/simulation-test-procs.tcl 8 Jan 2004 15:54:01 -0000 1.8 @@ -6,6 +6,7 @@ namespace eval ::twt::simulation {} namespace eval ::twt::simulation::setup {} namespace eval ::twt::simulation::test {} +namespace eval ::twt::simulation::play {} ############################## # @@ -102,6 +103,14 @@ } } +ad_proc ::twt::simulation::setup::all_templates {} { + + ::twt::simulation::setup::elementary_private_law_template + ::twt::simulation::setup::legislative_drafting_template + ::twt::simulation::setup::tilburg_template_from_spec + # TODO: click the ready_p link for the templates +} + ad_proc ::twt::simulation::setup::elementary_private_law_template {} { # Do this as the template author to make sure he has sufficient permissions @@ -152,9 +161,75 @@ ::twt::log_section "Create a template from a spec" do_request /simulation/simbuild/template-load - field fill "Template loaded from spec" ~n pretty_name + set template_name "Template loaded from spec" + field fill $template_name ~n pretty_name field fill [::twt::simulation::data::tilburg_template_spec] ~n spec form submit + + do_request /simulation/simbuild + link follow ~c $template_name + link follow ~u template-sim-type-update + + ::twt::log_section "Login case author" + ::twt::user::login [::twt::simulation::permission_user_email "Case Authors"] + + ::twt::log_section "Instantiate the Tilburg template" + do_request /simulation/siminst/simulation-new + link follow ~u map-create + + form find ~n template + # Make name unique + set unique_name "New Simulation from Template loaded from spec [expr rand()]" + field fill $unique_name ~n pretty_name + form submit + + # Wizard page 1 + form find ~n characters + form submit + + regexp {workflow_id=([0-9]+)} [response url] match workflow_id + + # Wizard page 2 + form find ~n tasks + form submit ~n next + + # Wizard page 3 + form find ~n simulation + form submit ~n next + + # Enrollment (page 4) + form find ~n simulation + form submit ~n next + + # Participants (page 5) + form find ~n simulation + field find ~n __auto_enroll ~t checkbox + field check + field find ~n __auto_enroll ~t checkbox + field check + field find ~n __auto_enroll ~t checkbox + field check + field find ~n __auto_enroll ~t checkbox + field check + form submit ~n next + + # Wizard page 6 + form find ~n actors + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + form submit ~n finish + + do_request /simulation/siminst/simulation-start?workflow_id=$workflow_id } ############################## @@ -163,6 +238,17 @@ # ############################## +ad_proc ::twt::simulation::test::permissions_all {} { + + ::twt::simulation::test::permissions_anonymous + ::twt::simulation::test::permissions_city_admin + ::twt::simulation::test::permissions_sim_admin + ::twt::simulation::test::permissions_template_author + ::twt::simulation::test::permissions_case_author + ::twt::simulation::test::permissions_service_admin + ::twt::simulation::test::permissions_actor +} + ad_proc ::twt::simulation::test::permissions_anonymous {} { ::twt::log_section "Permission testing with anonymous user" @@ -290,6 +376,62 @@ ############################## # +# ::twt::simulation::play +# +############################## + +ad_proc ::twt::simulation::play::tilburg_template_user_1 {} { + set user_name "Demo User 1" + ::twt::log_section "Login with $user_name and play tilburg simulation" + + ::twt::user::login [::twt::simulation::email_from_user_name $user_name] + + do_request /simulation/simplay + link follow ~u "case.+case" + + # Execute the ask client task + link follow ~u task-detail + form find ~n action + field fill "ask client subject" ~n subject + field fill "ask client body" ~n body + form submit + + # Execute the finalizing task + link follow ~c "Write legal advice" + form find ~n action + field fill "legal advice subject" ~n subject + field fill "legal advice body" ~n body + form submit + + # Legal advice was the last task so there shouldn't be any left + if { [regexp {task-detail\?} [response body]] } { + error "Completed last task ask legal advice but there are still tasks remaining" + } + + # Visit case index page again + do_request /simulation/simplay + link follow ~u "case.+case" + + # Send a message + link follow ~u "message\\?" + form find ~n message + field find ~n recipient_role_id ~t checkbox + field check + field fill "message subject" ~n subject + field fill "message body" ~n body + form submit + + # Upload a document + link follow ~u document-upload + form find ~n document + field find ~n document_file + field fill [::twt::config::serverroot]/packages/simulation/test/new-jersey-lawyer-logo.gif + field fill "New Jersey Lawyers Logo" ~n title + form submit +} + +############################## +# # ::twt::simulation helper procs # ############################## Index: openacs-4/contrib/packages/simulation/www/siminst/simulation-delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/www/siminst/Attic/simulation-delete.adp,v diff -u -r1.2 -r1.3 --- openacs-4/contrib/packages/simulation/www/siminst/simulation-delete.adp 11 Dec 2003 13:21:53 -0000 1.2 +++ openacs-4/contrib/packages/simulation/www/siminst/simulation-delete.adp 8 Jan 2004 15:54:01 -0000 1.3 @@ -2,4 +2,4 @@ @page_title;noquote@ @context;noquote@ -

Confirmation page for cascading delete of simulation and all cases

\ No newline at end of file +

Confirmation page for cascading delete of simulation and all cases

Index: openacs-4/contrib/packages/simulation/www/siminst/wizard.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/www/siminst/Attic/wizard.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/contrib/packages/simulation/www/siminst/wizard.tcl 7 Jan 2004 16:27:35 -0000 1.7 +++ openacs-4/contrib/packages/simulation/www/siminst/wizard.tcl 8 Jan 2004 15:54:01 -0000 1.8 @@ -69,12 +69,14 @@ if { $highest_available > 6 } { set highest_available 6 } + +wizard get_current_step -start $highest_available + if { $highest_available < 5 } { set highest_available 5 } -wizard get_current_step -start $highest_available set sub_title $title(${wizard:current_id}) Index: openacs-4/contrib/packages/simulation/www/simplay/message.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/www/simplay/Attic/message.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/contrib/packages/simulation/www/simplay/message.tcl 7 Jan 2004 16:00:37 -0000 1.14 +++ openacs-4/contrib/packages/simulation/www/simplay/message.tcl 8 Jan 2004 15:54:01 -0000 1.15 @@ -20,6 +20,7 @@ foreach role_id [workflow::case::get_user_roles -case_id $case_id] { lappend from_role_options [list [workflow::role::get_element -role_id $role_id -element pretty_name] $role_id] } + # First sender role selected by default if { ![exists_and_not_null sender_role_id] } { set sender_role_id [lindex [lindex $from_role_options 0] 1] Index: openacs-4/packages/simulation/tcl/template-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/simulation/tcl/template-procs.tcl,v diff -u -r1.36 -r1.37 --- openacs-4/packages/simulation/tcl/template-procs.tcl 8 Jan 2004 13:03:32 -0000 1.36 +++ openacs-4/packages/simulation/tcl/template-procs.tcl 8 Jan 2004 15:54:01 -0000 1.37 @@ -766,7 +766,7 @@ # Special for simulation template: # If there is no initial-action, we create one now - set initial_action_id [workflow::get -workflow_id $workflow_id -element initial_action_id] + set initial_action_id [workflow::get_element -workflow_id $workflow_id -element initial_action_id] if { [empty_string_p $initial_action_id] } { set action_row(pretty_name) "Start" Index: openacs-4/packages/simulation/test/demo-data-setup.test =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/simulation/test/demo-data-setup.test,v diff -u -r1.17 -r1.18 --- openacs-4/packages/simulation/test/demo-data-setup.test 8 Jan 2004 11:27:38 -0000 1.17 +++ openacs-4/packages/simulation/test/demo-data-setup.test 8 Jan 2004 15:54:01 -0000 1.18 @@ -10,19 +10,12 @@ ::twt::simulation::setup::citybuild_objects - ::twt::simulation::setup::elementary_private_law_template - ::twt::simulation::setup::legislative_drafting_template - ::twt::simulation::setup::tilburg_template_from_spec - # TODO: click the ready_p link for the templates + ::twt::simulation::setup::all_templates - ::twt::simulation::test::permissions_anonymous - ::twt::simulation::test::permissions_city_admin - ::twt::simulation::test::permissions_sim_admin - ::twt::simulation::test::permissions_template_author - ::twt::simulation::test::permissions_case_author - ::twt::simulation::test::permissions_service_admin - ::twt::simulation::test::permissions_actor + ::twt::simulation::play::tilburg_template_user_1 + ::twt::simulation::test::permissions_all + } result] } { global errorInfo Index: openacs-4/packages/simulation/test/simulation-test-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/simulation/test/simulation-test-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/simulation/test/simulation-test-procs.tcl 8 Jan 2004 11:27:38 -0000 1.7 +++ openacs-4/packages/simulation/test/simulation-test-procs.tcl 8 Jan 2004 15:54:01 -0000 1.8 @@ -6,6 +6,7 @@ namespace eval ::twt::simulation {} namespace eval ::twt::simulation::setup {} namespace eval ::twt::simulation::test {} +namespace eval ::twt::simulation::play {} ############################## # @@ -102,6 +103,14 @@ } } +ad_proc ::twt::simulation::setup::all_templates {} { + + ::twt::simulation::setup::elementary_private_law_template + ::twt::simulation::setup::legislative_drafting_template + ::twt::simulation::setup::tilburg_template_from_spec + # TODO: click the ready_p link for the templates +} + ad_proc ::twt::simulation::setup::elementary_private_law_template {} { # Do this as the template author to make sure he has sufficient permissions @@ -152,9 +161,75 @@ ::twt::log_section "Create a template from a spec" do_request /simulation/simbuild/template-load - field fill "Template loaded from spec" ~n pretty_name + set template_name "Template loaded from spec" + field fill $template_name ~n pretty_name field fill [::twt::simulation::data::tilburg_template_spec] ~n spec form submit + + do_request /simulation/simbuild + link follow ~c $template_name + link follow ~u template-sim-type-update + + ::twt::log_section "Login case author" + ::twt::user::login [::twt::simulation::permission_user_email "Case Authors"] + + ::twt::log_section "Instantiate the Tilburg template" + do_request /simulation/siminst/simulation-new + link follow ~u map-create + + form find ~n template + # Make name unique + set unique_name "New Simulation from Template loaded from spec [expr rand()]" + field fill $unique_name ~n pretty_name + form submit + + # Wizard page 1 + form find ~n characters + form submit + + regexp {workflow_id=([0-9]+)} [response url] match workflow_id + + # Wizard page 2 + form find ~n tasks + form submit ~n next + + # Wizard page 3 + form find ~n simulation + form submit ~n next + + # Enrollment (page 4) + form find ~n simulation + form submit ~n next + + # Participants (page 5) + form find ~n simulation + field find ~n __auto_enroll ~t checkbox + field check + field find ~n __auto_enroll ~t checkbox + field check + field find ~n __auto_enroll ~t checkbox + field check + field find ~n __auto_enroll ~t checkbox + field check + form submit ~n next + + # Wizard page 6 + form find ~n actors + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + field find ~n parties_ ~t checkbox + field check + form submit ~n finish + + do_request /simulation/siminst/simulation-start?workflow_id=$workflow_id } ############################## @@ -163,6 +238,17 @@ # ############################## +ad_proc ::twt::simulation::test::permissions_all {} { + + ::twt::simulation::test::permissions_anonymous + ::twt::simulation::test::permissions_city_admin + ::twt::simulation::test::permissions_sim_admin + ::twt::simulation::test::permissions_template_author + ::twt::simulation::test::permissions_case_author + ::twt::simulation::test::permissions_service_admin + ::twt::simulation::test::permissions_actor +} + ad_proc ::twt::simulation::test::permissions_anonymous {} { ::twt::log_section "Permission testing with anonymous user" @@ -290,6 +376,62 @@ ############################## # +# ::twt::simulation::play +# +############################## + +ad_proc ::twt::simulation::play::tilburg_template_user_1 {} { + set user_name "Demo User 1" + ::twt::log_section "Login with $user_name and play tilburg simulation" + + ::twt::user::login [::twt::simulation::email_from_user_name $user_name] + + do_request /simulation/simplay + link follow ~u "case.+case" + + # Execute the ask client task + link follow ~u task-detail + form find ~n action + field fill "ask client subject" ~n subject + field fill "ask client body" ~n body + form submit + + # Execute the finalizing task + link follow ~c "Write legal advice" + form find ~n action + field fill "legal advice subject" ~n subject + field fill "legal advice body" ~n body + form submit + + # Legal advice was the last task so there shouldn't be any left + if { [regexp {task-detail\?} [response body]] } { + error "Completed last task ask legal advice but there are still tasks remaining" + } + + # Visit case index page again + do_request /simulation/simplay + link follow ~u "case.+case" + + # Send a message + link follow ~u "message\\?" + form find ~n message + field find ~n recipient_role_id ~t checkbox + field check + field fill "message subject" ~n subject + field fill "message body" ~n body + form submit + + # Upload a document + link follow ~u document-upload + form find ~n document + field find ~n document_file + field fill [::twt::config::serverroot]/packages/simulation/test/new-jersey-lawyer-logo.gif + field fill "New Jersey Lawyers Logo" ~n title + form submit +} + +############################## +# # ::twt::simulation helper procs # ############################## Index: openacs-4/packages/simulation/www/siminst/simulation-delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/simulation/www/siminst/simulation-delete.adp,v diff -u -r1.2 -r1.3 --- openacs-4/packages/simulation/www/siminst/simulation-delete.adp 11 Dec 2003 13:21:53 -0000 1.2 +++ openacs-4/packages/simulation/www/siminst/simulation-delete.adp 8 Jan 2004 15:54:01 -0000 1.3 @@ -2,4 +2,4 @@ @page_title;noquote@ @context;noquote@ -

Confirmation page for cascading delete of simulation and all cases

\ No newline at end of file +

Confirmation page for cascading delete of simulation and all cases

Index: openacs-4/packages/simulation/www/siminst/wizard.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/simulation/www/siminst/wizard.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/simulation/www/siminst/wizard.tcl 7 Jan 2004 16:27:35 -0000 1.7 +++ openacs-4/packages/simulation/www/siminst/wizard.tcl 8 Jan 2004 15:54:01 -0000 1.8 @@ -69,12 +69,14 @@ if { $highest_available > 6 } { set highest_available 6 } + +wizard get_current_step -start $highest_available + if { $highest_available < 5 } { set highest_available 5 } -wizard get_current_step -start $highest_available set sub_title $title(${wizard:current_id}) Index: openacs-4/packages/simulation/www/simplay/message.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/simulation/www/simplay/message.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/simulation/www/simplay/message.tcl 7 Jan 2004 16:00:37 -0000 1.14 +++ openacs-4/packages/simulation/www/simplay/message.tcl 8 Jan 2004 15:54:01 -0000 1.15 @@ -20,6 +20,7 @@ foreach role_id [workflow::case::get_user_roles -case_id $case_id] { lappend from_role_options [list [workflow::role::get_element -role_id $role_id -element pretty_name] $role_id] } + # First sender role selected by default if { ![exists_and_not_null sender_role_id] } { set sender_role_id [lindex [lindex $from_role_options 0] 1]