On Mon, 2010-05-03 at 23:33 -0400, Chris McDonough wrote:
On Mon, 2010-05-03 at 12:55 -0700, Sam Brauer wrote:
Hi there! I'm a long-time Zope 2 user finally trying to do a demo project
with Repoze.bfg.
First
off, congratulations to everyone developing Repoze! You've really
cherry picked the best concepts from Zope and packaged them in a lean
modern framework.
My demo project was going along very well
until I tried to wire up some subscribers for repoze.folder events; my
subscriber callbacks don't seem to be firing. After trying a few days
to figure out the problem, I think I need to ask for help. I've tried
to come up with a small example to demonstrate the problem, and I'd be
very grateful for any help. I feel like I'm missing something that
should be obvious.
Hi Sam,
The events sent by repoze.folder are object events, which are events
dispatched based on *two* interfaces (the context interface and the
event interface). Here's an example from KARL:
subscriber
for=repoze.lemonade.interfaces.IContent
repoze.folder.interfaces.IObjectAddedEvent
handler=.subscribers.index_content/
Hopefully this helps,
Sorry, I should have also provided the subscribers.index_content
function so you could see its argument list:
def index_content(obj, event):
Index content (an IObjectAddedEvent subscriber)
catalog = find_catalog(obj)
if catalog is not None:
for node in postorder(obj):
if is_content(obj):
path = model_path(node)
docid = getattr(node, 'docid', None)
if docid is None:
docid = node.docid = catalog.document_map.add(path)
else:
catalog.document_map.add(path, docid)
catalog.index_doc(docid, node)
___
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev