joela
committed
on 27 Jun 04
file photo-album.pt_BR.ISO-8859-1.xml was initially added on branch oacs-5-1.
openacs-4/.../admin/assessment-form.tcl (+29 -19)
4 4     @author Timo Hentschel (timo@timohentschel.de)
5 5     @cvs-id $Id:
6 6 } {
7 7     assessment_id:integer,optional
8 8     {__new_p 0}
9 9 } -properties {
10 10     context_bar:onevalue
11 11     page_title:onevalue
12 12 }
13 13
14 14 if {![info exists assessment_id] || $__new_p} {
15 15     set page_title [_ assessment.New_Assessment2]
16 16     set _assessment_id 0
17 17 } else {
18 18     set page_title [_ assessment.Edit_Assessment]
19 19     set _assessment_id 0
20 20     db_0or1row rev_id_from_item_id {}
21 21 }
22 22
23 23 set context_bar [ad_context_bar $page_title]
24   set format "YYYY-MM-DD HH24:MI"
25 24 set package_id [ad_conn package_id]
  25 set sql_format "YYYY-MM-DD HH24:MI:SS"
  26 set form_format "[lc_get formbuilder_date_format] [lc_get formbuilder_time_format]"
26 27
27 28
28 29 set boolean_options [list [list "[_ assessment.yes]" t] [list "[_ assessment.no]" f]]
29 30 set feedback_options [list [list "[_ assessment.None]" none] [list "[_ assessment.All]" all] [list "[_ assessment.Only_incorrect]" incorrect] [list "[_ assessment.Only_correct]" correct]]
30 31 set navigation_options [list [list "[_ assessment.Default_Path]" "default path"] [list "[_ assessment.Randomized]" randomized] [list "[_ assessment.Rulebased_branching]" "rule-based branching"]]
31 32
32 33
33 34 ad_form -name assessment_form -action assessment-form -form {
34 35     {assessment_id:key}
35 36 }
36 37
37 38 if {[info exists assessment_id]} {
38 39     ad_form -extend -name assessment_form -form {
39 40         {name:text(inform) {label "[_ assessment.Name]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.assessment_Name_help]"}}
40 41     }
41 42 } else {
42 43     ad_form -extend -name assessment_form -form {
43           {name:text,optional {label "[_ assessment.Name]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.assessment_Name_help]"}}
  44         {name:text,optional,nospell {label "[_ assessment.Name]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.assessment_Name_help]"}}
44 45     }
45 46 }
46 47
47 48 ad_form -extend -name assessment_form -form {
48       {title:text {label "[_ assessment.Title]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.as_Title_help]"}}
  49     {title:text,nospell {label "[_ assessment.Title]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.as_Title_help]"}}
49 50     {description:text(textarea),optional {label "[_ assessment.Description]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Description_help]"}}
50 51 }
51 52
52 53 if {![empty_string_p [category_tree::get_mapped_trees $package_id]]} {
53 54     category::ad_form::add_widgets -container_object_id $package_id -categorized_object_id $_assessment_id -form_name assessment_form
54 55 }
55 56
56 57 ad_form -extend -name assessment_form -form {
57 58     {instructions:text(textarea),optional {label "[_ assessment.Instructions]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Instructions_help]"}}
58       {run_mode:text,optional {label "[_ assessment.Mode]"} {html {size 25 maxlength 25}} {help_text "[_ assessment.as_Mode_help]"}}
  59     {run_mode:text,optional,nospell {label "[_ assessment.Mode]"} {html {size 25 maxlength 25}} {help_text "[_ assessment.as_Mode_help]"}}
59 60     {anonymous_p:text(select) {label "[_ assessment.Anonymous_Responses]"} {options $boolean_options} {help_text "[_ assessment.as_Anonymous_help]"}}
60 61     {secure_access_p:text(select) {label "[_ assessment.Secure_Access_1]"} {options $boolean_options} {help_text "[_ assessment.as_Secure_Access_help]"}}
61 62     {reuse_responses_p:text(select) {label "[_ assessment.Reuse_Responses_1]"} {options $boolean_options} {help_text "[_ assessment.as_Reuse_Responses_help]"}}
62 63     {show_item_name_p:text(select) {label "[_ assessment.Show_Item_Name_1]"} {options $boolean_options} {help_text "[_ assessment.as_Show_Item_Name_help]"}}
63       {entry_page:text,optional {label "[_ assessment.Entry_Page]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Entry_Page_help]"}}
64       {exit_page:text,optional {label "[_ assessment.Exit_Page]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Exit_Page_help]"}}
65       {consent_page:text(textarea),optional {label "[_ assessment.Consent_Page]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Consent_Page_help]"}}
66       {return_url:text,optional {label "[_ assessment.Return_Url]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Return_Url_help]"}}
67       {start_time:date,to_sql(sql_date),to_html(display_date),optional {label "[_ assessment.Start_Time]"} {format $format} {help} {help_text "[_ assessment.as_Start_Time_help]"}}
68       {end_time:date,to_sql(sql_date),to_html(display_date),optional {label "[_ assessment.End_Time]"} {format $format} {help} {help_text "[_ assessment.as_End_Time_help]"}}
69       {number_tries:integer,optional {label "[_ assessment.Number_of_Tries]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Number_Tries_help]"}}
70       {wait_between_tries:integer,optional {label "[_ assessment.Minutes_for_Retry]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Minutes_Retry_help]"}}
71       {time_for_response:integer,optional {label "[_ assessment.time_for_completion]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_time_help]"}}
  64     {entry_page:text,optional,nospell {label "[_ assessment.Entry_Page]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Entry_Page_help]"}}
  65     {exit_page:text,optional,nospell {label "[_ assessment.Exit_Page]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Exit_Page_help]"}}
  66     {consent_page:text(textarea),optional,nospell {label "[_ assessment.Consent_Page]"} {html {rows 5 cols 80}} {help_text "[_ assessment.as_Consent_Page_help]"}}
  67     {return_url:text,optional,nospell {label "[_ assessment.Return_Url]"} {html {size 50 maxlength 50}} {help_text "[_ assessment.as_Return_Url_help]"}}
  68     {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]"}}
  69     {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]"}}
  70     {number_tries:integer,optional,nospell {label "[_ assessment.Number_of_Tries]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Number_Tries_help]"}}
  71     {wait_between_tries:integer,optional,nospell {label "[_ assessment.Minutes_for_Retry]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_Minutes_Retry_help]"}}
  72     {time_for_response:integer,optional,nospell {label "[_ assessment.time_for_completion]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.as_time_help]"}}
72 73     {show_feedback:text(select),optional {label "[_ assessment.Show_Feedback]"} {options $feedback_options} {help_text "[_ assessment.as_Feedback_help]"}}
73 74     {section_navigation:text(select),optional {label "[_ assessment.Section_Navigation]"} {options $navigation_options} {help_text "[_ assessment.as_Navigation_help]"}}
74 75 } -new_request {
75 76     set name ""
76 77     set title ""
77 78     set description ""
78 79     set instructions ""
79 80     set run_mode ""
80 81     set anonymous_p f
81 82     set secure_access_p f
82 83     set reuse_responses_p f
83 84     set show_item_name_p f
84 85     set entry_page ""
85 86     set exit_page ""
86 87     set consent_page ""
87 88     set return_url ""
88 89     set start_time ""
89 90     set end_time ""
90 91     set number_tries ""
91 92     set wait_between_tries ""
92 93     set time_for_response ""
93 94     set show_feedback "none"
94 95     set section_navigation "default path"
95 96 } -edit_request {
96 97     db_1row assessment_data {}
97 98
98 99     if {![empty_string_p $start_time]} {
99           set start_time [util::date::acquire clock [clock scan $start_time]]
  100         set start_time [util::date::acquire ansi $start_time]
100 101     }
101 102     if {![empty_string_p $end_time]} {
102           set end_time [util::date::acquire clock [clock scan $end_time]]
  103         set end_time [util::date::acquire ansi $end_time]
103 104     }
104 105 } -validate {
105 106     {name {[as::assessment::unique_name -name $name -new_p $__new_p]} "[_ assessment.name_used]"}
106 107 } -on_submit {
107 108     if {$start_time == "NULL"} {
108 109         set start_time ""
109 110     }
110 111     if {$end_time == "NULL"} {
111 112         set end_time ""
112 113     }
  114     if {[db_type] == "postgresql"} {
  115         regsub -all -- {to_date} $start_time {to_timestamp} start_time
  116         regsub -all -- {to_date} $end_time {to_timestamp} end_time
  117     }
  118
113 119     set category_ids [category::ad_form::get_categories -container_object_id $package_id]
114 120 } -new_data {
115 121     db_transaction {
116 122         set assessment_rev_id [as::assessment::new \
117 123                                    -name $name \
118 124                                    -title $title \
119 125                                    -description $description \
120 126                                    -instructions $instructions \
121 127                                    -run_mode $run_mode \
122 128                                    -anonymous_p $anonymous_p \
123 129                                    -secure_access_p $secure_access_p \
124 130                                    -reuse_responses_p $reuse_responses_p \
125 131                                    -show_item_name_p $show_item_name_p \
126 132                                    -entry_page $entry_page \
127 133                                    -exit_page $exit_page \
128 134                                    -consent_page $consent_page \
129 135                                    -return_url $return_url \
130                                      -start_time $start_time \
131                                      -end_time $end_time \
  136                                    -start_time "" \
  137                                    -end_time "" \
132 138                                    -number_tries $number_tries \
133 139                                    -wait_between_tries $wait_between_tries \
134 140                                    -time_for_response $time_for_response \
135 141                                    -show_feedback $show_feedback \
136 142                                    -section_navigation $section_navigation]
137 143
138 144         set assessment_id [db_string assessment_id_from_revision {}]
139 145
140 146         if {[exists_and_not_null category_ids]} {
141 147             category::map_object -object_id $assessment_rev_id $category_ids
142 148         }
  149
  150         db_dml update_time {}
143 151     }
144 152 } -edit_data {
145 153     db_transaction {
146 154         set assessment_rev_id [as::assessment::edit \
147 155                                    -assessment_id $assessment_id \
148 156                                    -title $title \
149 157                                    -description $description \
150 158                                    -instructions $instructions \
151 159                                    -run_mode $run_mode \
152 160                                    -anonymous_p $anonymous_p \
153 161                                    -secure_access_p $secure_access_p \
154 162                                    -reuse_responses_p $reuse_responses_p \
155 163                                    -show_item_name_p $show_item_name_p \
156 164                                    -entry_page $entry_page \
157 165                                    -exit_page $exit_page \
158 166                                    -consent_page $consent_page \
159 167                                    -return_url $return_url \
160                                      -start_time $start_time \
161                                      -end_time $end_time \
  168                                    -start_time "" \
  169                                    -end_time "" \
162 170                                    -number_tries $number_tries \
163 171                                    -wait_between_tries $wait_between_tries \
164 172                                    -time_for_response $time_for_response \
165 173                                    -show_feedback $show_feedback \
166 174                                    -section_navigation $section_navigation]
167 175
168 176         if {[exists_and_not_null category_ids]} {
169 177             category::map_object -object_id $assessment_rev_id $category_ids
170 178         }
  179
  180         db_dml update_time {}
171 181     }
172 182 } -after_submit {
173 183     ad_returnredirect [export_vars -base one-a {assessment_id}]
174 184     ad_script_abort
175 185 }
176 186
177 187 ad_return_template