5

是否有通用设置导入步骤名称的综合参考列表?

通用设置导入步骤的名称并不总是与其对应的 xml 文件的名称匹配,例如“types.xml”有一个名为“typeinfo”的导入步骤。

在没有列表的情况下,我会对找出导入步骤名称的简单方法感到满意。例如,由“registry.xml”文件管理的 plone.app.registry 的导入步骤名称并不明显,我试图将其称为“registry”,但失败了,请参见下面的代码:

from Products.CMFCore.utils import getToolByName
PROFILE_ID = 'profile-my.package:default'
setup = getToolByName(context, 'portal_setup')
setup.runImportStepFromProfile(PROFILE_ID, 'registry')

结果是:

ValueError: No such import step: registry
4

2 回答 2

8

你应该试试这个:

stepregistry = portal.portal_setup.getImportStepRegistry()
stepregistry.listSteps()

编辑

实际上,这将为您提供完整的列表(这次我已经对其进行了测试):

>>> portal.portal_setup.getSortedImportSteps()
(u'PloneSurvey_various', u'rolemap', u'sharing', u'plone-difftool',...

...如果您想要更多元数据,请使用:

>>> portal.portal_setup.getImportStepMetadata('jsregistry')
{'handler': 'Products.ResourceRegistries.exportimport.jsregistry.importJSRegistry', 'description': u'Import javascript registry', 'version': None, 'title': u'Javascript registry', 'dependencies': (u'toolset', u'componentregistry'), 'id': u'jsregistry', 'invalid': False}
于 2011-10-19T12:59:13.630 回答
2

我最终做的事情如下:进入plone/app/registry/exportimport/configure.zcml名称注册为的文件:

<gs:importStep

    name="plone.app.registry"

    title="Manage the configuration registry"

    description="Add or remove records, or change values"

    handler=".handler.importRegistry">
    <depends name="componentregistry"/>

    <depends name="toolset"/>`

</gs:importStep>`

原来导入步骤的名称已注册为“plone.app.registry”

所以基本上我不得不深入研究代码以找出 importStep 的注册位置。

于 2011-10-19T16:50:44.370 回答