Есть хороший список ссылок для имен шагов импорта 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.