diff --git a/booking.constants.inc b/booking.constants.inc index 6d46a6a..14b3d67 100644 --- a/booking.constants.inc +++ b/booking.constants.inc @@ -108,18 +108,20 @@ function _get_tshirt_options() { * @param $input integer containing role id * @return string for corresponding role */ -function _booking_studygroup_role_lookup($input = NULL) -{ +function _booking_studygroup_role_lookup($input = NULL) { $role = array(); $role[] = t('No Role'); $role[] = t('Leader'); $role[] = t('Helper'); $role[] = t('Reserve Leader'); - - if ($input != NULL) + $role[] = t('Reserve Helper'); + + if ($input != NULL) { return $role[$input]; - else + } + else { return $role; + } } /** diff --git a/booking.studygroup_leaders.inc b/booking.studygroup_leaders.inc index 2c3e915..5fa363a 100644 --- a/booking.studygroup_leaders.inc +++ b/booking.studygroup_leaders.inc @@ -2,11 +2,9 @@ /** * @file - * Functions for calculating leaders and helpers for discussion groups + * Functions for automatically calculating leaders and helpers for discussion groups */ - - /** * Function for calculating and assigning leaders and helpers to active study group sessions */ @@ -66,20 +64,16 @@ function _booking_get_next_studygroup($type, $studygroups) { $count = count($studygroups) - 1; - for ($i = 0; $i < $count; $i++) - { + for ($i = 0; $i < $count; $i++) { $group = $studygroups[$i]; $leader = $group->leader_nid; //watchdog('booking_debug', "
Study Group Element at index $i:\n@info
", array('@info' => print_r( $group, true))); //watchdog('booking_debug', "
Study Group Leader NID at index $i:\n@info
", array('@info' => var_dump($group))); - if ($leader == 0) - { + if ($leader == 0) { return $i; } - } - } /** @@ -101,9 +95,7 @@ function _booking_studygroups_retrieve_eligible_people() { $bookedin_result = $query->execute(); //iterate over the attendee associative array and add some fields - foreach ($bookedin_result as $person) - { - + foreach ($bookedin_result as $person) { $person->processed = 0; $person->leading = array(); $person->helping = array(); @@ -124,9 +116,7 @@ function _booking_studygroups_retrieve_eligible_people() { array(':eid' => $event->eid)); //iterate over the attendee associative array and add some fields - foreach ($result2 as $person) - { - + foreach ($result2 as $person){ $person->processed = 0; $person->leading = array(); $person->helping = array(); @@ -156,11 +146,9 @@ function _booking_studygroups_retrieve_groups() { //assume they all have the same number of sessions //$num_sessions = $studygroup->booking_num_group_sessions; - foreach ($group_mapping as $group) - { + foreach ($group_mapping as $group) { //watchdog('booking_debug', "
Study Group Element:\n@info
", array('@info' => print_r( $group, true))); - for ($i = 1; $i <= 16; $i++) - { + for ($i = 1; $i <= 16; $i++) { $new_group = clone $group; $new_group->session_id = $i; @@ -278,8 +266,8 @@ function booking_studygroup_leadhelp_edit_form($node, &$form_state, $group_id) { //create an array representing the existing leaders/helpers for this group $existing_leaders = array(); foreach ($session_members as $person) { - $existing_leaders[$person->booking_session_id][$person->booking_studygroup_role] = $person->booking_lastname - . ', ' . $person->booking_firstname . ' [' . $person->booking_node_id . ']'; + $existing_leaders[$person->booking_session_id][$person->booking_studygroup_role] = + $person->booking_lastname . ', ' . $person->booking_firstname . ' [' . $person->booking_node_id . ']'; } //create the rows for the individual sessions (instances really) of this study group @@ -318,29 +306,47 @@ function booking_studygroup_leadhelp_edit_form($node, &$form_state, $group_id) { '#autocomplete_path' => 'booking/studygroups/autocomplete', '#value' => (!empty($existing_leaders[$i][3])) ? $existing_leaders[$i][3] : '', '#attributes' => array('style' => array('width:200px')), - ); + ); + + $reservehelper = array ( + '#id' => 'booking-studygroup-reservehelper-' . $i, + '#type' => 'textfield', + '#title' => 'Name', + '#title_display' => 'invisible', + '#name' => 'booking_studygroup_reservehelper[' . $i . ']', + '#size' => 100, + '#autocomplete_path' => 'booking/studygroups/autocomplete', + '#value' => (!empty($existing_leaders[$i][4])) ? $existing_leaders[$i][4] : '', + '#attributes' => array('style' => array('width:200px')), + ); $form['studygroups'][$i] = array( 'booking-studygroup-leader' => &$leader, 'booking-studygroup-helper' => &$helper, 'booking-studygroup-reserveleader' => &$reserveleader, + 'booking-studygroup-reservehelper' => &$reservehelper, ); $new_row = array(); + //handle readings group differently if ($studygroup->booking_is_readinggroup == 'Y') { $new_row['sid'] = _booking_readinggroup_colour_lookup($i); } + //non readings groups just show the session ID else { $new_row['sid'] = $i; } $new_row['booking_studygroup_leader'] = array('data' => &$leader); $new_row['booking_studygroup_helper'] = array('data' => &$helper); $new_row['booking_studygroup_reserveleader'] = array('data' => &$reserveleader); + $new_row['booking_studygroup_reservehelper'] = array('data' => &$reservehelper); $form['studygroups']['#rows'][$i] = $new_row; - + + //clean up references unset($leader); unset($helper); unset($reserveleader); + unset($reservehelper); } //record whether this was a reading group, so we can update colours if necessary @@ -376,6 +382,7 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) { 'booking_studygroup_leader' => 1, 'booking_studygroup_helper' => 2, 'booking_studygroup_reserveleader' => 3, + 'booking_studygroup_reservehelper' => 4, ); //iterate over the different role types diff --git a/booking.studygroups.inc b/booking.studygroups.inc index f1a64db..5c63184 100644 --- a/booking.studygroups.inc +++ b/booking.studygroups.inc @@ -23,6 +23,7 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id) 1 => "leader-row", 2 => "helper-row", 3 => "reserveleader-row", + 4 => "reservehelper-row", ); //verify that $group_id is a number @@ -126,8 +127,7 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id) $assigned_role = $role; $session_id = $group->booking_session_id; //list any role for this current group - if ($role > 0) - { + if ($role > 0) { $text = _booking_studygroup_role_lookup($role); $role_listing .= "" . $text . " group " . $group->booking_studygroup_id . " #" . $group->booking_session_id . "; "; $class = $class_array[$role]; @@ -400,8 +400,7 @@ function booking_studygroups_edit_form($node, &$form_state, $nid) { //retrieve the number of study group sessions, assume they all have the same number of sessions $num_sessions = reset($studygroups)->booking_num_group_sessions; //create the array for our html select fields - for ($i = 1; $i <= $num_sessions; $i++) - { + for ($i = 1; $i <= $num_sessions; $i++) { $session_options[$i] = $i; $readinggroup_options[$i] = _booking_readinggroup_colour_lookup($i); } diff --git a/booking.studygroups_admin.inc b/booking.studygroups_admin.inc index e0d9769..b4cd5ca 100644 --- a/booking.studygroups_admin.inc +++ b/booking.studygroups_admin.inc @@ -38,7 +38,6 @@ function booking_studygroups_admin() { $output .= theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => $attributes)); return $output; - } /** @@ -175,7 +174,9 @@ function booking_studygroups_define_form($node, &$form_state, $create, $editid = } - +/** + * Process addition/update/delete of a studygroup definition + */ function booking_studygroups_define_form_submit($form, &$form_state) { global $event;