[Grok-dev] Indexes not updated on object modification
Àlex Magaz Graça
rivaldi8 at gmail.com
Wed Dec 7 18:47:00 UTC 2011
Hi,
I'm getting indexes updated on object creation but not when they are
modified, unless I call ICatalog.updateIndexes(). Shouldn't the catalog
be notified about modifications and update affected indexes?
This is more or less what I have:
class Helpdesk(grok.Application, grok.Container):
def __init__(self):
super(Helpdesk, self).__init__()
self["tickets"] = TicketCatalog()
class TicketCatalog(grok.Container):
pass
class Ticket(grok.Model):
def __init__(self, reporter):
super(Ticket, self).__init__()
self.reporter = reporter
class TicketIndex(grok.Indexes):
grok.site(Helpdesk)
grok.context(Ticket)
reporter = grok.index.Field()
After adding an object I get it from searchResults:
ticket1 = Ticket("foo")
context["1"] = ticket1
catalog = getUtility(ICatalog)
results = catalog.searchResults( reporter=("bar", "bar") )
(results empty)
here "context" would be an instance of TicketCatalog. However, if later I
decide to modify the stored object, the index is not updated and
searchResults
still gives me the same results:
ticket1.reporter = "bar"
catalog = getUtility(ICatalog)
results = catalog.searchResults( reporter=("bar", "bar") )
(results empty again)
catalog.updateIndexes()
results = catalog.searchResults( reporter=("bar", "bar") )
(I get the ticket)
Is there anything wrong?
Thanks,
Àlex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.zope.org/pipermail/grok-dev/attachments/20111207/77caadf8/attachment.html>
More information about the Grok-dev
mailing list