2012-05-02 42 views
3

我试图清理内容的注释(IAnnotations)卸载的Plone的附加。我成功地浏览了所有网站内容并删除了活动对象中的注释。清理注解对象

然而,CMFEditions /版本各地保持旧内容的副本,我不知道如何通过他们走,并删除他们对这些问题都是坏的注释。

除非我可以清理这些对象引用,除去附加的扩建一个后历史上失踪的对象编辑有内容注释时,开始越来越ZODB BrokenObject错误。

回答

5

也就是说讨厌。插件的另一个原因应该只对所有数据存储使用原始类型。

我有一些伪代码,可能让你关闭:

repo_tool = getToolByName(obj, "portal_repository") 
    if not repo_tool.isVersionable(obj): 
     return 
    history = repo_tool.getHistoryMetadata(obj) 
    if not history: 
     return  
    length = history.getLength(countPurged=False) 
    for i in xrange(length - 1, -1, -1): 
     try: 
      version = repo_tool.retrieve(obj, i) 
      annotations = IAnnotations(version.object) 
      del annotations[KEY_TO_DELETE] 
     except POSKeyError: 
      pass