Index: openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl,v diff -u -r1.12 -r1.13 --- openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl 26 Sep 2006 00:22:46 -0000 1.12 +++ openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl 15 May 2007 20:14:17 -0000 1.13 @@ -7,215 +7,185 @@ assessment_id:integer,optional {__new_p 0} {permission_p 0} - {edit_p:optional "0"} {type ""} {after "0"} } -properties { context:onevalue page_title:onevalue } +set package_id [ad_conn package_id] +permission::require_permission -object_id $package_id -privilege create +set user_id [ad_conn user_id] + if {![info exists assessment_id] || $__new_p} { + # new + set edit_p 0 + set page_title [_ assessment.New_Assessment2] set s_assessment_id 0 - } else { + # edit + set edit_p 1 + set page_title [_ assessment.Edit_Assessment] permission::require_permission -object_id $assessment_id -privilege admin set s_assessment_id 0 - db_0or1row rev_id_from_item_id {} - if {[empty_string_p $type]} { + db_0or1row rev_id_from_item_id {} ;# sets s_assessment_id + if { $type eq "" } { # Get the assessment data as::assessment::data -assessment_id $assessment_id set type $assessment_data(type) } } -set package_id [ad_conn package_id] -permission::require_permission -object_id $package_id -privilege create set context [list [list index [_ assessment.admin]] $page_title] -set package_id [ad_conn package_id] set form_format "[lc_get formbuilder_date_format] [lc_get formbuilder_time_format]" -set user_id [ad_conn user_id] set boolean_options [list [list "[_ assessment.yes]" t] [list "[_ assessment.no]" f]] set feedback_options [list [list "[_ assessment.None]" none] [list "[_ assessment.All]" all] [list "[_ assessment.Only_incorrect]" incorrect] [list "[_ assessment.Only_correct]" correct]] set navigation_options [list [list "[_ assessment.Default_Path]" "default path"] [list "[_ assessment.Randomized]" randomized] [list "[_ assessment.Rulebased_branching]" "rule-based branching"]] - -## {entry_page:text,optional,nospell {label "[_ assessment.Entry_Page]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Entry_Page_help]"}} -## {exit_page:text,optional,nospell {label "[_ assessment.Exit_Page]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Exit_Page_help]"}} - - -ad_form -name assessment_form -export {permission_p after} -action assessment-form -form { - {assessment_id:key} -} - -if {[info exists assessment_id] && $edit_p } {# - ad_form -extend -name assessment_form -form { - {name:text(inform) {label "#assessment.Name#"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.assessment_Name_help]"}} +ad_form -name assessment_form \ + -export {permission_p after} \ + -action assessment-form \ + -form { + {assessment_id:key} } -} else { - if {$type > "survey" } { - ad_form -extend -name assessment_form -form { - {name:text,optional,nospell {label "[_ assessment.Name]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.assessment_Name_help]"}} - } - } else { - ad_form -extend -name assessment_form -form { - {name:text(hidden) {value ""}} - } - } -} ad_form -extend -name assessment_form -form { {title:text,nospell {label "[_ assessment.Title]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.as_Title_help]"}} + {description:text(textarea),optional {label "[_ assessment.Description]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Description_help]"}} } -ad_form -extend -name assessment_form -form { {description:text(textarea),optional {label "[_ assessment.Description]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Description_help]"}} -} - if {![empty_string_p [category_tree::get_mapped_trees $package_id]]} { category::ad_form::add_widgets -container_object_id $package_id -categorized_object_id $s_assessment_id -form_name assessment_form } -ad_form -extend -name assessment_form -form {{instructions:text(textarea),optional {label "[_ assessment.Instructions]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Instructions_help]"}}} - -if { $type eq "test" } { - ad_form -extend -name assessment_form -form { - {run_mode:text,optional,nospell {label "[_ assessment.Mode]"} {html {size 25 maxlength 25}} {help_text "[_ assessment.as_Mode_help]"}} - } -} else { +if { $edit_p } { + ad_form -extend -name assessment_form -form {{instructions:text(textarea),optional {label "[_ assessment.Instructions]"} {html {rows 5 cols 80}}}} + + ad_form -extend -name assessment_form -form { {run_mode:text(hidden) {value {}}} } -} -if { (!$permission_p) } { - ad_form -extend -name assessment_form -form { - {anonymous_p:text(select) {label "[_ assessment.Anonymous_Responses]"} {options $boolean_options} {help_text "[_ assessment.as_Anonymous_help]"} {value f}} - } -} else { - ad_form -extend -name assessment_form -form { - {anonymous_p:text(hidden) {value t}} + if { !$permission_p } { + ad_form -extend -name assessment_form -form { + {anonymous_p:text(select) {label "[_ assessment.Anonymous_Responses]"} {options $boolean_options} {help_text "[_ assessment.as_Anonymous_help]"} {value f}} + } + } else { + ad_form -extend -name assessment_form -form { + {anonymous_p:text(hidden) {value t}} + } } -} -if { $type eq "test" } { ad_form -extend -name assessment_form -form { - {secure_access_p:text(select) {label "[_ assessment.Secure_Access_1]"} {options $boolean_options} {help_text "[_ assessment.as_Secure_Access_help]"}} - {reuse_responses_p:text(select) {label "[_ assessment.Reuse_Responses_1]"} {options $boolean_options} {help_text "[_ assessment.as_Reuse_Responses_help]"}} + {secure_access_p:text(select) {label "[_ assessment.Secure_Access_1]"} {options $boolean_options} {help_text "[_ assessment.as_Secure_Access_help]"}} + {reuse_responses_p:text(select) {label "[_ assessment.Reuse_Responses_1]"} {options $boolean_options} {help_text "[_ assessment.as_Reuse_Responses_help]"}} } -} else { - ad_form -extend -name assessment_form -form { - {secure_access_p:text(hidden) {value "f"}} - {reuse_responses_p:text(hidden) {value "f"}} - } -} -if { ($type eq "test" || $type eq "5") } { ad_form -extend -name assessment_form -form { - {show_item_name_p:text(select) {label "[_ assessment.Show_Item_Name_1]"} {options $boolean_options} {help_text "[_ assessment.as_Show_Item_Name_help]"}} + {show_item_name_p:text(select) {label "[_ assessment.Show_Item_Name_1]"} {options $boolean_options} {help_text "[_ assessment.as_Show_Item_Name_help]"}} } -} else { - ad_form -extend -name assessment_form -form { {show_item_name_p:text(hidden) {value "f"}} } -} -if { ($type eq "test" || $type eq "5") } { ad_form -extend -name assessment_form -form { - {random_p:text(select) {label "[_ assessment.Allow_Random]"} {options $boolean_options} {help_text "[_ assessment.as_Allow_Random_help]"}} + {random_p:text(select) {label "[_ assessment.Allow_Random]"} {options $boolean_options} {help_text "[_ assessment.as_Allow_Random_help]"}} } -} else { - ad_form -extend -name assessment_form -form { {random_p:text(hidden) {value "t"}} } -} -if { ($type eq "test" || $type eq "3" || $type eq "4") } { ad_form -extend -name assessment_form -form { - {consent_page:text(textarea),optional,nospell {label "[_ assessment.Consent_Page]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Consent_Page_help]"}} + {entry_page:richtext,optional {label "[_ assessment.Entry_Page]"} {html {rows 9 cols 80 style {width: 95%}}} {help_text "[_ assessment.Entry_Page_help]"}} + {exit_page:richtext,optional {label "[_ assessment.Exit_Page]"} {html {rows 9 cols 80 style {width: 95%}}} {help_text "[_ assessment.Exit_Page_help]"}} + {consent_page:text(textarea),optional,nospell {label "[_ assessment.Consent_Page]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Consent_Page_help]"}} } -} else { - ad_form -extend -name assessment_form -form { {consent_page:text(hidden) {value ""}} } -} -if { $type != 5 } { ad_form -extend -name assessment_form -form { - {return_url:text,optional,nospell {label "[_ assessment.Return_Url]"} {html {size 50}} {help_text "[_ assessment.as_Return_Url_help]"}} + {return_url:text,optional,nospell {label "[_ assessment.Return_Url]"} {html {size 50}} {help_text "[_ assessment.as_Return_Url_help]"}} } -} else { - ad_form -extend -name assessment_form -form { {return_url:text(hidden) {value {}}} } -} - - -if { $type eq "test" } { - ad_form -extend -name assessment_form -form { - {start_time:date,to_sql(sql_date),to_html(display_date),optional {label "[_ assessment.Start_Time]"} {format $form_format} {help} {help_text "[_ assessment.as_Start_Time_help]"}} - {end_time:date,to_sql(sql_date),to_html(display_date),optional {label "[_ assessment.End_Time]"} {format $form_format} {help} {help_text "[_ assessment.as_End_Time_help]"}} + + if { $type eq "test" } { + ad_form -extend -name assessment_form -form { + {start_time:date,to_sql(sql_date),to_html(display_date),optional {label "[_ assessment.Start_Time]"} {format $form_format} {help} {help_text "[_ assessment.as_Start_Time_help]"}} + {end_time:date,to_sql(sql_date),to_html(display_date),optional {label "[_ assessment.End_Time]"} {format $form_format} {help} {help_text "[_ assessment.as_End_Time_help]"}} + } + } else { + ad_form -extend -name assessment_form -form { + {start_time:date(hidden) {value ""}} + {end_time:date(hidden) {value ""}} + } } -} else { - ad_form -extend -name assessment_form -form { - {start_time:date(hidden) {value ""}} - {end_time:date(hidden) {value ""}} - } -} + + ad_form -extend -name assessment_form -form { + {number_tries:integer,optional,nospell {label "[_ assessment.Number_of_Tries]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Number_Tries_help]"}} + {wait_between_tries:integer,optional,nospell {label "[_ assessment.Minutes_for_Retry]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Minutes_Retry_help]"}} + } -if { $type eq "test" } { - ad_form -extend -name assessment_form -form { - {number_tries:integer,optional,nospell {label "[_ assessment.Number_of_Tries]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Number_Tries_help]"}} - {wait_between_tries:integer,optional,nospell {label "[_ assessment.Minutes_for_Retry]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Minutes_Retry_help]"}} - } -} else { - ad_form -extend -name assessment_form -form { - {number_tries:text(hidden) {value ""}} - {wait_between_tries:text(hidden) {value ""}} - } -} + ad_form -extend -name assessment_form -form { + {time_for_response:integer,optional,nospell {label "[_ assessment.time_for_response]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_time_help]"}} + } -if { $type eq "test" } { - ad_form -extend -name assessment_form -form { - {time_for_response:integer,optional,nospell {label "[_ assessment.time_for_response]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_time_help]"}} + if { $type eq "test" } { + ad_form -extend -name assessment_form -form { + {ip_mask:text,optional,nospell {label "[_ assessment.ip_mask]"} {html {size 20 maxlength 100}} {help_text "[_ assessment.as_ip_mask_help]"}} + {password:text,optional,nospell {label "[_ assessment.password]"} {html {size 20 maxlength 100}} {help_text "[_ assessment.as_password_help]"}} + } + } else { + ad_form -extend -name assessment_form -form { + {ip_mask:text(hidden) {value ""}} + {password:text(hidden) {value ""}} + } } -} else { - ad_form -extend -name assessment_form -form { - {time_for_response:text(hidden) {value ""}} + + if { $type eq "test" } { + ad_form -extend -name assessment_form -form { + {show_feedback:text(select),optional {label "[_ assessment.Show_Feedback]"} {options $feedback_options} {help_text "[_ assessment.as_Feedback_help]"}} + } + } else { + ad_form -extend -name assessment_form -form { + {show_feedback:text(hidden) {value ""}} + } } -} - -if { $type eq "test" } { - ad_form -extend -name assessment_form -form { - {ip_mask:text,optional,nospell {label "[_ assessment.ip_mask]"} {html {size 20 maxlength 100}} {help_text "[_ assessment.as_ip_mask_help]"}} - {password:text,optional,nospell {label "[_ assessment.password]"} {html {size 20 maxlength 100}} {help_text "[_ assessment.as_password_help]"}} + + if { $type eq "test" } { + ad_form -extend -name assessment_form -form { + {section_navigation:text(select),optional {label "[_ assessment.Section_Navigation]"} {options $navigation_options} {help_text "[_ assessment.as_Navigation_help]"}} + } + } else { + ad_form -extend -name assessment_form -form { + {section_navigation:text(hidden) {value ""}} + } } } else { - ad_form -extend -name assessment_form -form { - {ip_mask:text(hidden) {value ""}} - {password:text(hidden) {value ""}} + # new + ad_form -extend -name assessment_form -form { + {run_mode:text(hidden) {value {}}} + {start_time:date(hidden) {value ""}} + {end_time:date(hidden) {value ""}} + {instructions:text(hidden) {value ""}} + {anonymous_p:text(hidden) {value t}} + {secure_access_p:text(hidden) {value "f"}} + {reuse_responses_p:text(hidden) {value "f"}} + {show_item_name_p:text(hidden) {value "f"}} + {random_p:text(hidden) {value "t"}} + {consent_page:text(hidden) {value ""}} + {return_url:text(hidden) {value {}}} + {number_tries:text(hidden) {value ""}} + {wait_between_tries:text(hidden) {value ""}} + {time_for_response:text(hidden) {value ""}} + {ip_mask:text(hidden) {value ""}} + {password:text(hidden) {value ""}} + {show_feedback:text(hidden) {value ""}} + {section_navigation:text(hidden) {value ""}} + {entry_page:text(hidden) {value ""}} + {exit_page:text(hidden) {value ""}} } } -if { $type eq "test" } { - ad_form -extend -name assessment_form -form { - {show_feedback:text(select),optional {label "[_ assessment.Show_Feedback]"} {options $feedback_options} {help_text "[_ assessment.as_Feedback_help]"}} - } -} else { - ad_form -extend -name assessment_form -form { - {show_feedback:text(hidden) {value ""}} - } -} - -if { $type eq "test" } { - ad_form -extend -name assessment_form -form { - {section_navigation:text(select),optional {label "[_ assessment.Section_Navigation]"} {options $navigation_options} {help_text "[_ assessment.as_Navigation_help]"}} - } -} else { - ad_form -extend -name assessment_form -form { - {section_navigation:text(hidden) {value ""}} - } -} - ad_form -extend -name assessment_form -form { {type:text(hidden) {value $type}} } ad_form -extend -name assessment_form -new_request { - set name "" + set new "" set title "" set description "" set instructions "" @@ -246,8 +216,10 @@ if {![empty_string_p $end_time]} { set end_time [util::date::acquire ansi $end_time] } -} -validate { - {name {[as::assessment::unique_name -name $name -new_p $__new_p]} "[_ assessment.name_used] $assessment_id"} + + set entry_page [template::util::richtext::create $entry_page text/html] + set exit_page [template::util::richtext::create $exit_page text/html] + } -on_submit { if {$start_time == "NULL"} { set start_time "" @@ -264,7 +236,6 @@ } -new_data { db_transaction { set assessment_rev_id [as::assessment::new \ - -name $name \ -title $title \ -creator_id $user_id \ -description $description \ @@ -275,8 +246,8 @@ -reuse_responses_p $reuse_responses_p \ -show_item_name_p $show_item_name_p \ -random_p $random_p \ - -entry_page "" \ - -exit_page "" \ + -entry_page [template::util::richtext get_property content $entry_page] \ + -exit_page [template::util::richtext get_property content $exit_page] \ -consent_page $consent_page \ -return_url $return_url \ -start_time "" \ @@ -306,22 +277,17 @@ if {![empty_string_p $end_time]} { db_dml update_end_time {} } - if { $type eq "survey"} { - db_transaction { - set new_assessment_rev_id [as::assessment::new_revision -assessment_id $assessment_id] - - set new_section_id [as::section::new -title [_ assessment.survey_section] ] - - db_dml move_down_sections {} - set sort_order [expr $after + 1] - db_dml add_section_to_assessment {} - - if {[exists_and_not_null category_ids]} { - category::map_object -object_id $new_section_id $category_ids - } - } - } - + + set new_assessment_rev_id [as::assessment::new_revision -assessment_id $assessment_id] + + set new_section_id [as::section::new -title [_ assessment.Questions] ] + db_dml move_down_sections {} + set sort_order [expr $after + 1] + db_dml add_section_to_assessment {} + + if {[exists_and_not_null category_ids]} { + category::map_object -object_id $new_section_id $category_ids + } } } -edit_data { db_transaction { @@ -336,8 +302,8 @@ -reuse_responses_p $reuse_responses_p \ -show_item_name_p $show_item_name_p \ -random_p $random_p \ - -entry_page "" \ - -exit_page "" \ + -entry_page [template::util::richtext get_property content $entry_page] \ + -exit_page [template::util::richtext get_property content $exit_page] \ -consent_page $consent_page \ -return_url $return_url \ -start_time "" \