Index: openacs-4/packages/attendance/attendance.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/attendance.info,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/attendance.info 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,24 @@ + + + + + Attendance + Attendance + f + f + + + Solutiong Grove + + + + + + + + + + + + + Index: openacs-4/packages/attendance/lib/confirm-delete-form.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/lib/confirm-delete-form.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/lib/confirm-delete-form.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,16 @@ +
+@export_vars;noquote@ + + + + + + + +
+ +   + +
+ +
Index: openacs-4/packages/attendance/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/tcl/apm-callback-procs.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/tcl/apm-callback-procs.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,43 @@ +ad_library { + + Attendance Package APM callbacks library + + Procedures that deal with installing, instantiating, mounting. + + @creation-date May 2005 + @author Hamilton Chua (hamilton.chua@gmail.com)) + @cvs-id $Id: apm-callback-procs.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ +} + +namespace eval attendance {} +namespace eval attendance::apm_callback {} + +ad_proc -public attendance::apm_callback::package_instantiate { + -package_id:required +} { + + Define Attendance folders + +} { + + set creation_user [ad_conn user_id] + set creation_ip [ad_conn peeraddr] + set attendance_name "Attendance" + set attendance_singular_name "Attendance" + set attendance_desc "" + + + db_transaction { + + set folder_id [content::folder::new -name "evaluation_grades_$package_id" -label "evaluation_grades_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_grades -include_subtypes t + + set folder_id [content::folder::new -name "evaluation_tasks_$package_id" -label "evaluation_tasks_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_tasks -include_subtypes t + } + + set attendance_item_id [db_nextval acs_object_id_seq] + set revision_id [evaluation::new_grade -new_item_p 1 -item_id $attendance_item_id -content_type evaluation_grades -content_table evaluation_grades -content_id grade_id -name $attendance_singular_name -plural_name $attendance_name -description $attendance_desc -weight 40 -package_id $package_id] + content::item::set_live_revision -revision_id $revision_id + +} \ No newline at end of file Index: openacs-4/packages/attendance/tcl/attendance-init.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/tcl/Attic/attendance-init.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/tcl/attendance-init.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1 @@ \ No newline at end of file Index: openacs-4/packages/attendance/tcl/attendance-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/tcl/attendance-procs.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/tcl/attendance-procs.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,114 @@ +ad_library { + + Library procs for attendance + + @author Hamilton Chua (hamilton.chua@gmail.com) + @creation-date 2005-05-17 + @cvs-id $Id: attendance-procs.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ +} + +namespace eval attendance { + + +ad_proc get_grade_info { + {-package_id:required} +} { + HAM (hamilton.chua@gmail.com) + Retreives grade_id and grade_item_id from evaluation and sets them in the calling environment +} { + + uplevel 1 { db_0or1row "getgradeid" "select eg.grade_id as grade_id, eg.grade_item_id as grade_item_id, eg.grade_plural_name + from evaluation_grades eg, acs_objects ao, cr_items cri + where cri.live_revision = eg.grade_id + and eg.grade_item_id = ao.object_id + and ao.context_id = :package_id + and eg.grade_name = 'Attendance'"} +} + +ad_proc create_task { + {-cal_item_id:required} + {-grade_item_id:required} +} { + HAM (hamilton.chua@gmail.com) + Create an attendance task +} { + + if { ![db_0or1row "checkmap" "select task_item_id from evaluation_cal_task_map where cal_item_id = :cal_item_id"] } { + + calendar::item::get -cal_item_id $cal_item_id -array cal_item_array + + set task_name $cal_item_array(name) + set description "" + set item_id [db_nextval acs_object_id_seq] + set cal_start_date [template::util::date::from_ansi $cal_item_array(start_date_ansi) "YYYY-MM-DD HH24:MI:SS"] + set cal_end_date [template::util::date::from_ansi $cal_item_array(end_date_ansi) "YYYY-MM-DD HH24:MI:SS"] + + set due_date_ansi $cal_item_array(start_date_ansi) + set url "" + + set storage_type "lob" + + set title [evaluation::safe_url_name -name $task_name] + + 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 "0" \ + -grade_item_id $grade_item_id \ + -number_of_members "1" \ + -storage_type $storage_type \ + -due_date $due_date_ansi \ + -requires_grade_p "f" \ + -title $title ] + + content::item::set_live_revision -revision_id $revision_id + db_dml update_date { + update evaluation_tasks set due_date = (select to_date(:due_date_ansi,'YYYY-MM-DD HH24:MI:SS') from dual) + where task_id = :revision_id + } + + db_dml link_content { update cr_revisions set content = :url where revision_id = :revision_id } + db_dml set_storage_type { update cr_items set storage_type = 'text' where item_id = :item_id } + set content_length [string length $url] + db_dml content_size { update cr_revisions set content_length = :content_length where revision_id = :revision_id } + + db_dml insert_cal_mapping { insert into evaluation_cal_task_map (task_item_id,cal_item_id) values (:item_id,:cal_item_id) } + + } + +} + +ad_proc add_sessions { + {-community_id:required} + {-grade_item_id:required} +} { + HAM (hamilton.chua@gmail.com) + Check if there are calendar sessions for the section + Cehck if the session is arleady an evaluation + if not then create a task with the session's details +} { + + # let's retrieve sessions for this community + set calendar_id [dotlrn_calendar::get_group_calendar_id -community_id $community_id] + set item_type_id [db_string item_type_id "select item_type_id from cal_item_types where type='Session' and calendar_id = :calendar_id"] + + # create the task + db_transaction { + + # check if each session has corresponding evaluation task, if none then add it + db_foreach "cal_item" "select cal_item_id from cal_items where on_which_calendar = :calendar_id and item_type_id = :item_type_id" { + + attendance::create_task -cal_item_id $cal_item_id -grade_item_id $grade_item_id + + } + + } + + +} + + +} \ No newline at end of file Index: openacs-4/packages/attendance/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/index.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/index.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,4 @@ + +ExpensesFor admins only. Index: openacs-4/packages/attendance/www/admin/attendance-add-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/attendance-add-edit.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/attendance-add-edit.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,5 @@ + +@page_title@ +"@context;noquote@" + + \ No newline at end of file Index: openacs-4/packages/attendance/www/admin/attendance-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/attendance-add-edit.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/attendance-add-edit.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,134 @@ +ad_page_contract { + + Add or Edit Attendance Tasks + list the different attendance tasks + + @author Hamilton Chua (hamilton.chua@gmail.com) + @creation-date 2004-05-17 + @version $Id: attendance-add-edit.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ + +} { + { task_id:integer,optional } + { item_id:integer,optional } + { grade_id:integer,optional } + +} + +# initial vars +set package_id [ad_conn package_id] +set community_id [dotlrn_community::get_community_id] +set new_p [ad_form_new_p -key task_id] + +# get assigntment type (evaluation_grade) info for attendance +# db_0or1row "getgradeid" "select eg.grade_id as grade_id, eg.grade_item_id as grade_item_id, eg.grade_plural_name +# from evaluation_grades eg, acs_objects ao, cr_items cri +# where cri.live_revision = eg.grade_id +# and eg.grade_item_id = ao.object_id +# and ao.context_id = :package_id +# and eg.grade_name = 'Attendance'" + +if { ![attendance::get_grade_info -package_id $package_id] } { + ad_return_complaint 500 "Server Error" +} + +if { $new_p } { + set page_title "Add Attendance" +} else { + set page_title "Edit Attendance" +} + +set context $page_title + +# create the attendance task +ad_form -name new_attendance_task -export { item_id grade_id } -form { + task_id:key(acs_object_id_seq) + { task_name:text + { label "Task Name" } } + {description:richtext,optional + {label "Description"} + {html {rows 4 cols 40 wrap soft}} } + {due_date:date,to_sql(linear_date),from_sql(sql_date),optional + {label "Date"} + {format "MONTH DD YYYY HH24 MI SS"} + {today} + {help} } + {url:text(text),optional + {label "URL"} + {value "http://"} } +} -edit_request { + + db_1row task_info { select et.task_name, et.description, to_char(et.due_date,'YYYY-MM-DD HH24:MI:SS') as due_date_ansi, + et.weight, et.number_of_members, et.online_p, et.late_submit_p, et.requires_grade_p + from evaluation_tasksi et + where task_id = :task_id } + + set due_date [template::util::date::from_ansi $due_date_ansi "YYYY-MM-DD HH24:MI:SS"] + set weight [lc_numeric %.2f $weight] + +} -on_submit { + + db_transaction { + + set storage_type "lob" + + set title [evaluation::safe_url_name -name $task_name] + set cal_due_date [calendar::to_sql_datetime -date $due_date -time $due_date -time_p 1] + set due_date_ansi [db_string "get_date" "select to_timestamp('[template::util::date::get_property linear_date $due_date]','YYYY MM DD HH24 MI SS')"] + + 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 "0" \ + -grade_item_id $grade_item_id \ + -number_of_members "1" \ + -storage_type $storage_type \ + -due_date $due_date_ansi \ + -requires_grade_p "f" \ + -title $title ] + + content::item::set_live_revision -revision_id $revision_id + + 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 { ![string eq $url "http://"] } { + db_dml link_content { update cr_revisions set content = :url where revision_id = :revision_id } + db_dml set_storage_type { update cr_items set storage_type = 'text' where item_id = :item_id } + set content_length [string length $url] + db_dml content_size { update cr_revisions set content_length = :content_length where revision_id = :revision_id } + } + + 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 { select calendar_id from calendars where private_p = 'f' and package_id = :community_package_id }] + + #set calendar_id [dotlrn_calendar::get_group_calendar_id -community_id $community_id] + #set item_type_id [db_string item_type_id "select item_type_id from cal_item_types where type='Session' and calendar_id = :calendar_id"] + + + # add to calendar + if { ![db_0or1row calendar_mappings { select cal_item_id from evaluation_cal_task_map where task_item_id = :item_id }] } { + # create cal_item + set cal_item_id [calendar::item::new -start_date $cal_due_date -end_date $cal_due_date -name "$task_name" -description $description -calendar_id $calendar_id] + db_dml insert_cal_mapping { insert into evaluation_cal_task_map (task_item_id,cal_item_id) values (:item_id,:cal_item_id) } + } 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 "$task_name" -description $description -calendar_id $calendar_id + } + + } + +} -after_submit { + ad_returnredirect "index" +} + \ No newline at end of file Index: openacs-4/packages/attendance/www/admin/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/index.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/index.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,11 @@ + +@page_title@ +"@context;noquote@" + + + + + +

No attendance tasks for this class. Please create a session. + + Index: openacs-4/packages/attendance/www/admin/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/index.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/index.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,77 @@ +ad_page_contract { + + Landing page attendance module. + list the attendance tasks for the community + + @author Hamilton Chua (hamilton.chua@gmail.com) + @creation-date 2004-05-17 + @version $Id: index.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ + +} { + +} + +# initial variables +set page_title "Attendance Tasks" +set context $page_title +set package_id [ad_conn package_id] +set community_id [dotlrn_community::get_community_id] + +# get grade info +attendance::get_grade_info -package_id $package_id + +# check calendar items for session and turn them into attendance tasks +attendance::add_sessions -community_id $community_id -grade_item_id $grade_item_id + +set elements [list task_name \ + [list label "Task Name" \ + link_url_col task_url \ + orderby_asc {task_name asc} \ + orderby_desc {task_name desc}] \ + due_date_pretty \ + [list label "Date" \ + orderby_asc {due_date_ansi asc} \ + orderby_desc {due_date_ansi desc}] \ + action \ + [list label "Actions" \ + display_template { Delete | Mark } ]\ + ] + +template::list::create \ + -name attendance_tasks \ + -multirow attendance_tasks \ + -actions { + "Attendance by Student" "summary" "" + } -key task_id \ + -filters { grade_id {} } \ + -no_data "No attendance tasks" \ + -orderby_name assignments_orderby \ + -elements $elements + +db_multirow -extend { due_date_pretty grade_id } attendance_tasks get_tasks { + select et.task_name, et.number_of_members, et.task_id, + to_char(et.due_date,'YYYY-MM-DD HH24:MI:SS') as due_date_ansi, + et.online_p, + et.late_submit_p, + et.item_id, + et.task_item_id, + et.due_date, + et.requires_grade_p, et.description, et.grade_item_id, + cr.title as task_title, + et.data as task_data, + et.task_id as revision_id, + coalesce(round(cr.content_length/1024,0),0) as content_length, + et.late_submit_p, + crmt.label as pretty_mime_type + from cr_revisions cr, + evaluation_tasksi et, + cr_items cri, + cr_mime_types crmt + where cr.revision_id = et.revision_id + and grade_item_id = :grade_item_id + and cri.live_revision = et.task_id + and et.mime_type = crmt.mime_type +} { + set due_date_pretty [lc_time_fmt $due_date_ansi "%q %r"] + set grade_id [db_string "getgradeid" "select grade_id from evaluation_grades where grade_item_id = :grade_item_id"] +} Index: openacs-4/packages/attendance/www/admin/mark-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/mark-2.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/mark-2.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,23 @@ +ad_page_contract { + + Mark attendance for a given attendance task + + @author Hamilton Chua (hamilton.chua@gmail.com) + @creation-date May 2005 + @cvs-id $Id: mark-2.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ +} { + cal_item_id:integer,notnull + user_id:integer,multiple,optional +} + +# delete attendance for a cal_item_id +db_dml "delattendance" "delete from attendance_cal_item_map where cal_item_id = :cal_item_id" + +if { [exists_and_not_null user_id ] } { + + foreach id $user_id { + db_dml "updatemap" "insert into attendance_cal_item_map (cal_item_id, user_id) values (:cal_item_id, :id)" + } +} + +ad_returnredirect -message "Attendance has been marked" "index" \ No newline at end of file Index: openacs-4/packages/attendance/www/admin/mark.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/mark.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/mark.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,12 @@ + +@page_title;noquote@ +"@context;noquote@" + +@message;noquote@ + +

+ + +
+ +
\ No newline at end of file Index: openacs-4/packages/attendance/www/admin/mark.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/mark.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/mark.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,48 @@ +ad_page_contract { + + Mark attendance for a given attendance task + + @author hamilton.chua@gmail.com + @creation-date May 2005 + @cvs-id $Id: mark.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ +} { + item_id:integer,notnull +} + +# initial vars +set page_title "Mark Attendance" +set context $page_title +set community_id [dotlrn_community::get_community_id] + +# task info + +db_1row "getgradeid" "select task_id, task_name, due_date from evaluation_tasks where task_item_id = :item_id" +set cal_item_id [db_string "get_cal_id" "select cal_item_id from evaluation_cal_task_map where task_item_id =:item_id"] + +set due_date_pretty [lc_time_fmt $due_date "%q %r"] + +set message "

Mark the users who were present for $task_name on $due_date_pretty

" + +template::list::create \ + -name eval_members \ + -multirow eval_members \ + -elements { + member_name { + label "Name" + } + present { + label "Present" + display_template { checked> } + } + } + +set users [dotlrn_community::list_users $community_id] + +template::multirow create eval_members user_id member_name present + +foreach user $users { + set present [db_0or1row "checkattendance" "select user_id from attendance_cal_item_map where cal_item_id = :cal_item_id and user_id = [ns_set get $user user_id]"] + template::multirow append eval_members "[ns_set get $user user_id]" "[ns_set get $user first_names] [ns_set get $user last_name]" "$present" +} + +ad_return_template Index: openacs-4/packages/attendance/www/admin/student-list-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/Attic/student-list-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/student-list-oracle.xql 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,76 @@ + + + + oracle8.1.6 + + + + + select ev.party_id, + evaluation.party_name(ev.party_id,et.task_id) as party_name, + round(ev.grade,2) as grade, + to_char(ev.last_modified,'YYYY-MM-DD HH24:MI:SS') as evaluation_date_ansi, + ev.last_modified as evaluation_date, + to_char(ev.last_modified, 'YYYY-MM-DD HH24:MI:SS') as evaluation_date_ansi, + et.online_p, + et.due_date, + ev.evaluation_id + from evaluation_tasks et, + evaluation_student_evalsi ev, + $roles_table + cr_items cri + where et.task_id = :task_id + and et.task_item_id = ev.task_item_id + $roles_clause + and cri.live_revision = ev.evaluation_id + $orderby + + + + + + + + select crr.filename as answer_data, + ea.title as answer_title, + ea.revision_id, + to_char(ea.creation_date, 'YYYY-MM-DD HH24:MI:SS') as submission_date_ansi, + ea.last_modified as submission_date + from evaluation_answersi ea, cr_items cri, cr_revisions crr + where ea.party_id = :party_id + and crr.revision_id = ea.answer_id + and ea.task_item_id = :task_item_id + and cri.live_revision = ea.answer_id + + + + + + + + select ev.party_id, + evaluation.party_name(ev.party_id,et.task_id) as party_name, + crr.filename as answer_data, + crr.title as answer_title, + ev.revision_id, + to_char(ev.last_modified, 'YYYY-MM-DD HH24:MI:SS') as submission_date_ansi, + et.due_date, + ev.last_modified as submission_date + from evaluation_answersi ev, + evaluation_tasks et, + $roles_table + cr_items cri, + cr_revisions crr + where ev.task_item_id = et.task_item_id + and et.task_id = :task_id + and crr.revision_id = ev.answer_id + and crr.filename is not null + $roles_clause + and cri.live_revision = ev.answer_id + $processed_clause + $orderby_wa + + + + + Index: openacs-4/packages/attendance/www/admin/student-list-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/Attic/student-list-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/student-list-postgresql.xql 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,81 @@ + + + + postgresql7.3 + + + + + select ev.party_id, + case when et.number_of_members = 1 then + (select last_name||', '||first_names from persons where person_id = ev.party_id) + else + (select group_name from groups where group_id = ev.party_id) + end as party_name, + round(ev.grade,2) as grade, + ev.last_modified as evaluation_date, + to_char(ev.last_modified, 'YYYY-MM-DD HH24:MI:SS') as evaluation_date_ansi, + et.online_p, + et.due_date, + ev.evaluation_id + from evaluation_tasks et, + evaluation_student_evalsi ev, + $roles_table + cr_items cri + where et.task_id = :task_id + and et.task_item_id = ev.task_item_id + $roles_clause + and cri.live_revision = ev.evaluation_id + $orderby + + + + + + + + select ea.data as answer_data, + ea.title as answer_title, + ea.revision_id, + to_char(ea.creation_date, 'YYYY-MM-DD HH24:MI:SS') as submission_date_ansi, + ea.last_modified as submission_date + from evaluation_answersi ea, cr_items cri + where ea.party_id = :party_id + and ea.task_item_id = :task_item_id + and cri.live_revision = ea.answer_id + + + + + + + + select ev.party_id, + case when et.number_of_members = 1 then + (select last_name||', '||first_names from persons where person_id = ev.party_id) + else + (select group_name from groups where group_id = ev.party_id) + end as party_name, + ev.party_id, + ev.data as answer_data, + ev.title as answer_title, + ev.revision_id, + to_char(ev.last_modified, 'YYYY-MM-DD HH24:MI:SS') as submission_date_ansi, + et.due_date, + ev.last_modified as submission_date + from evaluation_answersi ev, + evaluation_tasks et, + $roles_table + cr_items cri + where ev.task_item_id = et.task_item_id + and et.task_id = :task_id + and ev.data is not null + $roles_clause + and cri.live_revision = ev.answer_id + $processed_clause + $orderby_wa + + + + + Index: openacs-4/packages/attendance/www/admin/student-list.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/Attic/student-list.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/student-list.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,134 @@ + +@page_title;noquote@ +@context;noquote@ + + + + + + + + + + + + + + + + + + +
#evaluation.Task_Name#@task_name@
#evaluation.Due_Date#@due_date_pretty@
#evaluation.lt_Is_the_task_submitted# + + +

#evaluation.Yes#

+
+

#evaluation.No#

+
+ +
@groups_admin;noquote@@task_admin;noquote@
+ +

#evaluation.lt_Evaluated_Students_to#

+

#evaluation.Theese#

+
+
+ +

#evaluation.lt_Students_with_answers#

+

#evaluation.lt_These_are_the_student#

+ + +

#evaluation.Click# #evaluation.here# #evaluation.lt_if_you_want_to_downlo#

+ + +

#evaluation.Click# #evaluation.here# #evaluation.lt_if_you_do_not_want_to#

+
+

#evaluation.Click# #evaluation.here# #evaluation.lt_if_you_want_to_see_th#

+
+
+

#evaluation.If#

+
+
+ + +
+ + +
+
+
+
+ + + + + + + + + + + + + +
#evaluation.lt_Grade_students_using_#
#evaluation.Generate_file##evaluation.lt_See_grades_sheets_ass##evaluation.How_does_this_work#
+
+
+
+

#evaluation.lt_There_are_no_students#

+
+ +
+

#evaluation.lt_Students_who_have_not#

+ +

#evaluation.lt_These_are_the_student_1#

+ + + +

#evaluation.Click# #evaluation.here# #evaluation.lt_if_you_do_not_want_to#

+
+

#evaluation.Click# #evaluation.here# #evaluation.lt_if_you_want_to_see_th#

+
+
+

#evaluation.If#

+
+ +
+ +
+ + + + + +
#evaluation.lt_Grade_students_with_0#
+
+
+
+
+
+ + + + + + + + + + + + + +
#evaluation.lt_Grade_students_using_#
#evaluation.Generate_file##evaluation.lt_See_grades_sheets_ass##evaluation.How_does_this_work#
+
+
+
+

#evaluation.lt_There_are_no_students_1#

+ +

#evaluation.lt_task_name_is_in_group#

+
+
+ + + Index: openacs-4/packages/attendance/www/admin/student-list.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/Attic/student-list.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/student-list.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,344 @@ +# /packages/evaluaiton/www/admin/evaluaitons/student-list.tcl + +ad_page_contract { + Displays the evaluations of students that have already been evaluated, + lists the ones that have not been evaluated yet (in order to evaluate them) + and deals with tasks in groups and individual. + + @author jopez@galileo.edu + @creation-date Mar 2004 + @cvs-id $Id: student-list.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ +} { + task_id:integer,notnull + {show_portrait_p ""} + {return_url "[ad_conn url]?[export_vars -url { task_id }]"} + {orderby_wa:optional} + {orderby_na:optional} + {orderby:optional} +} + +set user_id [ad_conn user_id] +db_1row get_task_info { *SQL* } + +set page_title "[_ evaluation.lt_Students_List_for_tas]" +set context [list "[_ evaluation.lt_Students_List_for_tas]"] +set community_id [dotlrn_community::get_community_id] + +if { [string eq $show_portrait_p "t"] } { + set this_url "student-list?[export_vars -entire_form -url { { show_portrait_p f } }]" +} else { + set this_url "student-list?[export_vars -entire_form -url { { show_portrait_p t } }]" +} + +set due_date_pretty [lc_time_fmt $due_date_ansi "%q %r"] +set return_url "[ad_conn url]?[ad_conn query]" + +if { $number_of_members > 1 } { + set groups_admin "[_ evaluation.lt_Groups_administration]" +} else { + set groups_admin "" +} +set task_admin "[_ evaluation.lt_task_name_administrat]" + +set done_students [list] +set evaluation_mode "display" + +set roles_table "" +set roles_clause "" +if { ![empty_string_p $community_id] && $number_of_members == 1 } { + set roles_table [db_map roles_table_query] + set roles_clause [db_map roles_clause_query] +} + +# +# working with already evaluated parties +# + +set actions [list "[_ evaluation.Edit_Evaluations_]" [export_vars -base "evaluations-edit" { task_id }]] + +set elements [list count \ + [list label "" \ + display_template { @evaluated_students.rownum@. } \ + ] \ + party_name \ + [list label "[_ evaluation.Name_]" \ + orderby_asc {party_name asc} \ + orderby_desc {party_name desc} \ + link_url_eval {[export_vars -base "one-evaluation-edit" { evaluation_id task_id evaluation_mode }]} \ + link_html { title "[_ evaluation.View_evaluation_]" } \ + ] \ + grade \ + [list label "[_ evaluation.Grade_over_100_]" \ + orderby_asc {grade asc} \ + orderby_desc {grade desc} \ + ] \ + action \ + [list label "" \ + display_template { @evaluated_students.action;noquote@ } \ + link_url_col action_url \ + ] \ + ] + +if { [string eq $online_p "t"] } { + lappend elements submission_date_pretty \ + [list label "[_ evaluation.Submission_Date_]" \ + display_template { @evaluated_students.submission_date_pretty;noquote@ }] +} + +lappend elements view \ + [list label "" \ + sub_class narrow \ + display_template {} \ + link_url_eval {[export_vars -base "one-evaluation-edit" { evaluation_id task_id evaluation_mode }]} \ + link_html { title "[_ evaluation.View_evaluation_]" } \ + ] +lappend elements edit \ + [list label "" \ + sub_class narrow \ + display_template {} \ + link_url_eval {[export_vars -base "one-evaluation-edit" { evaluation_id task_id }]} \ + link_html { title "[_ evaluation.Edit_evaluation_]" } \ + ] +lappend elements delete \ + [list label {} \ + sub_class narrow \ + display_template {} \ + link_url_eval {[export_vars -base "evaluation-delete" { evaluation_id return_url task_id }]} \ + link_html { title "[_ evaluation.Delete_evaluation_]" } \ + ] + + +template::list::create \ + -name evaluated_students \ + -multirow evaluated_students \ + -actions $actions \ + -key task_id \ + -pass_properties { return_url task_id evaluation_mode } \ + -filters { task_id {} } \ + -orderby { default_value party_name } \ + -elements $elements + +set orderby [template::list::orderby_clause -orderby -name evaluated_students] + +if {[string equal $orderby ""]} { + set orderby " order by party_name asc" +} + +set total_evaluated 0 +db_multirow -extend { action action_url submission_date_pretty count } evaluated_students evaluated_students { *SQL* } { + + incr total_evaluated + lappend done_students $party_id + set grade [lc_numeric $grade] + + if { [string eq $online_p "t"] } { + if { [db_0or1row get_answer_info { *SQL* }] } { + # working with answer stuff (if it has a file/url attached) + if { [empty_string_p $answer_data] } { + set action "[_ evaluation.No_response_]" + } elseif { [string eq $answer_title "link"] } { + set action_url "[export_vars -base "$answer_data" { }]" + set action "[_ evaluation.View_answer_]" + } else { + # we assume it's a file + set action_url "[export_vars -base "../../view/$answer_title" { revision_id }]" + set action "[_ evaluation.View_answer_]" + } + if { [string eq $action "[_ evaluation.View_answer_]"] && ([db_string compare_evaluation_date { *SQL* } -default 0] ) } { + set action " [_ evaluation.View_NEW_answer_]" + } + set submission_date_pretty [lc_time_fmt $submission_date_ansi "%q %r"] + if { [db_string compare_submission_date { *SQL* } -default 0] } { + set submission_date_pretty "[_ evaluation.lt_submission_date_prett]" + } + } else { + set action "[_ evaluation.No_response_]" + } + } +} + +if { [llength $done_students] > 0 } { + set processed_clause [db_map processed_clause] +} else { + set processed_clause "" +} + +set not_evaluated_with_answer 0 + +# +# working with students that have answered but have not been yet evaluated +# + +set elements [list party_name \ + [list label "[_ evaluation.Name_]" \ + orderby_asc {party_name asc} \ + orderby_desc {party_name desc} \ + link_url_col party_url \ + ] \ + ] + +if { [string eq $show_portrait_p "t"] && [string eq $number_of_members "1"] } { + lappend elements portrait \ + [list label "[_ evaluation.Students_Portrait_]" \ + display_template { @not_evaluated_wa.portrait;noquote@ } + ] +} + +lappend elements submission_date_pretty \ + [list label "[_ evaluation.Submission_Date_]" \ + display_template { @not_evaluated_wa.submission_date_pretty;noquote@ } \ + orderby_asc {submission_date_ansi asc} \ + orderby_desc {submission_date_ansi desc}] +lappend elements answer \ + [list label "[_ evaluation.Answer_]" \ + link_url_col answer_url \ + link_html { title "[_ evaluation.View_answer_]" }] +lappend elements grade \ + [list label "[_ evaluation.Maximun_Grade_] " \ + display_template { } ] +lappend elements comments \ + [list label "[_ evaluation.Comments_]" \ + display_template { } \ + ] +lappend elements show_answer \ + [list label "[_ evaluation.lt_Allow_the_students_br]" \ + display_template {
[_ evaluation.Yes_] [_ evaluation.No_]
} \ + ] + +template::list::create \ + -name not_evaluated_wa \ + -multirow not_evaluated_wa \ + -key party_id \ + -pass_properties { task_id return_url } \ + -filters { task_id {} } \ + -orderby_name orderby_wa \ + -elements $elements + + +set orderby_wa [template::list::orderby_clause -orderby -name not_evaluated_wa] + +if { [string equal $orderby_wa ""] } { + set orderby_wa " order by party_name asc" +} + +db_multirow -extend { party_url answer answer_url submission_date_pretty portrait } not_evaluated_wa get_not_evaluated_wa_students { *SQL* } { + + incr not_evaluated_with_answer + if { $number_of_members == 1 } { + set tag_attributes [ns_set create] + ns_set put $tag_attributes alt "[_ evaluation.lt_No_portrait_for_party]" + ns_set put $tag_attributes width 98 + ns_set put $tag_attributes height 104 + set portrait "[evaluation::get_user_portrait -user_id $party_id -tag_attributes $tag_attributes]" + } else { + set party_url "../groups/one-task?[export_vars -url { task_id return_url }]#groups" + } + + lappend done_students $party_id + set submission_date_pretty "[lc_time_fmt $submission_date_ansi "%q %r"]" + if { [db_string compare_submission_date { *SQL* } -default 0] } { + set submission_date_pretty "[_ evaluation.lt_submission_date_prett_1]" + } + set answer "[_ evaluation.View_answer_]" + # working with answer stuff (if it has a file/url attached) + if { [string eq $answer_title "link"] } { + set answer_url [export_vars -base "$answer_data" { }] + } else { + # we assume it's a file + set answer_url [export_vars -base "../../view/$answer_title" { revision_id }] + } +} + +# +# working with students that have not answered and have not been yet evaluated and do not have submited their answers +# + +set elements [list party_name \ + [list label "[_ evaluation.Name_]" \ + orderby_asc {party_name asc} \ + orderby_desc {party_name desc} \ + link_url_col party_url \ + ] \ + ] + +if { [string eq $show_portrait_p "t"] && [string eq $number_of_members "1"] } { + lappend elements portrait \ + [list label "[_ evaluation.Students_Portrait_]" \ + display_template { @not_evaluated_na.portrait;noquote@ } + ] +} + +lappend elements grade \ + [list label "[_ evaluation.Grade_over_] " \ + display_template { } ] +lappend elements comments \ + [list label "[_ evaluation.Comments_]" \ + display_template { } \ + ] +lappend elements show_answer \ + [list label "[_ evaluation.lt_Allow_the_students_br]" \ + display_template {
[_ evaluation.Yes_] [_ evaluation.No_]
} \ + ] + +template::list::create \ + -name not_evaluated_na \ + -multirow not_evaluated_na \ + -key party_id \ + -pass_properties { task_id return_url } \ + -filters { task_id {} } \ + -orderby_name orderby_na \ + -elements $elements + +set orderby_na [template::list::orderby_clause -orderby -name not_evaluated_na] + +if { [string equal $orderby_na ""] } { + set orderby_na " order by party_name asc" +} + +if { $number_of_members > 1 } { + if { [llength $done_students] > 0 } { + set not_in_clause [db_map not_in_clause] + } else { + set not_in_clause "" + } + set sql_query [db_map sql_query_groups] +} else { + if { [llength $done_students] > 0 } { + set not_in_clause [db_map not_yet_in_clause_non_empty] + } else { + set not_in_clause [db_map not_yet_in_clause_empty] + } + + # if this page is called from within a community (dotlrn) we have to show only the students + + if { [empty_string_p $community_id] } { + set sql_query [db_map sql_query_individual] + } else { + set sql_query [db_map sql_query_community_individual] + } + +} + +set not_evaluated_with_no_answer 0 + +db_multirow -extend { party_url portrait } not_evaluated_na get_not_evaluated_na_students { *SQL* } { + + incr not_evaluated_with_no_answer + if { $number_of_members == 1 } { + set tag_attributes [ns_set create] + ns_set put $tag_attributes alt "[_ evaluation.lt_No_portrait_for_party]" + ns_set put $tag_attributes width 98 + ns_set put $tag_attributes height 104 + set portrait "[evaluation::get_user_portrait -user_id $party_id -tag_attributes $tag_attributes]" + } else { + set party_url "../groups/one-task?[export_vars -url { task_id return_url }]#groups" + } +} + +set total_processed [llength $done_students] + +set grades_sheet_item_id [db_nextval acs_object_id_seq] + + + + Index: openacs-4/packages/attendance/www/admin/student-list.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/Attic/student-list.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/student-list.xql 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,142 @@ + + + + + + + and etg.group_id not in ([join $done_students ","]) + + + + + + + dotlrn_member_rels_approved app, + + + + + + + + and app.community_id = :community_id + and app.user_id = ev.party_id + and app.role='student' + + + + + + + where p.person_id not in ([join $done_students ","]) + + + + + + + , cc_users cu + where p.person_id = cu.person_id + and cu.member_state = 'approved' + + + + + + + + select p.person_id as party_id, + p.last_name||', '||p.first_names as party_name + from persons p + $not_in_clause + + + + + + + + select app.user_id as party_id, + p.last_name||', '||p.first_names as party_name + from dotlrn_member_rels_approved app, + persons p + $not_in_clause + and app.community_id = :community_id + and app.user_id = p.person_id + and app.role = 'student' + + + + + + + + $sql_query + $orderby_na + + + + + + + + select 1 from dual where :submission_date_ansi > :evaluation_date_ansi + + + + + + + + select 1 from dual where :submission_date_ansi > :due_date_ansi + + + + + + + + and ev.party_id not in ([join $done_students ","]) + + + + + + + + select et.task_name, + et.task_item_id, + eg.grade_id, + eg.grade_plural_name, + eg.weight as grade_weight, + et.weight as task_weight, + to_char(et.due_date, 'YYYY-MM-DD HH24:MI:SS') as due_date_ansi, + et.number_of_members, + et.online_p + from evaluation_grades eg, evaluation_tasks et, cr_items cri + where et.task_id = :task_id + and et.grade_item_id = eg.grade_item_id + and cri.live_revision = eg.grade_id + + + + + + + + select g.group_name as party_name, + g.group_id as party_id + from groups g, evaluation_task_groups etg, evaluation_tasks et, + acs_rels map + where g.group_id = etg.group_id + and etg.group_id = map.object_id_one + and map.rel_type = 'evaluation_task_group_rel' + and etg.task_item_id = et.task_item_id + and et.task_id = :task_id + $not_in_clause + group by g.group_id, g.group_name + + + + + Index: openacs-4/packages/attendance/www/admin/summary.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/summary.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/summary.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,5 @@ + +@page_title;noquote@ +"@context;noquote@" + + \ No newline at end of file Index: openacs-4/packages/attendance/www/admin/summary.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/summary.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/summary.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,48 @@ +ad_page_contract { + + Display a summary of attendance per user + + @author Hamilton Chua (hamilton.chua@gmail.com) + @creation-date May 2005 + @cvs-id $Id: summary.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ +} { + +} + +set page_title "Summary" +set context $page_title + +# determine total number of sessions +set community_id [dotlrn_community::get_community_id] +set community_url [dotlrn_community::get_community_url $community_id] +set calendar_id [dotlrn_calendar::get_group_calendar_id -community_id $community_id] +set calendar_url [calendar_portlet_display::get_url_stub $calendar_id] +set item_type_id [db_string item_type_id "select item_type_id from cal_item_types where type='Session' and calendar_id = :calendar_id"] +set num_sessions [db_string num_sessions "select count(cal_item_id) from cal_items where on_which_calendar = :calendar_id and item_type_id = :item_type_id"] + +# generate attendance summary per student + +template::list::create \ + -name summary \ + -multirow summary \ + -actions { + "Back to Attendance Tasks" "index" "" + } -key user_id \ + -no_data "No summary" \ + -elements { + member_name { label "Student" } + attendance { label "Attendance" } + rate { label "Rate" } +} + +set users [dotlrn_community::list_users $community_id] + +template::multirow create summary member_name attendance rate + +foreach user $users { + set user_id [ns_set get $user user_id] + set attendance [db_string "count" "select count(user_id) from attendance_cal_item_map where user_id = :user_id and cal_item_id in (select cal_item_id from cal_items where on_which_calendar = :calendar_id and item_type_id = :item_type_id )" ] + if { $attendance == 0 } { set rate "0" } else { set rate [expr $num_sessions/$attendance*100] } + template::multirow append summary "[ns_set get $user first_names] [ns_set get $user last_name]" "$attendance of $num_sessions" "$rate %" +} + Index: openacs-4/packages/attendance/www/admin/task-delete-2-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/task-delete-2-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/task-delete-2-postgresql.xql 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,16 @@ + + + + postgresql7.3 + + + + + select evaluation__delete_task ( + :task_id + ); + + + + + Index: openacs-4/packages/attendance/www/admin/task-delete-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/task-delete-2.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/task-delete-2.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,40 @@ +ad_page_contract { + Removes relations + + @author jopez@galileo.edu + @creation-date Mar 2004 + @cvs-id $Id: task-delete-2.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ +} { + task_id:integer,notnull + grade_id:integer,notnull + operation + return_url +} + +if { [string eq $operation [_ evaluation.lt_Yes_I_really_want_to__3]] } { + + db_transaction { + + # calendar integration (begin) + db_1row get_item_id { *SQL* } + db_foreach cal_map { *SQL* } { + db_dml delete_mapping { *SQL* } + calendar::item::delete -cal_item_id $cal_item_id + } + # calendar integration (end) + evaluation::delete_task -task_id $task_id + + } on_error { + ad_return_error "[_ evaluation.lt_Error_deleting_the_ta]" "[_ evaluation.lt_We_got_the_following__2]" + ad_script_abort + } +} else { + if { [empty_string_p $return_url] } { + # redirect to the index page by default + set return_url "$return_url" + } +} + +db_release_unused_handles + +ad_returnredirect "$return_url" Index: openacs-4/packages/attendance/www/admin/task-delete-2.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/task-delete-2.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/task-delete-2.xql 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,34 @@ + + + + + + + + + select task_item_id + from evaluation_tasks + where task_id = :task_id + + + + + + + + select cal_item_id + from evaluation_cal_task_map + where task_item_id = :task_item_id + + + + + + + + delete from evaluation_cal_task_map where cal_item_id = :cal_item_id + + + + + Index: openacs-4/packages/attendance/www/admin/task-delete-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/task-delete-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/task-delete-postgresql.xql 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,16 @@ + + + + postgresql7.3 + + + + + select et.task_name + from evaluation_tasks et + where et.task_id = :task_id + + + + + Index: openacs-4/packages/attendance/www/admin/task-delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/task-delete.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/task-delete.adp 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,13 @@ + +@context;noquote@ +@page_title;noquote@ + +Are you sure you want to delete this attendance task ? + +

+ +

+ +
+ + Index: openacs-4/packages/attendance/www/admin/task-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/task-delete.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/task-delete.tcl 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,24 @@ +ad_page_contract { + + Deletes a task after confirmation + + @author jopez@galileo.edu + @creation-date Mar 2004 + @cvs-id $Id: task-delete.tcl,v 1.1 2005/05/31 22:02:59 hamiltonc Exp $ + +} { + task_id:integer,notnull + grade_id:integer,notnull + return_url +} + +set page_title "Remove Attendance Task" + +set context "" + + +db_1row get_task_info { *SQL* } + +set export_vars [export_form_vars task_id grade_id return_url] + +ad_return_template Index: openacs-4/packages/attendance/www/admin/task-delete.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/www/admin/task-delete.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/attendance/www/admin/task-delete.xql 31 May 2005 22:02:59 -0000 1.1 @@ -0,0 +1,15 @@ + + + + + + + + select et.task_name + from evaluation_tasks et + where et.task_id = :task_id + + + + +