Skip to main content

定义哪些用户需要将内容项标记为已读(通过collective.mustread)

项目描述

内容规则,用于定义在特定期限之前哪些用户(本地角色)需要阅读哪些内容项。

当请求阅读确认时,会向所有用户发送一封通知电子邮件。

在截止日期前 2 天(可配置)向所有未确认其阅读请求的用户发送可选的提醒电子邮件。

当内容项的阅读请求已过期时,会向可配置的电子邮件地址发送一封通知电子邮件,其中列出了所有未读文档以及哪些用户未及时确认该项目已读。

站点管理员可以查看读取统计信息(每个内容项和站点范围)以及下载所有读取请求的 CSV 列表。

内容规则允许配置

  • 用户有时间阅读内容的天数(截止日期 = 今天 + nr-of-days),

  • 在截止日期前发出提醒的天数,

  • 以及通知和提醒电子邮件的主题/文本。

这个插件依赖于collective.mustread

要对非文件夹 ATContentTypes 启用必读操作,请包含 archetypes.zcml(请参阅安装)。

设置内容规则

添加新的内容规则。

通常,您将使用请求的读取确认作为触发事件。

如果用户具有请求读取确认权限,则当用户在内容对象的操作下拉列表中链接的内容对象上调用 @@request-read-confirmation 视图时会触发此事件。

如果这对您的用例有意义,您还可以使用其他事件触发器,例如添加到此容器的对象工作流状态更改。

作为操作选择请求阅读确认并配置它:

电子邮件来源

电子邮件地址通知和提醒从(发件人:标头)发送

角色

目前,收到读取请求通知的用户由您可以选择的全局、获得或本地角色定义(类似于collective.contentrules.mailtorole

我们还支持授予组的角色,还支持在嵌套组中查找用户

也许我们将来会添加支持以直接选择组和用户。

获得的角色

同时通知从父对象获取角色的用户

全局角色

还通知已在用户或组控制面板中授予角色的用户。

通知主题

通知电子邮件的主题

通知消息

通知电子邮件的文本。您可以使用 plone.stringinterp 的所有替换变量以及内容操作特定变量

提醒主题

提醒邮件的主题

提醒信息

提醒邮件的文本。

如果为空,则不发送提醒

截止日期延迟

必须在天数内确认读取请求。将用于计算请求的截止日期。

提醒延迟

定义在截止日期前多少天将发送提醒电子邮件。

内容操作特定变量

这个包定义了一些额外的 plone.stringinterp变量:

必读网址

将对象标记为已读的项目的 URL ( /@@mustread-hit )

(也可用于其他操作)。

必读全名

读取请求分配给的人的全名

(仅在请求阅读确认操作中可用)。

必读截止日期

读取请求的本地化截止日期

(仅在请求阅读确认操作中可用)。

用法

设置内容规则后,您只需在内容对象上调用@@request-read-confirmation视图。

对于具有请求阅读确认权限的用户,这应该在内容项的操作下拉列表中可用。

对于与操作中定义的角色过滤器匹配的用户,将创建一个必读数据库条目并发送一封通知电子邮件。

您将看到一条饱和消息,指示哪些用户名得到了通知。

如果您希望您的用户在截止日期前几天再次收到通知,您需要设置提醒

您还可以设置过期通知(错过阅读请求的电子邮件报告 - 哪些文档有错过请求以及哪些用户没有阅读该文档)。

有一个 csv 导出 ( @@read-statistic-csv ) 列出了所有必读记录(可用作审计日志或执行高级电子表格魔术)。

设置提醒

视图@@send-read-reminders搜索具有打开读取请求的(子)对象,如果今天的日期等于提醒的截止日期 - 通知延迟(在 contentrule 的操作中指定),则通知用户

您可以为此使用时钟服务器(类似于https://github.com/collective/collective.timedevents)或 cronjob (z3c.recipe.usercrontab)。

这是一个在早上 7 点发送提醒电子邮件的 cronjob 示例:

0  7  *   *   *     wget --quiet -O- --user=admin --password=admin --auth-no-challenge http://127.0.0.1:8080/Plone/@@send-read-reminders > /dev/null

设置过期通知

@@send-expired-notification视图列出了所有具有打开读取请求的文档并通知门户的管理员地址。

您可以在注册表记录collective.contentrules.mustread.interfaces.IMustReadSettings.expired_recipient中配置收件人

确保每天只调用一次 - 类似于设置提醒

待办事项

  • 对象的报告视图 - 显示对象或上下文(包括子对象)的必读记录。

    • 每个对象的标题,指向该对象的必读报告的链接

    • 带有可排序列的表格列表:

      用户名、截止日期、阅读时间、状态(已阅读、阅读太晚、未阅读)

  • 将清理选项添加到报告视图

    • 删除一个必读条目

    • 删除所有必读条目

  • 用户的报告视图(在报告中链接用户名以获取对象)

    表格列出了用户已阅读、未阅读、阅读太晚的所有对象。

  • 提供必须阅读操作的类型的限制由标记接口完成(参见archetypes.zcml) - 可能有更好的方法

  • 为 ICanBeMarkedAsMustRead 实现灵巧行为

  • 想法:单独的通知内容动作,因此我们可以定义具有不同延迟和文本的多个通知

  • 想法:允许使用秘密调用@@send-read-reminders w/o 身份验证(类似于 munin.zope)

翻译

该产品已翻译成

  • 英语

  • 德语

安装

通过将collective.contentrules.mustread 添加到您的构建中来安装它:

[buildout]

...

eggs =
    collective.contentrules.mustread

zcml =
    collective.contentrules.mustread-archetypes

然后运行​​bin/buildout

通过插件配置面板安装它(Plone/prefs_install_products_form)

并确保为collective.mustread配置数据库

贡献

支持

如果您遇到问题,请通过问题跟踪器告诉我们

执照

该项目在 GPLv2 下获得许可。

贡献者

变更日志

1.0a2 (2017-04-26)

  • 如果没有用户的截止日期在我们的搜索日期之前过期,请不要发送过期电子邮件 [fRiSi]

1.0a1 (2017-04-26)

  • 初始发行。[弗里西]

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

collective.contentrules.mustread-1.0a2.tar.gz (42.7 kB 查看哈希

已上传 source