You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
# Copyright 2020 Akretion (https://www.akretion.com).
|
|
# @author Sébastien BEAU <sebastien.beau@akretion.com>
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class IapAccount(models.Model):
|
|
_inherit = ["iap.account", "server.env.mixin"]
|
|
_name = "iap.account"
|
|
|
|
name = fields.Char()
|
|
provider = fields.Selection([("odoo", "Odoo IAP")], required=True, default="odoo")
|
|
|
|
@property
|
|
def _server_env_fields(self):
|
|
return {
|
|
"provider": {},
|
|
"account_token": {},
|
|
}
|
|
|
|
def _get_service_from_provider(self):
|
|
"""In case that the provider only propose one service you can
|
|
return the service_name in you module to simplify the user interface"""
|
|
return None
|
|
|
|
def _set_service_from_provider(self):
|
|
for record in self:
|
|
service = record._get_service_from_provider()
|
|
if service and record.service_name != service:
|
|
record.service_name = service
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
record = super().create(vals_list)
|
|
record._set_service_from_provider()
|
|
return record
|
|
|
|
def write(self, vals):
|
|
super().write(vals)
|
|
self._set_service_from_provider()
|
|
return True
|