Есть хороший список ссылок для имен шагов импорта genericsetup - PullRequest
5 голосов
/ 19 октября 2011

Существует ли полный справочный список имен шагов импорта общих настроек?

Имена общих шагов импорта установки не всегда совпадают с именами соответствующих им XML-файлов, например, у types.xml есть шаг импорта, называемый typeinfo.

В отсутствие списка я был бы доволен простым подходом к определению имени шага импорта. Например, имя шага импорта для plone.app.registry, которым управляет файл 'registry.xml', неочевидно, я попытался назвать его '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

Ответы [ 2 ]

7 голосов
/ 19 октября 2011

Вы должны попробовать это:

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

edit :

на самом деле это даст вам полный список (я проверялна этот раз):

>>> 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}
2 голосов
/ 19 октября 2011

Я закончил следующим образом: перейдите в файл 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.

...