Index: openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl,v
diff -u -r1.26 -r1.27
--- openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl 23 May 2005 14:19:28 -0000 1.26
+++ openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl 8 Aug 2006 21:26:43 -0000 1.27
@@ -17,14 +17,20 @@
admin_groups_p:optional
{add_to_more_classes_p ""}
{attached_p "f"}
+ {enable 1}
+ {return_p ""}
+ {simple_p ""}
+
}
set package_id [ad_conn package_id]
set user_id [ad_conn user_id]
set community_id [dotlrn_community::get_community_id]
set new_p [ad_form_new_p -key task_id]
+set simple_p [parameter::get -parameter SimpleVersion ]
+
set more_communities_option 0
if { $new_p && ![empty_string_p $community_id] && [db_string get_user_comunities { *SQL* }] } {
set more_communities_option 1
@@ -33,6 +39,8 @@
db_1row get_grade_info { *SQL* }
if { $new_p } {
set page_title "[_ evaluation.Add_grade_name_]"
+ # set storage_type to its default value according to a db constraint
+ set storage_type "lob"
} else {
set page_title "[_ evaluation.Edit_grade_name_]"
}
@@ -52,392 +60,506 @@
task_id:key
{task_name:text
- {label "[_ evaluation.Task_Name_]"}
- {html {size 30}}
+ {label "[_ evaluation.Task_Name_]"}
+ {html {size 30}}
}
}
if { !$new_p } {
+ ad_form -extend -name task -form {
+ {grade_item_id:text
+ {label "[_ evaluation.Assignment_Type]"}
+ {widget select}
+ {options "[db_list_of_lists select_grade_types { *SQL* }]"}
+ {value $grade_id}
+ }
+ }
+
db_1row get_task_info { *SQL* }
if { ![string eq $title "link"] && $content_length > 0 } {
-
- if { [string eq $mode "edit"] } {
- set attached_p "t"
-
- ad_form -extend -name task -form {
- {upload_file:file,optional
- {label "[_ evaluation.File_]"}
- {html "size 30"}
- {help_text "[_ evaluation.lt_Currently_title_is_at_2]"}
- }
- {unattach_p:text(checkbox),optional
- {label "[_ evaluation.Unattach_file_]"}
- {options {{"" "t"}}}
- {help_text "[_ evaluation.lt_Check_this_if_you_wan]"}
- }
- {url:text(text),optional
- {label "[_ evaluation.URL__1]"}
- {value "http://"}
- }
- }
- } else {
- ad_form -extend -name task -form {
- {upload_file:text,optional
- {label "[_ evaluation.File_]"}
- {html "size 30"}
- {value "$title"}
- }
- {unattach_p:text(hidden)
- }
- {url:text(hidden)
- }
- }
+ if { [string eq $mode "edit"] } {
+ set attached_p "t"
+ ad_form -extend -name task -form {
+ {upload_file:file,optional
+ {label "[_ evaluation.File_]"}
+ {html "size 30"}
+ {help_text "[_ evaluation.lt_Currently_title_is_at_2]"}
}
+ {unattach_p:text(checkbox),optional
+ {label "[_ evaluation.Unattach_file_]"}
+ {options {{"" "t"}}}
+ {help_text "[_ evaluation.lt_Check_this_if_you_wan]"}
+ }
+ {url:text(text),optional
+ {label "[_ evaluation.URL__1]"}
+ {value "http://"}
+ }
+ }
+ } else {
+ ad_form -extend -name task -form {
+ {upload_file:text,optional
+ {label "[_ evaluation.File_]"}
+ {html "size 30"}
+ {value "$title"}
+ }
+ {unattach_p:text(hidden)
+ }
+ {url:text(hidden)
+ }
+ }
+ }
} elseif { [string eq $title "link"] } {
- if { [string eq $mode "edit"] } {
+ if { [string eq $mode "edit"] } {
- set attached_p "t"
-
- ad_form -extend -name task -form {
-
- {upload_file:file,optional
- {label "[_ evaluation.File_]"}
- {html "size 30"}
- }
- {url:text(text),optional
- {label "[_ evaluation.URL__1]"}
- {value "http://"}
- {help_text "[_ evaluation.lt_Currently_content_is__1]"}
- }
- {unattach_p:text(checkbox),optional
- {label "[_ evaluation.Unassociate_url_]"}
- {options {{"" "t"}}}
- {help_text "[_ evaluation.lt_Check_this_if_you_wan]"}
- }
- }
- } else {
- ad_form -extend -name task -form {
-
- {upload_file:text(hidden)
- }
- {url:text(text),optional
- {label "[_ evaluation.URL__1]"}
- {value "$content"}
- }
- {unattach_p:text(hidden)
- }
- }
+ set attached_p "t"
+
+ ad_form -extend -name task -form {
+
+ {upload_file:file,optional
+ {label "[_ evaluation.File_]"}
+ {html "size 30"}
}
- } else {
- ad_form -extend -name task -form {
-
- {upload_file:file,optional
- {label "[_ evaluation.File_]"}
- {html "size 30"}
- {help_text "[_ evaluation.lt_You_can_upload_a_file]"}
- }
-
- {url:text(text),optional
- {label "[_ evaluation.URL__1]"}
- {value "http://"}
- {help_text "You can associate a link to this task by entering the absolute url here (also optional)"}
- }
-
- {unattach_p:text(hidden),optional
- {value ""}
- }
+ {url:text(text),optional
+ {label "[_ evaluation.URL__1]"}
+ {value "http://"}
+ {help_text "[_ evaluation.lt_Currently_content_is__1]"}
+ }
+ {unattach_p:text(checkbox),optional
+ {label "[_ evaluation.Unassociate_url_]"}
+ {options {{"" "t"}}}
+ {help_text "[_ evaluation.lt_Check_this_if_you_wan]"}
}
+ }
+ } else {
+ ad_form -extend -name task -form {
+ {upload_file:text(hidden)
+ }
+ {url:text(text),optional
+ {label "[_ evaluation.URL__1]"}
+ {value "$content"}
+ }
+ {unattach_p:text(hidden)
+ }
+ }
+ }
+ } else {
+ ad_form -extend -name task -form {
+
+ {upload_file:file,optional
+ {label "[_ evaluation.File_]"}
+ {html "size 30"}
+ {help_text "[_ evaluation.lt_You_can_upload_a_file]"}
+ }
+
+ {url:text(text),optional
+ {label "[_ evaluation.URL__1]"}
+ {value "http://"}
+ {help_text "You can associate a link to this task by entering the absolute url here (also optional)"}
+ }
+
+ {unattach_p:text(hidden),optional
+ {value ""}
+ }
+ }
+
}
} else {
ad_form -extend -name task -form {
-
- {upload_file:file,optional
- {label "[_ evaluation.File_]"}
- {html "size 30"}
- {help_text "[_ evaluation.lt_You_can_upload_a_file_1]"}
- }
+
+ {upload_file:file,optional
+ {label "[_ evaluation.File_]"}
+ {html "size 30"}
+ {help_text "[_ evaluation.lt_You_can_upload_a_file_1]"}
+ }
}
ad_form -extend -name task -form {
-
- {url:text(text),optional
- {label "[_ evaluation.URL__1]"}
- {value "http://"}
- {help_text "[_ evaluation.lt_You_can_associate_a_l]"}
- }
-
- {unattach_p:text(hidden),optional
- {value ""}
- }
+
+ {url:text(text),optional
+ {label "[_ evaluation.URL__1]"}
+ {value "http://"}
+ {help_text "[_ evaluation.lt_You_can_associate_a_l]"}
+ }
+
+ {unattach_p:text(hidden),optional
+ {value ""}
+ }
}
}
ad_form -extend -name task -form {
{description:richtext,optional
- {label "[_ evaluation.lt_Assignments_Descripti]"}
- {html {rows 4 cols 40 wrap soft}}
+ {label "[_ evaluation.lt_Assignments_Descripti]"}
+ {html {rows 4 cols 40 wrap soft}}
}
{due_date:date,to_sql(linear_date),from_sql(sql_date),optional
- {label "[_ evaluation.Due_Date_]"}
- {format "MONTH DD YYYY HH24 MI SS"}
- {today}
- {help}
- {value {[evaluation::now_plus_days -ndays 15]}}
+ {label "[_ evaluation.Due_Date_]"}
+ {format "MONTH DD YYYY HH24 MI SS"}
+ {value "[evaluation::now_plus_days -ndays 20]"}
+ {help}
}
-
- {number_of_members:naturalnum
- {label "[_ evaluation.Number_of_Members_]"}
- {value "1"}
- {html {size 5 onChange TaskInGroups()}}
- {help_text "[_ evaluation.1__Individual_]"}
- {after_html {
}}
+ {relative_weight:float(hidden)
+ {value 0}
}
+}
- {weight:float,optional
- {label "[_ evaluation.lt_Weight_over_grade_wei_2]"}
- {html {size 5}}
- {help_text "[_ evaluation.lt_You_can_enter_the_wei]"}
- {value "0"}
- }
+if { $simple_p } {
+ ad_form -extend -name task -form {
+ {number_of_members:naturalnum(hidden)
+ {value "1"}
+ }
+ {weight:float(hidden)
+ {value "0"}
+ }
+ {net_value:float(hidden)
+ {value "0"}
+ }
- {net_value:float,optional
- {label "[_ evaluation.Net_Value_]"}
- {html {size 5}}
- {help_text "[_ evaluation.lt_If_you_enter_the_net_]"}
- {value "0"}
+
}
- {online_p:text(radio)
- {label "[_ evaluation.lt_Will_the_task_be_subm]"}
- {options {{"[_ evaluation.Yes_]" t} {"[_ evaluation.No_]" f}}}
- {value t}
+} else {
+ ad_form -extend -name task -form {
+ {number_of_members:naturalnum
+ {label "[_ evaluation.Number_of_Members_]"}
+ {value "1"}
+ {html {size 5 onChange TaskInGroups()}}
+ {help_text "[_ evaluation.1__Individual_]"}
+ {after_html {}}
+ }
+
+ {weight:float,optional
+ {label "[_ evaluation.lt_Weight_over_grade_wei_2]"}
+ {html {size 5}}
+ {help_text "[_ evaluation.lt_You_can_enter_the_wei]"}
+ {value "0"}
+ }
+
+ {net_value:float,optional
+ {label "[_ evaluation.Net_Value_]"}
+ {html {size 5}}
+ {help_text "[_ evaluation.lt_If_you_enter_the_net_]"}
+ {value "0"}
+ }
}
-
- {late_submit_p:text(radio)
- {label "[_ evaluation.lt_Can_the_student_submi]"}
- {options {{"[_ evaluation.Yes_]" t} {"[_ evaluation.No_]" f}}}
- {value t}
+}
+ad_form -extend -name task -form {
+ {perfect_score:float(text)
+ {label "[_ evaluation.perfect_score]"}
+ {html {size 5}}
+ {help_text "[_ evaluation.perfect_score_help]"}
+ {value 100}
}
+ {answer_choice:text(radio)
+ {label "[_ evaluation.answer_choice_]"}
+ {options {{"[_ evaluation.submitted_online_]" ol} {"[_ evaluation.forum_r_]" fr} {"[_ evaluation.not_submited_]" ns}}}
+ {value "ol"}
+ }
+}
+if { $simple_p } {
+ ad_form -extend -name task -form {
+ {late_submit_p:text(hidden)
+ {value t}
+ }
+ }
+} else {
+ ad_form -extend -name task -form {
+ {late_submit_p:text(radio)
+ {label "[_ evaluation.lt_Can_the_student_submi]"}
+ {options {{"[_ evaluation.Yes_]" t} {"[_ evaluation.No_]" f}}}
+ {value t}
+ }
+ }
+}
+ad_form -extend -name task -form {
{requires_grade_p:text(radio)
- {label "[_ evaluation.lt_Will_this_task_requir]"}
- {options {{"[_ evaluation.Yes_]" t} {"[_ evaluation.No_]" f}}}
- {value t}
+ {label "[_ evaluation.lt_Will_this_task_requir]"}
+ {options {{"[_ evaluation.Yes_]" t} {"[_ evaluation.No_]" f}}}
+ {value t}
}
-
- {estimated_time:float,optional
- {label "[_ evaluation.lt_Time_estimated_to_com]"}
- {html {size 5}}
- {value "0"}
+}
+if { $simple_p } {
+ ad_form -extend -name task -form {
+ {estimated_time:float(hidden)
+ {value "0"}
+ }
}
+
+} else {
+ ad_form -extend -name task -form {
+ {estimated_time:float,optional
+ {label "[_ evaluation.lt_Time_estimated_to_com]"}
+ {html {size 5}}
+ {value "0"}
+ }
+ }
}
if { $more_communities_option } {
ad_form -extend -name task -form {
- {add_to_more_classes_p:text(checkbox),optional
- {label "[_ evaluation.lt_Add_this_assignment_t]"}
- {options {{"" "t"}}}
- {help_text "[_ evaluation.lt_Check_this_if_you_wan_2]"}
- }
+ {add_to_more_classes_p:text(checkbox),optional
+ {label "[_ evaluation.lt_Add_this_assignment_t]"}
+ {options {{"" "t"}}}
+ {help_text "[_ evaluation.lt_Check_this_if_you_wan_2]"}
+ }
}
}
ad_form -extend -name task -form {
-
+
} -edit_request {
db_1row task_info { *SQL* }
-
+ if {[string eq $online_p t]} {
+ set answer_choice "ol"
+ } else {
+ set answer_choice "ns"
+ }
+ if {[string eq $forums_related_p t]} {
+ set answer_choice "fr"
+ }
+
set due_date [template::util::date::from_ansi $due_date_ansi "YYYY-MM-DD HH24:MI:SS"]
- set weight [lc_numeric %.2f $weight]
-
+ set weight [format %0.2f $weight]
+ set perfect_score $perfect_score
+
+
} -validate {
{url
- { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) || (![string eq $url "http://"] && [util_url_valid_p $url]) }
- {[_ evaluation.lt_Upload_a_file_OR_a_ur_1] }
+ { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) || (![string eq $url "http://"] && [util_url_valid_p $url]) }
+ {[_ evaluation.lt_Upload_a_file_OR_a_ur_1] }
}
{upload_file
- { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) }
- { [_ evaluation.lt_Upload_a_file_OR_a_ur_1] }
+ { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) }
+ { [_ evaluation.lt_Upload_a_file_OR_a_ur_1] }
}
{unattach_p
- { ([string eq $unattach_p "t"] && [empty_string_p $upload_file] && [string eq $url "http://"]) || [empty_string_p $unattach_p] }
- { [_ evaluation.lt_First_unattach_the_fi] }
+ { ([string eq $unattach_p "t"] && [empty_string_p $upload_file] && [string eq $url "http://"]) || [empty_string_p $unattach_p] }
+ { [_ evaluation.lt_First_unattach_the_fi] }
}
{net_value
- { !$net_value || ([empty_string_p $net_value] && [string eq $requires_grade_p f]) || (($net_value > 0) && ($net_value <= $grade_weight) && (!$weight || [empty_string_p $weight])) }
- { [_ evaluation.lt_The_net_value_must_be] }
+ { !$net_value || ([empty_string_p $net_value] && [string eq $requires_grade_p f]) || (($net_value > 0) && ($net_value <= $grade_weight) && (!$weight || [empty_string_p $weight])) }
+ { [_ evaluation.lt_The_net_value_must_be] }
}
{weight
- { !$weight || ([empty_string_p $weight] && [string eq $requires_grade_p f]) || (($weight > 0) && (!$net_value || [empty_string_p $net_value])) }
- { [_ evaluation.lt_The_weight_must_be_gr] }
+ { !$weight || ([empty_string_p $weight] && [string eq $requires_grade_p f]) || (($weight > 0) && (!$net_value || [empty_string_p $net_value])) }
+ { [_ evaluation.lt_The_weight_must_be_gr] }
}
- {number_of_members
- { $number_of_members >= 1 }
- { [_ evaluation.lt_The_number_of_members]}
+ {number_of_members
+ { $number_of_members >= 1 }
+ { [_ evaluation.lt_The_number_of_members]}
}
- {online_p
- { (![empty_string_p $due_date] && [string eq $online_p "t"]) || [string eq $online_p "f"] }
- { "[_ evaluation.lt_You_cant_leave_the_du]" }
- }
{estimated_time
- { $estimated_time >= 0 }
- { [_ evaluation.lt_The_estimated_time_mu] }
+ { $estimated_time >= 0 }
+ { [_ evaluation.lt_The_estimated_time_mu] }
}
} -new_data {
evaluation::notification::do_notification -task_id $revision_id -package_id [ad_conn package_id] -edit_p 0 -notif_type one_assignment_notif
} -edit_data {
-
+
evaluation::notification::do_notification -task_id $revision_id -package_id [ad_conn package_id] -edit_p 1 -notif_type one_assignment_notif
-
+
} -on_submit {
if { [string eq $requires_grade_p t] } {
- if { [info exists net_value] && ($net_value > 0) } {
- set weight [expr $net_value*100.000/$grade_weight]
- }
+ if { [info exists net_value] && ($net_value > 0) } {
+ set weight [expr $net_value*100.000/$grade_weight]
+ }
} else {
- set weight 0
+ set weight 0
+ set points 0
}
-
+ set points [format %0.2f [expr ($weight*$grade_weight)/100.00]]
+ set forums_related_p "f"
+ set online_p "f"
+
+ if {[string eq $answer_choice "ol"]} {
+ set online_p "t"
+ }
+
+ if {[string eq $answer_choice "fr"]} {
+ set forums_related_p "t"
+ }
+
+
db_transaction {
- # set storage_type to its default value according to a db constraint
- set storage_type "lob"
+ if { ![empty_string_p $upload_file] } {
- if { ![empty_string_p $upload_file] } {
+ # Get the filename part of the upload file
+ if { ![regexp {[^//\\]+$} $upload_file filename] } {
+ # no match
+ set filename $upload_file
+ }
+
+ set title [template::util::file::get_property filename $upload_file]
+ set mime_type [cr_filename_to_mime_type -create $title]
+
+ if { ![parameter::get -parameter "StoreFilesInDatabaseP" -package_id [ad_conn package_id]] } {
+ set storage_type file
+ }
+ } elseif { ![string eq $url "http://"] } {
+ set mime_type "text/plain"
+ set title "link"
+ } elseif { [string eq $attached_p "f"] } {
+ set mime_type "text/plain"
+ set title ""
+ }
+ set due_date_p 1
+
+ set title [evaluation::safe_url_name -name $title]
+ set cal_due_date [calendar::to_sql_datetime -date $due_date -time $due_date -time_p 1]
+ set due_date_ansi [db_string set_date " *SQL* "]
+
+ if { [string equal $cal_due_date "-- :"]} {
+ set due_date_p 0
+ set due_date ""
+ }
+
+
+ if { [ad_form_new_p -key task_id] } {
+ set item_id $task_id
+ }
+
+ set revision_id [evaluation::new_task -new_item_p [ad_form_new_p -key grade_id] -item_id $item_id \
+ -content_type evaluation_tasks \
+ -content_table evaluation_tasks \
+ -content_id task_id \
+ -name $task_name \
+ -description $description \
+ -weight $weight \
+ -grade_item_id $grade_item_id \
+ -number_of_members $number_of_members \
+ -online_p $online_p \
+ -storage_type $storage_type \
+ -due_date $due_date_ansi \
+ -late_submit_p $late_submit_p \
+ -requires_grade_p $requires_grade_p \
+ -title $title \
+ -mime_type $mime_type \
+ -estimated_time $estimated_time]
+
+ content::item::set_live_revision -revision_id $revision_id
+
+ # by the moment, since I'm having a date problem with oracle10g, I have to do this in order
+ # to store the entire date
+
+ db_dml update_date {
+ update evaluation_tasks set due_date = (select to_date(:due_date,'YYYY-MM-DD HH24:MI:SS') from dual)
+ where task_id = :revision_id
+ }
- # Get the filename part of the upload file
- if { ![regexp {[^//\\]+$} $upload_file filename] } {
- # no match
- set filename $upload_file
- }
-
- set title [template::util::file::get_property filename $upload_file]
- set mime_type [cr_filename_to_mime_type -create $title]
-
- if { ![parameter::get -parameter "StoreFilesInDatabaseP" -package_id [ad_conn package_id]] } {
- set storage_type file
- }
- } elseif { ![string eq $url "http://"] } {
- set mime_type "text/plain"
- set title "link"
- } elseif { [string eq $attached_p "f"] } {
- set mime_type "text/plain"
- set title ""
- }
-
- set title [evaluation::safe_url_name -name $title]
- set cal_due_date [calendar::to_sql_datetime -date $due_date -time $due_date -time_p 1]
- set due_date_ansi [db_string set_date " *SQL* "]
+ # initialize content_length in order to prevent wrong values
+ set content_length 0
+ db_dml lob_size { *SQL* }
- if { [ad_form_new_p -key task_id] } {
- set item_id $task_id
- }
- set revision_id [evaluation::new_task -new_item_p [ad_form_new_p -key grade_id] -item_id $item_id \
- -content_type evaluation_tasks \
- -content_table evaluation_tasks \
- -content_id task_id \
- -name $task_name \
- -description $description \
- -weight $weight \
- -grade_item_id $grade_item_id \
- -number_of_members $number_of_members \
- -online_p $online_p \
- -storage_type $storage_type \
- -due_date $due_date_ansi \
- -late_submit_p $late_submit_p \
- -requires_grade_p $requires_grade_p \
- -title $title \
- -mime_type $mime_type \
- -estimated_time $estimated_time]
+ if { ![empty_string_p $upload_file] } {
+ set tmp_file [template::util::file::get_property tmp_filename $upload_file]
+ set content_length [file size $tmp_file]
+
+ if { [parameter::get -parameter "StoreFilesInDatabaseP" -package_id [ad_conn package_id]] } {
+ # create the new item
+ db_dml lob_content { *SQL* } -blob_files [list $tmp_file]
- content::item::set_live_revision -revision_id $revision_id
-
- # by the moment, since I'm having a date problem with oracle10g, I have to do this in order
- # to store the entire date
-
- db_dml update_date {
- update evaluation_tasks set due_date = (select to_date(:due_date,'YYYY-MM-DD HH24:MI:SS') from dual)
- where task_id = :revision_id
- }
-
- if { ![empty_string_p $upload_file] } {
-
- set tmp_file [template::util::file::get_property tmp_filename $upload_file]
- set content_length [file size $tmp_file]
-
- if { [parameter::get -parameter "StoreFilesInDatabaseP" -package_id [ad_conn package_id]] } {
- # create the new item
- db_dml lob_content { *SQL* } -blob_files [list $tmp_file]
-
- # Unfortunately, we can only calculate the file size after the lob is uploaded
- db_dml lob_size { *SQL* }
- } else {
- # create the new item
- set file_name [cr_create_content_file $item_id $revision_id $tmp_file]
+ # Unfortunately, we can only calculate the file size after the lob is uploaded
+ db_dml lob_size { *SQL* }
+ } else {
+ # create the new item
+ set file_name [cr_create_content_file $item_id $revision_id $tmp_file]
db_dml set_file_content { *SQL* }
-
- }
-
- } elseif { ![string eq $url "http://"] } {
-
- db_dml link_content { *SQL* }
- # in order to support oracle and postgres and still using only the cr_items table to store the task
- db_dml set_storage_type { *SQL* }
- set content_length [string length $url]
- db_dml content_size { *SQL* }
-
- } elseif { [string eq $attached_p "t"] && ![string eq $unattach_p "t"] } {
-
- # just copy the old content to the new revision
- db_exec_plsql copy_content { *SQL* }
- }
- # integration with calendar
- # since there is no service contract defined
+ }
+
+ } elseif { ![string eq $url "http://"] } {
+
+ db_dml link_content { *SQL* }
+ # in order to support oracle and postgres and still using only the cr_items table to store the task
+ db_dml set_storage_type { *SQL* }
+ set content_length [string length $url]
+ db_dml content_size { *SQL* }
- set desc_url "[_ evaluation.lt_Click_here_to_go_to_t]"
-
- set url [dotlrn_community::get_community_url $community_id]
+ } elseif { [string eq $attached_p "t"] && ![string eq $unattach_p "t"] } {
+
+ # just copy the old content to the new revision
+ db_exec_plsql copy_content { *SQL* }
+ }
+
+ # integration with calendar
+ # since there is no service contract defined
+
+ set desc_url "[_ evaluation.lt_Click_here_to_go_to_t]"
+
+ set url [dotlrn_community::get_community_url $community_id]
+
+ array set community_info [site_node::get -url "${url}calendar"]
+ set community_package_id $community_info(package_id)
+ set calendar_id [db_string get_cal_id { *SQL* }]
+
+ if { ![db_0or1row calendar_mappings { *SQL* }] } {
+ # create cal_item
+ if { $due_date_p } {
+ set cal_item_id [calendar::item::new -start_date $cal_due_date -end_date $cal_due_date -name "[_ evaluation.Due_date_task_name]" -description $desc_url -calendar_id $calendar_id]
- array set community_info [site_node::get -url "${url}calendar"]
- set community_package_id $community_info(package_id)
- set calendar_id [db_string get_cal_id { *SQL* }]
-
- if { ![db_0or1row calendar_mappings { *SQL* }] } {
- # create cal_item
- set cal_item_id [calendar::item::new -start_date $cal_due_date -end_date $cal_due_date -name "[_ evaluation.Due_date_task_name]" -description $desc_url -calendar_id $calendar_id]
- db_dml insert_cal_mapping { *SQL* }
- } else {
- # edit previous cal_item
- calendar::item::edit -cal_item_id $cal_item_id -start_date $due_date_ansi -end_date $due_date_ansi -name "[_ evaluation.Due_date_task_name]" -description $desc_url -calendar_id $calendar_id
+ db_dml insert_cal_mapping { *SQL* }
+ }
+ } else {
+ # edit previous cal_item
+ if { $due_date_p } {
+ calendar::item::edit -cal_item_id $cal_item_id -start_date $due_date_ansi -end_date $due_date_ansi -name "[_ evaluation.Due_date_task_name]" -description $desc_url -calendar_id $calendar_id
+ }
+ }
+ db_transaction {
+
+ set relative_weight [format %0.2f [expr (($tasks_counter)*$weight)/100.00]]
+ set update_p [db_dml update_points { *SQL* }]
+
+ if {!$simple_p } {
+
+ if { $new_p } {
+ db_foreach get_grade_tasks {} {
+ set relative_weight [format %0.2f [expr (($tasks_counter)*$weight)/100.00]]
+ db_dml update_tasks {*SQL*}
+ }
}
+
+ }
+
+ }
+
+
}
} -after_submit {
+
set redirect_to_groups_p 0
if { [info exists admin_groups_p] && $number_of_members > 1 } {
- set redirect_to_groups_p 1
+ set redirect_to_groups_p 1
}
if { ![empty_string_p $add_to_more_classes_p] } {
- ad_returnredirect [export_vars -base "task-add-to-communities" { redirect_to_groups_p {task_id $revision_id} return_url }]
+ ad_returnredirect [export_vars -base "task-add-to-communities" { redirect_to_groups_p {task_id $revision_id} return_url }]
} elseif { $redirect_to_groups_p } {
- ad_returnredirect [export_vars -base "../groups/one-task" { {task_id $revision_id} }]
- ad_script_abort
+ ad_returnredirect [export_vars -base "../groups/one-task" { {task_id $revision_id} }]
+ ad_script_abort
} else {
- ad_returnredirect "$return_url"
- ad_script_abort
+ if { $simple_p } {
+ set return_url "../grades/distribution-edit?task_id=$revision_id&grade_id=$grade_id"
+ ad_returnredirect $return_url
+ ad_script_abort
+ } else {
+ ad_returnredirect $return_url
+ }
+
}
}