From 5a7ebf508a8408d760b31aff4c3db125c886aaf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 1 Sep 2018 01:02:03 +0200 Subject: [PATCH] Improve ModelStorage.copy * Allow callable in copy default * Support dotted notation in copy default * Use setdefault in copy * Copy default when needed * Do not set default state in copy * Use callable and dotted notation in copy default issue5576 issue7648 review72291002 --- commission.py | 2 ++ invoice.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/commission.py b/commission.py index 102fda76b9..552a2267b3 100644 --- a/commission.py +++ b/commission.py @@ -313,6 +313,8 @@ class Commission(ModelSQL, ModelView): def copy(cls, commissions, default=None): if default is None: default = {} + else: + default = default.copy() default.setdefault('invoice_line', None) return super(Commission, cls).copy(commissions, default=default) diff --git a/invoice.py b/invoice.py index bb41d97dba..93d37be1b8 100644 --- a/invoice.py +++ b/invoice.py @@ -196,6 +196,8 @@ class InvoiceLine(metaclass=PoolMeta): def copy(cls, lines, default=None): if default is None: default = {} + else: + default = default.copy() default.setdefault('commissions', None) default.setdefault('from_commissions', None) return super(InvoiceLine, cls).copy(lines, default=default)