用于跟踪成员身份的成员数据库
betahaus.openmember的Python项目详细描述
内容
简介
betahaus.openmember 是用于管理成员和跟踪其个人信息更改的数据库。 这包括财政年度的会员资格、参加活动等。
安装
< DL>事件
有四个事件可用:omemberEdevent、omemberwillbemodifiedevent、omemberModifiedevent和omemberDeletedevent。 像这样注册一个侦听器:
<subscriber for="betahaus.openmember.interfaces.IOMemberAddedEvent" handler=".handlers.added" />
handlers.py的格式如下:
>>> def added(event): ... contenttype_object = event.object ... databse_object = event.om_object
配置
按照安装说明进行操作后,需要为要监视的内容和要监视的内容的字段配置数据库。 现在您可以选择使用名为memberPerson的附带内容类型。 或者您可以采用任何您喜欢的内容类型,并确保它实现接口betahaus.openmember.interfaces.iopenmember。 建议的方法是添加一个zcml five:implements 条目:
<five:implements class="path.to.your.contentType" interface="betahaus.openmember.interfaces.IOpenMember"/>
接下来,您需要配置要监视的内容类型上的哪些字段。 这是通过可从站点设置访问的OpenMember控制面板完成的。每个字段配置的结构应为:
field_name | index_type | label< DL>
您还可以设置哪些字段应该是标题字段。这些字段是显示在搜索Portlet和结果表中的字段。
扩展控制面板
开放成员可以通过额外的功能轻松扩展。有时扩展需要使用配置面板进行配置。 为了帮助用户在同一个地方拥有与 openmember 相关的所有配置,您可以向 打开成员配置面板。
向配置面板注册扩展需要两个部分。一个模式定义组成配置面板的字段, 一个适配器实现模式并负责读/写值。
架构应具有以下结构:
>>> 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')
这里的关键点是模式必须继承 iomcontrolpanelform 并具有基于zope.schema的模式。
适配器应具有以下结构:
>>> 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)< DL>
最后一步是在zcml中注册适配器:
<adapter factory=".controlpanel.ExamplePanelAdapter" />
现在您完成了。
贡献者
- 马丁·隆德墙 ,作者。
- Robin Harms Oredsson ,作者。
- Jocke Sundqvist,一般的东西,让我们走上正轨。
- svea ,财务支持
- ciu ,财务支持
- swefor ,财务支持
- 由betahaus制作-如果您想贡献,请转到http://dev.betahaus.net http://dev.betahaus.net