私はfolderish器用のコンテンツタイプを持っており、私はイベント加入者を持っています。コンテンツタイプが作成されると、いくつかのパラメータに従ってコンテナ内の子を表示するCollectionを作成します。コレクションが作成された後、私はコンテナのデフォルトページをコレクションに設定しようとします。 configure.zcmlPlone - イベントサブスクライバのデフォルトページを設定するにはどうしたらいいですか?
残念ながら<subscriber
for="my.product.my_container.IMyContainer
zope.lifecycleevent.interfaces.IObjectAddedEvent"
handler=".events.myContainerAdded" />
で
def myContainerAdded(my_container, event):
#get container
#set advanced query for collection
#create collection with api.create
my_container.setDefaultPage(new_collection.id)
加入者は、デフォルトのページが完全に設定されていません。コンテナページが表示されますが、コレクションは[表示]ドロップダウンで選択されています。 「既定のビューとしてコンテンツアイテムを変更する」をクリックしてコレクションを選択すると、既定のページがコレクションに変更されます。
以前、私は "setuphandler"を使ってフォルダ構造を設定しました(addイベントではなく)、setDefaultPageは動作していました。私はイベントを通してこれを試みているので、私はステップを忘れていますか?
私はplone.4.3を使用しています。
編集:私も試してみました:
my_container.default_page = new_collection.id
編集: 私は何か面白いものを見つけました。私はイベント加入者のコレクションに関連するコードを一時的にコメントアウトしました。私は手動でコンテナオブジェクトにコレクションを追加し、コンテナのデフォルトページをコレクションに設定しました。コンテナのデフォルトページはコレクションでした。
何かがインデックスに登録されていない可能性がありますか?
とき、私は/ビュー部分を気づいたはずですオブジェクトが最初に作成されました。実際には、ナビゲーションも正しいページを指していました。 あなたが投稿したソリューションをありがとう。それは有り難いです。 –
それを認識するのにも私は1〜2時間かかりました。バグでもあります。質問していただきありがとうございます。私は関連することに取り組んでおり、適切なタイミングで適切なアイデアが得られました:-)あなたが探していると感じたら、バグレポートが既に存在するか報告したら、チケットへのリンクを残してください(GitHubの問題)、ここに。あなたは月曜日の資金を欲しいと思っています! –