mirror of https://github.com/OCA/web.git
commit
3b9a350d5b
|
@ -2,6 +2,7 @@
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
from odoo import api, models
|
from odoo import api, models
|
||||||
|
from odoo.tools.safe_eval import safe_eval
|
||||||
|
|
||||||
|
|
||||||
class WebEnvironmentRibbonBackend(models.AbstractModel):
|
class WebEnvironmentRibbonBackend(models.AbstractModel):
|
||||||
|
@ -14,10 +15,20 @@ class WebEnvironmentRibbonBackend(models.AbstractModel):
|
||||||
return {"db_name": self.env.cr.dbname}
|
return {"db_name": self.env.cr.dbname}
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _prepare_ribbon_name(self):
|
def _prepare_ribbon_eval_environment(self):
|
||||||
name_tmpl = self.env["ir.config_parameter"].sudo().get_param("ribbon.name")
|
return {"env": self.env}
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _get_ribbon_value(self, name):
|
||||||
|
ir_config_model = self.env["ir.config_parameter"].sudo()
|
||||||
|
code = ir_config_model.get_param("ribbon.%s.code" % name)
|
||||||
|
if code:
|
||||||
|
return safe_eval(
|
||||||
|
code, globals_dict=self._prepare_ribbon_eval_environment(),
|
||||||
|
)
|
||||||
|
value_tmpl = ir_config_model.get_param("ribbon.%s" % name)
|
||||||
vals = self._prepare_ribbon_format_vals()
|
vals = self._prepare_ribbon_format_vals()
|
||||||
return name_tmpl and name_tmpl.format(**vals) or name_tmpl
|
return value_tmpl and value_tmpl.format(**vals) or value_tmpl
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def get_environment_ribbon(self):
|
def get_environment_ribbon(self):
|
||||||
|
@ -25,12 +36,8 @@ class WebEnvironmentRibbonBackend(models.AbstractModel):
|
||||||
This method returns the ribbon data from ir config parameters
|
This method returns the ribbon data from ir config parameters
|
||||||
:return: dictionary
|
:return: dictionary
|
||||||
"""
|
"""
|
||||||
ir_config_model = self.env["ir.config_parameter"]
|
|
||||||
name = self._prepare_ribbon_name()
|
|
||||||
return {
|
return {
|
||||||
"name": name,
|
"name": self._get_ribbon_value("name"),
|
||||||
"color": ir_config_model.sudo().get_param("ribbon.color"),
|
"color": self._get_ribbon_value("color"),
|
||||||
"background_color": ir_config_model.sudo().get_param(
|
"background_color": self._get_ribbon_value("background.color"),
|
||||||
"ribbon.background.color"
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,3 +6,6 @@
|
||||||
colors or just set to "False" to use default values.
|
colors or just set to "False" to use default values.
|
||||||
* You can add the database name in the ribbon by adding "{db_name}" in the
|
* You can add the database name in the ribbon by adding "{db_name}" in the
|
||||||
system parameter "ribbon.name".
|
system parameter "ribbon.name".
|
||||||
|
* By appending ".code", you can fill in a Python expression to generate the
|
||||||
|
ribbon name or colors: "ribbon.name.code" could contain "env.cr.dbname",
|
||||||
|
which just returns the current database's name.
|
||||||
|
|
Loading…
Reference in New Issue