web_editor/models/ir_http.py

32 lines
914 B
Python
Raw Normal View History

2024-05-03 12:47:49 +03:00
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
from odoo.http import request
CONTEXT_KEYS = ['editable', 'edit_translations', 'translatable']
class IrHttp(models.AbstractModel):
_inherit = 'ir.http'
@classmethod
def _get_web_editor_context(cls):
""" Check for ?editable and stuff in the query-string """
return {
key: True
for key in CONTEXT_KEYS
if key in request.httprequest.args and key not in request.env.context
}
@classmethod
def _pre_dispatch(cls, rule, args):
super()._pre_dispatch(rule, args)
ctx = cls._get_web_editor_context()
request.update_context(**ctx)
@classmethod
def _get_translation_frontend_modules_name(cls):
mods = super(IrHttp, cls)._get_translation_frontend_modules_name()
return mods + ['web_editor']