Various tweaks and fixes
This commit is contained in:
@@ -426,7 +426,7 @@ function booking_studygroups_calculate() {
|
||||
//delete from booking_studygroup_mapping;
|
||||
//alter table booking_studygroup_mapping AUTO_INCREMENT=1;
|
||||
|
||||
//consider using a lock as per https://api.drupal.org/api/drupal/includes!lock.inc/group/lock/7
|
||||
//TODO: consider using a lock as per https://api.drupal.org/api/drupal/includes!lock.inc/group/lock/7
|
||||
|
||||
//select all the study groups for this event id
|
||||
$studygroups_query = db_query("SELECT * FROM {booking_studygroup_list} WHERE booking_eventid = :eid", array(':eid' => $event->eid));
|
||||
@@ -464,6 +464,8 @@ function booking_studygroups_calculate() {
|
||||
$group_mapping_query = db_query("SELECT * FROM {booking_studygroup_mapping} WHERE booking_eventid = :eid", array(':eid' => $event->eid));
|
||||
$group_mapping = $group_mapping_query->fetchAllAssoc('sid');
|
||||
|
||||
//TODO: search for entries already in the mapping table that have a booking_status of 3 (not coming) and remove them from the mapping table
|
||||
|
||||
//iterate over the attendee associative array and add some fields
|
||||
foreach ($attendees as $person)
|
||||
{
|
||||
@@ -749,7 +751,7 @@ function booking_studygroups_view_summary() {
|
||||
|
||||
foreach ($result as $group) {
|
||||
$rows[] = array(
|
||||
l(t('!id', array('!id' => $group->sid)), t('admin/config/booking/studygroups/!id/view', array('!id' => $group->sid))),
|
||||
l(t('!id', array('!id' => $group->sid)), t('admin/booking/studygroups/!id/view', array('!id' => $group->sid))),
|
||||
$group->booking_studygroup_descrip,
|
||||
$group->booking_num_group_sessions,
|
||||
);
|
||||
@@ -763,6 +765,112 @@ function booking_studygroups_view_summary() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function for viewing a printable format of who belongs to which study group
|
||||
*/
|
||||
function booking_studygroups_printview_form($node, &$form_state, $group_id) {
|
||||
global $event;
|
||||
|
||||
$form = array();
|
||||
$rows = array();
|
||||
$last_session = "";
|
||||
|
||||
//attach the custom css
|
||||
$form['#attached']['css'] = array(
|
||||
drupal_get_path('module', 'booking') . '/booking.css',
|
||||
);
|
||||
|
||||
//verify that $group_id is a number
|
||||
if (! preg_match('/^[0-9]+$/', $group_id)) {
|
||||
drupal_set_message("Error: Invalid study group ID '" . $group_id . "' supplied. Unable to view group membership.", 'error', FALSE);
|
||||
drupal_goto('admin/config/booking');
|
||||
return "";
|
||||
}
|
||||
|
||||
//collect information on the study group
|
||||
$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/config/booking');
|
||||
return "";
|
||||
}
|
||||
|
||||
$header = array(
|
||||
'booking_session_id' => array('data' => t('Study Group Session'), 'field' => 'm.booking_session_id', 'sort' => 'asc'),
|
||||
'booking_name' => array('data' => t('Name'), 'field' => 'p.booking_lastname'),
|
||||
'booking_is_leader' => array('data' => t('Leader?'), 'field' => 'm.booking_is_leader'),
|
||||
'booking_is_helper' => array('data' => t('Helper?'), 'field' => 'm.booking_is_helper'),
|
||||
'booking_is_reserveleader' => array('data' => t('Reserve Leader?'), 'field' => 'm.booking_is_reserveleader'),
|
||||
);
|
||||
|
||||
$query = db_select('booking_person', 'p');
|
||||
$query->leftJoin('booking_studygroup_mapping', 'm', 'm.booking_node_id = p.nid');
|
||||
$db_and = db_and();
|
||||
$db_and->condition('p.booking_event_id', $event->eid, '=');
|
||||
$db_and->condition('m.booking_studygroup_id', $group_id, '=');
|
||||
$query->condition($db_and);
|
||||
$query->fields('p')->fields('m')->orderBy('p.booking_lastname', 'ASC');
|
||||
$result = $query->execute();
|
||||
|
||||
//watchdog('booking', 'Study groups raw data: @info', array ('@info' => var_export($result, TRUE)));
|
||||
|
||||
foreach($result as $data)
|
||||
{
|
||||
$class = "";
|
||||
|
||||
//apply theme as required
|
||||
if ($data->booking_is_leader == 'Y')
|
||||
$class = "leader-row";
|
||||
elseif ($data->booking_is_helper == 'Y')
|
||||
$class = "helper-row";
|
||||
elseif ($data->booking_is_reserveleader == 'Y')
|
||||
$class = "helper-row";
|
||||
else
|
||||
$class = "normal-row";
|
||||
|
||||
$rows[] = array (
|
||||
'data' => array(
|
||||
$data->booking_session_id,
|
||||
$data->booking_firstname . " " . $data->booking_lastname,
|
||||
$data->booking_is_leader == 'Y' ? 'Yes' : 'No',
|
||||
$data->booking_is_helper == 'Y' ? 'Yes' : 'No',
|
||||
$data->booking_is_reserveleader == 'Y' ? 'Yes' : 'No',
|
||||
),
|
||||
'class' => $class,
|
||||
'no_striping' => TRUE,
|
||||
);
|
||||
}
|
||||
|
||||
$prefix = t("<h2>Study Group !descrip</h2>", array('!descrip' => $group->booking_studygroup_descrip));
|
||||
|
||||
/*
|
||||
$form['table'] = array (
|
||||
'#type' => 'tableselect',
|
||||
'#header' => $header,
|
||||
'#options' => $options,
|
||||
//'#attributes' => array('id' => 'sort-table'),
|
||||
);
|
||||
*/
|
||||
return array (
|
||||
'first_para' => array (
|
||||
'#type' => 'markup',
|
||||
'#markup' => $prefix,
|
||||
),
|
||||
'table' => array (
|
||||
'#theme' => 'table',
|
||||
'#header' => $header,
|
||||
'#rows' => $rows,
|
||||
'#sticky' => FALSE,
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Function for viewing who belongs to which study group
|
||||
*/
|
||||
@@ -780,7 +888,7 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
|
||||
|
||||
//verify that $group_id is a number
|
||||
if (! preg_match('/^[0-9]+$/', $group_id)) {
|
||||
drupal_set_message("Error: Invalid study group ID supplied. Unable to view group membership.", 'error', FALSE);
|
||||
drupal_set_message("Error: Invalid study group ID '" . $group_id . "' supplied. Unable to view group membership.", 'error', FALSE);
|
||||
drupal_goto('admin/config/booking');
|
||||
return "";
|
||||
}
|
||||
|
Reference in New Issue
Block a user