39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
# Copyright 2020 Open Source Integrators
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
def _inverse_private_text(self):
|
|
field_names = ["private_text"]
|
|
EncryptedData = self.env["encrypted.data"].sudo()
|
|
for record in self:
|
|
encrypted_data_name = "fields:%s,%s" % (
|
|
record._name, record.id)
|
|
# values = EncryptedData._encrypted_read_json(
|
|
# encrypted_data_name, env=env)
|
|
values = {x: getattr(record, x) for x in field_names}
|
|
EncryptedData._encrypted_store_json(
|
|
encrypted_data_name, values
|
|
)
|
|
|
|
def _compute_private_text(self):
|
|
EncryptedData = self.env["encrypted.data"].sudo()
|
|
for record in self:
|
|
field_names = ["private_text"]
|
|
encrypted_data_name = "fields:%s,%s" % (
|
|
record._name, record.id)
|
|
stored_values = EncryptedData._encrypted_read_json(
|
|
encrypted_data_name)
|
|
values = {x: stored_values.get(x) for x in field_names}
|
|
for field in field_names:
|
|
setattr(record, field, values.get(field))
|
|
|
|
private_text = fields.Text(
|
|
compute="_compute_private_text",
|
|
inverse="_inverse_private_text",
|
|
)
|