大道至简,新一代企业应用无栈开发

平台之上,一种语言,可视化、脚本化、全端一体化开发

评注和圈阅

记录日志,形成操作历史,可用于审计

docutils document without title

评注是对内容的附加信息,用于对内容进行讨论。圈阅也是一种特殊的评注。

平台的评注暂不支持线索回复,不支持修改。

1   评注 comments

几乎任何对象都可被评注,评注可以补充附件。一般对象的关注人员会收到评注通知。

1.1   添加评注 add

方法为::

comment_id = obj.comments.add(body,
        author,
        action='comment',
        attachments=[],
        data=None,
        notify=True)

其中:

  • body:评注的内容

  • author:评注人多pid

  • action: [可选]操作类型,默认是评注。

    可通过扩展其他类型的评注,比如圈阅。类似日志,对于扩展评注类型,使用渲染脚本名字作为action。

  • attachments:[可选]附件对象的列表

  • data:[可选]附加数据

  • notify: 是否通知订阅人

返回添加的评注ID

1.2   删除评论 remove

obj.comments.remove(comment_id)

1.3   删除全部评论 clear

obj.comments.clear()

2   扩展评注操作(圈阅)

比如圈阅,也是一种特殊的批注。

2.1   文档矩形标注

需要记录页面、位置等信息:

obj.comments.add(body, author,
    action="zopen.viewers:comment_doc_rect",
    data={"page": 2,
        "left_factor": 0.12,
        "top_factor": 0.12,
        "right_factor": 0.33,
        "bottom_factor": 0.33,
        })

2.2   文档点取标注

需要记录页面、位置等信息:

obj.comments.add(body, author,
    action="zopen.viewers:comment_doc_rect",
    data={"page": 2,
        "x_factor": 0.12,
        "y_factor": 0.12,
        })

2.3   图片点标注

需要记位置:

obj.comments.add(body, author,
    action="zopen.viewers:comment_image_point",
    data={
        "x_factor": 0.12,
        "y_factor": 0.12,
        })

2.4   图片区域标注

需要记位置:

obj.comments.add(body, author,
    action="zopen.viewers:comment_image_rect",
    data={
        "left_factor": 0.12,
        "top_factor": 0.12,
        "right_factor": 0.33,
        "bottom_factor": 0.33,
        })

3   搜索评论 CommentQuerySet

CommentQuerySet用于搜索评注,接口类似 QuerySet

results = CommentQuery(restricted=False)\
      .anyof(path=[obj]).limit(5).sort('-created')

支持的索引包括:

  • "author": 发帖用户id
  • "time": 发帖时间
  • "body": 正文
  • "attachments": 附件uid
  • "path": 上级路径uid,也可以传递对象
  • "bound_object_id": 评注对象uid
  • "bound_object_title":评注对象标题
  • "bound_object_deleted": 是否已经删除

返回结果:

[{
    '_score': 1.0,
    '_id': 'AWesCZfEnKFhHeiULKrm',
    '_source': {
        'body': 'test',
        'instance_id': 'workonline.default.zopen',
        'disallowed_principals': [],
        'attachments': [],
        'bound_object_id': 487973187,
        'author': 'users.admin',
        'appid': 'workonline',
        'bound_object_deleted': False,
        'allowed_principals': ['users.admin', 'users.test', 'groups.teams.0-managers'],
        'time': '2018-12-14T09:26:09.087925',
        'path': [1046063753, 1046063752, 487973187],
        'bound_object_title': 'test.xlsx'
    },
}]