diff --git a/booking.studygroups_report.inc b/booking.studygroups_report.inc index 0684811..80b74b9 100644 --- a/booking.studygroups_report.inc +++ b/booking.studygroups_report.inc @@ -13,9 +13,21 @@ function booking_studygroups_csv_report($group_id) { drupal_goto('admin/booking/studygroups'); return ""; } + + //retrieve the name of the study group for the specified ID + $group = db_query("SELECT * FROM {booking_studygroup_list} WHERE booking_eventid = :eid and sid = :sid", + array(':eid' => $event->eid, ':sid' => $group_id)) + ->fetchObject(); + + if (! $group) + { + drupal_set_message("Error: Could not find matching study group ID. Unable to view group membership.", 'error', FALSE); + drupal_goto('admin/booking/studygroups'); + return ""; + } //set options for the CSV file - $name = 'bookings-studygroup-' . $group_id . '-' . format_date(time(), 'custom', 'Y-m-d-His'); + $name = 'bookings-studygroup-' . $group->booking_studygroup_descrip . '-' . format_date(time(), 'custom', 'Y-m-d-His'); $filename = file_directory_temp() . '/' . $name; $csv = ''; $delimiter = ','; @@ -37,9 +49,18 @@ function booking_studygroups_csv_report($group_id) { */ //get the list of study group session memberships + $session_members_query = db_query("SELECT m.* FROM {booking_studygroup_mapping} m + inner join {booking_person} p on p.nid = m.booking_node_id + WHERE m.booking_studygroup_id = :sid ORDER BY booking_session_id + ORDER BY m.booking_session_id", + array(':sid' => $group_id)); + $session_members = $session_members_query->fetchAll(); + + /* $session_members_query = db_query("SELECT * FROM {booking_studygroup_mapping} WHERE booking_studygroup_id = :sid ORDER BY booking_session_id", array(':sid' => $group_id)); $session_members = $session_members_query->fetchAll(); + */ //generate the row data foreach ($session_members as $member) { @@ -48,8 +69,12 @@ function booking_studygroups_csv_report($group_id) { } // @todo // lookup the actual name and put this instead of just the node id - - $data[$member->booking_session_id][] = $member->booking_node_id; + $text = array($member->booking_firstname, $member->booking_lastname); + if ($member->booking_studygroup_role > 0) { + $text[] = '(' . _booking_studygroup_role_lookup($member->booking_studygroup_role) . ')' + } + $data[$member->booking_session_id][] = implode(' ', $text); + //$data[$member->booking_session_id][] = $member->booking_node_id; } watchdog('booking_debug', "
Study Group CSV Report\n@info
", array('@info' => print_r( $data_array, true))); @@ -69,7 +94,7 @@ function booking_studygroups_csv_report($group_id) { $output = array(); foreach ($header_array as $column) { $field = isset($data[$column][$i]) ? $data[$column][$i] : ''; - + //enclose $field if necessary if ( $encloseAll || preg_match( "/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field ) ) { $output[] = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure;