[zope2-tracker] [Bug 649605] [NEW] "Copy to present" button doesn't drop _v_ attributes
ChrisW
649605 at bugs.launchpad.net
Tue Sep 28 03:35:05 EDT 2010
Public bug reported:
...which results in this buggy behaviour:
- edit a page template
- edit it again
- go to the history tab, and use the "Copy to present" button to bring
back your first edit.
On the edit tab, you will correctly see the text you brought back.
However, if you render the template, the old text will be used.
It's only if you "Save changes" that the copied-to-present text will
actually be used.
Marius says this is because the precompiled TAL bytecode is sitting there in a
_v_program attribute that's not stored in the ZODB, so it's not reverted
when you undo things.
How to fix? Make the "Copy to present" button drop all _v_* attributes
from the object it modifies.
This is OFS.History.Historical.manage_historyCopy, right? Quick
untested patch:
--- ./OFS/History.py.orig 2010-09-28 02:11:56.535745440 +0300
+++ ./OFS/History.py 2010-09-28 02:12:00.043764683 +0300
@@ -151,6 +151,9 @@
base = aq_base(self)
base._p_activate() # make sure we're not a ghost
base.__setstate__(state) # change the state
+ for attr in dir(base):
+ if attr.startswith('_v_'):
+ delattr(base, attr)
base._p_changed = True # marke object as dirty
self.manage_afterHistoryCopy()
** Affects: zope2
Importance: High
Status: Confirmed
--
"Copy to present" button doesn't drop _v_ attributes
https://bugs.launchpad.net/bugs/649605
You received this bug notification because you are a member of Zope 2
Developers, which is subscribed to Zope 2.
More information about the zope2-tracker
mailing list