XML files are now declared in python module manifests. During the qweb 't-call-asset' directive, assetbundle will fetch the declared xml files, apply the inheritance (t-inherit) and create a javascript service (for eg: 'web.assets_backend.bundle.xml') which is added at the end of the *.js mimifier file. When the debug mode is activated, comments are added in the template indicating which file the template comes from as well as the inheritances applied to it. **** JavaScript: assets.js (module @web/core/assets) takes care of loading libraries, javascripts and styles. `loadJS(url)` (loads the javascript and returns a resolved promise when the templates are also loaded via the '*.bundle.xml' service) `loadCSS(url)` (loads the style a resolved promise when the file is loaded) `loadXML(xml, app=assets.defaultApp)` (load template into application/owl, used by the `*.bundle.xml` services) `getBundle(bundleName)` (get the bundle descriptor) `loadBundle(desc)` (load the files and bundle from a descriptor) templates (XML element content all owl templates) A new `ready(serviceName)` method on boot.js lets you know when a service is loaded are the require. The xmlDependencies attribute no longer exists. Python: The xmls taken into account by assetbundle.py, applying `t-inherit` inheritances and adding an `name_of_the_bundle.bundle.xml` service in the generated JavaScript file. **** Every manifest changes is into the next commit, except 'web_tour' in this current commit as example. Part-of: odoo/odoo#95500
28 lines
986 B
Python
28 lines
986 B
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import odoo
|
|
from odoo import models
|
|
from odoo.http import request
|
|
|
|
|
|
class IrHttp(models.AbstractModel):
|
|
_inherit = 'ir.http'
|
|
|
|
def session_info(self):
|
|
user = request.env.user
|
|
result = super(IrHttp, self).session_info()
|
|
if self.env.user._is_internal():
|
|
result['notification_type'] = user.notification_type
|
|
guest = self.env.context.get('guest')
|
|
if not request.session.uid and guest:
|
|
user_context = {'lang': guest.lang}
|
|
mods = odoo.conf.server_wide_modules or []
|
|
lang = user_context.get("lang")
|
|
translation_hash = request.env['ir.translation'].sudo().get_web_translations_hash(mods, lang)
|
|
result['cache_hashes']['translations'] = translation_hash
|
|
result.update({
|
|
'name': guest.name,
|
|
'user_context': user_context,
|
|
})
|
|
return result
|