From 0016f9cf725bd9b76aa3c5089b4ff1ccf7461d0e Mon Sep 17 00:00:00 2001 From: David Beal Date: Mon, 2 Oct 2017 14:08:23 +0200 Subject: [PATCH] REName base_sparse_field to base_sparse_field_list_support with only monkey patch --- base_sparse_field_list_support/__init__.py | 2 ++ base_sparse_field_list_support/__manifest__.py | 15 +++++++++++++++ .../models/__init__.py | 2 ++ .../models/fields.py | 18 ++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 base_sparse_field_list_support/__init__.py create mode 100644 base_sparse_field_list_support/__manifest__.py create mode 100644 base_sparse_field_list_support/models/__init__.py create mode 100644 base_sparse_field_list_support/models/fields.py 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