My fault, it's a ZODB list, not a Zope one. Perhaps you should have a look at the unit tests in TransactionalUndoStorage.py.
This one is rather explicit : def checkTwoObjectUndo(self): eq = self.assertEqual # Convenience p31, p32, p51, p52 = map(zodb_pickle, map(MinPO, (31, 32, 51, 52))) oid1 = self._storage.new_oid() oid2 = self._storage.new_oid() revid1 = revid2 = ZERO # Store two objects in the same transaction t = Transaction() self._storage.tpc_begin(t) self._transaction_begin() self._transaction_store(oid1, revid1, p31, '', t) self._transaction_store(oid2, revid2, p51, '', t) # Finish the transaction self._transaction_vote(t) revid1 = self._transaction_newserial(oid1) revid2 = self._transaction_newserial(oid2) self._storage.tpc_finish(t) eq(revid1, revid2) # Update those same two objects t = Transaction() self._storage.tpc_begin(t) self._transaction_begin() self._transaction_store(oid1, revid1, p32, '', t) self._transaction_store(oid2, revid2, p52, '', t) # Finish the transaction self._transaction_vote(t) revid1 = self._transaction_newserial(oid1) revid2 = self._transaction_newserial(oid2) self._storage.tpc_finish(t) eq(revid1, revid2) # Make sure the objects have the current value data, revid1 = self._storage.load(oid1, '') eq(zodb_unpickle(data), MinPO(32)) data, revid2 = self._storage.load(oid2, '') eq(zodb_unpickle(data), MinPO(52)) # Now attempt to undo the transaction containing two objects info = self._storage.undoInfo() tid = info[0]['id'] t = Transaction() self._storage.tpc_begin(t) oids = self._storage.transactionalUndo(tid, t) self._storage.tpc_vote(t) self._storage.tpc_finish(t) eq(len(oids), 2) self.failUnless(oid1 in oids) self.failUnless(oid2 in oids) data, revid1 = self._storage.load(oid1, '') eq(zodb_unpickle(data), MinPO(31)) data, revid2 = self._storage.load(oid2, '') eq(zodb_unpickle(data), MinPO(51)) self._iterate() On Apr 12, 2005 2:55 PM, Stefan Milenkovic <[EMAIL PROTECTED]> wrote: > Maybe I should have precised that I don't use Zope. I just use ZODB as > a standalone database which is accessed by some Python code... > > Thanks, > > Stefan > > > On Apr 12, 2005 2:18 PM, Patrick DECAT <[EMAIL PROTECTED]> wrote: > > I believe you should then use the manage_undo_transactions method as > > used in the undo.dtml form. > > > > Something like: > > context.manage_undo_transactions(transaction_info=('QTF5TVlhNjdtTXc9')) > > > > HTH, > > Patrick. > > > > On Apr 12, 2005 2:09 PM, Stefan Milenkovic <[EMAIL PROTECTED]> wrote: > > > Hello, > > > > > > Thank you for your answer! But my problem is not exactly this one. In > > > fact I have a committed transaction and I want to undo it. It doesn't > > > concern the current transaction... > > > > > > Maybe my first question was not clear... > > > > > > Thanks, > > > > > > Stefan > > > > > > > > > On Apr 12, 2005 12:28 PM, Patrick DECAT <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > > > > > if you want to abort the current transaction, here is a sample > > > > inspired from Zope's code: > > > > def some_method(self, REQUEST, RESPONSE): > > > > """Do stuff""" > > > > try: > > > > # Do important stuff > > > > RESPONSE.setStatus(204) > > > > except: > > > > RESPONSE.setStatus(500) > > > > get_transaction().abort() > > > > > > > > return RESPONSE > > > > > > > > HTH, > > > > Patrick. > > > > > > > > On Apr 12, 2005 11:24 AM, Stefan Milenkovic <[EMAIL PROTECTED]> wrote: > > > > > Hello, > > > > > > > > > > I am relatively new to ZODB and I have to work for some reasons with > > > > > the transactions. > > > > > > > > > > I am trying to undo a transaction, but until now it has been > > > > > unsuccessful. Maybe I don't know how to do it exacltly... > > > > > > > > > > So is there someone who can give me a small example of a transaction > > > > > undo? > > > > > > > > > > Thanks in advance, > > > > > > > > > > Stefan > > > > > _______________________________________________ > > > > > For more information about ZODB, see the ZODB Wiki: > > > > > http://www.zope.org/Wikis/ZODB/ > > > > > > > > > > ZODB-Dev mailing list - ZODB-Dev@zope.org > > > > > http://mail.zope.org/mailman/listinfo/zodb-dev > > > > > > > > > > > > > > > _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev