add reserve helper role to studygroups
This commit is contained in:
@@ -108,18 +108,20 @@ function _get_tshirt_options() {
|
|||||||
* @param $input integer containing role id
|
* @param $input integer containing role id
|
||||||
* @return string for corresponding role
|
* @return string for corresponding role
|
||||||
*/
|
*/
|
||||||
function _booking_studygroup_role_lookup($input = NULL)
|
function _booking_studygroup_role_lookup($input = NULL) {
|
||||||
{
|
|
||||||
$role = array();
|
$role = array();
|
||||||
$role[] = t('No Role');
|
$role[] = t('No Role');
|
||||||
$role[] = t('Leader');
|
$role[] = t('Leader');
|
||||||
$role[] = t('Helper');
|
$role[] = t('Helper');
|
||||||
$role[] = t('Reserve Leader');
|
$role[] = t('Reserve Leader');
|
||||||
|
$role[] = t('Reserve Helper');
|
||||||
if ($input != NULL)
|
|
||||||
|
if ($input != NULL) {
|
||||||
return $role[$input];
|
return $role[$input];
|
||||||
else
|
}
|
||||||
|
else {
|
||||||
return $role;
|
return $role;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -2,11 +2,9 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @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
|
* 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;
|
$count = count($studygroups) - 1;
|
||||||
|
|
||||||
for ($i = 0; $i < $count; $i++)
|
for ($i = 0; $i < $count; $i++) {
|
||||||
{
|
|
||||||
$group = $studygroups[$i];
|
$group = $studygroups[$i];
|
||||||
$leader = $group->leader_nid;
|
$leader = $group->leader_nid;
|
||||||
//watchdog('booking_debug', "<pre>Study Group Element at index $i:\n@info</pre>", array('@info' => print_r( $group, true)));
|
//watchdog('booking_debug', "<pre>Study Group Element at index $i:\n@info</pre>", array('@info' => print_r( $group, true)));
|
||||||
//watchdog('booking_debug', "<pre>Study Group Leader NID at index $i:\n@info</pre>", array('@info' => var_dump($group)));
|
//watchdog('booking_debug', "<pre>Study Group Leader NID at index $i:\n@info</pre>", array('@info' => var_dump($group)));
|
||||||
|
|
||||||
if ($leader == 0)
|
if ($leader == 0) {
|
||||||
{
|
|
||||||
return $i;
|
return $i;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,9 +95,7 @@ function _booking_studygroups_retrieve_eligible_people() {
|
|||||||
$bookedin_result = $query->execute();
|
$bookedin_result = $query->execute();
|
||||||
|
|
||||||
//iterate over the attendee associative array and add some fields
|
//iterate over the attendee associative array and add some fields
|
||||||
foreach ($bookedin_result as $person)
|
foreach ($bookedin_result as $person) {
|
||||||
{
|
|
||||||
|
|
||||||
$person->processed = 0;
|
$person->processed = 0;
|
||||||
$person->leading = array();
|
$person->leading = array();
|
||||||
$person->helping = array();
|
$person->helping = array();
|
||||||
@@ -124,9 +116,7 @@ function _booking_studygroups_retrieve_eligible_people() {
|
|||||||
array(':eid' => $event->eid));
|
array(':eid' => $event->eid));
|
||||||
|
|
||||||
//iterate over the attendee associative array and add some fields
|
//iterate over the attendee associative array and add some fields
|
||||||
foreach ($result2 as $person)
|
foreach ($result2 as $person){
|
||||||
{
|
|
||||||
|
|
||||||
$person->processed = 0;
|
$person->processed = 0;
|
||||||
$person->leading = array();
|
$person->leading = array();
|
||||||
$person->helping = array();
|
$person->helping = array();
|
||||||
@@ -156,11 +146,9 @@ function _booking_studygroups_retrieve_groups() {
|
|||||||
//assume they all have the same number of sessions
|
//assume they all have the same number of sessions
|
||||||
//$num_sessions = $studygroup->booking_num_group_sessions;
|
//$num_sessions = $studygroup->booking_num_group_sessions;
|
||||||
|
|
||||||
foreach ($group_mapping as $group)
|
foreach ($group_mapping as $group) {
|
||||||
{
|
|
||||||
//watchdog('booking_debug', "<pre>Study Group Element:\n@info</pre>", array('@info' => print_r( $group, true)));
|
//watchdog('booking_debug', "<pre>Study Group Element:\n@info</pre>", array('@info' => print_r( $group, true)));
|
||||||
for ($i = 1; $i <= 16; $i++)
|
for ($i = 1; $i <= 16; $i++) {
|
||||||
{
|
|
||||||
$new_group = clone $group;
|
$new_group = clone $group;
|
||||||
|
|
||||||
$new_group->session_id = $i;
|
$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
|
//create an array representing the existing leaders/helpers for this group
|
||||||
$existing_leaders = array();
|
$existing_leaders = array();
|
||||||
foreach ($session_members as $person) {
|
foreach ($session_members as $person) {
|
||||||
$existing_leaders[$person->booking_session_id][$person->booking_studygroup_role] = $person->booking_lastname
|
$existing_leaders[$person->booking_session_id][$person->booking_studygroup_role] =
|
||||||
. ', ' . $person->booking_firstname . ' [' . $person->booking_node_id . ']';
|
$person->booking_lastname . ', ' . $person->booking_firstname . ' [' . $person->booking_node_id . ']';
|
||||||
}
|
}
|
||||||
|
|
||||||
//create the rows for the individual sessions (instances really) of this study group
|
//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',
|
'#autocomplete_path' => 'booking/studygroups/autocomplete',
|
||||||
'#value' => (!empty($existing_leaders[$i][3])) ? $existing_leaders[$i][3] : '',
|
'#value' => (!empty($existing_leaders[$i][3])) ? $existing_leaders[$i][3] : '',
|
||||||
'#attributes' => array('style' => array('width:200px')),
|
'#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(
|
$form['studygroups'][$i] = array(
|
||||||
'booking-studygroup-leader' => &$leader,
|
'booking-studygroup-leader' => &$leader,
|
||||||
'booking-studygroup-helper' => &$helper,
|
'booking-studygroup-helper' => &$helper,
|
||||||
'booking-studygroup-reserveleader' => &$reserveleader,
|
'booking-studygroup-reserveleader' => &$reserveleader,
|
||||||
|
'booking-studygroup-reservehelper' => &$reservehelper,
|
||||||
);
|
);
|
||||||
|
|
||||||
$new_row = array();
|
$new_row = array();
|
||||||
|
//handle readings group differently
|
||||||
if ($studygroup->booking_is_readinggroup == 'Y') {
|
if ($studygroup->booking_is_readinggroup == 'Y') {
|
||||||
$new_row['sid'] = _booking_readinggroup_colour_lookup($i);
|
$new_row['sid'] = _booking_readinggroup_colour_lookup($i);
|
||||||
}
|
}
|
||||||
|
//non readings groups just show the session ID
|
||||||
else {
|
else {
|
||||||
$new_row['sid'] = $i;
|
$new_row['sid'] = $i;
|
||||||
}
|
}
|
||||||
$new_row['booking_studygroup_leader'] = array('data' => &$leader);
|
$new_row['booking_studygroup_leader'] = array('data' => &$leader);
|
||||||
$new_row['booking_studygroup_helper'] = array('data' => &$helper);
|
$new_row['booking_studygroup_helper'] = array('data' => &$helper);
|
||||||
$new_row['booking_studygroup_reserveleader'] = array('data' => &$reserveleader);
|
$new_row['booking_studygroup_reserveleader'] = array('data' => &$reserveleader);
|
||||||
|
$new_row['booking_studygroup_reservehelper'] = array('data' => &$reservehelper);
|
||||||
$form['studygroups']['#rows'][$i] = $new_row;
|
$form['studygroups']['#rows'][$i] = $new_row;
|
||||||
|
|
||||||
|
//clean up references
|
||||||
unset($leader);
|
unset($leader);
|
||||||
unset($helper);
|
unset($helper);
|
||||||
unset($reserveleader);
|
unset($reserveleader);
|
||||||
|
unset($reservehelper);
|
||||||
}
|
}
|
||||||
|
|
||||||
//record whether this was a reading group, so we can update colours if necessary
|
//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_leader' => 1,
|
||||||
'booking_studygroup_helper' => 2,
|
'booking_studygroup_helper' => 2,
|
||||||
'booking_studygroup_reserveleader' => 3,
|
'booking_studygroup_reserveleader' => 3,
|
||||||
|
'booking_studygroup_reservehelper' => 4,
|
||||||
);
|
);
|
||||||
|
|
||||||
//iterate over the different role types
|
//iterate over the different role types
|
||||||
|
@@ -23,6 +23,7 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id)
|
|||||||
1 => "leader-row",
|
1 => "leader-row",
|
||||||
2 => "helper-row",
|
2 => "helper-row",
|
||||||
3 => "reserveleader-row",
|
3 => "reserveleader-row",
|
||||||
|
4 => "reservehelper-row",
|
||||||
);
|
);
|
||||||
|
|
||||||
//verify that $group_id is a number
|
//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;
|
$assigned_role = $role;
|
||||||
$session_id = $group->booking_session_id;
|
$session_id = $group->booking_session_id;
|
||||||
//list any role for this current group
|
//list any role for this current group
|
||||||
if ($role > 0)
|
if ($role > 0) {
|
||||||
{
|
|
||||||
$text = _booking_studygroup_role_lookup($role);
|
$text = _booking_studygroup_role_lookup($role);
|
||||||
$role_listing .= "<b>" . $text . "</b> group " . $group->booking_studygroup_id . " #" . $group->booking_session_id . "; ";
|
$role_listing .= "<b>" . $text . "</b> group " . $group->booking_studygroup_id . " #" . $group->booking_session_id . "; ";
|
||||||
$class = $class_array[$role];
|
$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
|
//retrieve the number of study group sessions, assume they all have the same number of sessions
|
||||||
$num_sessions = reset($studygroups)->booking_num_group_sessions;
|
$num_sessions = reset($studygroups)->booking_num_group_sessions;
|
||||||
//create the array for our html select fields
|
//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;
|
$session_options[$i] = $i;
|
||||||
$readinggroup_options[$i] = _booking_readinggroup_colour_lookup($i);
|
$readinggroup_options[$i] = _booking_readinggroup_colour_lookup($i);
|
||||||
}
|
}
|
||||||
|
@@ -38,7 +38,6 @@ function booking_studygroups_admin() {
|
|||||||
$output .= theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => $attributes));
|
$output .= theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => $attributes));
|
||||||
|
|
||||||
return $output;
|
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) {
|
function booking_studygroups_define_form_submit($form, &$form_state) {
|
||||||
|
|
||||||
global $event;
|
global $event;
|
||||||
|
Reference in New Issue
Block a user