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
This commit is contained in:
Cédric Krier
2018-09-01 01:02:04 +02:00
parent 1d11525211
commit 2f1555b82f
+4 -5
View File
@@ -235,9 +235,8 @@ class Subscription(Workflow, ModelSQL, ModelView):
default = {}
else:
default = default.copy()
default.setdefault('state', 'draft')
default.setdefault('number')
default.setdefault('next_invoice_date')
default.setdefault('number', None)
default.setdefault('next_invoice_date', None)
return super(Subscription, cls).copy(subscriptions, default=default)
@classmethod
@@ -702,7 +701,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
default = {}
else:
default = default.copy()
default.setdefault('consumed')
default.setdefault('consumed', None)
return super(Line, cls).copy(lines, default=default)
@@ -747,7 +746,7 @@ class LineConsumption(ModelSQL, ModelView):
default = {}
else:
default = default.copy()
default.setdefault('invoice_line')
default.setdefault('invoice_line', None)
return super(LineConsumption, cls).copy(consumptions, default=default)
@classmethod