TODOs
=====

The following are known issues that need to be resolved in the short term:

- better test coverage and experimentation of uninstallation scenarios not yet covered by CMFQuickinstallerTool's interaction with GenericSetup.  The included "uninstall" profile is experimental and possibly problematic.
- along the same line, make sure (via automated tests) stuff reinstalls correctly if either the full or partial uninstallation path is taken.
- Add overview of current *complete* uninstallation process


Additional potential enhancements:

- Ability to custom "Register" message would be good via the UI since this can be used in other use-cases (i.e. letter signing, sign-up)

- Provide a Register and Join Waitlist option as link text (we just use the former for everything now)

- When creating a custom signup form, provide an easier mechanism for adding a signup-object-id as a hidden string field.

- Phone Type - On the default form ask preferred phone type [EDIT NOTE: Phone fields include work, home, mobile, other]

- If a user is following the default configuration whereby the RSVP-aware Salesforce.com object is a Campaign and a Lead is created and joined to the Campaign via a CampaignMember object, present a selection list with all relevant "status" options as determined by the available CampaignMemberStatus options associated with the chosen Campaign's Id. 

  This could be trivially done via the following pseudoish-code and enabled/disabled with kss::

   >>> campaign_member_statuses = salesforce.query("SELECT Id, Label FROM CampaignMemberStatus WHERE CampaignId == '%s'" % self.campaign_id)
   >>> [(k,v) for k,v in campaign_member_statuses['results']]

- Would be nice to redirect directly to the RSVP schema when an item is RSVP-enabled.  For this we need to fix Plone's fieldset tabbing to jump to a fieldset based on a URL fragment.

- Would be nice to jump to the form anchor if there's a validation error.
