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:
+2
-1
@@ -77,7 +77,8 @@ class Invoice(metaclass=PoolMeta):
|
||||
def copy(cls, invoices, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
default = default.copy()
|
||||
else:
|
||||
default = default.copy()
|
||||
default.setdefault('purchases', None)
|
||||
return super(Invoice, cls).copy(invoices, default=default)
|
||||
|
||||
|
||||
+13
-12
@@ -630,13 +630,13 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
def copy(cls, purchases, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
default = default.copy()
|
||||
default['state'] = 'draft'
|
||||
default['number'] = None
|
||||
default['invoice_state'] = 'none'
|
||||
default['invoices_ignored'] = None
|
||||
default['moves'] = None
|
||||
default['shipment_state'] = 'none'
|
||||
else:
|
||||
default = default.copy()
|
||||
default.setdefault('number', None)
|
||||
default.setdefault('invoice_state', 'none')
|
||||
default.setdefault('invoices_ignored', None)
|
||||
default.setdefault('moves', None)
|
||||
default.setdefault('shipment_state', 'none')
|
||||
default.setdefault('purchase_date', None)
|
||||
return super(Purchase, cls).copy(purchases, default=default)
|
||||
|
||||
@@ -1530,11 +1530,12 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
|
||||
def copy(cls, lines, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
default = default.copy()
|
||||
default['moves'] = None
|
||||
default['moves_ignored'] = None
|
||||
default['moves_recreated'] = None
|
||||
default['invoice_lines'] = None
|
||||
else:
|
||||
default = default.copy()
|
||||
default.setdefault('moves', None)
|
||||
default.setdefault('moves_ignored', None)
|
||||
default.setdefault('moves_recreated', None)
|
||||
default.setdefault('invoice_lines', None)
|
||||
return super(PurchaseLine, cls).copy(lines, default=default)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user