the problem with this is not the names. ;-)
Consider the case of preupdate and onupdate.
db(db.person.age>18).update(can_drink=True)
What information should be passed to preupdate and update? tablename?
query? {'can_drink':True}? Number of affected records? Should there be
one onselect per table? We do not want to call onupdate for every
table, do we (performance issues)?
What about?
db(db.person.id=2).update(can_drink=True)
What about
db(db.person).select(left=db.dog.on(db.dog.owner==db.person.id),limitby=(0,1))
What should we pass to onselect? query? left? limitby? all arguments?
number of returned records? returned records? In this case we cannot
pass one table because because more than one table may be involved.
Every one of those callbacks would need a different signature. It
would not be obvious and I am not sure people would agree.
I do not oppose to this. I just want to hear more from you.
Massimo
On Oct 11, 4:57 pm, Bruno Rocha <[email protected]> wrote:
> Would be nice to have some global events in web2py workflow. I can imagine
> some useful hooks:
>
> workflow global events:
>
> onrequest # before the execution of action/model
>
> prerender # after the execution of action/model but before the view
> rendering
>
> onrender # after the view render but before the output
>
> onresponse # after all the request process finished.
>
> DAL global events:
>
> preselect - onselect
> preinsert - oninsert
> preupdate - onupdate
> predelete - ondelete
>
> ASPnet has some usefull event system (oninit, onload, pageload etc..)
>
> I dont even know if it is possible to trigger all of them in web2py and how
> can it cost. but would be nice to have it.
>
> http://zerp.ly/rochacbruno
> Em 11/10/2011 17:23, "Massimo Di Pierro" <[email protected]>
> escreveu:
>
>
>
>
>
>
>
> > Not yet at the db level but at the form level:
>
> > form=SQLFORM(...).process(onsuccess=lambda form:...)
>
> > On Oct 11, 3:11 am, Manuele <[email protected]> wrote:
> > > Hi,
> > > is there a way to trigger some functions on database eventes, for
> > > example on new record?
>
> > > thanks a lot
>
> > > Manuele