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
>>>
>>

Reply via email to