I have a transmogrifier pipeline to insert objects to my Zope database (importing zexp files from a directory structure). This works - the objects are created; but I don't get them added to the portal_catalog.
I added a section to add the objects to the catalog explicitly, inspired by plone.app.transmogrifier.reindexobject
: I call portal_catalog.catalog_object(obj)
for each item.
The objects exist, and getPhysicalPath
yields the correct values, but the objects are not added. There is no error message or exception whatsoever.
I tried to specify the list of indexes (the idxs
argument), but this didn't change anything. If not specified, all indexes should be filled anyway, right?
Since it looks like a transaction
problem to me (no errors, but nothing stored in the catalog either), I tried transaction code (begin, savepoint, commit, and in case of exceptions abort), but it didn't help. When I call the catalog immediately after the catalog_object
call (portal_catalog(path='/Plonesite/full/path/to/object')
), nothing has happened, and an empty list is returned.
The catalog does contain objects; even objects of my custom datatypes (AT-based). Not even the Folder
objects of my imports are indexed.
Without the objects in the catalog, my import is useless. What can I do?
Thank you!
Edit: Any hint about how to get my object trees in the catalog is appreciated! Even if it can't be integrated in my process. I need the contents cataloged ...
My custom content types are contained in the Plone Catalog Tool
page selection field, but I don't know whether this is sufficient.
Edit 2:
Somehow my objects have been catalogued - the unrestrictedSearchResults
method shows them! However, it can't be the desired solution to use this method all over; so I need to "un-restrict" the entries somehow.
It turned out that I have a monkey:patch
(xmlns:monkey="http://namespaces.plone.org/monkey"
) for the Products.CMFPlone.CatalogTool.CatalogTool.searchResults
method; this filters the catalog for my additional field subportal
unless a special value for it is given - even in the management view ... Unfortunately, I had no way to specify this special value in that view.
Thus, the solution was to weed out all wrong values (for subportal
s which don't exist in the other Zope tree) to have the default value take effect.
Quite specific to my setup, I'm afraid ...