QWeb is the primary templating engine used by Odoo. It is an XML templating engine and used mostly to generate XML, HTML fragments and pages. To create new XML template, please see :doc:`QWeb Templates documentation <https://www.odoo.com/documentation/15.0/developer/reference/frontend/qweb.html>` In **input** you have an XML template giving the corresponding input etree. Each etree input nodes are used to generate a python function. This fonction is called and will give the XML **output**. The ``_compile`` method is responsible to generate the function from the etree, that function is a python generator that yield one output line at a time. This generator is consumed by ``_render``. The generated function is orm cached. In the graphic below you can see theresume of the call of the methods performed in the IrQweb class. Odoo ┗━► _render (returns MarkupSafe) ┗━► _compile (returns function) ◄━━━━━━━━━┓ ┗━► _compile_node (returns code string array) ◄━━━━━━━┓ ┃ ┃ (add technical directives: t-inner-content, t-tag) ┃ ┃ ┣━► _directives_eval_order (defined directive order) ┃ ┃ ┃ ┃ ┃ ┣━► _compile_directives (recursive) ◄━━━━┓ ┃ ┃ ┃ ┣━► _compile_directive ┃ ┃ ┃ ┃ ┃ ┗━► t-if ━━► _compile_directive_if ━┫ ┃ ┃ ┃ ┃ ┗━► t-foreach ━━► _compile_directive_foreach ━┫ ┃ ┃ ┃ ┃ ┗━► t-* ━━► ... ━┛ ┃ ┃ ┃ ┃ ┗━► t-inner-content ━━► _compile_directive_inner_content ◄━━━━┓ ━┛ ┃ ┃ ┃ ┗━► t-tag ━━► _compile_directive_tag ━┫ ┃ ┃ ┃ ┗━► t-call ━━► _compile_directive_call ━┫ ━━━┛ ┃ ┃ ┗━► t-out ━━► _compile_directive_out ◄━┓ ━┫ ┃ ┃ ┗━► t-field ━━► _compile_directive_field ━┛ ┃ ┃ ┃ ┃ ┗━━┻━► _compile_static_node ━┛ Part-of: odoo/odoo#81024
49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from . import assetsbundle
|
|
|
|
from . import ir_model
|
|
from . import ir_sequence
|
|
from . import ir_ui_menu
|
|
from . import ir_ui_view
|
|
from . import ir_asset
|
|
from . import ir_actions
|
|
from . import ir_actions_report
|
|
from . import ir_attachment
|
|
from . import ir_cron
|
|
from . import ir_filters
|
|
from . import ir_default
|
|
from . import ir_translation
|
|
from . import ir_exports
|
|
from . import ir_rule
|
|
from . import ir_config_parameter
|
|
from . import ir_autovacuum
|
|
from . import ir_mail_server
|
|
from . import ir_fields
|
|
from . import ir_qweb
|
|
from . import ir_qweb_fields
|
|
from . import ir_http
|
|
from . import ir_logging
|
|
from . import ir_property
|
|
from . import ir_module
|
|
from . import ir_demo
|
|
from . import ir_demo_failure
|
|
from . import report_layout
|
|
from . import report_paperformat
|
|
|
|
from . import ir_profile
|
|
from . import image_mixin
|
|
from . import avatar_mixin
|
|
|
|
from . import res_country
|
|
from . import res_lang
|
|
from . import res_partner
|
|
from . import res_bank
|
|
from . import res_config
|
|
from . import res_currency
|
|
from . import res_company
|
|
from . import res_users
|
|
|
|
from . import decimal_precision
|