diff --git a/base_sparse_field_list_support/__init__.py b/base_sparse_field_list_support/__init__.py new file mode 100644 index 000000000..042e239ed --- /dev/null +++ b/base_sparse_field_list_support/__init__.py @@ -0,0 +1,2 @@ +# coding: utf-8 +from . import models diff --git a/base_sparse_field_list_support/__manifest__.py b/base_sparse_field_list_support/__manifest__.py new file mode 100644 index 000000000..fd5849e0a --- /dev/null +++ b/base_sparse_field_list_support/__manifest__.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +{ + "name": "Base Sparse Field List Support", + "summary": "add list support to convert_to_cache()", + "version": "8.0.1.0.0", + 'category': 'Technical Settings', + "website": "www.akretion.com", + "author": " Akretion", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": [ + "base", + ], +} diff --git a/base_sparse_field_list_support/models/__init__.py b/base_sparse_field_list_support/models/__init__.py new file mode 100644 index 000000000..0dbb51721 --- /dev/null +++ b/base_sparse_field_list_support/models/__init__.py @@ -0,0 +1,2 @@ +# coding: utf-8 +from . import fields diff --git a/base_sparse_field_list_support/models/fields.py b/base_sparse_field_list_support/models/fields.py new file mode 100644 index 000000000..79c3bf6dd --- /dev/null +++ b/base_sparse_field_list_support/models/fields.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +import json + +from odoo import fields + +# +# Definition and implementation of serialized fields: override +# + + +def convert_to_cache(self, value, record, validate=True): + # cache format: dict / list + value = value or {} + return value if isinstance(value, (dict, list)) else json.loads(value) + + +fields.Serialized.convert_to_cache = convert_to_cache