Files

65 lines
2.0 KiB
Python

from odoo import api, fields, models
class VoipProvider(models.Model):
_name = "voip.provider"
_description = "VoIP Provider"
name = fields.Char(required=True)
company_id = fields.Many2one("res.company", string="Company")
ws_server = fields.Char(
"WebSocket",
help="The URL of your WebSocket",
default="ws://localhost",
groups="base.group_system",
)
pbx_ip = fields.Char(
"PBX Server IP",
help="The IP address of your PBX Server",
default="localhost",
groups="base.group_system",
)
mode = fields.Selection(
[
("demo", "Demo"),
("prod", "Production"),
],
string="VoIP Environment",
default="demo",
required=True,
)
recording_enabled = fields.Boolean(default=False, export_string_translation=False)
recording_policy_option = fields.Selection(
[
("always", "Force recording of all calls. Users can't disable it."),
("user", "Let users decide when to record."),
],
default="always",
export_string_translation=False,
)
recording_policy = fields.Selection(
[
("always", "Force for all users"),
("user", "Let users decide"),
("disabled", "Disabled"),
],
compute="_compute_recording_policy",
inverse="_inverse_recording_policy",
)
@api.depends("recording_enabled", "recording_policy_option")
def _compute_recording_policy(self):
for provider in self:
if not provider.recording_enabled:
provider.recording_policy = "disabled"
else:
provider.recording_policy = provider.recording_policy_option
def _inverse_recording_policy(self):
for provider in self:
if provider.recording_policy == "disabled":
provider.recording_enabled = False
else:
provider.recording_enabled = True
provider.recording_policy_option = provider.recording_policy