Giter VIP home page Giter VIP logo

collective.signupsheet's Introduction

A signup sheet implementation for Plone. New events-like content are added to your site, users can subscribe to those events filling a customizable form.

How to use

Example form

After installation you can add a new content type to you site: the "Signup Sheet".

Starting configuration in the edit form is only about general information about the event, like:

  • Max number of registrants (if any)
  • Waiting list size (if any)
  • Start/End date of the event
  • Start/End date of early bird phase
  • Registration deadline
  • ...much more

After that your users can access a subscription form, but you can easily customize how the form looks like.

Customizing the subscription form

This product is based on PloneFormGen so you can use the same form construction features. You have a great set of form fields available, but 3rd party products can enhance this list (for example: a captcha protection field could help).

The form is automatically generated with three core fields:

  • Name
  • Surname
  • Email

The email field is recommended but you can freely change/delete them all and add much more fields.

Whatever form you define, your users must fill the form to subscribe.

Handling subscriptions

Editing a subscriber

Every time a user fill the form, a "registrant" content is created inside the "Registrants" subsection of the form. The registrant is real working document that an administrator can edit later (we are using the poweful uwosh.pfg.d2c here).

For users able to manage the signup sheet an administrative view "View Registrant" is given.

View Registrants

From this view you can see the status of all subscriptions and confim them. Right now confirming a user subscription has only internal meaning and confirmed or unconfirmed users are not handled in different way.

Other features

Notification system

The Signup Sheet contains also two PloneFormGen mailer adapter, one for notification to the manager at every new subscription, another for notify the user itself after the subscription (for receive a confirmation of filled data).

You can customize those adapters for fit your needs (new mail messages, notify additional users, ...).

Note

although both mailers are normal PloneFormGen items, the "User notification mailer" is disabled by default. It's used in a special way and must stay disabled for proper working.

Automatic notifications apart you can also use the "Notify Registrants" view, to send a custom message to all registrants (or to a part of them).

Notify Registrants

Import/Export

Subscribers can be exported in a CSV format, or imported from a CSV with the proper format.

Calendar friendly

Signup sheets are shown in the Plone calendar portlet like normals events.

Credits

Developed with the support of S. Anna Hospital, Ferrara; S. Anna Hospital supports the PloneGov initiative.

Historical tribute to SignupSheet

Altough this product is using more recent Plone technologies, it's miming all the features of another product: SignupSheet.

The software stack used in the orginal product has become too old to be maintained anymore. We hope this new add-on will give same features and best flexibility.

Authors

This product was developed by RedTurtle Technology team.

RedTurtle Technology Site

collective.signupsheet's People

Contributors

cekk avatar daniele-andreotti avatar eivino avatar keul avatar luca-bellenghi avatar staeff avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

collective.signupsheet's Issues

A few minor suggestions

Have the ability to turn the confirmation on or off.
If the confirmation is turned on and someone is confirmed or denied send a notification to the end user letting them know that they've been confirmed or denied.

We have a folder that contains the signup sheets. Is it possible to place the event start / end dates and times next to the title and type?

PicklingError: Can't pickle <class 'Products.PloneSurvey.browser.interfaces.IPloneSurveySpecific'>: import of module Products.PloneSurvey.browser.interfaces failed

Added the collective.signupsheet-0.1.1-py2.6.egg to the buildout.cfg in the eggs and zcml sections in Plone 4.1. Buildout ran fine. The buildout downloaded and installed uwosh.pfg.d2c-2.4.4-py2.6.egg. Checked the eggs directory, the other dependencies were met.

The error occurs whenever the SignupSheet 0.1.1 is activated through the add-ons. Products.PloneSurvey-1.4.5-py2.6.egg did exist on the QA (Plone 4.1) server but has since been removed. The Products.PloneSurvey-1.4.5-py2.6.egg doesn't exist in the eggs directory, buildout.cfg, or add-ons.

Open to suggestions. Thank you.

Traceback (innermost last):

Module ZPublisher.Publish, line 126, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 46, in call_object
Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 575, in installProducts
Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 512, in installProduct
__traceback_info__: ('collective.signupsheet',)
Module Products.GenericSetup.tool, line 325, in runAllImportStepsFromProfile
__traceback_info__: profile-collective.signupsheet:default
Module Products.GenericSetup.tool, line 1086, in _runImportStepsFromContext
Module Products.GenericSetup.tool, line 1000, in _doRunImportStep
__traceback_info__: collective.signupsheet.various
Module collective.signupsheet.setuphandlers, line 19, in setupVarious
Module collective.signupsheet.setuphandlers, line 71, in add_registrant_portal_type
Module OFS.CopySupport, line 231, in manage_pasteObjects
Module OFS.CopySupport, line 573, in _getCopy
Module transaction._manager, line 101, in savepoint
Module transaction._transaction, line 260, in savepoint
Module transaction._transaction, line 257, in savepoint
Module transaction._transaction, line 690, in __init__
Module ZODB.Connection, line 1123, in savepoint
Module ZODB.Connection, line 623, in _commit
Module ZODB.Connection, line 658, in _store_objects
Module ZODB.serialize, line 422, in serialize
Module ZODB.serialize, line 431, in _dump

PicklingError: Can't pickle <class 'Products.PloneSurvey.browser.interfaces.IPloneSurveySpecific'>: import of module Products.PloneSurvey.browser.interfaces failed

PloneFormGen is installed twice

after installing collective.signupsheet (in a fresh instance, with just collective.signupsheet in the list of eggs), you'll see two instances of PloneFormGen in the list of installed products. Going into the ZMI, one is referenced as Products.PloneFormGen and one as PloneFormGen.

This leads to all kinds of wonkiness, when adding new fields to a signupsheet.

Disabling User notification mailer has no effect

I disabled the action adapter "User notification mailer" on the edit page of a signupsheet by unselecting the checkbox left to it. I expected that with this configuration no mail would be send to the user after the form is filled out. But the mails get send anyway, no matter if the adapter is checked or not.

action adapter "Registrants" not deselectable

Hello,

I tried to deselect the action adapter "Registrants" on the edit page of a signupsheet. Saving the edit form led to the following error message:

  - URL: file:/home/codio/workspace/zinstance/src/collective.signupsheet/collective/signupsheet/skins/collective_signupsheet/ss_base_view_p3.cpt
   - Line 108, Column 16
   - Expression: <PythonExpr not view.getSignupStatus() =='full'>
   - Names:
      {'container': <PloneSite at /Plone>,
       'context': <SignupSheet at /Plone/fomular>,
       'default': <object object at 0x7f4f1be044e0>,
       'here': <SignupSheet at /Plone/fomular>,
       'loop': {},
       'nothing': None,
       'options': {'args': (),
                   'state': <Products.CMFFormController.ControllerState.ControllerState object at 0x7f4efca40d50>},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7f4efca4da48>,
       'request': <HTTPRequest, URL=http://clarion-evita.codio.io:8080/Plone/fomular/ss_base_view_p3>,
       'root': <Application at >,
       'template': <FSControllerPageTemplate at /Plone/ss_base_view_p3 used for /Plone/fomular>,
       'traverse_subpath': [],
       'user': <PropertiedUser 'admin'>}
  Module Products.PageTemplates.ZRPythonExpr, line 48, in __call__
   - __traceback_info__: not view.getSignupStatus() =='full'
  Module PythonExpr, line 1, in <expression>
  Module collective.signupsheet.browsers.signupsheet_baseview, line 26, in getSignupStatus
AttributeError: 'list' object has no attribute 'contentIds'

Calendar search is not working

Signup Sheets are shown in calendar but calendar search is not working.

We must add the SS wf states to the portal_calendar list of states

Unicode chars and CSV-Export

Hi,

by creating a german translation in encountered a unicode problem with the export functionality. it seems to go bad, when certain translated strings contain unicode characters, in my case "ä".

The error message:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module collective.signupsheet.browsers.registrants_data, line 56, in __call__
  Module collective.signupsheet.browsers.registrants_data, line 63, in exportCSV
  Module collective.signupsheet.browsers.registrants_data, line 136, in generateCSV
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 4: ordinal not in range(128)

I could work around by avoiding the character by using 'ae' in the following occurences in "collective/signupsheet/locales/de/LC_MESSAGES/collective.signupsheet.po"

lines 80-82

#: ../browsers/view_registrants.pt:28
msgid "confirmed"
msgstr "bestaetigt"

lines 347-353

#: ../browsers/view_registrants.pt:30
msgid "unconfirmed"
msgstr "unbestaetigt"

#: ../browsers/view_registrants.pt:32
msgid "unconfirmed (in wailing list)"
msgstr "unbestaetigt (auf der Warteliste)"

Fix test dependency

For a strange unknow reason this package require plone.app.testing in setup.py but it use PloneTestCase. PloneTestCase is not shipped on Plone 4.3 by default.

Must be fixed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.