| 178 | | * '''module''' = name of the module of the primary resource |
| 179 | | * '''resource''' = name of the primary resource |
| 180 | | * '''jmodule''' = name of the module of the joined resource (if any, maybe None) |
| 181 | | * '''jresource''' = name of the joined resource (if any, maybe None) |
| 182 | | * '''method''' = name of the method |
| 183 | | * '''action''' = the function or lambda to invoke for that method (to remove a plug-in action, just pass None here) |
| | 178 | * '''module''' = prefix of the module of the primary resource |
| | 179 | * '''resource''' = name of the primary resource (without module prefix) |
| | 180 | * '''component=None''' = tablename of the component (if this method applies to a component) |
| | 181 | * '''method=None''' = name of the method |
| | 182 | * '''action=None''' = the function or lambda to invoke for that method (to remove a plug-in action, just pass None here) |
| 187 | | * '''module''' |
| 188 | | * '''resource''' |
| 189 | | * '''record_id''' |
| 190 | | * '''method''' |
| 191 | | * '''jmodule=None''' |
| 192 | | * '''jresource=None''' |
| 193 | | * '''jrecord_id=None''' |
| 194 | | * '''joinby=None''' |
| 195 | | * '''multiple=True''' |
| 196 | | * '''representation="html"''' |
| 197 | | * '''onvalidation=None''' |
| 198 | | * '''onaccept=None''' |
| | 186 | * '''jr''' = an object of the type XRequest containing all data about the request |
| | 187 | * '''onvalidation=None''' = function to called at create/update directly before writing to the database |
| | 188 | * '''onaccept=None''' = function to be called at create/update directly after writing to the database |
| | 189 | |
| | 190 | The onvalidation/onaccept callback functions take a dictionary as argument that contains a {{{Storage()}}} object {{{vars}}} with fieldname=value pairs. They must not be invoked when operating on component records, instead use {{{s3xml.model.get_attr(component_tablename, "onvalidation")}}} to retrieve the respective callbacks for the component. |