2011-10-19 30 views
5

Có danh sách tham chiếu toàn diện về các tên bước nhập thiết lập chung không?Có danh sách tham chiếu tốt cho tên của các bước nhập genericsetup

Tên của các bước nhập thiết lập chung không phải lúc nào cũng khớp với tên của tệp xml tương ứng của chúng, ví dụ 'types.xml' có bước nhập được gọi là 'typeinfo'.

Trong trường hợp không có danh sách, tôi sẽ hài lòng với cách tiếp cận đơn giản để tìm ra tên của bước nhập. Ví dụ: tên bước nhập cho plone.app.registry được quản lý bởi tệp 'registry.xml' không rõ ràng, tôi đã cố gắng gọi nó là 'đăng ký' nhưng không thành công, xem mã bên dưới:

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

Và kết quả là:

ValueError: No such import step: registry 

Trả lời

7

Bạn nên cố gắng này:

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

chỉnh sửa:

thực này sẽ cung cấp cho bạn danh sách đầy đủ (tôi đã thử nghiệm nó thời gian này):

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

... và nếu bạn muốn biết thêm siêu dữ liệu sử dụng này:

>>> 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

Tôi cố gắng đó và nhận được kết quả như sau: '[u'languagetool', u'portal-transforms-khác nhau]' –

+0

tôi thấy, đó là một chút không đầy đủ, đúng không ?! Tôi đã cập nhật câu trả lời của mình. –

2

Những gì tôi đã kết thúc làm là như sau: đi vào plone/app/registry/exportimport/configure.zcml tập tin mà tên đã được đăng ký như:

<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>` 

Hóa ra t tên của bước nhập đã được đăng ký là 'plone.app.registry'

Vì vậy, về cơ bản tôi phải tìm hiểu mã nguồn để tìm nơi importStep được đăng ký.

Các vấn đề liên quan