Bugfixes for updating studygroups

This commit is contained in:
Nathan Coad
2014-05-26 23:33:42 +10:00
parent 7e464bca59
commit ad666a34ee
3 changed files with 117 additions and 92 deletions

View File

@@ -383,6 +383,7 @@ function _booking_studygroups_cleanup($nid)
foreach ($to_remove as $group) foreach ($to_remove as $group)
{ {
/*
$role = "None"; $role = "None";
if ($group->booking_is_leader == 'Y') if ($group->booking_is_leader == 'Y')
$role = "Lead group #" . $group->booking_studygroup_id; $role = "Lead group #" . $group->booking_studygroup_id;
@@ -390,8 +391,12 @@ function _booking_studygroups_cleanup($nid)
$role = "Help group #" . $group->booking_studygroup_id; $role = "Help group #" . $group->booking_studygroup_id;
elseif ($group->booking_is_reserveleader == 'Y') elseif ($group->booking_is_reserveleader == 'Y')
$role = "Reserve group #" . $group->booking_studygroup_id; $role = "Reserve group #" . $group->booking_studygroup_id;
*/
$message = t("Removing id !nid from group id !group with role !role.", array('!nid' => $nid, '!group' => $group->booking_studygroup_id, '!role' => $role)); $message = t("Removing id !nid from group id !group with role !role.",
array('!nid' => $nid, '!group' => $group->booking_studygroup_id, '
!role' => _booking_studygroup_role_lookup($group->booking_studygroup_role)
)
);
watchdog('booking', $message); watchdog('booking', $message);
drupal_set_message($message, 'status', FALSE); drupal_set_message($message, 'status', FALSE);

View File

@@ -365,13 +365,13 @@ function booking_menu() {
//'type' => MENU_NORMAL_ITEM, //'type' => MENU_NORMAL_ITEM,
); );
$items['admin/booking/studygroups/selectleaders'] = array( $items['admin/booking/studygroups/%/selectleaders'] = array(
'title' => 'Select Study Group Leaders', 'title' => 'Select Study Group Leaders',
'description' => 'Define attendees to lead or help study groups', 'description' => 'Define attendees to lead or help study groups',
'page callback' => 'drupal_get_form', 'page callback' => 'drupal_get_form',
'page arguments' => array('booking_available_leadhelp_select_form'), 'page arguments' => array('booking_available_leadhelp_select_form', 3),
'access arguments' => array('edit study groups'), 'access arguments' => array('edit study groups'),
'type' => MENU_LOCAL_ACTION, //'type' => MENU_LOCAL_ACTION,
); );
$items['admin/booking/studygroups/calculate'] = array( $items['admin/booking/studygroups/calculate'] = array(

View File

@@ -8,7 +8,7 @@
/** /**
* Function for selecting who is available to lead or help sessions * Function for selecting who is available to lead or help sessions
*/ */
function booking_available_leadhelp_select_form() { function booking_available_leadhelp_select_form($node, &$form_state, $group_id) {
global $event; global $event;
//see http://www.jaypan.com/blog/themeing-drupal-7-forms-tables-checkboxes-or-radios //see http://www.jaypan.com/blog/themeing-drupal-7-forms-tables-checkboxes-or-radios
@@ -16,19 +16,33 @@ function booking_available_leadhelp_select_form() {
$options = array (); $options = array ();
$group_options = array(); $group_options = array();
$session_options = array(); $session_options = array();
$prefix = t("<p>Allocate a leader/helper session for attendees. Note that at this stage there is no way to remove this data.</p>");
$suffix = t("<p>Make sure you have selected a study group to apply these changes to!</p>");
//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 edit group leaders and helpers.", 'error', FALSE);
drupal_goto('admin/booking/studygroups');
return "";
}
//select all the study groups for this event id //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)); $studygroup = db_query("SELECT * FROM {booking_studygroup_list} WHERE sid = :sid", array(':sid' => $group_id))
$studygroups = $studygroups_query->fetchAllAssoc('sid'); ->fetchObject();
//$group_options[0] = '';
foreach ($studygroups as $group) if (! $studygroup)
$group_options[$group->sid] = $group->booking_studygroup_descrip; {
drupal_set_message("Error: Could not find matching study group ID. Unable to edit leaders/helpers.", 'error', FALSE);
drupal_goto('admin/booking/studygroups');
return "";
}
$prefix = t("<h2>Study Group &dash; !descrip</h2><p>Allocate a leader/helper session for attendees.</p>",
array('!descrip' => $studygroup->booking_studygroup_descrip));
$suffix = t("<p>Make sure you have selected a study group to apply these changes to!</p>");
//select the number of study group sessions //select the number of study group sessions
//assume they all have the same number of sessions //assume they all have the same number of sessions
$num_sessions = reset($studygroups)->booking_num_group_sessions; $num_sessions = $studygroup->booking_num_group_sessions;
$session_options[0] = ''; $session_options[0] = '';
for ($i = 1; $i <= $num_sessions; $i++) for ($i = 1; $i <= $num_sessions; $i++)
$session_options[$i] = $i; $session_options[$i] = $i;
@@ -39,17 +53,14 @@ function booking_available_leadhelp_select_form() {
$group_mapping = $group_mapping_query->fetchAllAssoc('sid'); $group_mapping = $group_mapping_query->fetchAllAssoc('sid');
//***form starts here*** //***form starts here***
$form['booking_studygroup'] = array( $form['booking_studygroup'] = array (
'#type' => 'select', '#type' => 'hidden',
'#title' => t('Select which Study Group to process'), '#value' => $group_id,
'#required' => TRUE, );
'#options' => $group_options,
);
$header = array ( $header = array (
'booking_nid' => array('data' => t('Booking ID'), 'field' => 'nid'), 'booking_nid' => array('data' => t('Booking ID'), 'field' => 'nid'),
'booking_name' => array('data' => t('Name'), 'field' => 'booking_lastname'), 'booking_name' => array('data' => t('Name'), 'field' => 'booking_lastname'),
//'booking_gender' => array('data' => t('Gender')),
'booking_baptised' => array('data' => t('Baptised?'), 'field' => 'booking_baptised'), 'booking_baptised' => array('data' => t('Baptised?'), 'field' => 'booking_baptised'),
'booking_age' => array('data' => t('Age (start of week)'), 'field' => 'booking_dob', 'sort' => 'asc'), 'booking_age' => array('data' => t('Age (start of week)'), 'field' => 'booking_dob', 'sort' => 'asc'),
'booking_state' => array('data' => t('State'), 'field' => 'booking_state'), 'booking_state' => array('data' => t('State'), 'field' => 'booking_state'),
@@ -61,87 +72,77 @@ function booking_available_leadhelp_select_form() {
); );
$query = db_select('booking_person', 'p'); $query = db_select('booking_person', 'p');
//$query->leftJoin('booking_leadhelp_list', 'l', 'p.nid = l.booking_node_id');
//only select people that are either booked in or on the waiting list
$db_or = db_or();
$db_or->condition('p.booking_status', 1, '=');
$db_or->condition('p.booking_status', 2, '=');
//also restrict to males from the current event
$db_and = db_and(); $db_and = db_and();
$db_and->condition('p.booking_event_id', $event->eid, '='); $db_and->condition('p.booking_event_id', $event->eid, '=');
$db_and->condition('p.booking_gender', 'M', '='); $db_and->condition('p.booking_gender', 'M', '=');
$db_and->condition($db_or);
$query->condition($db_and); $query->condition($db_and);
//$query->fields('p')->fields('l');
$query->fields('p'); $query->fields('p');
$table_sort = $query->extend('TableSort')->orderbyHeader($header); $table_sort = $query->extend('TableSort')->orderbyHeader($header);
$result = $table_sort->execute(); $result = $table_sort->execute();
foreach($result as $data) foreach($result as $data)
{ {
$currently_doing = ""; $role_listing = "";
$assigned_role = 0;
$session_id = 0;
//work out what this person is currently leading/helping //work out what this person is currently leading/helping
foreach ($group_mapping as $person) foreach ($group_mapping as $group)
{ {
if ($person->booking_node_id == $data->nid) $role = $group->booking_studygroup_role;
//add to the listing of all the roles this person is doing
if ($group->booking_node_id == $data->nid && $role > 0)
{ {
if ($person->booking_is_leader == 'Y') $text = _booking_studygroup_role_lookup($role);
$currently_doing .= "Lead " . $person->booking_studygroup_id . " #" . $person->booking_session_id . "; "; $role_listing .= $text . " group " . $group->booking_studygroup_id . " #" . $group->booking_session_id . "; ";
elseif ($person->booking_is_helper == 'Y') }
$currently_doing .= "Help " . $person->booking_studygroup_id . " #" . $person->booking_session_id . "; ";
elseif ($person->booking_is_reserveleader == 'Y') //also record if they are doing anything for our current group
$currently_doing .= "Reserve " . $person->booking_studygroup_id . " #" . $person->booking_session_id . "; "; if ($group->booking_node_id == $data->nid && $group->booking_studygroup_id == $group_id)
{
$assigned_role = $role;
$session_id = $group->booking_session_id;
} }
} }
$options[$data->nid] = array ( $options[$data->nid] = array (
'booking_nid' => l(t('!id', array('!id' => $data->nid)), t('node/!id', array('!id' => $data->nid))), 'booking_nid' => l(t('!id', array('!id' => $data->nid)), t('node/!id', array('!id' => $data->nid))),
'booking_name' => l(t($data->booking_firstname . " " . $data->booking_lastname), t('node/!id', array('!id' => $data->nid))), 'booking_name' => l(t($data->booking_firstname . " " . $data->booking_lastname), t('node/!id', array('!id' => $data->nid))),
//'booking_gender' => $data->booking_gender == 'M' ? 'Male' : 'Female',
'booking_baptised' => $data->booking_baptised == 'Y' ? 'Yes' : 'No', 'booking_baptised' => $data->booking_baptised == 'Y' ? 'Yes' : 'No',
'booking_age' => _booking_avg_age($data->booking_dob, 1, $event->booking_event_start), 'booking_age' => _booking_avg_age($data->booking_dob, 1, $event->booking_event_start),
'booking_state' => $data->booking_state, 'booking_state' => $data->booking_state,
'booking_status' => _booking_status_generate($data->booking_status), 'booking_status' => _booking_status_generate($data->booking_status),
//'booking_lead_sessions' => $data->booking_total_lead === NULL ? '0' : $data->booking_total_lead,
//'booking_available_lead' => $data->booking_available_lead === NULL ? '0' : $data->booking_available_lead,
//'booking_help_sessions' => $data->booking_total_help === NULL ? '0' : $data->booking_total_help,
//'booking_available_help' => $data->booking_available_help === NULL ? '0' : $data->booking_available_help,
/*
'booking_assign_leader_group' => array('data' => array(
'#type' => 'select',
//'#title' => t('Select group'),
'#default_value' => 0,
'#options' => $group_options,
'#name' => 'booking_assign_leader_group[' . $data->nid . ']',
)
),
*/
'booking_assign_leader_session' => array('data' => array( 'booking_assign_leader_session' => array('data' => array(
'#type' => 'select', '#type' => 'select',
//'#default_value' => 0,
'#options' => $session_options, '#options' => $session_options,
'#name' => 'booking_assign_leader_session[' . $data->nid . ']', '#name' => 'booking_assign_leader_session[' . $data->nid . ']',
'#value' => $assigned_role == 1 ? $session_id : 0,
) )
), ),
/*
'booking_assign_helper_group' => array('data' => array(
'#type' => 'select',
'#default_value' => 0,
'#options' => $group_options,
'#name' => 'booking_assign_helper_group[' . $data->nid . ']',
)
),
*/
'booking_assign_helper_session' => array('data' => array( 'booking_assign_helper_session' => array('data' => array(
'#type' => 'select', '#type' => 'select',
'#options' => $session_options, '#options' => $session_options,
'#name' => 'booking_assign_helper_session[' . $data->nid . ']', '#name' => 'booking_assign_helper_session[' . $data->nid . ']',
'#value' => $assigned_role == 2 ? $session_id : 0,
) )
), ),
'booking_assign_reserveleader_session' => array('data' => array( 'booking_assign_reserveleader_session' => array('data' => array(
'#type' => 'select', '#type' => 'select',
'#options' => $session_options, '#options' => $session_options,
'#name' => 'booking_assign_reserveleader_session[' . $data->nid . ']', '#name' => 'booking_assign_reserveleader_session[' . $data->nid . ']',
'#value' => $assigned_role == 3 ? $session_id : 0,
) )
), ),
'booking_currently_leadhelp' => $currently_doing, 'booking_currently_leadhelp' => $role_listing,
); );
} }
@@ -154,8 +155,6 @@ function booking_available_leadhelp_select_form() {
); );
//so we can access the dropdown elements //so we can access the dropdown elements
//$form['booking_assign_leader_group'] = array( '#type' => 'value', );
//$form['booking_assign_helper_group'] = array( '#type' => 'value', );
$form['booking_assign_leader_session'] = array( '#type' => 'value', ); $form['booking_assign_leader_session'] = array( '#type' => 'value', );
$form['booking_assign_reserveleader_session'] = array( '#type' => 'value', ); $form['booking_assign_reserveleader_session'] = array( '#type' => 'value', );
$form['booking_assign_helper_session'] = array( '#type' => 'value', ); $form['booking_assign_helper_session'] = array( '#type' => 'value', );
@@ -203,10 +202,8 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
$checkboxes = $form_state['values']['table']; $checkboxes = $form_state['values']['table'];
$booking_studygroup = $form_state['values']['booking_studygroup']; $booking_studygroup = $form_state['values']['booking_studygroup'];
//$leader_list = $form_state['values']['booking_assign_leader_group'];
$leader_session = $form_state['values']['booking_assign_leader_session']; $leader_session = $form_state['values']['booking_assign_leader_session'];
$reserve_leader_session = $form_state['values']['booking_assign_reserveleader_session']; $reserve_leader_session = $form_state['values']['booking_assign_reserveleader_session'];
//$helper_list = $form_state['values']['booking_assign_helper_group'];
$helper_session = $form_state['values']['booking_assign_helper_session']; $helper_session = $form_state['values']['booking_assign_helper_session'];
//watchdog('booking', "Leader list: @info", array('@info' => var_export($form_state['values'], TRUE))); //watchdog('booking', "Leader list: @info", array('@info' => var_export($form_state['values'], TRUE)));
@@ -223,6 +220,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
$helper = 'N'; $helper = 'N';
$reserve_leader = 'N'; $reserve_leader = 'N';
$session = 0; $session = 0;
$role = 0;
$found = FALSE; $found = FALSE;
//remove from being a leader? //remove from being a leader?
@@ -233,9 +231,10 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
->condition('booking_node_id', $key) ->condition('booking_node_id', $key)
->condition('booking_studygroup_id', $booking_studygroup) ->condition('booking_studygroup_id', $booking_studygroup)
// ->condition('booking_session_id', $leader_session[$key]) // ->condition('booking_session_id', $leader_session[$key])
->condition('booking_is_leader', 'Y') // ->condition('booking_is_leader', 'Y')
->execute(); ->execute();
watchdog('booking', 'Removed person !nid from being a leader in study group !sid, affected !num rows.', array ('!nid' => $key, '!sid' => $booking_studygroup, '!num' => $num_deleted)); watchdog('booking', 'Removed person !nid from being a leader in study group !sid, affected !num rows.',
array ('!nid' => $key, '!sid' => $booking_studygroup, '!num' => $num_deleted));
//skip to the next person //skip to the next person
$counter++; $counter++;
continue; continue;
@@ -248,7 +247,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
->condition('booking_node_id', $key) ->condition('booking_node_id', $key)
->condition('booking_studygroup_id', $booking_studygroup) ->condition('booking_studygroup_id', $booking_studygroup)
// ->condition('booking_session_id', $helper_session[$key]) // ->condition('booking_session_id', $helper_session[$key])
->condition('booking_is_helper', 'Y') // ->condition('booking_is_helper', 'Y')
->execute(); ->execute();
watchdog('booking', 'Removed person !nid from being a helper in study group !sid, affected !num rows.', array ('!nid' => $key, '!sid' => $booking_studygroup, '!num' => $num_deleted)); watchdog('booking', 'Removed person !nid from being a helper in study group !sid, affected !num rows.', array ('!nid' => $key, '!sid' => $booking_studygroup, '!num' => $num_deleted));
//skip to the next person //skip to the next person
@@ -263,7 +262,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
->condition('booking_node_id', $key) ->condition('booking_node_id', $key)
->condition('booking_studygroup_id', $booking_studygroup) ->condition('booking_studygroup_id', $booking_studygroup)
// ->condition('booking_session_id', $reserve_leader_session[$key]) // ->condition('booking_session_id', $reserve_leader_session[$key])
->condition('booking_is_reserveleader', 'Y') // ->condition('booking_is_reserveleader', 'Y')
->execute(); ->execute();
watchdog('booking', 'Removed person !nid from being a reserve leader in study group !sid, affected !num rows.', watchdog('booking', 'Removed person !nid from being a reserve leader in study group !sid, affected !num rows.',
array ('!nid' => $key, '!sid' => $booking_studygroup, '!num' => $num_deleted)); array ('!nid' => $key, '!sid' => $booking_studygroup, '!num' => $num_deleted));
@@ -274,22 +273,25 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
//was this person set as a leader? //was this person set as a leader?
elseif ($leader_session[$key] <> 0) elseif ($leader_session[$key] <> 0)
{ {
$leader = 'Y'; $role = 1;
$session = $leader_session[$key]; $session = $leader_session[$key];
watchdog('booking', 'Person !nid is set to be a leader in session !sid, group !group', array ('!nid' => $key, '!sid' => $leader_session[$key], '!group' => $booking_studygroup)); watchdog('booking', 'Person !nid is set to be a leader in session !sid, group !group',
array ('!nid' => $key, '!sid' => $leader_session[$key], '!group' => $booking_studygroup));
} }
//was this person set as a helper? //was this person set as a helper?
elseif ($helper_session[$key] <> 0) elseif ($helper_session[$key] <> 0)
{ {
$helper = 'Y'; $role = 2;
$session = $helper_session[$key]; $session = $helper_session[$key];
watchdog('booking', 'Person !nid is set to be a helper in session !sid, group !group', array ('!nid' => $key, '!sid' => $helper_session[$key], '!group' => $booking_studygroup)); watchdog('booking', 'Person !nid is set to be a helper in session !sid, group !group',
array ('!nid' => $key, '!sid' => $helper_session[$key], '!group' => $booking_studygroup));
} }
elseif ($reserve_leader_session[$key] <> 0) elseif ($reserve_leader_session[$key] <> 0)
{ {
$reserve_leader = 'Y'; $role = 3;
$session = $reserve_leader_session[$key]; $session = $reserve_leader_session[$key];
watchdog('booking', 'Person !nid is set to be a reserve leader in session !sid, group !group', array ('!nid' => $key, '!sid' => $helper_session[$key], '!group' => $booking_studygroup)); watchdog('booking', 'Person !nid is set to be a reserve leader in session !sid, group !group',
array('!nid' => $key, '!sid' => $helper_session[$key], '!group' => $booking_studygroup));
} }
//if we reach the else something weird happened, make sure we don't insert //if we reach the else something weird happened, make sure we don't insert
else else
@@ -298,8 +300,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
//check if this person already exists in the booking_studygroup_mapping table //check if this person already exists in the booking_studygroup_mapping table
foreach ($group_mapping as $person) foreach ($group_mapping as $person)
{ {
if ($person->booking_node_id == $key && $person->booking_studygroup_id == $booking_studygroup && if ($person->booking_node_id == $key && $person->booking_studygroup_id == $booking_studygroup)
($person->booking_is_leader == 'Y' || $person->booking_is_helper == 'Y'))
{ {
$found = TRUE; $found = TRUE;
break; break;
@@ -315,9 +316,10 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
'booking_node_id' => $key, 'booking_node_id' => $key,
'booking_studygroup_id' => $booking_studygroup, 'booking_studygroup_id' => $booking_studygroup,
'booking_session_id' => $session, 'booking_session_id' => $session,
'booking_is_leader' => $leader, 'booking_studygroup_role' => $role,
'booking_is_helper' => $helper, //'booking_is_leader' => $leader,
'booking_is_reserveleader' => $reserve_leader, //'booking_is_helper' => $helper,
//'booking_is_reserveleader' => $reserve_leader,
)) ))
->execute(); ->execute();
} }
@@ -327,9 +329,10 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
db_update('booking_studygroup_mapping') db_update('booking_studygroup_mapping')
->fields(array ( ->fields(array (
'booking_session_id' => $session, 'booking_session_id' => $session,
'booking_is_leader' => $leader, 'booking_studygroup_role' => $role,
'booking_is_helper' => $helper, //'booking_is_leader' => $leader,
'booking_is_reserveleader' => $reserve_leader, //'booking_is_helper' => $helper,
//'booking_is_reserveleader' => $reserve_leader,
)) ))
->condition('booking_node_id', $key) ->condition('booking_node_id', $key)
->condition('booking_studygroup_id', $booking_studygroup) ->condition('booking_studygroup_id', $booking_studygroup)
@@ -488,13 +491,15 @@ function booking_studygroups_edit_form_submit($form, &$form_state) {
} }
$nid = $values['personid']; $nid = $values['personid'];
watchdog('booking', "<pre>Study Groups Edit submission:\n@info</pre>", array('@info' => print_r( $form_state, true))); //watchdog('booking', "<pre>Study Groups Edit submission:\n@info</pre>", array('@info' => print_r( $form_state, true)));
//select the groups this person is already assigned to, indexed by studygroup id //select the groups this person is already assigned to, indexed by studygroup id
$person_groups_query = db_query("SELECT * FROM {booking_studygroup_mapping} WHERE booking_eventid = :eid AND booking_node_id = :nid", $person_groups_query = db_query("SELECT * FROM {booking_studygroup_mapping} WHERE booking_eventid = :eid AND booking_node_id = :nid",
array(':eid' => $event->eid, ':nid' => $nid)); array(':eid' => $event->eid, ':nid' => $nid));
$person_groups = $person_groups_query->fetchAllAssoc('booking_studygroup_id'); $person_groups = $person_groups_query->fetchAllAssoc('booking_studygroup_id');
//watchdog('booking', "<pre>Study Groups person mapping:\n@info</pre>", array('@info' => print_r( $person_groups, true)));
//select all the study groups for this event id //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)); $studygroups_query = db_query("SELECT * FROM {booking_studygroup_list} WHERE booking_eventid = :eid", array(':eid' => $event->eid));
$studygroups = $studygroups_query->fetchAll(); $studygroups = $studygroups_query->fetchAll();
@@ -502,25 +507,26 @@ function booking_studygroups_edit_form_submit($form, &$form_state) {
//loop through array of study group IDs and compare against existing database entries //loop through array of study group IDs and compare against existing database entries
foreach ($studygroup_ids as $key => $value) foreach ($studygroup_ids as $key => $value)
{ {
//watchdog('booking', "<pre>Study Group key:\n@key\nValue\n@value</pre>", array('@key' => print_r( $key, true), '@value' => print_r( $value, true)));
//check if there is a valid value to process //check if there is a valid value to process
if ($value > 0 || $value == 'Remove') if ($value > 0 || $value == 'Remove')
{ {
//watchdog('booking', "<pre>Study Group key:\n@key\nValue\n@value</pre>", array('@key' => print_r( $key, true), '@value' => print_r( $value, true)));
//check to see if we need to remove a study group mapping //check to see if we need to remove a study group mapping
if (! empty($person_groups[$key]) && $value == 'Remove') if (! empty($person_groups[$key]) && $value == 'Remove')
{ {
watchdog('booking', "Removing an existing Study Group session id: @id from group @group.\n<pre>@info</pre>", array('@id' => $value, '@group' => $key, '@info' => print_r( $person_groups[$key], true))); watchdog('booking', "Removing an existing Study Group session id: @id from group @group.\n<pre>@info</pre>",
array('@id' => $value, '@group' => $key, '@info' => print_r( $person_groups[$key], true)));
$num_deleted = db_delete('booking_studygroup_mapping') $num_deleted = db_delete('booking_studygroup_mapping')
->condition('sid', $person_groups[$key]->sid) ->condition('sid', $person_groups[$key]->sid)
->execute(); ->execute();
} }
//check for an existing study group mapping to change //check for an existing study group mapping to change
elseif (! empty($person_groups[$key]) && $person_groups[$key]->booking_session_id != $value) elseif ((!empty($person_groups[$key])) && $person_groups[$key]->booking_session_id != $value)
{ {
watchdog('booking', "Updating Study Group session from: @key to @value", array('@key' => $person_groups[$key]->booking_session_id, '@value' => $value)); watchdog('booking', "Updating Study Group session from: @key to @value",
array('@key' => $person_groups[$key]->booking_session_id, '@value' => $value));
db_update('booking_studygroup_mapping') db_update('booking_studygroup_mapping')
->fields(array( ->fields(array(
@@ -532,6 +538,12 @@ function booking_studygroups_edit_form_submit($form, &$form_state) {
->condition('sid', $person_groups[$key]->sid) ->condition('sid', $person_groups[$key]->sid)
->execute(); ->execute();
} }
//found this entry already, so no change needed
elseif ((!empty($person_groups[$key])) && $person_groups[$key]->booking_session_id == $value)
{
watchdog('booking', "Study Group @group session already set to @session.",
array('@group' => $key, '@session' => $value));
}
//no previously defined value, so add a new entry to the mapping table //no previously defined value, so add a new entry to the mapping table
else else
{ {
@@ -969,7 +981,7 @@ function booking_studygroups_view_summary() {
global $event; global $event;
$output = ""; $output = "";
$header = array('Link','Study Group', 'Session Count'); $header = array('Link','Study Group', 'Session Count', 'Select Leaders');
$attributes = array('style' => 'max-width:30%'); $attributes = array('style' => 'max-width:30%');
//get study groups //get study groups
@@ -980,9 +992,10 @@ function booking_studygroups_view_summary() {
foreach ($result as $group) { foreach ($result as $group) {
$rows[] = array( $rows[] = array(
l(t('!id', array('!id' => $group->sid)), t('admin/booking/studygroups/!id/view', array('!id' => $group->sid))), l(t('View', array('!id' => $group->sid)), t('admin/booking/studygroups/!id/view', array('!id' => $group->sid))),
$group->booking_studygroup_descrip, $group->booking_studygroup_descrip,
$group->booking_num_group_sessions, $group->booking_num_group_sessions,
l(t('Edit Leaders/Helpers', array('!id' => $group->sid)), t('admin/booking/studygroups/!id/selectleaders', array('!id' => $group->sid))),
); );
} }
@@ -1127,6 +1140,12 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
$form = array(); $form = array();
$options = array(); $options = array();
$last_session = ""; $last_session = "";
$class_array = array(
0 => "normal-row",
1 => "leader-row",
2 => "helper-row",
3 => "helper-row",
);
//attach the custom css //attach the custom css
$form['#attached']['css'] = array( $form['#attached']['css'] = array(
@@ -1182,8 +1201,8 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
foreach($result as $data) foreach($result as $data)
{ {
$class = ""; $class = $class_array[$data->booking_studygroup_role];
/*
//apply theme as required //apply theme as required
if ($data->booking_is_leader == 'Y') if ($data->booking_is_leader == 'Y')
$class = "leader-row"; $class = "leader-row";
@@ -1193,6 +1212,7 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
$class = "helper-row"; $class = "helper-row";
else else
$class = "normal-row"; $class = "normal-row";
*/
//only add the lines separating groups if we're sorting by the session id //only add the lines separating groups if we're sorting by the session id
if ($sort['sql'] == "m.booking_session_id") if ($sort['sql'] == "m.booking_session_id")