2011-10-19 17 views
5

是否有通用安裝導入步驟名稱的綜合參考列表?是否有一個很好的參考列表,用於通用安裝導入步驟的名稱

通用安裝程序導入步驟的名稱並不總是與其對應的xml文件的名稱匹配,例如'types.xml'有一個名爲'typeinfo'的導入步驟。

在沒有列表的情況下,我會滿意一個簡單的方法來找出導入步驟的名稱。例如它是由「registry.xml」文件管理爲plone.app.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 

回答

7

你應該試試這個:

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} 
+0

我試過了,得到了以下的輸出: '[u'languagetool」,u'portal - 變換 - 各種]' –

+0

我明白了,這是一個有點不完整的,沒有它?我已經更新了我的答案。 –

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登記。

相關問題