Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.3 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67a
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Programming > Libraries

    betahaus.openmember 0.2 Beta

    Download button

    No screenshots available
    Downloads: 161  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Betahaus | More programs
    GPL / FREE
    March 24th, 2011, 12:50 GMT [view history]
    ROOT / Programming / Libraries

     Read user reviews (0)  Refer to a friend  Subscribe

    betahaus.openmember description

    A member database to track membership over time

    The betahaus.openmember module is a database for managing members and tracking changes to their personal information. This includes memberships to fiscal years, participation to events etc.

    Installation

    buildout:

     * Add betahaus.openmember entries to eggs and zcml in the appropriate buildout configuration file. (typcially buildout.cfg)
     * Re-run buildout. (./bin/buildout)
     * Restart the instance
     * Install via portal_quickinstaller or Site Setup in plone

    Events

    There are four events available OMemberAddedEvent, OMemberWillBeModifiedEvent, OMemberModifiedEvent and OMemberDeletedEvent. Register a listener like:

    < subscriber
     for="betahaus.openmember.interfaces.IOMemberAddedEvent"
     handler=".handlers.added"
     / >


    where handlers.py looks like:

    >>> def added(event):
    ... contenttype_object = event.object
    ... databse_object = event.om_object


    Configuration

    After following the install instructions you need to configure the database for what content to monitor and what fields of that content to monitor. Now you can choose to use a shipped content type called MemberPerson. Or you can take any content type that you like and make sure it implements the interface betahaus.openmember.interfaces.IOpenMember. The recommended way is to add a zcml five:implements entry:

    < five:implements
     class="path.to.your.contentType"
     interface="betahaus.openmember.interfaces.IOpenMember"/ >


    Next you need to configure what fields on your content type that will be monitored. This is done via the openmember controlpanel reachable from the Site Setup. Each field configuration should have the structure of:

    field_name | index_type | label

    field_name
     This is the field name of the content type.

    index_type
     This is the type of index to be used, typical indexes are ZCTextIndex, DateIndex and KeywordIndex.

    label
     What should be displayed for this field. This parameter is optional.

    You can also set what fields that should be title fields. These fields are the fields that show up in the search portlet and result table.

    Extending the control panel

    Open Member can easily be extended with extra functionality. Sometimes the extension requires configuration using a configuration panel. To help the user in having all the configurations related to OpenMember in the same place you can register sub sections to the OpenMember configuration panel.

    Two parts are needed to register an extension to the configuration panel. One schema that defines the fields that make up the configuration panel, and one adapter the implements the schema and takes care of reading/writing the values.

    The schema should have the following structure:

    >>> from betahaus.openmember.interfaces import IOMControlPanelForm
    >>> from zope import schema
    >>> class ExampleSchema(IOMControlPanelForm):
    ... """Example schema for openmember sub control panel"""
    ... example = schema.List(name='example')


    The key point here is that the schema must inherit from the IOMControlPanelForm and have a schema based on zope.schema.

    The adapter should have the following structure:

    >>> from Products.CMFDefault.formlib.schema import SchemaAdapterBase
    >>> from Products.CMFPlone.interfaces import IPloneSiteRoot
    >>> from betahaus.openmember.browser.controlpanel import
    >>> from betahaus.exports.openmember import PROJECTNAME
    >>> class ExamplePanelAdapter(SchemaAdapterBase):
    ... """Openmember control panel extension for examples settings."""
    ... implements(ExampleSchema)
    ... adapts(IPloneSiteRoot)
    ...
    ... def getId(self):
    ... """The Id must be lowercase"""
    ... return 'example'
    ...
    ... def getLabel(self):
    ... """The label can be translated to any language"""
    ... return _(u'Example')
    ...
     --- Getters and setters for the schema defined above. ---
    >>> registerForm(ExampleSchema, PROJECTNAME)


    The key points here are::

     * The adapter should inherit from SchemaAdapterBase or has that in the inheritance chain.
     * The adapter must implement the Schema defined previously, including the functions getId and getLabel
     * The registration of the schema with the OpenMember control panel

    The last step is to register the adapter in zcml:

    < adapter factory=".controlpanel.ExamplePanelAdapter" / >

    Now you are done.


    Product's homepage

    Requirements:

    · Python
    · Plone CMS

    What's New in This Release: [ read full changelog ]

    · Fixed duplicate GopipIndex that caused controlpanel to die. [mlundwall]
    · Fixed problem to display catalog contents in ZMI. [mlundwall]
    · Fixed search results table compatibility with Plone 4. [mlundwall]
    · Added deprecation to install method in setuphandlers - this can be done with GS [robinharms]
    · Changed i18n translations to locales [robinharms]
    · Added possibility for not-operations in the portlet and search view [robinharms]
    · Temporary patch to removed orphaned objects from catalog search results [robinharms]
    · Memberdata shoudln't be created if id isn't passed as an argument [robinharms]
    · Added index for mapped portal type [robinharms]
    · Added delete functionality [robinharms]
    · Fixed situation where the search result template could pass an empty query to the catalog [robinharms]

      


    TAGS:

    membership tracker | member management | membership | tracker | member

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM