On Monday 07 January 2002 07:38 am, kapil thangavelu allegedly wrote:
On Monday 07 January 2002 06:20 am, Casey Duncan wrote: [snippingtons]
I am interested in seeing this code. From my perspective it seems overly sophisticated. I'm interested how you derive the registration time in the first place.
your right, what i did was overly complex. i took your suggestions and simplified to the following two methods, which stores the txn registration time on the object as a float. it looks like an ok solution, imo. it doesn't do much for newly created persistent objects for which it falls through to the behavior of bobobase_modification_time and returns the current time.
in PersistentUtil class in lib/python/App/PersistentExtra.py new method
from Acquisition import aq_base def getModificationTime(self): ob = aq_base(self) if hasattr(ob, '_p_changed') and ob._p_changed: return DateTime(self._p_registration_time) else: return self.bobobase_modification_time()
in Transaction class in lib/python/ZODB/Transaction.py altered register method
def register(self, object): self._append(object) object._p_registration_time = time.time()
That looks nice and simple to me. Does anyone have a concern about the behavior for new objects? (I'm not sure what can be done about it...) If no one objects I can check this into the core. /---------------------------------------------------\ Casey Duncan, Sr. Web Developer National Legal Aid and Defender Association c.duncan@nlada.org \---------------------------------------------------/