52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import api, fields, models, _
|
|
|
|
|
|
class WheelchairConfigFlowNodeOption(models.Model):
|
|
_name = 'fusion.wc.config.flow.node.option'
|
|
_description = 'Configuration Flow Node Option'
|
|
_order = 'sequence, id'
|
|
|
|
node_id = fields.Many2one('fusion.wc.config.flow.node', string='Node',
|
|
required=True, ondelete='cascade', index=True)
|
|
|
|
name = fields.Char(string='Name', required=True)
|
|
sequence = fields.Integer(default=10)
|
|
|
|
# Link to actual section product option
|
|
section_option_id = fields.Many2one('fusion.wc.section.option',
|
|
string='Section Option',
|
|
help='Link this choice to a wheelchair section product option')
|
|
|
|
# Effects when this option is selected
|
|
enables_option_ids = fields.Many2many(
|
|
'fusion.wc.section.option',
|
|
'wc_flow_node_opt_enables_rel',
|
|
'node_option_id', 'option_id',
|
|
string='Enables Options',
|
|
help='Section options to enable when this choice is selected')
|
|
|
|
disables_option_ids = fields.Many2many(
|
|
'fusion.wc.section.option',
|
|
'wc_flow_node_opt_disables_rel',
|
|
'node_option_id', 'option_id',
|
|
string='Disables Options',
|
|
help='Section options to disable when this choice is selected')
|
|
|
|
requires_option_ids = fields.Many2many(
|
|
'fusion.wc.section.option',
|
|
'wc_flow_node_opt_requires_rel',
|
|
'node_option_id', 'option_id',
|
|
string='Requires Options',
|
|
help='Section options that become required when this choice is selected')
|
|
|
|
# Port key for connections — auto-generated from sequence
|
|
port_key = fields.Char(string='Port Key', compute='_compute_port_key',
|
|
store=True)
|
|
|
|
@api.depends('sequence', 'node_id')
|
|
def _compute_port_key(self):
|
|
for record in self:
|
|
record.port_key = 'opt_%d' % (record.sequence or 0)
|