如何在任何时间获取处于“签入”状态的文件集合?使用plone 4.1。签入不是工作流程状态。它是一个在编辑时被用户锁定的文件,以便在前者通过“签入”解锁文件之前,其他用户无法访问最新的副本。我想知道我是否可以有一个集合来显示所有已被锁定的文件列表,即“签出”或在任何时间点都有“签到”状态。
答案 0 :(得分:2)
由于签入的对象与“普通”已发布的对象无法区分,因此可能没有简单的方法来创建此类集合。
我想到了一些解决方法:
通过搜索私有状态中的对象来查找已签出的对象,其中的ID以“copy_of”开头
检查“已发布”的对象。
创建一个自定义工作流程,其中包含一个额外的“签入”状态,并且(以某种方式)使用已签出并已检出并至少重新签入一次的对象的签入状态。
这些都不是特别有吸引力,因此对已发布项目的目录搜索可能是您最好的选择:
>>> [brain.getObject().getId() for brain in portal.portal_catalog(
review_state="published")]
['front-page', 'news', 'aggregator', 'events', 'aggregator', 'Members']
如果您愿意,可以将其与所有对象列表进行比较:
>>> [brain.getObject().getId() for brain in portal.portal_catalog()]
['front-page', 'news', 'aggregator', 'events', 'aggregator', 'Members',
'copy_of_front-page']
您不需要以编程方式执行此操作,只是想展示搜索已发布对象与所有对象之间的区别。后者返回一个额外的签出对象(处于私有状态)。
答案 1 :(得分:1)
这种方法有可能:
我为此写了一个软件包,因为无论如何我很快就需要一个项目:adi.workingcopyflag
答案 2 :(得分:0)
由于签入/签出状态未在portal_catalog中编入索引,因此无法将信息提供给集合。