diff --git a/booking.install b/booking.install index 79e6798..3f75a80 100644 --- a/booking.install +++ b/booking.install @@ -521,112 +521,143 @@ function booking_uninstall() { * Implementation of hook_schema(). */ function booking_schema() { - $schema['booking_person'] = array( - 'fields' => array( - //identifiers - 'nid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'), - 'booking_event_id' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE), - '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_committee_member' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'), - 'booking_welfare_required' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'), - 'booking_barcode' => array('type' => 'varchar', 'length' => '20', 'not null' => FALSE), - 'booking_luckynum' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'disp-width' => '10', 'default' => 0), - 'booking_firstname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE), - 'booking_lastname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE), - 'booking_gender' => array('type' => 'varchar', 'length' => '1', 'not null' => TRUE), - 'booking_dob' => array('type' => 'int', 'not null' => TRUE, 'disp-width' => '11'), - 'booking_shirt_size' => array('type' => 'varchar', 'length' => '20', '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), - 'booking_postcode' => array('type' => 'varchar', 'length' => '8', 'not null' => FALSE), - 'booking_state' => array('type' => 'varchar', 'length' => '30', 'not null' => FALSE), - 'booking_country' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), - 'booking_phone' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), - 'booking_mobile' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), - 'booking_email' => array('type' => 'varchar', 'length' => '200', 'not null' => TRUE), - 'booking_ecclesia' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), - 'booking_baptised' => array('type' => 'varchar', 'length' => '1', 'not null' => TRUE), - //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_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), - 'booking_room_mate2' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - //helping areas - 'booking_readinggroup' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_help_music' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_help_reading' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_help_chairing' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_help_discussgroup_lead' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_help_readgroup_lead' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_help_praying' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_help_meditations' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - //other helping areas - 'booking_has_mission_experience' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_mission_experience_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), - - 'booking_skills_builder' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_skills_cooking' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_skills_childminding' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_skills_language' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_skills_language_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), - 'booking_skills_other' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_skills_other_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), - - //emergency contact info - 'booking_guardian_name' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), - 'booking_guardian_type' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), - 'booking_guardian_phone' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), - 'booking_guardian_phone_alt' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), - 'booking_medicare' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), - //'booking_medicare_expiry' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), - //'booking_medicare_linenum' => array('type' => 'varchar', 'length' => '2', 'not null' => FALSE), - 'booking_lifesaver' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_firstaid' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_nurse' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_doctor' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), - 'booking_dietary' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_medical_conditions' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - //payment info - 'booking_payment_id' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE), - //'booking_payment_method' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), - 'booking_total_pay_reqd' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), - 'booking_amount_paid' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), - 'booking_deposit_timestamp' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), - 'booking_refund_processed' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'), - 'booking_refund_due' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), - //passport info - 'booking_passport_expiry_date' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), - 'booking_passport_num' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), - 'booking_passport_issue_location' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), - 'booking_passport_issue_name' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), - //flight info - 'booking_destination_country' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), - 'booking_travel_insurance' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), - 'booking_outflight_bookingnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_outflight_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_outflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_outflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_outflight_origin_ts' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), - 'booking_outflight_connecting_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_outflight_destination' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_outflight_destination_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_rtrnflight_bookingnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_rtrnflight_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_rtrnflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_rtrnflight_origin_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_rtrnflight_connecting_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_rtrnflight_destination' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - 'booking_rtrnflight_destination_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), - - ), - 'primary key' => array('nid'), - ); + $schema['booking_person'] = array( + 'fields' => array( + //identifiers + 'nid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'), + 'booking_event_id' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE), + 'booking_tempid' => array('type' => 'varchar', 'length' => '40', 'not null' => FALSE), + 'booking_timestamp' => array('type' => 'int', 'not null' => TRUE, 'disp-width' => '11'), + 'booking_firstname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE), + 'booking_lastname' => array('type' => 'varchar', 'length' => '50', 'not null' => TRUE), + 'booking_gender' => array('type' => 'varchar', 'length' => '1', 'not null' => TRUE), + 'booking_dob' => array('type' => 'int', 'not null' => TRUE, 'disp-width' => '11'), + 'booking_status' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE), + 'booking_committee_member' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'), + 'booking_welfare_required' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'), + 'booking_barcode' => array('type' => 'varchar', 'length' => '20', 'not null' => FALSE), + 'booking_luckynum' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'disp-width' => '10', 'default' => 0), + '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' => '200', '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), + 'booking_postcode' => array('type' => 'varchar', 'length' => '8', 'not null' => FALSE), + 'booking_state' => array('type' => 'varchar', 'length' => '30', 'not null' => FALSE), + 'booking_country' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), + 'booking_phone' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), + 'booking_mobile' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), + 'booking_email' => array('type' => 'varchar', 'length' => '200', 'not null' => TRUE), + 'booking_ecclesia' => array('type' => 'varchar', 'length' => '100', 'not null' => FALSE), + 'booking_baptised' => array('type' => 'varchar', 'length' => '1', 'not null' => TRUE), + //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_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), + 'booking_room_mate2' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + //payment info + 'booking_payment_id' => array('type' => 'int', 'length' => '11', 'default' => 0, 'not null' => FALSE), + //'booking_payment_method' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), + 'booking_total_pay_reqd' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), + 'booking_amount_paid' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), + 'booking_deposit_timestamp' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), + 'booking_refund_processed' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE, 'default' => 'N'), + 'booking_refund_due' => array('type' => 'numeric', 'not null' => FALSE, 'default' => 0, 'precision' => '7', 'scale' => '2'), + //emergency contact info + 'booking_guardian_name' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), + 'booking_guardian_type' => array('type' => 'varchar', 'length' => '100', 'not null' => TRUE), + 'booking_guardian_phone' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), + 'booking_guardian_phone_alt' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), + 'booking_medicare' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), +/* + ), + 'primary key' => array('nid'), + ); + + $schema['booking_person_helpareas'] = array( + 'fields' => array( + 'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'), +*/ + 'booking_help_music' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_help_reading' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_help_chairing' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_help_discussgroup_lead' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_help_readgroup_lead' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_help_praying' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_help_meditations' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_has_mission_experience' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_mission_experience_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), + 'booking_skills_builder' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_skills_cooking' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_skills_childminding' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_skills_language' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_skills_language_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), + 'booking_skills_other' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_skills_other_details' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), + 'booking_lifesaver' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_firstaid' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_nurse' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), + 'booking_doctor' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), +/* + ), + 'foreign keys' => array( + 'person_reference' => array( + 'table' => 'booking_person', + 'columns' => array('nid' => 'nid'), + ), + ), + ); + + $schema['booking_person_flightinfo'] = array( + 'fields' => array( + 'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'), + +*/ + //passport info + 'booking_passport_expiry_date' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), + 'booking_passport_num' => array('type' => 'varchar', 'length' => '50', 'not null' => FALSE), + 'booking_passport_issue_location' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), + 'booking_passport_issue_name' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), + //flight info + 'booking_destination_country' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), + 'booking_travel_insurance' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), + 'booking_outflight_bookingnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_outflight_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_outflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_outflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_outflight_origin_ts' => array('type' => 'int', 'not null' => FALSE, 'disp-width' => '11'), + 'booking_outflight_connecting_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_outflight_destination' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_outflight_destination_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_rtrnflight_bookingnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_rtrnflight_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_rtrnflight_origin' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_rtrnflight_origin_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_rtrnflight_connecting_flightnum' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_rtrnflight_destination' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), + 'booking_rtrnflight_destination_ts' => array('type' => 'varchar', 'length' => '200', 'not null' => FALSE), +/* + ), + 'foreign keys' => array( + 'person_reference' => array( + 'table' => 'booking_person', + 'columns' => array('nid' => 'nid'), + ), + ), + ); +*/ + + ), + 'primary key' => array('nid'), + ); + + + $schema['booking_event'] = array( 'fields' => array( 'eid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'), @@ -737,6 +768,7 @@ function booking_schema() { 'booking_eventid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10'), 'booking_studygroup_descrip' => array('type' => 'varchar', 'length' => '500', 'not null' => FALSE), 'booking_num_group_sessions' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'disp-width' => '10', 'default' => 1), + 'booking_is_readinggroup' => array('type' => 'varchar', 'length' => '1', 'not null' => FALSE), ), 'primary key' => array('sid'), ); diff --git a/booking.module b/booking.module index ecf8ec3..4957988 100644 --- a/booking.module +++ b/booking.module @@ -58,6 +58,8 @@ module_load_include('inc', 'booking', 'booking.import_data'); module_load_include('inc', 'booking', 'booking.variety'); // Load the include for study group configuration module_load_include('inc', 'booking', 'booking.studygroups'); +// Load the include for study group definitions +module_load_include('inc', 'booking', 'booking.studygroups_admin'); // Load the include for the travel form module_load_include('inc', 'booking', 'booking.travel'); // Load the include for managing room bookings and definitions @@ -359,6 +361,15 @@ function booking_menu() { 'access arguments' => array("view study groups"), 'type' => MENU_NORMAL_ITEM, ); + + $items['admin/booking/studygroups/add'] = array( + 'title' => 'Add Study Group', + 'description' => 'Add Study Group definition', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('booking_studygroups_add_form', true), + 'access arguments' => array("edit study groups"), + 'type' => MENU_LOCAL_ACTION, + ); $items['admin/booking/studygroups/%/view'] = array( 'title' => 'View Study Group',