Added reserve leader

This commit is contained in:
2014-02-11 15:17:26 +11:00
parent fa2fb84f0e
commit 7c252d4ff6
5 changed files with 105 additions and 40 deletions

View File

@@ -47,19 +47,16 @@ function booking_available_leadhelp_select_form() {
);
$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_gender' => array('data' => t('Gender')),
'booking_baptised' => array('data' => t('Baptised?'), 'field' => 'booking_baptised'),
'booking_age' => array('data' => t('Age (start of week)'), 'field' => 'booking_dob', 'sort' => 'asc'),
'booking_state' => array('data' => t('State'), 'field' => 'booking_state'),
'booking_status' => array('data' => t('Status'), 'field' => 'booking_status'),
//'booking_assign_leader_group' => array('data' => t('Assign leader group')),
'booking_assign_leader_session' => array('data' => t('Leader Session')),
//'booking_assign_helper_group' => array('data' => t('Assign helper group')),
'booking_assign_helper_session' => array('data' => t('Helper Session')),
//'booking_lead_sessions' => array('data' => t('Total groups leading')),
//'booking_help_sessions' => array('data' => t('Total groups helping')),
'booking_assign_helper_session' => array('data' => t('Helper Session')),
'booking_assign_reserveleader_session' => array('data' => t('Reserve Leader Session')),
'booking_currently_leadhelp' => array('data' => t('Currently leading/helping')),
);
@@ -89,11 +86,13 @@ function booking_available_leadhelp_select_form() {
$currently_doing .= "Lead " . $person->booking_studygroup_id . " #" . $person->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')
$currently_doing .= "Reserve " . $person->booking_studygroup_id . " #" . $person->booking_session_id . "; ";
}
}
$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_gender' => $data->booking_gender == 'M' ? 'Male' : 'Female',
'booking_baptised' => $data->booking_baptised == 'Y' ? 'Yes' : 'No',
@@ -132,11 +131,16 @@ function booking_available_leadhelp_select_form() {
*/
'booking_assign_helper_session' => array('data' => array(
'#type' => 'select',
//'#default_value' => 0,
'#options' => $session_options,
'#name' => 'booking_assign_helper_session[' . $data->nid . ']',
)
),
'booking_assign_reserveleader_session' => array('data' => array(
'#type' => 'select',
'#options' => $session_options,
'#name' => 'booking_assign_reserveleader_session[' . $data->nid . ']',
)
),
'booking_currently_leadhelp' => $currently_doing,
);
}
@@ -150,9 +154,10 @@ function booking_available_leadhelp_select_form() {
);
//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_group'] = array( '#type' => 'value', );
//$form['booking_assign_helper_group'] = array( '#type' => 'value', );
$form['booking_assign_leader_session'] = array( '#type' => 'value', );
$form['booking_assign_reserveleader_session'] = array( '#type' => 'value', );
$form['booking_assign_helper_session'] = array( '#type' => 'value', );
@@ -199,12 +204,13 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
$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'];
//$helper_list = $form_state['values']['booking_assign_helper_group'];
$helper_session = $form_state['values']['booking_assign_helper_session'];
//watchdog('booking', "Leader list: @info", array('@info' => var_export($form_state['values'], TRUE)));
//watchdog('booking', "Helper list: @info", array('@info' => var_export($helper_list, TRUE)));
//watchdog('booking', "Helper list: @info", array('@info' => var_export($reserve_leader_session, TRUE)));
//select any entries already in the mapping table
$group_mapping_query = db_query("SELECT * FROM {booking_studygroup_mapping} WHERE booking_eventid = :eid", array(':eid' => $event->eid));
@@ -215,6 +221,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
{
$leader = 'N';
$helper = 'N';
$reserve_leader = 'N';
$session = 0;
$found = FALSE;
@@ -225,11 +232,12 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
->condition('booking_eventid', $event->eid)
->condition('booking_node_id', $key)
->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')
->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));
//skip to the next person
$counter++;
continue;
}
//remove from being a helper?
@@ -239,13 +247,30 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
->condition('booking_eventid', $event->eid)
->condition('booking_node_id', $key)
->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')
->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));
//skip to the next person
$counter++;
continue;
}
//remove from being a reserve leader?
elseif ($reserve_leader_session[$key] == "Remove")
{
$num_deleted = db_delete('booking_studygroup_mapping')
->condition('booking_eventid', $event->eid)
->condition('booking_node_id', $key)
->condition('booking_studygroup_id', $booking_studygroup)
// ->condition('booking_session_id', $reserve_leader_session[$key])
->condition('booking_is_reserveleader', 'Y')
->execute();
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));
//skip to the next person
$counter++;
continue;
}
//was this person set as a leader?
elseif ($leader_session[$key] <> 0)
{
@@ -259,7 +284,13 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
$helper = 'Y';
$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));
}
}
elseif ($reserve_leader_session[$key] <> 0)
{
$reserve_leader = 'Y';
$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));
}
//if we reach the else something weird happened, make sure we don't insert
else
continue;
@@ -286,6 +317,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
'booking_session_id' => $session,
'booking_is_leader' => $leader,
'booking_is_helper' => $helper,
'booking_is_reserveleader' => $reserve_leader,
))
->execute();
}
@@ -297,6 +329,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
'booking_session_id' => $session,
'booking_is_leader' => $leader,
'booking_is_helper' => $helper,
'booking_is_reserveleader' => $reserve_leader,
))
->condition('booking_node_id', $key)
->condition('booking_studygroup_id', $booking_studygroup)
@@ -427,7 +460,7 @@ function booking_studygroups_calculate() {
//search for the leaders and helpers for this study group
foreach ($group_mapping as $person)
{
if ($person->booking_studygroup_id == $group->sid && ($person->booking_is_leader == 'Y' || $person->booking_is_helper == 'Y'))
if ($person->booking_studygroup_id == $group->sid && ($person->booking_is_leader == 'Y' || $person->booking_is_helper == 'Y' || $person->booking_is_reserveleader == 'Y'))
{
drupal_set_message(t('Leader/helper with id !id assigned to session !session (currently with !num people).', array('!id' => $person->booking_node_id, '!session' => $person->booking_session_id, '!num' => $session_count[$person->booking_session_id])));
@@ -686,9 +719,10 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
$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', 'sort' => 'asc'),
'booking_is_leader' => array('data' => t('Leader?'), 'field' => 'm.booking_is_leader', 'sort' => 'asc'),
'booking_is_helper' => array('data' => t('Helper?'), 'field' => 'm.booking_is_helper', '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');
@@ -719,6 +753,8 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
$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";
@@ -742,6 +778,7 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
'booking_name' => $data->booking_firstname . " " . $data->booking_lastname,
'booking_is_leader' => $data->booking_is_leader == 'Y' ? 'Yes' : 'No',
'booking_is_helper' => $data->booking_is_helper == 'Y' ? 'Yes' : 'No',
'booking_is_reserveleader' => $data->booking_is_reserveleader == 'Y' ? 'Yes' : 'No',
'#attributes' => array('id' => array($class))
);