More conversion work for studygroup roles

This commit is contained in:
2014-05-27 00:26:11 +10:00
parent b3761b53b7
commit 4c75894786
4 changed files with 40 additions and 25 deletions

View File

@@ -73,7 +73,7 @@ function _get_tshirt_options() {
function _booking_studygroup_role_lookup($input = NULL) function _booking_studygroup_role_lookup($input = NULL)
{ {
$role = array(); $role = array();
$role[] = t('None'); $role[] = t('No Role');
$role[] = t('Leader'); $role[] = t('Leader');
$role[] = t('Helper'); $role[] = t('Helper');
$role[] = t('Reserve Leader'); $role[] = t('Reserve Leader');

View File

@@ -1100,9 +1100,9 @@ function booking_load_query($node_ids = NULL, $fetchAssoc = FALSE)
$query->addField('s' . $i, 'booking_session_id', 'session' . $i); $query->addField('s' . $i, 'booking_session_id', 'session' . $i);
$query->addField('s' . $i, 'booking_studygroup_role', 'session' . $i . '_role'); $query->addField('s' . $i, 'booking_studygroup_role', 'session' . $i . '_role');
$query->addField('s' . $i, 'booking_is_leader', 'session' . $i . '_leader'); //$query->addField('s' . $i, 'booking_is_leader', 'session' . $i . '_leader');
$query->addField('s' . $i, 'booking_is_reserveleader', 'session' . $i . '_reserveleader'); //$query->addField('s' . $i, 'booking_is_reserveleader', 'session' . $i . '_reserveleader');
$query->addField('s' . $i, 'booking_is_helper', 'session' . $i . '_helper'); //$query->addField('s' . $i, 'booking_is_helper', 'session' . $i . '_helper');
} }

View File

@@ -554,6 +554,13 @@ function booking_csv_report() {
continue; continue;
} }
//studygroup session roles
if (preg_match("/session\d+_role/", $key))
{
$output[] = _booking_studygroup_role_lookup($value);
continue;
}
//add in the amount owing using the nid as the key //add in the amount owing using the nid as the key
if ($key == 'nid') if ($key == 'nid')
{ {

View File

@@ -38,7 +38,6 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id)
$prefix = t("<h2>Study Group &dash; !descrip</h2><p>Allocate a leader/helper session for attendees.</p>", $prefix = t("<h2>Study Group &dash; !descrip</h2><p>Allocate a leader/helper session for attendees.</p>",
array('!descrip' => $studygroup->booking_studygroup_descrip)); array('!descrip' => $studygroup->booking_studygroup_descrip));
$suffix = t("<p>Make sure you have selected a study group to apply these changes to!</p>");
//select the number of study group sessions //select the number of study group sessions
//assume they all have the same number of sessions //assume they all have the same number of sessions
@@ -171,10 +170,6 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id)
'#markup' => $prefix, '#markup' => $prefix,
), ),
'form' => $form, 'form' => $form,
'last_para' => array (
'#type' => 'markup',
'#markup' => $suffix,
),
); );
} }
@@ -424,12 +419,17 @@ function booking_studygroups_edit_form($node, &$form_state, $nid) {
{ {
$default = $person_groups[$group->sid]->booking_session_id; $default = $person_groups[$group->sid]->booking_session_id;
//check if the person has an assigned role for this session //check if the person has an assigned role for this session
$role = _booking_studygroup_role_lookup($person_groups[$group->sid]->booking_studygroup_role) . " Session #";
/*
if ($person_groups[$group->sid]->booking_is_leader == 'Y') if ($person_groups[$group->sid]->booking_is_leader == 'Y')
$role = "Leader Session #"; $role = "Leader Session #";
elseif ($person_groups[$group->sid]->booking_is_helper == 'Y') elseif ($person_groups[$group->sid]->booking_is_helper == 'Y')
$role = "Helper Session #"; $role = "Helper Session #";
elseif ($person_groups[$group->sid]->booking_is_reserveleader == 'Y') elseif ($person_groups[$group->sid]->booking_is_reserveleader == 'Y')
$role = "Reserve Leader Session #"; $role = "Reserve Leader Session #";
*/
} }
$options[] = array ( $options[] = array (
@@ -532,6 +532,7 @@ function booking_studygroups_edit_form_submit($form, &$form_state) {
'booking_is_leader' => $person_groups[$key]->booking_is_leader, 'booking_is_leader' => $person_groups[$key]->booking_is_leader,
'booking_is_helper' => $person_groups[$key]->booking_is_helper, 'booking_is_helper' => $person_groups[$key]->booking_is_helper,
'booking_is_reserveleader' => $person_groups[$key]->booking_is_reserveleader, 'booking_is_reserveleader' => $person_groups[$key]->booking_is_reserveleader,
'booking_studygroup_role' => $person_groups[$key]->booking_studygroup_role,
)) ))
->condition('sid', $person_groups[$key]->sid) ->condition('sid', $person_groups[$key]->sid)
->execute(); ->execute();
@@ -556,6 +557,7 @@ function booking_studygroups_edit_form_submit($form, &$form_state) {
'booking_is_leader' => 'N', 'booking_is_leader' => 'N',
'booking_is_helper' => 'N', 'booking_is_helper' => 'N',
'booking_is_reserveleader' => 'N', 'booking_is_reserveleader' => 'N',
'booking_studygroup_role' => 0,
)) ))
->execute(); ->execute();
} }
@@ -712,13 +714,13 @@ function booking_studygroups_calculate() {
//field that indicates the session id the person is assigned to //field that indicates the session id the person is assigned to
$person->session = 0; $person->session = 0;
$person->booking_studygroup_role = 0;
$person->is_leader = 'N'; $person->is_leader = 'N';
$person->is_helper = 'N'; $person->is_helper = 'N';
$person->is_reserveleader = 'N'; $person->is_reserveleader = 'N';
} }
//watchdog('booking', "<pre>Attendee list:\n@info</pre>", array('@info' => print_r( $attendees, true))); //watchdog('booking', "<pre>Attendee list:\n@info</pre>", array('@info' => print_r( $attendees, true)));
//watchdog('booking', "Attendee list: @info", array('@info' => var_export($attendees, TRUE))); //watchdog('booking', "Attendee list: @info", array('@info' => var_export($attendees, TRUE)));
//process each study group (eg Monday Tuesday Wednesday etc) //process each study group (eg Monday Tuesday Wednesday etc)
@@ -751,8 +753,9 @@ function booking_studygroups_calculate() {
//search for the leaders and helpers for this study group //search for the leaders and helpers for this study group
foreach ($group_mapping as $person) 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')) // $person->booking_is_reserveleader == 'Y'))
if ($person->booking_studygroup_id == $group->sid && $person->booking_studygroup_role > 0)
{ {
drupal_set_message(t('Leader/helper with id !id assigned to session !session (currently with !num people).', 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, array('!id' => $person->booking_node_id, '!session' => $person->booking_session_id,
@@ -792,7 +795,7 @@ function booking_studygroups_calculate() {
//watchdog('booking', "Attendee list working copy after leader/helper spouse processing: @info", array('@info' => var_export($working_list, TRUE))); //watchdog('booking', "Attendee list working copy after leader/helper spouse processing: @info", array('@info' => var_export($working_list, TRUE)));
//watchdog('booking', "Attendee list session count after leader/helper spouse processing: @info", array('@info' => var_export($session_count, TRUE))); //watchdog('booking', "Attendee list session count after leader/helper spouse processing: @info", array('@info' => var_export($session_count, TRUE)));
//return;
//reset the iterator to starting position //reset the iterator to starting position
$it->rewind(); $it->rewind();
@@ -805,7 +808,7 @@ function booking_studygroups_calculate() {
//watchdog('booking', "Attendee list: @info", array('@info' => var_export($session_count, TRUE))); //watchdog('booking', "Attendee list: @info", array('@info' => var_export($session_count, TRUE)));
//reset the iterator to starting position of the attendee list //reset the iterator to starting position of the attendee list
$it->rewind(); //$it->rewind();
//set our counter //set our counter
$i = 1; $i = 1;
@@ -902,7 +905,8 @@ function booking_studygroups_calculate() {
//iterate over the attendee list and write to the database the session they're assigned to //iterate over the attendee list and write to the database the session they're assigned to
//use the multi-insert query type at https://drupal.org/node/310079 //use the multi-insert query type at https://drupal.org/node/310079
$insert_query = db_insert('booking_studygroup_mapping')->fields(array('booking_eventid', 'booking_node_id', $insert_query = db_insert('booking_studygroup_mapping')->fields(array('booking_eventid', 'booking_node_id',
'booking_studygroup_id', 'booking_session_id', 'booking_is_leader', 'booking_is_helper', 'booking_is_reserveleader')); 'booking_studygroup_id', 'booking_session_id', 'booking_is_leader', 'booking_is_helper',
'booking_is_reserveleader', 'booking_studygroup_role'));
foreach($working_list as $person) foreach($working_list as $person)
{ {
@@ -929,6 +933,7 @@ function booking_studygroups_calculate() {
'booking_session_id' => $person->session, 'booking_session_id' => $person->session,
'booking_is_leader' => $person->is_leader, 'booking_is_leader' => $person->is_leader,
'booking_is_helper' => $person->is_helper, 'booking_is_helper' => $person->is_helper,
'booking_studygroup_role' => $person->booking_studygroup_role,
)) ))
->condition('sid', $mapping->sid) ->condition('sid', $mapping->sid)
->execute(); ->execute();
@@ -951,6 +956,7 @@ function booking_studygroups_calculate() {
'booking_is_leader' => $person->is_leader, 'booking_is_leader' => $person->is_leader,
'booking_is_helper' => $person->is_helper, 'booking_is_helper' => $person->is_helper,
'booking_is_reserveleader' => $person->is_reserveleader, 'booking_is_reserveleader' => $person->is_reserveleader,
'booking_studygroup_role' => $person->booking_studygroup_role,
); );
$insert_query->values($record); $insert_query->values($record);
} }
@@ -1173,9 +1179,10 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
'booking_session_id' => array('data' => t('Study Group Session'), 'field' => 'm.booking_session_id', 'sort' => 'asc'), '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'), 'booking_name' => array('data' => t('Name'), 'field' => 'p.booking_lastname'),
'booking_status' => array('data' => t('Booking Status'), 'field' => 'p.booking_status'), 'booking_status' => array('data' => t('Booking Status'), 'field' => 'p.booking_status'),
'booking_is_leader' => array('data' => t('Leader?'), 'field' => 'm.booking_is_leader'), 'booking_studygroup_role' => array('data' => t('Studygroup Role'), 'field' => 'p.booking_studygroup_role'),
'booking_is_helper' => array('data' => t('Helper?'), 'field' => 'm.booking_is_helper'), //'booking_is_leader' => array('data' => t('Leader?'), 'field' => 'm.booking_is_leader'),
'booking_is_reserveleader' => array('data' => t('Reserve Leader?'), 'field' => 'm.booking_is_reserveleader'), //'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'); $query = db_select('booking_person', 'p');
@@ -1232,9 +1239,10 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) {
'booking_name' => l(t('!first !last', array('!first' => $data->booking_firstname, '!last' => $data->booking_lastname)), 'booking_name' => l(t('!first !last', array('!first' => $data->booking_firstname, '!last' => $data->booking_lastname)),
t('admin/booking/!id/edit-studygroup', array('!id' => $data->nid))), t('admin/booking/!id/edit-studygroup', array('!id' => $data->nid))),
'booking_status' => _booking_status_generate($data->booking_status), 'booking_status' => _booking_status_generate($data->booking_status),
'booking_is_leader' => $data->booking_is_leader == 'Y' ? 'Yes' : 'No', 'booking_studygroup_role' => _booking_studygroup_role_lookup($data->booking_studygroup_role),
'booking_is_helper' => $data->booking_is_helper == 'Y' ? 'Yes' : 'No', //'booking_is_leader' => $data->booking_is_leader == 'Y' ? 'Yes' : 'No',
'booking_is_reserveleader' => $data->booking_is_reserveleader == '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)) '#attributes' => array('id' => array($class))
); );