Added sorting header to booking summary

This commit is contained in:
2014-01-30 20:48:52 +11:00
parent 23f7a79314
commit d36a027a00
2 changed files with 28 additions and 5 deletions

View File

@@ -248,6 +248,13 @@ function booking_update_7206() {
db_add_field( 'booking_studygroup_mapping', 'booking_session_id', $spec);
}
/**
* Add field to support welfare required flag
*/
function booking_update_7207() {
$spec = array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE);
db_add_field( 'booking_person', 'booking_welfare_required', $spec);
}
/**
* Implementation of hook_install().
@@ -354,6 +361,7 @@ function booking_schema() {
'booking_tempid' => array('type' => 'varchar', 'length' => '40', 'not null' => FALSE),
'booking_timestamp' => array('type' => 'int', 'not null' => TRUE, 'disp-width' => '11'),
'booking_status' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE),
'booking_welfare_required' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE),
'booking_barcode' => array('type' => 'varchar', 'length' => '8', 'not null' => FALSE),
'booking_firstname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE),
'booking_lastname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE),

View File

@@ -23,7 +23,17 @@ function booking_report_summary() {
$person_count = 0;
$stats_attributes = array('style' => 'max-width:30%');
$header = array('Id', 'Name', 'Email', 'Payment To Date', 'Total Payment Required');
//define sorting information with the header
//as per http://www.drup-all.com/blog/table-sort-pagination-drupal-7
$header = array(
array('data' => t('Id'), 'field' => 'nid', 'sort' => 'asc'),
array('data' => t('Name'), 'field' => 'booking_lastname', 'sort' => 'asc'),
array('data' => t('Email'), 'field' => 'booking_email', 'sort' => 'asc'),
array('data' => t('Payment To Date'), 'field' => 'booking_amount_paid', 'sort' => 'asc'),
array('data' => t('Total Payment Required'), 'field' => 'booking_total_pay_reqd', 'sort' => 'asc'),
);
$rows = array();
$state_header = array('State', 'Count');
$state_rows = array();
@@ -93,8 +103,13 @@ function booking_report_summary() {
}
//more detailed summary
$result = db_query("SELECT * FROM {booking_person} p WHERE p.booking_event_id = :eid",
array(':eid' => $event->eid));
//allow user-selectable sorting of columns as per http://www.drup-all.com/blog/table-sort-pagination-drupal-7
$query = db_select('booking_person', 'p')
->fields('p')
->condition('p.booking_event_id', $event->eid, '=');
$table_sort = $query->extend('TableSort')->orderbyHeader($header);
$result = $table_sort->execute();
foreach ($result as $person) {
$rows[] = array(
l(t('!id', array('!id' => $person->nid)), t('node/!id', array('!id' => $person->nid))),
@@ -130,7 +145,7 @@ function booking_report_summary() {
$output .= t("<h3>Bookings by ecclesia</h3>");
$output .= theme('table', array('header' => $ecclesia_heaeder, 'rows' => $ecclesia_rows, 'attributes' => $stats_attributes));
$output .= t("<h3>Summary of attendees for !event.</h3>", array('!event' => $event->booking_eventname));
$output .= theme('table', array('header' => $header, 'rows' => $rows));
$output .= theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'sort-table')));
return $output;
}