Commit Graph
3 Commits
Author SHA1 Message Date
Alexandre Kühn dc31884dcf [FIX] base, tools: add pre_locate to apply_inheritance_specs
Revision on https://github.com/odoo/odoo/commit/fc5878ecc668ee83cd1a374474f0b21bf6a51940

Commit above introduced server-side inheritance of static XML.
To do so, it made some changes to the way inheritance of view
templates is applied, such as moving this logic outside of the record
`ir.ui.view`.

This change, however, removed the feature to overwrite these methods.
Studio did that in order to correctly apply `group_ids`[1][2].

This commit fixes the issue by introducing an optional callback
`pre_locate` as parameter of the methods `apply_inheritance_specs`.
When set, this function is called just before locating a node during
the application of inheritance of the view. Studio can make use of
this callback to handle group_ids properly, again.

[1] https://github.com/odoo/enterprise/commit/b56101200ac35dae3eadbc0bdf4ba17461f33907
[2] https://github.com/odoo/enterprise/commit/38f7eb8153df8406498fa58eb809271db778e6d8

Related to: https://github.com/odoo/enterprise/pull/5321

Task-Id 2047439

closes odoo/odoo#36200

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2019-08-30 11:41:12 +00:00
Christophe Simonis 140ee6b8f0 [MERGE] forward port branch saas-12.4 up to 98a55917a6 2019-08-14 16:48:10 +02:00
Lucas Perais (lpe)andJulien Mougenot fc5878ecc6 [IMP] base, web: static xml templates support serverside inheritance
QWeb templates that show up in the 'qweb' key of a module's manifest
now support server side inheritance and xpath evaluation

QWeb templates that show up in the xmlDependencies of a JS widget are not
impacted at all by theses changes, as they are served through the
Werkzeug sharedMiddleware

A similar syntax than ir.ui.view has been implemented in the QWeb templates
- each template must have a root node, whatever tag works

- the root node of a template must have a t-name containing the name of the template
The name -- without the module's name -- may contain dots pretty much anywhere
Though what is recommended is only underscores in template names

- if a template is to inherit from a parent, the root node has a t-inherit directive
containing either the full name of the template it inherits from which is module_name.template_name
or the name of the template, no module name necessary, if the parent template is in the same module

- there are 2 modes of inheriting
primary: copy the behavior of the parent into the template
extension: modifies the parent in place

Task: 1999528

closes odoo/odoo#33892

Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>


Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Lucas Perais <lpe@odoo.com>
2019-07-24 12:21:59 +00:00