Events Manager - Roadmap Summer-Fall 2010

 

There are a number of fixes and enhancements I'd like to make as time allows in Summer 2010. These changes include:

Layout Changes

  • new layout and design. 3 column grid for top level
  • calendar based navigation as secondary search mechanism. 
  • integrated tag cloud as secondary search mechanism
  • detail view with call out blocks for event information in left column, expanded narrative space and a photo or stock photo to help identify the type of event.
  • Design issue. Figure out what to do with height and space usage for preface top (blue horizontal region). .preface-top-wrapper has a min-height and padding-top that can be adjusted to reduce the height; override in local.css.

Functional Changes

  • determine why enrollment limit fails on occasion. 6.1-dev version is working for enrollment limit and closing events.
  • determine if enrollment status can be used to develop a waiting list. - yes
  • test and document how wait listing can be made to work
  • allow for event based "extra" fields, maybe user selectable to hide/show the fields necessary for a particular type of event. In the thread, http://drupal.org/node/29568 there is a long discussion and sample code for making this type of modification. See below.
  • create a field set to be used for recharge data collection so that a set of fields can be shown/hidden for events that require payments.
  • Review options for integration with iCal or gCal or CruzTime. Research notes below. iCal off at present.
  • Create a private event content type. Require the incoming signup to use a predetermined code to allow registration. Suggested by Chris Gaylord, but may be of use to Chancellor's office and/or others. Probably need a status flag on the event node form (private). Need a method (could be done in generic roles) to allow an incoming user to find the node. 
  • Private event page execution flow: psm-utilities.js is loaded by theme. On page load, we hide the submit button for content types that are of type 'private_event'. What this means is that we need Drupal to pass jQuery a variable for content type, then evaluate the content type and the hide submit button when appropriate. The user enters the coupon code they've received. As the coupon code field loses focus (blur), we execute an ahah call via the Registration Validation module. The coupon code is sent via ahah (ajax) to the server. The server queries the event for the coupon code. The event_coupon_code (from the database) is compared to the coupon code entered. If we have a match, we return a JSON message to the browser. The client side jQuery sees the match and runs show() on the submit button allowing the user to complete the signup.
  • Private events are published and require a coupon code to work. Event owners would send out invitations with the coupon code. Signups would need to have a text field displayed to check the coupon code, then show the submit button if we have a match on coupon code.
  • Turns out jQuery expects to use a GET call with its jQuery.JSON() function. We may need to rethink the data flow for using coupons and toggling the show/hide function.
  • Problem. Can't get to unpublished event. Needs to be published so that anonymous user can access it. Set to published.
  • Create node-private_event.tpl.php and theme the $node->content to remove the display of the Coupon field.
  • Tried using AHAH method and custom module to get this working. No luck yet.
  • Content type private_event is not shown in any of the EM views (event-listing, calendar, upcoming, tagged) so content of type private uses security through obscurity as its first line of defense. Second line of defense is coupon code challenge.
  • The view manage_my_events includes all content types (Event, Child Event, Private Event) for an authenticated event owner.
  • Changed RSVP's column header to Signups to stay consistent.
  • Load jQuery themeroller css and functions to enhance buttons and css to get some nicer interface widgets.
  • Sub events. Can we use nodereference to link parent and child events so that a Conference with several tracks can be accommodated? See, http://mustardseedmedia.com/podcast/episode37 for a tutorial on node reference URL. Yes, we can list child events of a parent and have a nice interface to create them on the fly. Need to address the node-event.tpl.php was modified to embed the child_events view of node content.
  • Modify node-event.tpl.php to embed the view, child events.
  • In the Child Event, we need to hide the link for "Add Child Event" and add a "Parent Event" link. The link already stems from node reference. See, http://events-manager-dev.ucsc.edu/content/test-event-child-events as a sample display. Add a nice "Add Child Event +" icon.
  • Need an elegant method to a check box to select the child events and register for them in one signup if possible. Check with Heather on her method.
  • Create node-child_event.tpl.php so that we can theme the Child Event node. 
  • see http://filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquer...
  • Theme the child_event to break out the body, node reference, start date, description from the $node->content variable.
  • Theme the child_event embedded view to have a checkbox so that we can add the child event to the parent signup.
  • Theme the error messages for signup statuses to be more user friendly. It looks like we'd need to hard code those changes in the signup_status_limit.signup_form.inc file in the signup_status_limit module. Note that when the limit is reached, the Status drop down changes to only include "waitlist", so this is fix low frequency problem to solve.
  • Upgrade the HTML editor from TinyMCE to FCKedit or CKedit. Develop some standard CSS classes available as well.
  • Create a stock image directory of business and meetings for event owners to add to their events.
  • Maps integration. We'll provide an embedded map to your event location using a combination of maps.ucsc.edu and/or google maps for the Location block. This will likely be a field to hold a URL to a particular map section or directions. Map link field added; opens map URL in new window. Could do some type of slide show overlay for a fancy touch.
  • Force the editor to only accept plain text.

Testing

  • child events <- this is brand new and will have a lot of bugs. I'm not working on this piece till next weekend.
  • additional fields <- adding/subtracting fields for reg form on a per-event basis
  • waiting lists
  • review themed output and make sure we're not showing info if there are no related child events.

Old Notes

April 2010

  • I think we wiped out the custom reg form. Pull a copy from prod and test. 
  • We are testing the enrollment limits and statuses 
  • two email addresses are being displayed. Do we need that? - No
  • Should we break down name to First, Last? - yes, broken out via webform components
  • upon submission, the signup form is displayed again. Can't we redirect the user back to the event listing? - fixed using -dev version
  • On prod site, why is the current listing showing events that have already passed? is cron running? - cron was not running consistently. fixed.

 

Wait List Testing - June 2010

  • Configure signup status settings 
  • Waitlist should toggle into action after enrollment is filled.
  • patched signup_status_mailer from http://drupal.org/node/615748  - done 6/8/2010
  • patched signup_status_limit from http://drupal.org/node/694312  - done 6/8/2010
  • Create documentation so that an event owner can create a wait list and understand the difference between the two use cases of closed or waiting list.

Here's a screen shot of what the user would see when they hit the enrollment limit and need to select the waiting list status for their registration:

 

Conditional Fields

Research the following modules and pages. No need to pursue this, use the modified signup module to achieve per-node webforms for collecting various bits of data.

  • Conditional Fields http://drupal.org/node/475488
  • http://drupalbin.com/14430

 

 

Feature Research & Bug Fixes 2008-2010

  • 10/9/2009 - Add Title and Date to Signup List for attendance checking. Elaine Rivas
  • 5/28/2009 - Add download to Excel. Break out signup data into separate columns. Jessica Fiske Bailey
  • iCal to Oracle calendar documentation. How to add an event from events manager to your CruzTime calendar. Not worth it since CT can't take a drag and drop *.ics file.
  • Can we include a .ics attachment and instructions in the email receipts? Yes, through the use of the iCal_file module. Need a decision on whether to do this or not. Could be confusing to add a function that can't map back to primary calendaring system.
  • Integrate calendar module into EM for mini-calendar and other calendar views.
  • Create RSS feed of events.
  • Create a view to list Events tagged with a vocabulary term.
  • Fixed taxonomy_redirect breaking tag weighting via patch.
  • Payment or Recharge modules not available. What approach can we take? Custom module, use the signup_payment module with customizations?
  • sub events not available. Child events of a parent event. Conferences with tracks.
  • Optional fields (mail stop, title, employeeID, n/a). In the last version we had access to the following fields: First, Last, Title, Unit, Address1, Address2, Email, Phone, Fax, City, State, Zip Country, Fee, Special Needs, Affiliation. The majority of events used the core 4 fields (name, phone, email and address).
  • Enrollment Exceeded message not displayed in the Events Listing page anymore - fixed
  • Integrate each event with an iCal link that can be downloaded into CruzTime. Uses new iCal module found at http://drupal.org/node/286071
  • Integrate each event to Google calendar. Needs more work. The addition of the Google calendar "add to gCal" icon requires some UTC date formatting. In testing, the date variables were taking the current date/time instead of the start_date. Not sure if that's a bug or where to look for it. 
  • Looked at adding iCal funcitonality. The problem is that Oracle Calendar doesn't handle an .ics via drag and drop. In fact, it wouldn't read the *.ics files I was trying to send to it. This could be the format of the ICS file and that can be adjusted in the ical_file module.
  • Modify the singup form to allow for optional fields. Develop a UI in a custom module to control optional fields. This can be achieved through the use of a modified signup form from http://drupal.org/node/29568 as noted above. Instead of developing a UI, we probably will need simple documentation and a few webforms that get people most of what they need. For those users who need more or different fields, we'd probably allow for a permission to create webforms. Need to test the arrangement of web form fields so that we can "hide" what is not needed by dragging it down below the line.
  • Review the basic Event content type. If we're going to use several sets of web forms, we'd want to make the content type about the event and the web form info about the individual registrant. Confirm that we're not duplicating any data collection.
  • Per Val and Ruby - How can we override the messages given to users to be a little more user friendly?