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 committed 2018-09-01 01:02:04 +02:00
1 parent a30527585b
commit c85a77d2d3
1 file changed
+3 -22
+3 -22
View File
@@ -245,26 +245,6 @@ class Forecast(Workflow, ModelSQL, ModelView):
Line = Pool().get('stock.forecast.line')
Line.delete_moves([l for f in forecasts for l in f.lines])
@classmethod
def copy(cls, forecasts, default=None):
Line = Pool().get('stock.forecast.line')
if default is None:
default = {}
default = default.copy()
default['lines'] = None
new_forecasts = []
for forecast in forecasts:
new_forecast, = super(Forecast, cls).copy([forecast],
default=default)
Line.copy([x for x in forecast.lines],
default={
'forecast': new_forecast.id,
})
new_forecasts.append(new_forecast)
return new_forecasts
class ForecastLine(ModelSQL, ModelView):
'Stock Forecast Line'
@@ -424,8 +404,9 @@ class ForecastLine(ModelSQL, ModelView):
def copy(cls, lines, default=None):
if default is None:
default = {}
default = default.copy()
default['moves'] = None
else:
default = default.copy()
default.setdefault('moves', None)
return super(ForecastLine, cls).copy(lines, default=default)
def get_moves(self):