[MIG] web_field_tooltip: Migration to 16.0

This commit is contained in:
Benjamin Willig
2024-03-26 08:52:09 +01:00
committed by manu
parent abba292d47
commit ccaf3cba33
22 changed files with 395 additions and 372 deletions

View File

@@ -1,3 +1,4 @@
from . import base
from . import ir_http
from . import ir_model_fields_tooltip
from . import res_users

View File

@@ -0,0 +1,29 @@
# Copyright 2023 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, models
class Base(models.AbstractModel):
_inherit = "base"
@api.model
def fields_get(self, allfields=None, attributes=None):
res = super().fields_get(allfields=allfields, attributes=attributes)
fnames = res.keys()
tooltips_data = (
self.env["ir.model.fields.tooltip"]
.sudo()
.search_read(
[
("model", "=", self._name),
("field_name", "in", list(fnames)),
],
[],
)
)
for tooltip_data in tooltips_data:
tooltip_fname = tooltip_data["field_name"]
res[tooltip_fname]["field_tooltip"] = tooltip_data
return res

View File

@@ -18,20 +18,24 @@ class IrModelFieldsTooltip(models.Model):
help="Model for the Field Tooltip.",
default=lambda self: self._get_default_model_id(),
)
model = fields.Char(related="model_id.model", string="Model Name")
model = fields.Char(related="model_id.model", string="Model Name", store=True)
field_id = fields.Many2one(
string="Field",
required=True,
comodel_name="ir.model.fields",
ondelete="cascade",
)
name = fields.Char(compute="_compute_name", readonly=True,)
field_name = fields.Char(related="field_id.name", store=True)
name = fields.Char(
compute="_compute_name",
readonly=True,
)
active = fields.Boolean(
default=True,
help="Set active to false to hide the Tooltip without removing it.",
)
field_name = fields.Char(related="field_id.name")
tooltip_text = fields.Html(string="Tooltip Text", required=True)
tooltip_text = fields.Html(required=True)
@api.model
def default_get(self, fields_list):
@@ -61,7 +65,7 @@ class IrModelFieldsTooltip(models.Model):
raise UserError(_("A tooltip already exists for this field"))
def _get_default_model_id(self):
tooltip_model = self.env.context.get("tooltip_model")
tooltip_model = self.env.context.get("default_model")
model = self.env["ir.model"].search([("model", "=", tooltip_model)], limit=1)
return model.id or False

View File

@@ -16,11 +16,17 @@ class ResUsers(models.Model):
compute="_compute_tooltip_show_add_helper_allowed"
)
def __init__(self, pool, cr):
super().__init__(pool, cr)
field_names = ["tooltip_show_add_helper"]
self.SELF_READABLE_FIELDS.extend(field_names)
self.SELF_WRITEABLE_FIELDS.extend(field_names)
@property
def TOOLTIP_READABLE_FIELDS(self):
return ["tooltip_show_add_helper"]
@property
def SELF_READABLE_FIELDS(self):
return super().SELF_READABLE_FIELDS + self.TOOLTIP_READABLE_FIELDS
@property
def SELF_WRITEABLE_FIELDS(self):
return super().SELF_WRITEABLE_FIELDS + self.TOOLTIP_READABLE_FIELDS
def _compute_tooltip_show_add_helper_allowed(self):
for rec in self: