65 lines
2.0 KiB
Python
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
|