在Plone中实现灵活的计划通知:为主题中的项目触发'Topic Item Events'
项目描述
简介
本产品旨在为以下用例提供解决方案:发送即将过期的物品的通知电子邮件(例如,在接下来的24小时内)。
本产品提供的解决方案使您能够
选择和预览需要采取行动的物品
选择不同的操作
发送电子邮件通知
配置消息文本
配置收件人
修改工作流状态
将项目移至其他位置
所有这些都可以通过Plone的控制面板由网站管理员完成,无需编程技能。
实现
提供的解决方案需要以下部分
在主题中选择项目。主题允许您定义相对日期,例如“下下周”。它们还允许您根据许多其他标准过滤项目。
我们创建了一个视图,当调用该视图时,它会为主题中的每个项目触发一个事件。这就是本产品的范围。
添加了一个由触发的事件触发的内容规则。内容规则可能有不同的操作:发送电子邮件、更改工作流状态、移动对象。
视图定期调用。您可以使用Cron4Plone或cron作业来完成此操作。
入门指南
1. 选择项目
创建一个主题,收集所有您想要执行某些操作的内容。
在未来,我们可能也会使用plone.app.collection的新样式集合来完成此操作,但是目前这些似乎不支持相对日期标准。
示例
如果您想发送有关前一天修改的内容的电子邮件
转到标准标签
为字段名“修改日期”添加“新的搜索标准”
将“标准类型”设置为“相对日期”,然后单击“添加标准”
在“修改日期”标准中
对于“哪一天”,选择“现在”
对于“过去或未来”,选择“过去”
对于“更多或更少”,选择“少于”
2. 安装视图 @@fire-topicitems-events
使用buildout安装此产品
在 buildout.cfg
eggs += collective.topicitemsevent
之后,使用Plone的“附加产品”控制面板安装产品。
检查它是否工作
转到您新创建的主题,并调用其上的 @@fire-topicitems-events 视图。您应该有管理员权限才能这样做。如果一切顺利,您应该被重定向到主题的默认视图,并且您将看到一条状态消息,该消息说“触发主题项目事件:”,后面跟着项目标题及其url的列表。
3. 配置内容规则
创建内容规则
通过Plone的控制面板,转到“内容规则控制面板”(/@@rules-controlpanel)。
添加内容规则。将“触发事件”选为“主题项目事件”。给它一个有意义的标题。现在,我们将使用“发送关于修改的电子邮件通知”。
新规则将显示在规则控制面板中。单击它以添加操作。在“执行以下操作”标题下,您可以选择任何内容规则操作。
现在,仅选择“发送电子邮件”,单击“添加”并配置电子邮件。(使用 ${title} 和 ${url} 变量,这样收件人就会知道邮件的内容。)
您可能还想添加一个“通知用户”操作。当测试内容规则时,这很有用:您会在使用 @@fire-topicitems-events 视图后看到状态消息。
添加内容规则
转到Plone站点的根目录,单击“规则”并添加站点的规则。
之后,选择规则并单击“应用到子文件夹”。
测试内容规则
现在转到您的主题,并再次调用 @@fire-topicitems-events。
4. 定期调用视图
我们将假设您使用 Cron4Plone 来完成此操作,但您也可以使用cron作业。您需要以管理员身份调用视图,Cron4Plone文档将告诉您如何操作。
在Cron4Plone配置屏幕上,您应该有一行如下
30 2 * * portal/test-topic/@@fire-topicitems-events
“test-topic”指的是您主题的ID。这将每晚凌晨2:30调用视图。
问题
此解决方案不会跟踪已发送的哪些电子邮件。当更改主题的日期范围或cron间隔时,通知可能会多次发送或根本不发送。这个问题可能永远无法解决。
您可能无法在“主题项事件”上有多个contentrules监听。如果您在“主题项事件”上有多个contentrules监听,将无法知道内容规则的哪个事件是从哪个主题触发的。
解决这个问题的一种方法是在特定文件夹上激活内容规则。但是,您需要小心,这可能会很快变得很复杂。
您还可以使用额外的过滤条件来保护内容规则。例如,如果您有一个使过期内容私有化的规则,并且您担心此规则将由于与主题无关的主题(不幸的是,该主题列出了不应私有化的项目)触发的TopicItemEvent而执行,那么您可以添加 python: DateTime() > here.getExpirationDate() 作为TALES表达式条件。这将确保规则仅在项目过期时执行。
变更日志
1.0 (2012-06-13)
稳定版本
0.1.1 (2011-11-28)
文档更新:如何在Plone内容规则中使用TALES表达式检查日期(到期日期,生效日期)。
0.1 (2011-11-21)
包信息更改(setup.py)
0.1dvl(2011-10-26)
首次发布
项目详情
collective.topicitemsevent-1.0.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3f10f059ae9098026991092b5682c17fb19dbf6403489f51c960e1137d8fa18c |
|
MD5 | e3a6db05697629c07069c73e8830b8b4 |
|
BLAKE2b-256 | feaf01544baf16f03fa994f0d5d46a40372acdcb4aa22348eeba4b395c0d855a |