Help

0

Change Report Template to Internal Layout

I'd like to change the layout used by some of the default Odoo's report templates. So for example, the next code could be the first lines of the Stock Picking report:

<?xml version="1.0" encoding="utf-8" ?>

<odoo>
<data>
<template id="report_picking">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.external_layout">

But I'd like to change the t-call to 

<t t-call="web.internal_layout">

But if do so, I will have to copy all the content of the template inside my new t-call="web.internal_layout" ...

What I've currently done, is this here:

<?xml version="1.0" encoding="utf-8" ?>

<odoo>
<data>
<template id="stock.report_picking">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.internal_layout">

Overriding the original template, but this approach doesn't look a really solution, so I'm not following the inheritance flow (inherit_id), and here below is what I'd like hypothetically to do, but seems to be imposible to reach and alter the t t-call tag:

<?xml version="1.0" encoding="utf-8" ?>

<odoo>
<data>
<template id="my_new_picking_template" inherit_id="stock.report_picking">
<xpath expr="//t/t/t" position="attributes">
<attribute name="t-call">web.internal_layout</attribute>
</xpath>

Is something like this or something similar possible? :)

头像
丢弃
1 答案
4
Avatar
Malay B Khamar
Best Answer

Hello,

You can also use the xpath like this:

        <xpath expr="//t[@t-call='web.external_layout']" position="attributes">
            <attribute name="t-call">web.internal_layout</attribute>
        </xpath>

Hope it will work for you.

Thanks,

1 备注
头像
丢弃

OOh!, I don't know how I didn't see that before, thanks :), I was trying to 'replace' that tag but that was a bad idea.