bug fixes in study groups assign leader/helper
This commit is contained in:
@@ -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
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user