Я разрабатываю продукт для Plone, скажем foo.core
. Помимо этого основного продукта, есть также несколько связанных продуктов. как foo.optional
. Эти выпущенные продукты могут быть доступны в экземпляре, и если они доступны, они могут быть установлены (другими словами: я не могу предположить, что код доступен или, если он есть, его следует использовать).
Эти сопутствующие продукты могут переопределять настройки, установленные foo.core
(например, в ведомости свойств). Это работает нормально, но если я переустановлю foo.core
, настройки по умолчанию вернутся. Я хотел бы как-нибудь автоматически переустановить foo.optional
, когда foo.core
переустановлен в QuickInstaller.
Я мог бы предложить следующие решения:
- Когда установлена
foo.optional
, она
регистрируется с foo.core
.
последний, foo.core
, будет обрабатывать
переустановка всех зарегистрированных
продукты, когда основной пакет
переустанавливать.
- Пакет
foo.core
запускает событие, которое другое
пакеты, такие как foo.optional
, могут
Слушай. Обработчик события будет
затем вызвать переустановку
foo.optional
.
- Убедитесь, что
foo.core
не перезаписывает настройки, которые
может быть настроен позже
другие продукты.
Возможно, есть еще альтернативы? Каким был бы подход «Плониш»?
Редактировать: Я знаю, что использование шагов обновления может быть лучше, чем переустановка продукта. Однако ИМХО проблема остается той же: профиль общей настройки, используемый для этапа обновления, может иметь параметр, который изменяется в профиле общей настройки для пакета foo.optional
.
Так что использование шагов обновления делает мою проблему еще сложнее: как мне определить, следует ли переустановить / обновить шаг обновления foo.core
, означающий foo.optional
? (Предполагается, что foo.core
в принципе не знает о foo.optional
.)