Есть хороший список ссылок для имен шагов импорта genericsetup

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

Имена общих шагов импорта установки не всегда совпадают с именами соответствующих им 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 ответа

Решение

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

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}

То, что я закончил, было следующим: 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.

Другие вопросы по тегам