From 4c7589478685d72022259f1b109da89b69f68aa9 Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Tue, 27 May 2014 00:26:11 +1000 Subject: [PATCH] More conversion work for studygroup roles --- booking.constants.inc | 2 +- booking.register.inc | 6 ++--- booking.reports.inc | 7 ++++++ booking.studygroups.inc | 50 ++++++++++++++++++++++++----------------- 4 files changed, 40 insertions(+), 25 deletions(-) diff --git a/booking.constants.inc b/booking.constants.inc index 1f17c0f..3ec8513 100644 --- a/booking.constants.inc +++ b/booking.constants.inc @@ -73,7 +73,7 @@ function _get_tshirt_options() { function _booking_studygroup_role_lookup($input = NULL) { $role = array(); - $role[] = t('None'); + $role[] = t('No Role'); $role[] = t('Leader'); $role[] = t('Helper'); $role[] = t('Reserve Leader'); diff --git a/booking.register.inc b/booking.register.inc index 3825a88..1820d49 100644 --- a/booking.register.inc +++ b/booking.register.inc @@ -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_studygroup_role', 'session' . $i . '_role'); - $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_helper', 'session' . $i . '_helper'); + //$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_helper', 'session' . $i . '_helper'); } diff --git a/booking.reports.inc b/booking.reports.inc index 152d046..67573f8 100644 --- a/booking.reports.inc +++ b/booking.reports.inc @@ -554,6 +554,13 @@ function booking_csv_report() { 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 if ($key == 'nid') { diff --git a/booking.studygroups.inc b/booking.studygroups.inc index 00d3718..0b1575c 100644 --- a/booking.studygroups.inc +++ b/booking.studygroups.inc @@ -38,7 +38,6 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id) $prefix = t("

Study Group ‐ !descrip

Allocate a leader/helper session for attendees.

", array('!descrip' => $studygroup->booking_studygroup_descrip)); - $suffix = t("

Make sure you have selected a study group to apply these changes to!

"); //select the number of study group sessions //assume they all have the same number of sessions @@ -170,11 +169,7 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id) '#type' => 'markup', '#markup' => $prefix, ), - 'form' => $form, - 'last_para' => array ( - '#type' => 'markup', - '#markup' => $suffix, - ), + 'form' => $form, ); } @@ -424,12 +419,17 @@ function booking_studygroups_edit_form($node, &$form_state, $nid) { { $default = $person_groups[$group->sid]->booking_session_id; //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') $role = "Leader Session #"; elseif ($person_groups[$group->sid]->booking_is_helper == 'Y') $role = "Helper Session #"; elseif ($person_groups[$group->sid]->booking_is_reserveleader == 'Y') - $role = "Reserve Leader Session #"; + $role = "Reserve Leader Session #"; + */ } $options[] = array ( @@ -531,7 +531,8 @@ function booking_studygroups_edit_form_submit($form, &$form_state) { 'booking_session_id' => $value, 'booking_is_leader' => $person_groups[$key]->booking_is_leader, '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) ->execute(); @@ -556,6 +557,7 @@ function booking_studygroups_edit_form_submit($form, &$form_state) { 'booking_is_leader' => 'N', 'booking_is_helper' => 'N', 'booking_is_reserveleader' => 'N', + 'booking_studygroup_role' => 0, )) ->execute(); } @@ -712,13 +714,13 @@ function booking_studygroups_calculate() { //field that indicates the session id the person is assigned to $person->session = 0; + $person->booking_studygroup_role = 0; $person->is_leader = 'N'; $person->is_helper = 'N'; $person->is_reserveleader = 'N'; } //watchdog('booking', "
Attendee list:\n@info
", array('@info' => print_r( $attendees, true))); - //watchdog('booking', "Attendee list: @info", array('@info' => var_export($attendees, TRUE))); //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 foreach ($group_mapping as $person) { - if ($person->booking_studygroup_id == $group->sid && ($person->booking_is_leader == 'Y' || $person->booking_is_helper == 'Y' || - $person->booking_is_reserveleader == 'Y')) + //if ($person->booking_studygroup_id == $group->sid && ($person->booking_is_leader == 'Y' || $person->booking_is_helper == '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).', 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 session count after leader/helper spouse processing: @info", array('@info' => var_export($session_count, TRUE))); - //return; + //reset the iterator to starting position $it->rewind(); @@ -805,7 +808,7 @@ function booking_studygroups_calculate() { //watchdog('booking', "Attendee list: @info", array('@info' => var_export($session_count, TRUE))); //reset the iterator to starting position of the attendee list - $it->rewind(); + //$it->rewind(); //set our counter $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 //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', - '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) { @@ -928,7 +932,8 @@ function booking_studygroups_calculate() { ->fields(array( 'booking_session_id' => $person->session, '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) ->execute(); @@ -951,6 +956,7 @@ function booking_studygroups_calculate() { 'booking_is_leader' => $person->is_leader, 'booking_is_helper' => $person->is_helper, 'booking_is_reserveleader' => $person->is_reserveleader, + 'booking_studygroup_role' => $person->booking_studygroup_role, ); $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_name' => array('data' => t('Name'), 'field' => 'p.booking_lastname'), 'booking_status' => array('data' => t('Booking Status'), 'field' => 'p.booking_status'), - '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'), + 'booking_studygroup_role' => array('data' => t('Studygroup Role'), 'field' => 'p.booking_studygroup_role'), + //'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'); @@ -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)), t('admin/booking/!id/edit-studygroup', array('!id' => $data->nid))), 'booking_status' => _booking_status_generate($data->booking_status), - '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', + 'booking_studygroup_role' => _booking_studygroup_role_lookup($data->booking_studygroup_role), + //'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)) );