From a2e7f769e4bf90042fe313511027c8c17d294b4f Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Sun, 23 Aug 2015 17:51:33 +1000 Subject: [PATCH] Added dependant children option to regn form --- booking.admin.inc | 29 +++++++++++++++++++++++++++++ booking.install | 15 +++++++++++++-- booking.regn_form.inc | 31 ++++++++++++++++++++++++++++++- booking.regn_node.inc | 3 +++ 4 files changed, 75 insertions(+), 3 deletions(-) diff --git a/booking.admin.inc b/booking.admin.inc index c7469af..00dcfdb 100644 --- a/booking.admin.inc +++ b/booking.admin.inc @@ -281,6 +281,35 @@ function booking_admin() { '#description' => t('Select whether to cater for married couples in the registration form'), '#options' => array (0 => t('No'), t('Yes')), '#default_value' => variable_get('booking_allow_couples', 0), + ); + $form['regn_options']['booking_ask_dependant_children'] = array ( + '#type' => 'radios', + '#title' => t('Ask whether a couple has dependant children attending?'), + '#description' => t('Select whether to ask about dependant children of married couples in the registration form'), + '#options' => array (0 => t('No'), t('Yes')), + '#default_value' => variable_get('booking_ask_dependant_children', 0), + ); + $form['regn_options']['booking_dependant_children_text_definition'] = array ( + '#type' => 'textfield', + '#title' => t('Text to display about dependant children'), + '#default_value' => variable_get('booking_dependant_children_text_definition', 'Please note that only one dependant child under the age of two is allowed.'), + '#description' => 'Text to use on registration form if married couple has said they are bringing children.', + '#size' => 150, + '#maxlength' => 1000, + '#states' => array( + // Only show this field when the 'booking_enable_dietary' radio option is set to No + 'visible' => array( + ':input[name="booking_ask_dependant_children"]' => array('value' => 1), + ), + ), + ); + + $form['regn_options']['booking_dependant_children_text'] = array ( + '#type' => 'radios', + '#title' => t('Ask whether a couple has dependant children attending?'), + '#description' => t('Select whether to ask about dependant children of married couples in the registration form'), + '#options' => array (0 => t('No'), t('Yes')), + '#default_value' => variable_get('booking_ask_dependant_children', 0), ); $form['regn_options']['booking_enable_medicare'] = array ( diff --git a/booking.install b/booking.install index 3cc468a..98a402e 100644 --- a/booking.install +++ b/booking.install @@ -507,6 +507,14 @@ function booking_update_7229() { db_add_field('booking_person', 'booking_random_facts', $spec); } +/** +* Add field for dependant children +*/ +function booking_update_7230() { + $spec = array('type' => 'varchar', 'length' => '1', 'not null' => TRUE, 'default' => 'N'); + db_add_field('booking_person', 'booking_dependant_children', $spec); +} + /** * Implementation of hook_install(). */ @@ -590,7 +598,9 @@ function booking_schema() { 'booking_readinggroup' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), 'booking_shirt_size' => array('type' => 'varchar', 'length' => '20', 'not null' => FALSE), 'booking_dietary' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_medical_conditions' => array('type' => 'varchar', 'length' => '1000', 'not null' => FALSE), + 'booking_medical_conditions' => array('type' => 'varchar', 'length' => '1000', 'not null' => FALSE), + 'booking_random_facts' => array('type' => 'varchar', 'length' => '1000', 'not null' => FALSE), + //address details 'booking_street' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), 'booking_suburb' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), @@ -605,7 +615,8 @@ function booking_schema() { //relationships 'booking_married' => array('type' => 'varchar', 'length' => '1', 'not null' => TRUE), 'booking_partner_name' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), - 'booking_partner_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'disp-width' => '10'), + 'booking_partner_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'disp-width' => '10'), + 'booking_dependant_children' => array('type' => 'varchar', 'length' => '1', 'not null' => TRUE, 'default' => 'N'), 'booking_bf_gf' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), 'booking_bf_gf_nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'disp-width' => '10'), 'booking_room_mate1' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), diff --git a/booking.regn_form.inc b/booking.regn_form.inc index f965e3a..da6b5e5 100644 --- a/booking.regn_form.inc +++ b/booking.regn_form.inc @@ -269,7 +269,34 @@ function booking_form($node, &$form_state, $inserting = FALSE) { ), '#default_value' => !empty($data->booking_partner_name) ? $data->booking_partner_name : '' ); - + + if (variable_get('booking_ask_dependant_children', 0) == 1) + { + $form['your-details']['booking_dependant_children'] = array( + '#type' => 'radios', + '#title' => t('Are you bringing dependant children to study week?'), + '#options' => array (0 => t('No'), t('Yes')), + '#default_value' => (!empty($data->booking_dependant_children) && $data->booking_dependant_children == 'Y') ? 1 : 0, + '#required' => FALSE, + '#states' => array( + // Only show this field when the 'booking_married' checkbox is enabled. + 'visible' => array( + ':input[name="booking_married"]' => array('checked' => TRUE), + ), + ), + ); + + $form['your-details']['booking_dependant_children_warning'] = array( + '#type' => 'container', + '#children' => variable_get('booking_dependant_children_text_definition', "Please note that only one dependant child under the age of two is allowed."), + '#states' => array( + 'visible' => array( + ':input[name="booking_dependant_children"]' => array('value' => 1), + ), + ), + ); + } + if ($inserting == TRUE) { $form['your-details']['booking_partner_id'] = array( @@ -1260,10 +1287,12 @@ function booking_form_submit($form, &$form_state) { //fields that may or may not have been present in the initial form $node->booking_barcode = empty($values['booking_barcode']) ? '' : $values['booking_barcode']; $node->booking_luckynum = empty($values['booking_luckynum']) ? 0 : $values['booking_luckynum']; + $node->booking_random_facts = empty($values['booking_random_facts']) ? '' : $values['booking_random_facts']; $node->booking_welfare_required = empty($values['booking_welfare_required']) ? 'N' : ($values['booking_welfare_required'] == 1 ? 'Y' : 'N'); $node->booking_committee_member = empty($values['booking_committee_member']) ? 'N' : ($values['booking_committee_member'] == 1 ? 'Y' : 'N'); $node->booking_payment_complete = empty($values['booking_payment_complete']) ? 'N' : ($values['booking_payment_complete'] == 1 ? 'Y' : 'N'); $node->booking_refund_processed = empty($values['booking_refund_processed']) ? 'N' : ($values['booking_refund_processed'] == 1 ? 'Y' : 'N'); + $node->booking_dependant_children = empty($values['booking_dependant_children']) ? 'N' : ($values['booking_dependant_children'] == 1 ? 'Y' : 'N'); $node->booking_refund_due = empty($values['booking_refund_due']) ? 0 : $values['booking_refund_due']; $node->booking_help_music = empty($values['booking_help_music']) ? '' : $values['booking_help_music']; $node->booking_help_meditations = empty($values['booking_help_meditations']) ? '' : $values['booking_help_meditations']; diff --git a/booking.regn_node.inc b/booking.regn_node.inc index 5bb77b4..93e6df1 100644 --- a/booking.regn_node.inc +++ b/booking.regn_node.inc @@ -193,6 +193,7 @@ function booking_insert($node) { 'booking_married' => $node->booking_married, 'booking_partner_name' => $node->booking_partner_name, 'booking_partner_id' => $node->booking_partner_id, + 'booking_dependant_children' => $node->booking_dependant_children, 'booking_bf_gf_nid' => $node->booking_bf_gf_nid == '' ? 0 : $node->booking_bf_gf_nid, 'booking_room_mate1' => $node->booking_room_mate1, 'booking_room_mate2' => $node->booking_room_mate2, @@ -298,6 +299,7 @@ function booking_update($node) { 'booking_married' => ($node->booking_married == 1 ? 'Y' : 'N'), 'booking_partner_name' => $node->booking_partner_name, 'booking_partner_id' => $node->booking_partner_id, + 'booking_dependant_children' => $node->booking_dependant_children, 'booking_bf_gf_nid' => $node->booking_bf_gf_nid == '' ? 0 : $node->booking_bf_gf_nid, 'booking_room_mate1' => $node->booking_room_mate1, 'booking_room_mate2' => $node->booking_room_mate2, @@ -340,6 +342,7 @@ function booking_update($node) { 'booking_payment_complete' => ($node->booking_payment_complete == 1 ? 'Y' : 'N'), 'booking_refund_processed' => ($node->booking_refund_processed == 1 ? 'Y' : 'N'), 'booking_committee_member' => ($node->booking_committee_member == 1 ? 'Y' : 'N'), + 'booking_random_facts' => $node->booking_random_facts, 'booking_status' => $node->booking_status, ))