This question has been flagged
1 Reply
22685 Views

I have seen references to functions such as "formatLang" or "round", but I can't find any documentation anywhere.  Anybody know where there is a complete list of functions that can be used inside of a Qweb template?

Avatar
Discard
Best Answer

Hi Jeff,

By default qweb has a few methods and variables set in the context readily available.You can also add your own through the use of a custom parser

In order to get the "full list" you can add t-debug="pdb" to a element from inside the report template which adds a breakpoint in the code

Once you have done this when you print the report the breakpoint should hit and will await your input in the console.You can then do "pp qwebcontext" which does a pretty_print on the qwebcontext dictionary revealing the available context of the report

Avatar
Discard
Author

Thanks, Paul. That provides some interesting insights. Is that a python thing, as opposed to an Odoo thing? Is that why I couldn't find much about it in the Odoo documentation? Should I also assume that "formatLang" and "round" are just python functions? Does that mean you can use any python function inside a t-field call?

Author

What I was really after in my question is a list of Odoo things that can be done in t-field or t-field-options.

That is correct the formatLang and round methods are python functions which are brought into the scope of the report through the qwebcontext dictionary which you can view as I advised.Regarding the t-field it is especially designed to receive odoo object properties and as for t-options they are a few preset options designed by Odoo to enhance the display experience even more For python expressions you might want to use t-esc and t-raw: more information on these here: http://odoo-80.readthedocs.org/en/latest/reference/qweb.html

I'm using PyCharm with Odoo9. I've used t-debug="pdb" inside the template. While report printing, there is no breakpoint hit, it just completes the report printing. Any ideas?

If you are on version 9 then you must add the --debug option when starting the server. There also should be a warning in the console if you've missed it. If that's not the case you should check that the t-debug is not within another t-if and the node is not reached.