Skip to Content
Menu
This question has been flagged
4841 Views

Hi everybody,

I want to create some default value, for that i create an ir.value. When i save my ir.value i have a encoding error:

DataError: invalid byte sequence for encoding "UTF8": 0xe97365

I set this values:

name: note
model: sale.order
value_unpickle: Clause de réserve de propriété: En application de la loi 80-335 du 12 mai 1980, les marchandises livrées demeurent la propriété du vendeur jusqu'au complet règlement de leur prix.

After inspection i found that the method _value_pickle in .ir.values.py won't work correctly:

def _value_pickle(self, cursor, user, id, name, value, arg, context=None):
    if context is None:
        context = {}
    ctx = context.copy()
    if self.CONCURRENCY_CHECK_FIELD in ctx:
        del ctx[self.CONCURRENCY_CHECK_FIELD]
    record = self.browse(cursor, user, id, context=context)
    if record.key == 'default':
        # default values are pickled on the fly
        value = pickle.dumps(value)
    self.write(cursor, user, id, {name[:-9]: value}, context=ctx)

It's exactly the line "value = pickle.dumps(value)" which is the cause.

How i can fix this bug? There is some fix for this? There is the same bug on runbot with 7 version.

Thanks

Avatar
Discard
Related Posts Replies Views Activity
0
Mar 23
1061
4
Nov 18
5564
2
Nov 24
36879
2
Sep 24
2778
2
Mar 25
2989