Commit Graph
5 Commits
Author SHA1 Message Date
Aaron Bohy b558cb7996 [FIX] web: qweb old inheritance mechanism
Before this commit, defining a extension of a template by using the
combination of directives 't-name' and 't-extend' ignored potential
extensions that could have been defined beforehand.

For instance, let's assume the following templates.
```xml
<t t-name="a">
    <div><span>1</span></div>
</t>
<t t-extend="a">
    <t t-jquery="span" t-operation="replace">
        <span>2</span>
    </t>
</t>
<t t-name="b" t-extend="a">
    <t t-jquery="div" t-operation="append">
        <span>b</span>
    </t>
</t>
```
Rendering template "b" displayed "1b" whereas we would expect "2b".

Moreover, when the extended template is itself an extension of
another template:
```xml
<t t-name="a">
    <div><span>a</span></div>
</t>
<t t-name="b" t-extend="a">
    <t t-jquery="div" t-operation="append">
        <span>b</span>
    </t>
</t>
<t t-name="c" t-extend="b">
    <t t-jquery="div" t-operation="append">
        <span>c</span>
    </t>
</t>
```
Rendering template "a" displayed "a", template "b" displayed "ab",
but template "c" displayed "ac", whereas we would expect "abc".

With this commit, other extensions done to a template are kept when
a new extension is defined. It relies on the templates order, and
takes into account all extensions that have *already* been defined.
This is exactly how the new qweb inheritance mechanism (using
't-inherit' and 't-inherit-mode') behaves.

closes odoo/odoo#54315

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2020-07-10 11:53:23 +00:00
Martin Trigaux 2087fb5aa9 [FIX] web: support full attribute syntax
Only the syntax
<t t-operation="attributes">
    <attribute name="foo">bar</attribute>
</t>

was currently supported for attributes while the syntax

<t t-operation="attributes">
    <attribute name="foo" value="bar" />
</t>

Is also correct and supported server side.

Using value instead of the node content is needed to avoid translating the node
while it is parsed by babel to extract translatable content
2019-01-30 15:23:50 +00:00
Xavier Morel 494dcbd0e3 [IMP] qweb doc, tests
* document qweb based (mostly) on JS version
* convert JS qweb tests to (mostly) language-independent XML so they can be
  used for JS and Python implementations
* add some more tests (e.g. precedence between t-value and body in t-set)
* remove ``t-import``
* fix parity in foreach(dict) (and rename some variables to make array and
  object versions more similar)
2014-10-06 19:13:43 +02:00
Xavier Morel d5a0079d09 [IMP] LOWERCASE ALL THE THINGS
MSIE serializes nodes to UPPERCASE EVERYTHING (unless the known are generic/unknown), which breaks tests as JS doesn't really have case-insensitive comparisons

bzr revid: xmo@openerp.com-20120118110118-pfiy1n2g4yhfjtso
2012-01-18 12:01:18 +01:00
Antony Lesuisse bedfc48dcf rename base into web part1
bzr revid: al@openerp.com-20110905110309-egx167t1ni1fzho1
2011-09-05 13:03:09 +02:00