develop variety session form
This commit is contained in:
@@ -54,7 +54,8 @@ module_load_include('inc', 'booking', 'booking.emails_admin');
|
|||||||
// Load the include for bulk data import
|
// Load the include for bulk data import
|
||||||
module_load_include('inc', 'booking', 'booking.import_data');
|
module_load_include('inc', 'booking', 'booking.import_data');
|
||||||
// Load the include for variety session configuration
|
// Load the include for variety session configuration
|
||||||
module_load_include('inc', 'booking', 'booking.variety');
|
module_load_include('inc', 'booking', 'booking.variety_form');
|
||||||
|
module_load_include('inc', 'booking', 'booking.variety_admin');
|
||||||
// Load the include for study group configuration
|
// Load the include for study group configuration
|
||||||
module_load_include('inc', 'booking', 'booking.studygroups');
|
module_load_include('inc', 'booking', 'booking.studygroups');
|
||||||
// Load the include for study group definitions
|
// Load the include for study group definitions
|
||||||
@@ -232,14 +233,6 @@ function booking_menu() {
|
|||||||
'weight' => -96,
|
'weight' => -96,
|
||||||
//'type' => MENU_LOCAL_TASK,
|
//'type' => MENU_LOCAL_TASK,
|
||||||
);
|
);
|
||||||
$items['admin/config/booking/variety'] = array(
|
|
||||||
'title' => 'Booking module variety sessions',
|
|
||||||
'description' => 'Configure variety sessions for the Booking module',
|
|
||||||
'page callback' => 'drupal_get_form',
|
|
||||||
'page arguments' => array('booking_variety_admin'),
|
|
||||||
'access arguments' => array('administer site configuration'),
|
|
||||||
//'type' => MENU_LOCAL_TASK,
|
|
||||||
);
|
|
||||||
|
|
||||||
//one off internal tasks
|
//one off internal tasks
|
||||||
$items['admin/booking/luckynumbers'] = array(
|
$items['admin/booking/luckynumbers'] = array(
|
||||||
@@ -387,6 +380,15 @@ function booking_menu() {
|
|||||||
|
|
||||||
if (variable_get('booking_enable_variety_sessions', 0) == 1)
|
if (variable_get('booking_enable_variety_sessions', 0) == 1)
|
||||||
{
|
{
|
||||||
|
$items['admin/config/booking/variety'] = array(
|
||||||
|
'title' => 'Booking module variety sessions',
|
||||||
|
'description' => 'Configure variety sessions for the Booking module',
|
||||||
|
'page callback' => 'drupal_get_form',
|
||||||
|
'page arguments' => array('booking_variety_admin'),
|
||||||
|
'access arguments' => array('administer site configuration'),
|
||||||
|
//'type' => MENU_LOCAL_TASK,
|
||||||
|
);
|
||||||
|
|
||||||
$items['variety'] = array(
|
$items['variety'] = array(
|
||||||
'title' => $bookingTitle . ' Variety Sessions',
|
'title' => $bookingTitle . ' Variety Sessions',
|
||||||
'page callback' => 'drupal_get_form',
|
'page callback' => 'drupal_get_form',
|
||||||
|
@@ -19,8 +19,8 @@ function booking_variety_admin()
|
|||||||
|
|
||||||
$header = array (
|
$header = array (
|
||||||
'tid' => t('Event ID'),
|
'tid' => t('Event ID'),
|
||||||
'booking_variety_time_descrip' => t('Description'),
|
'booking_variety_time_descrip' => t('Description'),
|
||||||
'booking_variety_status' => t('Status'),
|
'booking_variety_status' => t('Status'),
|
||||||
'booking_variety_start' => t('Timeslot Start'),
|
'booking_variety_start' => t('Timeslot Start'),
|
||||||
'booking_variety_end' => t('Timeslot End'),
|
'booking_variety_end' => t('Timeslot End'),
|
||||||
'variety_edit' => t('Edit Timeslot'),
|
'variety_edit' => t('Edit Timeslot'),
|
||||||
@@ -35,8 +35,8 @@ function booking_variety_admin()
|
|||||||
$options[$data->tid] = array
|
$options[$data->tid] = array
|
||||||
(
|
(
|
||||||
'tid' => $data->tid,
|
'tid' => $data->tid,
|
||||||
'booking_variety_time_descrip' => $data->booking_variety_time_descrip,
|
'booking_variety_time_descrip' => $data->booking_variety_time_descrip,
|
||||||
'booking_variety_status' => $data->booking_variety_status,
|
'booking_variety_status' => $data->booking_variety_status,
|
||||||
'booking_variety_start' => date("Y-m-d H:i", $data->booking_variety_start),
|
'booking_variety_start' => date("Y-m-d H:i", $data->booking_variety_start),
|
||||||
'booking_variety_end' => date("Y-m-d H:i", $data->booking_variety_end),
|
'booking_variety_end' => date("Y-m-d H:i", $data->booking_variety_end),
|
||||||
'variety_edit' => l('Edit Timeslot', t('admin/config/booking/variety/!tid/edit', array('!tid' => $data->tid))),
|
'variety_edit' => l('Edit Timeslot', t('admin/config/booking/variety/!tid/edit', array('!tid' => $data->tid))),
|
||||||
@@ -203,8 +203,8 @@ function booking_variety_timeslot_form_submit($form, &$form_state) {
|
|||||||
db_update('booking_variety_times')
|
db_update('booking_variety_times')
|
||||||
->fields(array (
|
->fields(array (
|
||||||
'booking_eventid' => $event->eid,
|
'booking_eventid' => $event->eid,
|
||||||
'booking_variety_time_descrip' => $values['booking_variety_time_descrip'],
|
'booking_variety_time_descrip' => $values['booking_variety_time_descrip'],
|
||||||
'booking_variety_status' => $values['booking_variety_status'] == 1 ? 1 : 0,
|
'booking_variety_status' => $values['booking_variety_status'] == 1 ? 1 : 0,
|
||||||
'booking_variety_start' => _datetime_array_to_ts($values['booking_variety_start']),
|
'booking_variety_start' => _datetime_array_to_ts($values['booking_variety_start']),
|
||||||
'booking_variety_end' => _datetime_array_to_ts($values['booking_variety_end']),
|
'booking_variety_end' => _datetime_array_to_ts($values['booking_variety_end']),
|
||||||
))
|
))
|
||||||
@@ -328,8 +328,8 @@ function booking_variety_list_session_form($node, &$form_state, $timeslot_id = 0
|
|||||||
|
|
||||||
$header = array (
|
$header = array (
|
||||||
'variety_timeslot' => t('Variety Timeslot'),
|
'variety_timeslot' => t('Variety Timeslot'),
|
||||||
'booking_variety_descrip' => t('Variety Session Description'),
|
'booking_variety_descrip' => t('Variety Session Description'),
|
||||||
'booking_variety_status' => t('Status'),
|
'booking_variety_status' => t('Status'),
|
||||||
'booking_variety_maxsize' => t('Maximum Capacity'),
|
'booking_variety_maxsize' => t('Maximum Capacity'),
|
||||||
'booking_variety_regncount' => t('Current Registration Count'),
|
'booking_variety_regncount' => t('Current Registration Count'),
|
||||||
'variety_edit' => t('Edit Session')
|
'variety_edit' => t('Edit Session')
|
||||||
@@ -339,9 +339,9 @@ function booking_variety_list_session_form($node, &$form_state, $timeslot_id = 0
|
|||||||
{
|
{
|
||||||
$options[$data->vid] = array
|
$options[$data->vid] = array
|
||||||
(
|
(
|
||||||
'variety_timeslot' => $data->booking_variety_time_descrip,
|
'variety_timeslot' => $data->booking_variety_time_descrip,
|
||||||
'booking_variety_descrip' => $data->booking_variety_descrip,
|
'booking_variety_descrip' => $data->booking_variety_descrip,
|
||||||
'booking_variety_status' => $data->booking_variety_status == 1 ? 1 : 0,
|
'booking_variety_status' => $data->booking_variety_status == 1 ? 'Active' : 'Inactive',
|
||||||
'booking_variety_maxsize' => $data->booking_variety_maxsize,
|
'booking_variety_maxsize' => $data->booking_variety_maxsize,
|
||||||
'booking_variety_regncount' => $data->booking_variety_regncount,
|
'booking_variety_regncount' => $data->booking_variety_regncount,
|
||||||
'variety_edit' => l('Edit Session', t('admin/config/booking/variety/session/!vid/edit', array('!vid' => $data->vid))),
|
'variety_edit' => l('Edit Session', t('admin/config/booking/variety/session/!vid/edit', array('!vid' => $data->vid))),
|
||||||
@@ -368,66 +368,3 @@ function booking_variety_edit_session_form()
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function booking_variety_regn_form($node, &$form_state)
|
|
||||||
{
|
|
||||||
global $event;
|
|
||||||
$form = array ();
|
|
||||||
$data = $node;
|
|
||||||
$timeslot_count = 0;
|
|
||||||
|
|
||||||
$query = db_query("SELECT * FROM {booking_variety_times} WHERE booking_eventid = :eid AND booking_variety_status = 1",
|
|
||||||
array(':eid' => $event->eid));
|
|
||||||
|
|
||||||
$form['booking_barcode'] = array (
|
|
||||||
'#type' => 'textfield',
|
|
||||||
'#title' => t('Barcode'),
|
|
||||||
'#description' => t('Enter the barcode from your lanyard'),
|
|
||||||
'#size' => 60,
|
|
||||||
'#maxlength' => 150,
|
|
||||||
'#required' => TRUE,
|
|
||||||
'#default_value' => !empty($data->booking_barcode) ? $data->booking_barcode : '',
|
|
||||||
);
|
|
||||||
|
|
||||||
//for each entry in the variety timeslot table, create a new form select item
|
|
||||||
$result = db_query("SELECT * from {booking_variety_times}");
|
|
||||||
|
|
||||||
foreach($query as $timeslot)
|
|
||||||
{
|
|
||||||
//reset the array
|
|
||||||
$options = array ();
|
|
||||||
$options[''] = '';
|
|
||||||
|
|
||||||
//query for variety sessions in the timeslot
|
|
||||||
$session_query = db_query("SELECT * from {booking_variety_options} WHERE booking_variety_timeslot_id = :id AND booking_variety_status = 1",
|
|
||||||
array(':id' => $timeslot->tid));
|
|
||||||
|
|
||||||
//add all the sessions to the select list
|
|
||||||
foreach($session_query as $session)
|
|
||||||
{
|
|
||||||
$options[$session->vid] = $session->booking_variety_descrip;
|
|
||||||
}
|
|
||||||
|
|
||||||
//create the form element for this timeslot
|
|
||||||
$form['select-variety-' . $timeslot_count] = array(
|
|
||||||
'#type' => 'select',
|
|
||||||
'#title' => t('Variety Session: ' . $timeslot->booking_variety_time_descrip),
|
|
||||||
'#required' => TRUE,
|
|
||||||
'#default_value' => '',
|
|
||||||
'#options' => $options,
|
|
||||||
);
|
|
||||||
|
|
||||||
$timeslot_count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$form['submit'] = array
|
|
||||||
(
|
|
||||||
'#type' => 'submit',
|
|
||||||
'#value' => t('Submit'),
|
|
||||||
);
|
|
||||||
|
|
||||||
return array (
|
|
||||||
'form' => $form,
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
120
booking.variety_form.inc
Normal file
120
booking.variety_form.inc
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* User facing page for booking into a variety session
|
||||||
|
* NOTE: This feature is not complete
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function booking_variety_regn_form($node, &$form_state)
|
||||||
|
{
|
||||||
|
global $event;
|
||||||
|
$form = array ();
|
||||||
|
$data = $node;
|
||||||
|
$timeslot_count = 0;
|
||||||
|
|
||||||
|
$query = db_query("SELECT * FROM {booking_variety_times} WHERE booking_eventid = :eid AND booking_variety_status = 1",
|
||||||
|
array(':eid' => $event->eid));
|
||||||
|
|
||||||
|
|
||||||
|
$form['booking_variety_regn_feedback_wrapper'] = array(
|
||||||
|
'#markup' => '<div id="booking_variety_regn_feedback_wrapper">Please enter your booking number from your lanyard. ' .
|
||||||
|
'</p></div><br />',
|
||||||
|
);
|
||||||
|
$form['booking_nid'] = array(
|
||||||
|
'#type' => 'textfield',
|
||||||
|
'#title' => t('Booking ID'),
|
||||||
|
'#size' => 60,
|
||||||
|
'#required' => TRUE,
|
||||||
|
'#default_value' => !empty($data->booking_nid) ? $data->booking_nid : '',
|
||||||
|
'#ajax' => array(
|
||||||
|
'event' => 'change',
|
||||||
|
'wrapper' => 'booking_variety_regn_feedback_wrapper',
|
||||||
|
'callback' => 'booking_variety_regn_callback',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
//for each entry in the variety timeslot table, create a new form select item
|
||||||
|
$result = db_query("SELECT * from {booking_variety_times}");
|
||||||
|
|
||||||
|
foreach($query as $timeslot)
|
||||||
|
{
|
||||||
|
//reset the array
|
||||||
|
$options = array ();
|
||||||
|
$options[''] = '';
|
||||||
|
|
||||||
|
//query for variety sessions in the timeslot
|
||||||
|
$session_query = db_query("SELECT * from {booking_variety_options} WHERE booking_variety_timeslot_id = :id AND booking_variety_status = 1",
|
||||||
|
array(':id' => $timeslot->tid));
|
||||||
|
|
||||||
|
//add all the sessions to the select list
|
||||||
|
foreach($session_query as $session)
|
||||||
|
{
|
||||||
|
$options[$session->vid] = $session->booking_variety_descrip;
|
||||||
|
}
|
||||||
|
|
||||||
|
//create the form element for this timeslot
|
||||||
|
$form['select-variety-' . $timeslot_count] = array(
|
||||||
|
'#type' => 'select',
|
||||||
|
'#title' => t('Variety Session: ' . $timeslot->booking_variety_time_descrip),
|
||||||
|
'#required' => TRUE,
|
||||||
|
'#default_value' => '',
|
||||||
|
'#options' => $options,
|
||||||
|
);
|
||||||
|
|
||||||
|
$timeslot_count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$form['submit'] = array
|
||||||
|
(
|
||||||
|
'#type' => 'submit',
|
||||||
|
'#value' => t('Submit'),
|
||||||
|
);
|
||||||
|
|
||||||
|
return array (
|
||||||
|
'form' => $form,
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback function to verify if barcode was valid
|
||||||
|
*/
|
||||||
|
function booking_variety_regn_callback($form, &$form_state) {
|
||||||
|
global $event;
|
||||||
|
//$node = $form_state['values']['form_id'];
|
||||||
|
$data = $form_state['input'];
|
||||||
|
watchdog('booking', '<pre>booking_variety_regn_callback validation:\n@info</pre>', array('@info' => print_r( $data, true)));
|
||||||
|
|
||||||
|
//verify that user-entered data is a number
|
||||||
|
if (! preg_match('/^[0-9]+$/', $data['booking_nid'])) {
|
||||||
|
watchdog('booking_debug', "<pre>booking_variety_regn_callback non-numerical input</pre>");
|
||||||
|
return '<div id="booking_variety_regn_feedback_wrapper"><span style="color:#8c2e0b;font-weight: bold;">' .
|
||||||
|
'You have not entered a valid booking reference number.</span><br /><br /></div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Perform lookup on barcode to make sure it matches someone attending the current event
|
||||||
|
$db_and = db_and();
|
||||||
|
$db_and->condition('p.booking_eventid', $event->eid, '=');
|
||||||
|
$db_and->condition('p.booking_status', 1, '=');
|
||||||
|
$db_and->condition('p.nid', $data['booking_nid'], '=');
|
||||||
|
|
||||||
|
$query = db_select('booking_person', 'p');
|
||||||
|
$query->condition($db_and)
|
||||||
|
->fields('p');
|
||||||
|
$person = $query->execute()
|
||||||
|
->fetchObject();
|
||||||
|
|
||||||
|
if ($person) {
|
||||||
|
watchdog('booking_debug', "<pre>booking_variety_regn_callback found valid attendee</pre>");
|
||||||
|
return '<div id="booking_variety_regn_feedback_wrapper"><span style="color:#234600;font-weight: bold;">' .
|
||||||
|
'Matched booking reference number.</span><br /><br /></div>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
watchdog('booking_debug', "<pre>booking_variety_regn_callback did not find valid attendee</pre>");
|
||||||
|
return '<div id="booking_variety_regn_feedback_wrapper"><span style="color:#8c2e0b;font-weight: bold;">' .
|
||||||
|
'You have not entered a valid booking reference number.</span><br /><br /></div>';
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user