Before this commit, the time to compute all counters was making the rendering of the portal page slow. Now the count is done in rpc after the loading of the page. Now you can decide which part you want to show on the portal, and only compute for these one. It is not because you have purchase installed for your internal process, that it means that your supplier use your portal and it avoid the computation for all end users. We parallelize the counters in arbitrary 3 rpcs. closes odoo/odoo#55999 Related: odoo/enterprise#12456 Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, models, fields
|
|
from odoo.http import request
|
|
from odoo.addons.http_routing.models.ir_http import url_for
|
|
|
|
|
|
class View(models.Model):
|
|
_inherit = "ir.ui.view"
|
|
|
|
customize_show = fields.Boolean("Show As Optional Inherit", default=False)
|
|
|
|
@api.model
|
|
def _prepare_qcontext(self):
|
|
""" Returns the qcontext : rendering context with portal specific value (required
|
|
to render portal layout template)
|
|
"""
|
|
qcontext = super(View, self)._prepare_qcontext()
|
|
if request and getattr(request, 'is_frontend', False):
|
|
Lang = request.env['res.lang']
|
|
portal_lang_code = request.env['ir.http']._get_frontend_langs()
|
|
qcontext.update(dict(
|
|
self._context.copy(),
|
|
languages=[lang for lang in Lang.get_available() if lang[0] in portal_lang_code],
|
|
url_for=url_for,
|
|
))
|
|
return qcontext
|