COD Registration

cod_registration.module overview
This module will handle the user workflow for account creation, profile creation, and conference registration. It also leverages og and webform module to implement a conference registration system that supports multiple conferences with dynamic registration forms for each conference.
Step 1: Account creation
All profile information will be stored using the bio module in a CCK node, so the user registration form will be bare (user name / email and password if using login tobaggan). We won't be interfering with the standard drupal registration system, but we will be displaying helpful messages to non - logged in users:
- create bio node that contains abbreviated registration form on conference nodes for non logged in users.
- insert hidden field for conference ID into abbreviated registration form
- create module setting that allows disabling user/register form to 'enforce registration on conference nodes'. this will avoid a case later where a user registers for the site but then gets lost in the registration workflow because we don't know which conference they want to register for.
- in hook_user() on 'register' store conference node ID in serialized in user object -- this variable will be used later in registration process.
Step 2: Conference registration
Conference registration will be done implemented by having each conference be a 'og' enabled webform. The webform will let admins create a dynamic form, listen for a user to fill it out, then add them to the conference group to track membership, and add the users bio node to the group so we can have a directory of registrants.
The conference creation node will need to be de-crufted:
- Description: remove mention of group
- Confirmation message: remove language about path redirection
- Components: change to 'registration questionare'
- Email to address: title 'registration notifications'
- Group website: remove
- Subscription requests: change language so it makes sense for conferences
- Registration form: change 'group' to conference
- List in groups directory: remove
- Advanced settings: set to limit to 1 submission and hide from form
After a user has created their account and a profile node we will direct them to register for their conference:
- conference registration question: how do we store conference cid on user/register?
- when registration enforcement is set to nudge and users haven't register for conference, display message in 'Registration' block directing them to register for their conference.
- if enforcement is set to 'strict' and they haven't registered, direct them to the conference registration node.
If the user does not have a bio created it should not let them register
- use $form_alter to replace webform with message telling them they need a bio filled out if they don't have one
We will need to tweak the webform forms to make them more understandable for conference registrants:
- use form__alter to insert registration instructions above webform form on conference nodes
To integrate w/ og to handle membership we must:
- user form__alter to append a cod_registration_conference_registration call to webform submission form
- cod_registration_conference_registration: add user to the conference group
Conference registration will need to respect group privacy settings:
- use form__alter to hide webform for closed groups
- use jquery goodness to grey out webform controls if user selects 'closed group'
- use form__alter to redirect visitors to 'og/subscribe' url's to the webform for the group
Step 3: Profile creation
We will be using the bio module to create profiles for users. This will let us easily create a views based member directory for conferences. Users must have a profile node created before they register for a conference however:
- patch bio.module to allow for bio node form on user/register
- patch bio.module to add option to 'create bio node' for each user
- create cod_registration settings for 'registration enforcemen't with 3 settings: none, nudging, strict enforcement
- implement a block 'Registration' that enforces the setting: for none it does not display, for 'nudging' for users that don't have a profile node it gives them a notes, and for 'strict' it will redirect user to their profile creation form.
We will also have to clean up the profile node creation form:
- default title to user name, and on submission reset to $first . ' ' .$last
- remove group form and authoring information
- add at the top 'Step 2: Fill out profile'
- Add at the bottom 'Next: Final step, conference registration for '$conference_node->title';
| Attachment | Size |
|---|---|
| cod_registration_workflow.jpg | 403.84 KB |
