hi all! as i had time to look at all the stuff, i realized, that i'm getting closer, but this is not exactly what i wanted...
as i can see from the path, one has to call: beforeCommitHook(method, **args, **kwargs) on each transaction, correct? this is contrary to my idea of everything doing it's work "automagically". what i want is a kind of callback to each dirty object, something like this: class Transaction(...): def commit(self, ...): # insert this: for object in self._objects: try: object._before_transaction_commit() except AttributeError: pass # rest of original commit() follows... could this impose any unforseen behaviour? btw: what version of the two following is better (i.e. faster and more elegeant, i do python coding since abt. 6months only...) try: object._before_transaction_commit() except AttributeError: pass or hook = object.get('_before_transaction_commit', None) if hook: hook() another question: is it hook() or hook(object) in the previous line? i never know if the self parameter has to be passed in if not called as self.method() - are there any (simple) rules? regards, juergen herrmann [ Florent Guillaume wrote:] > Dieter Maurer <[EMAIL PROTECTED]> wrote: >> Jürgen Herrmann wrote at 2005-6-17 14:19 +0200: >> >i make heavy use of indexes in my extension classes. these all inherit >> >from catalogpathaware, so i have to call object.reindex_object() on >> >each changed instance. calling it from attribute getters/setters f.ex. >> >is not a good idea, because changing 3 attributes will reindex the >> object >> >3 times. >> > >> >what i'd like to have is that such objects are reindexed automatically >> >before comitting a transaction. >> > >> >is it possible? where should i start looking in the source, is there >> >possibly a before_transaction_commit hook? >> >> It is impossible with "ZODB 3.2" (unless you patch >> "ZODB.Transaction.Transaction"). > > The CPSCompat module of CPS has monkey-patches that backport this from > ZODB 3.4, among others, to be used in Zope 2.7. > > http://svn.nuxeo.org/trac/pub/file/CPSCompat/trunk/PatchZODBTransaction.py > > Florent > >> "ZODB 3.4" (which is used for Zope 2.8/3.1) has hooks >> that makes it possible. > > > -- > Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D > +33 1 40 33 71 59 http://nuxeo.com [EMAIL PROTECTED] > _______________________________________________ > Zope maillist - Zope@zope.org > http://mail.zope.org/mailman/listinfo/zope > ** No cross posts or HTML encoding! ** > (Related lists - > http://mail.zope.org/mailman/listinfo/zope-announce > http://mail.zope.org/mailman/listinfo/zope-dev ) > _______________________________________________________________________ >> XLhost.de - eXperts in Linux hosting << Juergen Herrmann Weiherweg 10, 93051 Regensburg, Germany Fon: +49 (0)700 XLHOSTDE [0700 95467833] Fax: +49 (0)721 151 463027 ICQ: 27139974 - IRC: [EMAIL PROTECTED] WEB: http://www.XLhost.de _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )