changeset 8021e386894b in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset;node=8021e386894b
description:
        Ensure User application key is different on bunch creation

        issue9306
        review321301002
diffstat:

 trytond/res/user.py |  7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diffs (24 lines):

diff -r fce8ad4a6828 -r 8021e386894b trytond/res/user.py
--- a/trytond/res/user.py       Fri May 22 11:25:01 2020 +0200
+++ b/trytond/res/user.py       Fri May 22 11:27:27 2020 +0200
@@ -905,6 +905,8 @@
                     'depends': ['state'],
                     },
                 })
+        # Do not cache default_key as it depends on time
+        cls.__rpc__['default_get'].cache = None
 
     @classmethod
     def default_key(cls):
@@ -949,6 +951,11 @@
     def create(cls, vlist):
         pool = Pool()
         User = pool.get('res.user')
+        vlist = [v.copy() for v in vlist]
+        for values in vlist:
+            # Ensure we get a different key for each record
+            # default methods are called only once
+            values.setdefault('key', cls.default_key())
         applications = super(UserApplication, cls).create(vlist)
         User._get_preferences_cache.clear()
         return applications

Reply via email to