COD Registration

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!
public

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';
AttachmentSize
cod_registration_workflow.jpg403.84 KB