diff --git a/booking.admin.inc b/booking.admin.inc index 59053a8..cef5370 100644 --- a/booking.admin.inc +++ b/booking.admin.inc @@ -248,6 +248,7 @@ function booking_admin() { '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_enable_studygroups', 0), ); + /* $form['misc']['booking_studygroup_count'] = array ( '#type' => 'textfield', '#title' => t('Number of study groups'), @@ -255,7 +256,8 @@ function booking_admin() { '#size' => 3, '#maxlength' => 3, '#default_value' => variable_get('booking_studygroup_count','0'), - ); + ); + */ $form['misc']['booking_readinggroup_id'] = array ( '#type' => 'textfield', '#title' => t('Studygroup ID for the reading group'), diff --git a/booking.helper.inc b/booking.helper.inc index 6602dac..6f9fe4e 100644 --- a/booking.helper.inc +++ b/booking.helper.inc @@ -1311,7 +1311,9 @@ function _booking_leader_helper_email_summary($node) { for ($i = 1; $i <= variable_get('booking_studygroup_count','0'); $i++) { //don't print info about the readings groups - if ($i == variable_get('booking_readinggroup_id','7')) + //if ($i == variable_get('booking_readinggroup_id','7')) + // continue; + if ($studygroups[$i]->booking_is_readinggroup == 'Y') continue; //calculate the session references diff --git a/booking.module b/booking.module index 9f416bd..20ee749 100644 --- a/booking.module +++ b/booking.module @@ -353,7 +353,43 @@ function booking_menu() { //configure study groups if (variable_get('booking_enable_studygroups', 0) == 1) { + //the config pages for study groups + $items['admin/config/booking/studygroups'] = array( + 'title' => 'Booking Module Study Group Configuration', + 'description' => 'Define and configure Study Groups for the Booking module', + 'page callback' => 'booking_studygroups_admin', + 'access arguments' => array('administer site configuration'), + 'type' => MENU_NORMAL_ITEM, + ); + + $items['admin/config/booking/studygroups/add'] = array( + 'title' => 'Add Study Group Definition', + 'description' => 'Add Study Group Definition', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('booking_studygroups_define_form', true), + 'access arguments' => array('administer site configuration'), + 'type' => MENU_LOCAL_ACTION, + ); + + $items['admin/config/booking/studygroups/%/edit'] = array( + 'title' => 'Edit Study Group Definition', + 'description' => 'Edit Study Group Definition', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('booking_studygroups_define_form', false, 4), + 'access arguments' => array('edit study groups'), + //'type' => MENU_NORMAL_ITEM, + ); + + $items['admin/config/booking/studygroups/colours'] = array( + 'title' => 'Process Reading Group Colours', + 'description' => 'Update the reading group colour based on the studygroup id', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('booking_studygroups_process_colours'), + 'access arguments' => array('administer site configuration'), + 'type' => MENU_LOCAL_ACTION, + ); + //pages for using the study group functionality $items['admin/booking/studygroups'] = array( 'title' => 'View Study Groups', 'description' => 'View Study Group memberships', @@ -362,23 +398,7 @@ function booking_menu() { 'type' => MENU_NORMAL_ITEM, ); - $items['admin/booking/studygroups/add'] = array( - 'title' => 'Add Study Group Definition', - 'description' => 'Add Study Group Definition', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('booking_studygroups_define_form', true), - 'access arguments' => array("edit study groups"), - 'type' => MENU_LOCAL_ACTION, - ); - $items['admin/booking/studygroups/%/edit'] = array( - 'title' => 'Edit Study Group Definition', - 'description' => 'Edit Study Group Definition', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('booking_studygroups_define_form', false, 3), - 'access arguments' => array('edit study groups'), - //'type' => MENU_NORMAL_ITEM, - ); $items['admin/booking/studygroups/%/view'] = array( 'title' => 'View Study Group', @@ -424,17 +444,7 @@ function booking_menu() { 'access arguments' => array('edit study groups'), //'type' => MENU_LOCAL_ACTION, ); - - $items['admin/booking/studygroups/colours'] = array( - 'title' => 'Process Reading Group Colours', - 'description' => 'Update the reading group colour based on the studygroup id', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('booking_studygroups_process_colours'), - 'access arguments' => array('edit study groups'), - 'type' => MENU_LOCAL_ACTION, - ); - - + $items['admin/booking/%/edit-studygroup-membership'] = array( 'title' => 'Edit Study Group Allocation', 'description' => 'Manually Update Study Group memberships', diff --git a/booking.register.inc b/booking.register.inc index 5e93abb..08e4f0d 100644 --- a/booking.register.inc +++ b/booking.register.inc @@ -1991,7 +1991,7 @@ function booking_view($node, $view_mode) { if (variable_get('booking_enable_studygroups', 0) == 1) { $studygroup_heading = t("
!link
", - array('!link' => l(t('Edit Groups'), t('admin/booking/!id/edit-studygroup', array('!id' => $node->nid))) + array('!link' => l(t('Edit Groups'), t('admin/booking/!id/edit-studygroup-membership', array('!id' => $node->nid))) )); //look up the titles of the study groups diff --git a/booking.reports.inc b/booking.reports.inc index 0218535..f89f294 100644 --- a/booking.reports.inc +++ b/booking.reports.inc @@ -137,7 +137,7 @@ function booking_report_summary() { if (variable_get('booking_enable_studygroups', 0) == 1) { - $this_row[] = l(t('Groups'), t('admin/booking/!id/edit-studygroup', array('!id' => $person->nid))); + $this_row[] = l(t('Groups'), t('admin/booking/!id/edit-studygroup-membership', array('!id' => $person->nid))); } if (variable_get('booking_enable_roomallocations', 0) == 1) { diff --git a/booking.studygroups.inc b/booking.studygroups.inc index 5f4544c..0fab867 100644 --- a/booking.studygroups.inc +++ b/booking.studygroups.inc @@ -165,7 +165,7 @@ function booking_available_leadhelp_select_form($node, &$form_state, $group_id) ) ), 'booking_currently_leadhelp' => $role_listing, - 'booking_group_edit' => l(t('Edit'), t('admin/booking/!id/edit-studygroup', array('!id' => $data->nid))), + 'booking_group_edit' => l(t('Edit'), t('admin/booking/!id/edit-studygroup-membership', array('!id' => $data->nid))), '#attributes' => array('id' => array($class)) ); } @@ -1707,7 +1707,7 @@ function booking_studygroups_view_form($node, &$form_state, $group_id) { 'data' => array( $session, 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-membership', array('!id' => $data->nid))), //_booking_status_generate($data->booking_status), $data->booking_gender == 'M' ? 'Male' : 'Female', _booking_get_age_years($data->booking_dob), diff --git a/booking.studygroups_admin.inc b/booking.studygroups_admin.inc index 50c11b4..a18befc 100644 --- a/booking.studygroups_admin.inc +++ b/booking.studygroups_admin.inc @@ -5,6 +5,41 @@ * Admin pages for defining study groups */ + +/** + * Function for listing the study groups and the ability to edit the group definitions + */ +function booking_studygroups_admin() { + + global $event; + $output = ""; + $header = array('Study Group', 'Session Count', 'Reading Group?', 'Edit Definition'); + $attributes = array('style' => 'max-width:60%'); + //$attributes = array(); + + //get study groups + $query = db_select('booking_studygroup_list', 's') + ->fields('s') + ->condition('s.booking_eventid', $event->eid, '='); + $result = $query->execute(); + + foreach ($result as $group) { + $rows[] = array( + $group->booking_studygroup_descrip, + $group->booking_num_group_sessions, + $group->booking_is_readinggroup == 'Y' ? 'Yes' : 'No', + l(t('Edit Group Definition', array('!id' => $group->sid)), t('admin/config/booking/studygroups/!id/edit', array('!id' => $group->sid))), + ); + } + + //output everything + $output .= t("Studygroup deletion confirmation being set:\n@info", array('@info' => print_r( $form_state, true))); $form_state['storage']['confirm'] = TRUE; $form_state['rebuild'] = TRUE; + + $new_count = $count->num; } elseif ($form_state['values']['op'] == 'Delete Study Group Definition') { @@ -184,7 +228,9 @@ function booking_studygroups_define_form_submit($form, &$form_state) { $num_deleted = db_delete('booking_studygroup_list') ->condition('sid', $values['booking_sid']) - ->execute(); + ->execute(); + + $new_count = $count->num - 1; } elseif ($form_state['values']['op'] == 'Update Study Group') { @@ -204,8 +250,13 @@ function booking_studygroups_define_form_submit($form, &$form_state) { 'booking_is_readinggroup' => $values['booking_is_readinggroup'] == 1 ? 'Y' : 'N', )) ->condition('sid', $values['booking_sid']) - ->execute(); + ->execute(); + + $new_count = $count->num; } - + + //update the number of study groups now defined + variable_set('booking_studygroup_count', $new_count); + $form_state['redirect'] = $redirect_path; } \ No newline at end of file