A signup sheet implementation for Plone
Project description
SignupSheet
SignupSheet is an add-on product that allows site managers to create custom registration forms for events, workshops, fundraisers and other events that require online registration. Each SignupSheet defines the fields that are used for each Registrant object they contain, through the ATSchemaEditorNG product. The Registrant object is what the end user fills out and submits. The workflow places each submitted Registrant in a private state once it is submitted so that it can be reviewed and approved.
The SignupSheet has these additional features:
Registrant fields can be exported to CSV
A waiting list and event size can be set, end users are emailed a message stating whether they are pending approval or on the waiting list.
The signup sheet view indicates whether the SignupSheet is ‘full’, ‘open’ or whether user will be put on a waiting list. This is calculated using the event size and waiting list settings.
End user is directed to a customizable thank you page.
The key motivation behind this product is to provides a way for site managers to setup registration forms that do more than email the fields to an address. Having the fields be configurable is essential, since many groups have specific requirements for the data they are collecting for their events.
SignupSheet is released under the GNU General Public Licence, version 2. Please see http://gnu.org for more details.
Installation
Install in the usual way, using the QuickInstaller. Requires ATSchemaEditorNG 0.5 or greater Requires TemplateFields and TALESField
Tested with Plone 3.0.6 and Archetypes 1.5.6 and ATSchemaEditorNG 0.5
Acknowlegements
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 Roche Compaan for the CSV export code.
In addition thanks to Simon Pamies for assisting me with ATSchemaEditorNG, and Andreas Jung for providing useful code improvements.
Naro for the Plone 3 compatibility work
Known Issues and Potential Improvements
Signupsheet needs more explanatory text. Schema editor has been simplified but needs better explanatory text.
It is possible to prematurely fill up registration by malicious user.
CHANGES
0.3.1
-fixed issue with Anon registrant and metadata updating -added metadata.xml for GS 1.5 support -computeFullname now more robust - tested with Plone 3.1.5 and ATSchemaEditorNG 0.5.0
0.3
updates to make Plone 3.0.6 compatible. added tests for email and posting workflow bulk of Plone 3 compatibility work done by Radmin Novotny
0.2.0 Beta
Andreas Jung and Radim Novotny contributed significantly to this release.
added Portuguese Brasilian translation. Thanks Vitor Reis.
added ‘view registrants’ that displays current registrants status and allows for confirming and editing registrants
added i18n support for templates
added German translation
updated tests to pass
updated i18n
Because thank_you_page and email_response fields were changed from TextField to ZPTField it is necessary to manually run migration code from Extensions/migrate method fixZPTFields. This method will read old values from these two fields and store the same value in new format. WARNING: if you don’t run migration you will get AttributeError: read when accessing old SignupSheet objects
It is possible to generate HTML emails
workflow script sendInitialEmail is called before the transition, because anonymous can access registrant object only in ‘new’ state. If script will be called after transition, Registrant.sendNotificationMail method won’t have access to registrant object. Access is required due to rendering templates from ZPTField.
removed signupsheet_email_* templates
Introduced TALESField and TemplateFields dependecy. SignupSheet uses these two fields for scripting thank_you_page, confirmation and notification email (subject and message). Syntax is described in field help text:
context = SignupSheet options/registrant = current Registrant object
added notifyEmail field to signupsheet schema. It allows to send notification about new registrant to some email address.
removed registration of SignupSheet.css from portal_css
it is possible to use options/computed_text in email template now
use getSiteEncoding if available
additional i18n work (signupsheet.py - schema)
improved i18n catalogs, added Czech translation
do not depend on Kupu in install code
replaced dtml templates with ZPT with i18n
use base_view for SignupSheet and simplified signupsheet_view template
0.1.1
-fixed bug that caused editing existing Registrant objects to fail -added import for ATSENG so test run properly -fixed incorrect security declaration for registrantFieldNames
0.1
Installs ATSENG dependency
Fixed bug for computing status, added tests against bug
Fixed manager can override initial post state
Registrant edit page displays title of SignupSheet
Fixed Thank you message renders proper HTML
Fixed email response so that it is text only
0.1-Beta-2
tracking changes