Index: openacs-4/packages/attendance/lib/cp-attendance.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attendance/lib/cp-attendance.tcl,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/attendance/lib/cp-attendance.tcl 18 Dec 2005 03:07:26 -0000 1.10 +++ openacs-4/packages/attendance/lib/cp-attendance.tcl 28 Dec 2005 00:24:27 -0000 1.11 @@ -18,48 +18,63 @@ set calendar_id [dotlrn_calendar::get_group_calendar_id -community_id $community_id] set calendar_url [calendar_portlet_display::get_url_stub $calendar_id] -if { ! [db_0or1row item_type_id { }] } { - set item_type_id [calendar::item_type_new -calendar_id $calendar_id -type "Session"] -} +if { [db_0or1row item_type_id { }] } { + + # we try and autocreate a session type + # set item_type_id [calendar::item_type_new -calendar_id $calendar_id -type "Session"] + + # HAM : 121905 + # session calendar type is created when a new section is created in + # dotlrn-ecommerce/catalog user interface + # there are some circumstances where administrators go to dotlrn/admin + # and create the communities/classes there hence the calendar type session + # does not get created + # instead of auto creating, let's check for the presence of the Calendar Type "Session" + # and just give a message with a link to create it -set grade_item_id [db_string "getgradeid" ""] - -# ns_log Notice " -- Attendance Package ID : $attendance_package_id, Grade Item : $grade_item_id --" - -attendance::add_sessions -community_id $community_id -grade_item_id $grade_item_id -package_id $attendance_package_id - -template::list::create \ - -name session_list \ - -multirow session_list \ - -pass_properties { attendance_url current_url calendar_url calendar_id item_type_id } \ - -key task_id \ - -no_data "No sessions" \ - -elements { - session_name { - label "Session" - display_template { @session_list.session_name@ } + set grade_item_id [db_string "getgradeid" ""] + + # ns_log Notice " -- Attendance Package ID : $attendance_package_id, Grade Item : $grade_item_id --" + + attendance::add_sessions -community_id $community_id -grade_item_id $grade_item_id -package_id $attendance_package_id + + template::list::create \ + -name session_list \ + -multirow session_list \ + -pass_properties { attendance_url current_url calendar_url calendar_id item_type_id } \ + -key task_id \ + -no_data "No sessions" \ + -elements { + session_name { + label "Session" + display_template { @session_list.session_name@ } + } + date_time { + label "Date and Time" + } + action { + label "Actions" + html "nowrap" + display_template { Edit | Attendance | Print
Delete | Email Attendees } + } } - date_time { - label "Date and Time" + + db_multirow -extend {session_name cal_item_id date_time grade_id} session_list get_sessions { } { + set cal_item_id [db_string "getcalid" "select cal_item_id from evaluation_cal_task_map where task_item_id=:item_id" -default ""] + set session_name [db_string "geteventname" "select name from acs_events where event_id=:cal_item_id" -default ""] + set grade_id [db_string "getgradeid" "select grade_id from evaluation_grades where grade_item_id = :grade_item_id" -default ""] + set date_time [db_string datetime { + select to_char(start_date, 'Mon dd, yyyy hh:miam-')||to_char(end_date, 'hh:miam') + from cal_items ci, acs_events e, acs_activities a, timespans s, time_intervals t + where e.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and e.activity_id = a.activity_id + and e.event_id = ci.cal_item_id + and ci.cal_item_id = :cal_item_id + } -default ""] } - action { - label "Actions" - html "nowrap" - display_template { Edit | Attendance | Print
Delete | Email Attendees } - } - } -db_multirow -extend {session_name cal_item_id date_time grade_id} session_list get_sessions { } { - set cal_item_id [db_string "getcalid" "select cal_item_id from evaluation_cal_task_map where task_item_id=:item_id" -default ""] - set session_name [db_string "geteventname" "select name from acs_events where event_id=:cal_item_id" -default ""] - set grade_id [db_string "getgradeid" "select grade_id from evaluation_grades where grade_item_id = :grade_item_id" -default ""] - set date_time [db_string datetime { - select to_char(start_date, 'Mon dd, yyyy hh:miam-')||to_char(end_date, 'hh:miam') - from cal_items ci, acs_events e, acs_activities a, timespans s, time_intervals t - where e.timespan_id = s.timespan_id - and s.interval_id = t.interval_id - and e.activity_id = a.activity_id - and e.event_id = ci.cal_item_id - and ci.cal_item_id = :cal_item_id - } -default ""] +} else { + set attendance_msg "To use the Attendance Tracking feature you must create a \"Session\" designtation for calendar events. Click here to let the system create the \"Session\" designation and enable attendance tracking." } +