Hi Again, I tried adding a method using: def SomeMethod(fields,res): print "inside SomeMethod"
db.my_table._after_insert.append(SomeMethod) but nothing seems to happen. Is it possible that the implementation of the adapters does not call the methods inside _after_insert, _after_update and _after_delete? Best wishes, Omri On Monday, June 11, 2012 3:06:35 PM UTC+2, Omri Har-Shemesh wrote: > > Hi Anthony, > > thanks for the reply! > I have been looking at the code and there is something I don't really > understand (sorry for a noob question): > when the functions get called, they are called using a pattern: > > ret = ... > ret and [f(fields,ret) for f in self._after_insert] > return ret > > The question is - should the function I define return something? > Is the result of the function call used somehow, somewhere? > > I suspect that using ret and [] is simply in order to invoke the functions, > but then I don't understand why not use something like > [f(fields,ret) for f in self._after_insert] > without using the and operator. > > Best wishes, > Omri > > On Wednesday, June 6, 2012 3:44:46 PM UTC+2, Anthony wrote: >> >> In trunk, there are now triggers for DAL tables: >> >> self._before_insert = [] >> self._before_update = [lambda self,fs:self.delete_uploaded_files( >> fs)] >> self._before_delete = [lambda self:self.delete_uploaded_files()] >> self._after_insert = [] >> self._after_update = [] >> self._after_delete = [] >> >> You could define a function that stores a timestamp in the cache and add >> it to the three "_after_" triggers for the relevant tables. Then just check >> the timestamp to see if it is more recent than the last request. To >> determine the time of the last request, you could store a timestamp in the >> session upon each request (so it will be specific to each user). >> >> Anthony >> >> On Wednesday, June 6, 2012 5:30:56 AM UTC-4, Omri Har-Shemesh wrote: >>> >>> Is it possible to watch a table for changes and define a callback >>> whenever the table is changed? >>> I am trying to implement a mechanism where the client is asking for data >>> every 5 seconds from the server >>> and the server should only return not a null value whenever the data has >>> changed. The problem is that >>> the data is quite complex and is inferred from several tables. >>> Therefore, in order to save processing time, >>> I want to calculate this data and return it only when I know it has >>> changed. >>> >>> Thanks, >>> Omri >>> >>