bug fixes in study groups assign leader/helper

This commit is contained in:
2014-02-08 22:15:18 +11:00
parent 750eb292b6
commit 89446940cf

View File

@@ -8,7 +8,6 @@
/** /**
* 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() {
global $event; global $event;
@@ -33,13 +32,12 @@ function booking_available_leadhelp_select_form() {
$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;
$session_options['Remove'] = 'Remove';
//select any entries already in the mapping table //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)); $group_mapping_query = db_query("SELECT * FROM {booking_studygroup_mapping} WHERE booking_eventid = :eid", array(':eid' => $event->eid));
$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' => 'select',
@@ -48,7 +46,6 @@ function booking_available_leadhelp_select_form() {
'#options' => $group_options, '#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'),
@@ -163,18 +160,7 @@ function booking_available_leadhelp_select_form() {
'#type' => 'submit', '#type' => 'submit',
'#value' => t('Submit'), '#value' => t('Submit'),
); );
/*
$form['submit-leader'] = array (
'#type' => 'submit',
'#value' => t('Set Leader'),
);
$form['submit-helper'] = array (
'#type' => 'submit',
'#value' => t('Set Helper'),
);
*/
return array ( return array (
'first_para' => array ( 'first_para' => array (
'#type' => 'markup', '#type' => 'markup',
@@ -217,7 +203,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
//$helper_list = $form_state['values']['booking_assign_helper_group']; //$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($leader_list, TRUE))); 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($helper_list, TRUE)));
//select any entries already in the mapping table //select any entries already in the mapping table
@@ -232,8 +218,32 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
$session = 0; $session = 0;
$found = FALSE; $found = FALSE;
//remove from being a leader?
if ($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', $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));
}
//remove from being a helper?
elseif ($helper_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', $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));
}
//was this person set as a leader? //was this person set as a leader?
if ($leader_session[$key] <> 0) elseif ($leader_session[$key] <> 0)
{ {
$leader = 'Y'; $leader = 'Y';
$session = $leader_session[$key]; $session = $leader_session[$key];
@@ -245,7 +255,7 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
$helper = 'Y'; $helper = 'Y';
$session = $helper_session[$key]; $session = $helper_session[$key];
watchdog('booking', 'Person !nid is set to be a helper in session !sid', array ('!nid' => $key, '!sid' => $helper_session[$key])); watchdog('booking', 'Person !nid is set to be a helper in session !sid', array ('!nid' => $key, '!sid' => $helper_session[$key]));
} }
//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
continue; continue;
@@ -292,101 +302,9 @@ function booking_available_leadhelp_select_form_submit($form, &$form_state) {
$counter++; $counter++;
} }
$message = t("Defined !num leader/helper sessions for group id !id", array('!num' => $counter, '!id' => $booking_studygroup)); $message = t("Processed !num leader/helper sessions for group id !id", array('!num' => $counter, '!id' => $booking_studygroup));
drupal_set_message($message, 'status', FALSE); drupal_set_message($message, 'status', FALSE);
watchdog('booking', $message); watchdog('booking', $message);
/*
$session_count = $form_state['values']['booking-leadhelp-count'];
foreach($checkboxes as $key => $value)
{
if (is_numeric($key) && $value != 0)
{
//watchdog('booking', 'Checking !nid for entry in the booking_leadhelp_list table', array ('!nid' => $key));
//check if an entry already exists for this person in the booking_leadhelp_list table
$person = db_query("SELECT person.booking_node_id " .
"FROM {booking_leadhelp_list} person " .
"WHERE booking_node_id = :nid",
array(':nid' => $key))
->fetchObject();
if ($form_state['values']['op'] == 'Set Leader')
{
watchdog('booking', 'Setting group leader count to !count for !nid', array ('!count' => $session_count, '!nid' => $key));
if ($person)
{
//run an update
db_update('booking_leadhelp_list')
->fields(array (
'booking_total_lead' => $session_count,
'booking_available_lead' => $session_count,
))
->condition('booking_node_id', $key)
->execute();
}
else
{
//run an insert
db_insert('booking_leadhelp_list')
->fields(array(
'booking_eventid' => $event->eid,
'booking_node_id' => $key,
'booking_total_lead' => $session_count,
'booking_available_lead' => $session_count,
'booking_total_help' => 0,
'booking_available_help' => 0,
))
->execute();
}
}
elseif ($form_state['values']['op'] == 'Set Helper')
{
watchdog('booking', 'Setting group helper count to !count for !nid', array ('!count' => $session_count, '!nid' => $key));
if ($person)
{
//run an update
db_update('booking_leadhelp_list')
->fields(array (
'booking_total_help' => $session_count,
'booking_available_help' => $session_count,
))
->condition('booking_node_id', $key)
->execute();
}
else
{
//run an insert
db_insert('booking_leadhelp_list')
->fields(array(
'booking_eventid' => $event->eid,
'booking_node_id' => $key,
'booking_total_lead' => 0,
'booking_available_lead' => 0,
'booking_total_help' => $session_count,
'booking_available_help' => $session_count,
))
->execute();
}
}
$counter++;
}
}
drupal_set_message("Defined leader/helper numbers for $counter people.", 'status', FALSE);
watchdog('booking', "Defined leader/helper numbers for $counter people.");
*/
} }
/** /**
@@ -451,8 +369,8 @@ function booking_studygroups_calculate() {
//calculate the max number of attendees in a group //calculate the max number of attendees in a group
$firstgroup = reset($studygroups); $firstgroup = reset($studygroups);
$limit = variable_get('booking_regn_limit','500'); $limit = variable_get('booking_regn_limit','500');
//add an extra one to the maximum size, to cater for some larger groups when the number of people doesn't divide evenly //add an extra two to the maximum size, to cater for some larger groups when the number of people doesn't divide evenly
$max_people = (int) ($limit / $firstgroup->booking_num_group_sessions) + 1; $max_people = (int) ($limit / $firstgroup->booking_num_group_sessions) + 2;
//select all the attendees booked in //select all the attendees booked in
/* /*