Using Plone Signup Sheet to Manage Event Registration, v0.2

by Aaron VanDerlip last modified Mar 30, 2009 06:03 PM

A basic how to for setting up a Signup Sheet

SignupSheet is an add-on product for Plone that allows website managers to create custom registration forms for events, workshops, fundraisers and other events that require online registration. This user guide will provide step-by-step instructions for creating a SignupSheet, adding fields to a registration form, managing registrations and exporting the registration data from the web to common spreadsheet or database applications. This documentation is written for version 0.2 and assumes that SignupSheet and any other required products are already installed on your Plone site. More information about SignupSheet for Plone and the latest release of the product (and this documentation) can be found at http://plone.org/products/signupsheet.

 

Creating a SignupSheet

1. To create a SignupSheet, first select the signup sheet content item from the "add to folder" drop-down menu as shown below.

Signupsheet add


2. The first screen you will see is the Edit Signup Sheet screen. The Title and Body Text fields on this screen are required. On this screen you can enter the Title, Description, Number of registrants, Size of wait list, Body Text, and Registrant prolog (and possibly Short Name depending on your site settings and permissions).  If registration is unlimited, set the Number of registrants to zero (0). If there is no waiting list available, leave Size of wait list set to zero (0). This is what the top of the edit page looks like:

Signupsheet edit top


3. Further down on the page is the Body Text edit box. In this example we are using the Kupu editor. The Body Text field is where you would enter all relevant information about the event (unlike the standard Plone Event content type which has distinct fields for information such as start time, stop time, event location, etc.). 

Signupsheet edit middle

Below the Body Text is the Registrant Prolog. This contains the text that will be displayed to site visitors at the beginning of your registration form. When you have finished filling out all the fields on the Edit Signup Sheet screen, click the Next button at the bottom of the screen.

Signupsheet edit bottom


4. Clicking the Next button will take you to a new screen. On this screen you can edit the information that will appear on the "Thank You" page that the individual who is signing up will see after successfully completing the registration form (using the Thank You field). You can also edit the contents and title of the email that gets automatically sent to the registrant (with the Confirmation email subject and Email response message fields) and of the email that can be sent to someone, such as an event coordinator, whenever there is a new registrant (with the Notification email subject and Notification email response message fields).

In the Thank You, Email response message, and Notification email response message fields, you can use TAL to dynamically create messages (as shown in the default text). If you don't know TAL or don't want to use it, you can just enter regular text. If you make no changes to the thank_you text, the default text displayed in this screen will be used.

For the Confirmation email subject and Email response message fields, you should enter a TALES expression. If you don't know TALES or don't want to use it, you can just enter regular text as long as you preface it with "string:", as shown in the default values. (The "string:" part won't show up in the title.)

Here is the first half of the thank_you page (with default field values):

Signupsheet thankyou top

 
If you enter an email address in the Notify mail address field, a notification email will be sent to that address every time someone registers using the Signup Sheet. If you don't enter an address, then no notifications will be sent. Here is the second half of the thank_you page (with default field values):

Signupsheet thankyou bottom

When you have filled out the thank_you fields, click the Save button to commit your edits, or click the Previous button to make further changes to the Signup Sheet information.

 

5. As with most other Plone content items, you can set the Effective Date and Expiration Date for this Signup Sheet item. If you want to set these dates, click the Properties tab to edit any of the property fields. Near the bottom of that screen you can set the Effective and Expiration dates. These dates control when the Signup Sheet you are creating will be visible to the public on your website. When you have modified the Properties of the Signup Sheet item, click Save at the bottom of the Properties screen. If you leave these fields blank, the item will be available immediately and will not expire until you Close the Signup Sheet (see Step 1 of Signing Up for an Event below).

Effective date


Modifying the Registration Form

1. Now that the main Signup Sheet content and Thank You page and email are created, you will want to modify the Registration Form so that it requests the appropriate information for your event. By default, the Registration Form contains three fields: first_name, last_name and email. You may edit the attributes of these fields but you should not delete them, they are necessary to construct the email message that is sent to the registrant.

Click on the "edit registrant form" tab to enter the form editor.

 

The following screen will contain a list of fields currently defined for the registration form, as well as a "maintenance" tool (more information on the maintenance tool is available below).

To create a new field, enter the field name into the empty field box next to the green plus sign. Field names cannot contain spaces--the tool will respond with an error message if you attempt to create a field name with a space. The field label, however, can contain spaces, as will be illustrated in the following step. Enter the field name and click the green plus sign to create the new field. To edit an existing field, click on the field name (such as "first_name"). To delete the field, click on the red X to the left of each field name. To move a field up or down in the order it will appear on the screen, click the up or down triangles to the right of each field.

Signupsheet edit form

The maintenance tool is used to update existing registration records with any changes made to the registration fields after those registrations were submitted. For example, you might decide to add an additional question to the registration form. Some records (those created before that modification) will not contain that question, while all new registration records will. Clicking the "Update all fields" maintenance tool will add that (blank) field to older registration records, allowing you to fill in that information if desired.

 

2. Once you have created a new field (or clicked on an existing field to modify its properties), a field definition box will appear on the right. This is where you can define or modify the properties of the field.

The field definition box allows you to modify what Type of field the field is (is it a StringField, a very open field type that can contain essentially any chacters or punctuation, an IntegerField, basically containing numeric values, a TextField, containing only Plain or HTML text, a DateTimeField, or a BooleanField, basically a "true/false" field).

The Widget drop-down menu allows you to more tightly define the type of data the registrant is entering. Commonly used widget types include String (allowing the registrant to enter any type of characters or punctuation), a TextArea (a larger field type allow for Plain or HTML text), a Radio field (allowing registrants to select one radio button for choices such as yes/no or beginner/intermediate/advanced), a Select field (creating a drop-down menu of choices, only one of which can be selected), a Calendar field (allowing the registrant to enter date/time data), a Boolean field (essentially a yes/no choice), or a MultiSelect field (allowing the registrant to select more than one of the available options).

The Widget settings will change depending on the type of field defined. For some, such as Radio, Select and MultiSelect, the widget settings include a Vocabulary field where you can define the available choices. The Label field modifies the field Label that will appear on the registration form ("First Name" for example, instead of "first_name"). The Description field allows you to include more information to the registrant about the field (field Label could be "Newsletter", for example, and the Description could be "Would you like to sign up for our newsletter?").

The Default field allows you to enter a default value for the field that will be saved with the registration form if the field is left blank.

The Size field will change the width of the field on the screen (if the field has width, like a String, TextArea, etc.), but will not influence the maximum number of characters that can be entered into a field.

The Validators field can be used to enforce the format or value entered into the field (to make sure that a person is really entering a number into a field asking for a number, for example). (NOTE: this field is not well documented in this tool and is meant primarily for individuals comfortable with database programming.)

The Multivalued field should be checked if the type of data being collected by the field actually allows for multiple responses (such as a MultiSelect field).

The Required field should be checked if this field must be field out by the registrant. This does not control what content is entered, only that the field has some content when being submitted. If the registrant attempts to submit the registration form with a required field left blank, the resulting screen will identify the field requiring data so it can be entered and resubmitted.

The Field Visibility options control whether a field is visible to the registrant. Visible (Edit), if unchecked, will hide fields that request user input (this would be useful if you wanted to use a Default value to enter a value in a field that will be included in the record, but not allow the user to see or modify that value).

Visible (View), if unchecked, will hide fields from view if the record were being viewed after it were submitted. Since the Signup Sheet does not allow viewing/editing of a submitted record by the registrant, Visible (View) is not a useful feature of the Signup Sheet as it presently operates unless elaborate permissions were built around user access to records. Leave Visible (View) checked unless you have a clear reason for not doing so.

Once all field definitions for the selected field have been made, you can click the "save changes" button to commit the changes. You can click on other fields in the fields box and edit their definitions until all fields have been defined as you wish.

Signupsheet edit form 2

  

Signing Up for an Event

1. Once the Signup Sheet has been created and the registration form has been modified, the event is ready for individuals to sign up! By default, the Signup Sheet is presently set to be "open for submissions", but you can also keep the Signup Sheet closed until you are ready to accept registrations. You can toggle the state (open or closed) of the Signup Sheet from the "state" drop-down menu at the far-right of the screen:

Signupsheet change state

 

2. When your Signup Sheet is ready, public users will be able to click on a "sign up" button at the bottom of the item. If the event is already at maximum capacity but there is a waiting list available, the button will read "sign up for waiting list". If the registration list is full and the waiting list is set to zero (0) or is full, the page will include the message "Registration is full".

Signupsheet view

 

3. Clicking on the "sign up" button (or "sign up for waiting list") will allow the registrant to enter registration information and submit that information. Small red squares next to field labels indicate whether a field is required or not. Clicking "save" will submit the registration information, take the registrant to the Thank You page, and trigger the email to the registrant thanking them as well.

Signupsheet registration

 

Managing Registrants

Once individuals are registered, you can modify their registration information, confirm their registration, move them off the waiting list or export the registration data for use in the spreadsheet or database program of your choice.

 

1. To see a list of all registrants, click on the "contents" tab while viewing or editing the Signup Sheet. A list of all registrants will appear. The list will also show their state (whether confirmed or unconfirmed). By default, all registrants are unconfirmed until you change their state to confirmed. If you click on a registrant's title, you will be taken to a page with the details for that registrant.

Signupsheet contents

 

2. When viewing the individual registrant, you can confirm their attendance at your event by changing their state from unconfirmed to confirmed. Make this change by clicking on the "state" tab at the far right of the screen and selecting "confirm".

Signupsheet confirm registrant

You can also confirm multiple registrants at once from the Contents screen (shown above in step 1), by putting checks in the boxes to the left of the registrants names and clicking on the "change state" button. At the bottom of the screen that next appears, you can change the state to confirm:

Change state


3. By editing an individual registrant, you can change their status from Waiting List to Registered (or Registered to Waiting List).

Signupsheet registrant edit

 

4. Instead of using the contents tab and individual records to view and manage registrants, you can use the view registrants tab. The view registrants page gives a table of registrants and their field values, with the last column of the table giving buttons to edit or confirm registrants. The table can be sorted by any column's values by clicking on that column's name. Warning: If you have many registrants and fields, viewing this page may strain your server.

Signupsheet view registrants


5. To export the registration data, click on the "export data" tab. Select the fields you want to export. The ID and Title fields are default fields that do not necessarily need to be exported. The file will be exported into a CSV (Comma Separated Value) file. If you don't know what Delimiter means, you probably want to change it to Comma. Click on the "download" button to export the data.

 Signupsheet export data

If you have an application on your computer that knows how to handle CSV files (such as Microsoft Excel, Open Office, etc.) you will likely be given the option to open it in that application. Otherwise you can save the file to a location on your computer to open/import into your desired application.

CSV save

 

Signup Sheet: Credits and Future Enhancements

Signup Sheet was developed by Aaron VanDerlip with the support of netCorps (http://www.netcorps.org) and our clients and partners. This product would not be possible without the Poi and RichDocument products by Martin Aspeli. They provided useful example code, specifically around the workflow trigger pattern. In addition Upfront Contacts by Rochv© Compaan for the CSV export code. Also thanks to Simon Pamies for assisting with ATSchemaEditorNG.

If you would like to recommend future enhancements or participate in the development of this product, please contact us at http://www.netcorps.org.

 This documentation is licensed under a Creative Commons License.