2015-10-20 11 views
1

我有一個transmogrifier管道將對象插入我的Zope數據庫(從目錄結構導入zexp文件)。這工作 - 對象被創建;但我不會將它們添加到portal_catalog。Plone:catalog_object方法不會添加我的(AT)對象

我添加了一個部分,明確地將對象添加到目錄,靈感來自plone.app.transmogrifier.reindexobject:我爲每個項目調用portal_catalog.catalog_object(obj)

存在對象,getPhysicalPath會生成正確的值,但不添加對象。沒有任何錯誤信息或異常。

我試圖指定索引列表(idxs參數),但是這並沒有改變任何東西。如果沒有指定,所有索引都應該填寫,對吧?因爲它看起來像我transaction問題(沒有錯誤,但沒有存儲在目錄中),我嘗試了事務代碼(開始,保存點,提交,並在異常中止的情況下),但它沒有幫幫我。當我在catalog_object呼叫(portal_catalog(path='/Plonesite/full/path/to/object'))後立即致電目錄時,沒有發生任何事情,並返回一個空列表。

該目錄確實包含對象;甚至是我自定義數據類型的對象(基於AT)。即使我的導入的Folder對象沒有被索引。

沒有目錄中的對象,我的導入沒用。我能做什麼?

謝謝!

編輯:有關如何讓我的對象樹在目錄中的任何提示,讚賞!即使它不能被整合到我的過程中。我需要內容編目...

我的自定義內容類型包含在Plone Catalog Tool頁面選擇字段,但我不知道這是否足夠。

編輯2: 不知怎的,我的對象被編目 - the unrestrictedSearchResults method顯示他們!但是,它不可能是全面使用這種方法的理想解決方案;所以我需要以某種方式「解除」限制條目。

+1

不是你原來的問題解決,但你仍然可以去到ZMI並點擊「清理並重建」目錄中的工具按鈕。 它會索引你的所有對象。 –

+1

+1 keul說的。我的記憶對此很朦朧,但我似乎記得plone.app.transmogrifier.reindexobject沒有爲我工作,因爲我預期。我通常不得不在轉化過程中手動重建目錄。我也很想知道是否有另一種方法。 – Danimal

+0

我知道'清理和重建'行爲;可悲的是,它並沒有幫助(還)。可能我的物品仍然存在問題,但我懷疑是原因的領域並沒有做到這一點...... – Tobias

回答

0

原來,我有一個monkey:patchxmlns:monkey="http://namespaces.plone.org/monkey")爲Products.CMFPlone.CatalogTool.CatalogTool.searchResults方法;這將篩選我的附加字段subportal的目錄,除非給出特殊值 - 即使在管理視圖中...不幸的是,我無法在該視圖中指定此特殊值。

因此,解決方法是清除所有錯誤的值(對於其他Zope樹中不存在的subportal),使默認值生效。

相當具體到我的設置,我怕......