add reserve helper role to studygroups

This commit is contained in:
2016-06-29 16:40:05 +10:00
parent a4da6d2d93
commit 7934d0718c
4 changed files with 43 additions and 34 deletions

View File

@@ -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;
}
}
/**

View File

@@ -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', "<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)));
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', "<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->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

View File

@@ -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 .= "<b>" . $text . "</b> 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);
}

View File

@@ -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;