Tower: upload cetmix_tower_server 16.0.3.0.1 (via marketplace)
This commit is contained in:
@@ -0,0 +1,52 @@
|
|||||||
|
from odoo import api, fields, models
|
||||||
|
|
||||||
|
|
||||||
|
class CxTowerCustomVariableValueMixin(models.AbstractModel):
|
||||||
|
"""
|
||||||
|
Custom variable values.
|
||||||
|
"""
|
||||||
|
|
||||||
|
_name = "cx.tower.custom.variable.value.mixin"
|
||||||
|
_description = "Custom variable values"
|
||||||
|
|
||||||
|
variable_id = fields.Many2one(
|
||||||
|
"cx.tower.variable",
|
||||||
|
)
|
||||||
|
variable_type = fields.Selection(related="variable_id.variable_type", readonly=True)
|
||||||
|
value_char = fields.Char(
|
||||||
|
string="Value",
|
||||||
|
compute="_compute_value_char",
|
||||||
|
readonly=False,
|
||||||
|
store=True,
|
||||||
|
help="Automatically populated from selected option. "
|
||||||
|
"Manual edits will be overwritten when option changes.",
|
||||||
|
)
|
||||||
|
option_id = fields.Many2one(
|
||||||
|
"cx.tower.variable.option", domain="[('variable_id', '=', variable_id)]"
|
||||||
|
)
|
||||||
|
|
||||||
|
variable_value_id = fields.Many2one("cx.tower.variable.value")
|
||||||
|
required = fields.Boolean(
|
||||||
|
related="variable_value_id.required",
|
||||||
|
readonly=True,
|
||||||
|
store=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
@api.depends("option_id", "variable_id", "variable_type")
|
||||||
|
def _compute_value_char(self):
|
||||||
|
"""
|
||||||
|
Compute value_char based on selected option for option-type variables.
|
||||||
|
For non-option variables, value_char is cleared to allow manual input.
|
||||||
|
"""
|
||||||
|
for rec in self:
|
||||||
|
if rec.variable_id and rec.variable_type == "o" and rec.option_id:
|
||||||
|
rec.value_char = rec.option_id.value_char
|
||||||
|
else:
|
||||||
|
rec.value_char = ""
|
||||||
|
|
||||||
|
@api.onchange("variable_id")
|
||||||
|
def _onchange_variable_id(self):
|
||||||
|
"""
|
||||||
|
Reset option_id when variable changes.
|
||||||
|
"""
|
||||||
|
self.update({"option_id": None})
|
||||||
Reference in New Issue
Block a user