diff --git a/issue2321002_1.diff b/issue2321002_1.diff new file mode 100644 index 0000000..9698472 --- /dev/null +++ b/issue2321002_1.diff @@ -0,0 +1,20 @@ +Index: invoice.py +=================================================================== + +--- ./trytond/trytond/modules/account_invoice/invoice.py ++++ ./trytond/trytond/modules/account_invoice/invoice.py +@@ -559,9 +559,11 @@ + invoices_no_move = [] + for invoice in invoices: + if invoice.move: +- invoices_move.append(invoice) ++ invoices_move.append(invoice.id) + else: +- invoices_no_move.append(invoice) ++ invoices_no_move.append(invoice.id) ++ invoices_move = cls.browse(invoices_move) ++ invoices_no_move = cls.browse(invoices_no_move) + + type_name = cls.total_amount._field.sql_type().base + invoice = cls.__table__() + diff --git a/issue2331002_1.diff b/issue2331002_1.diff new file mode 100644 index 0000000..fe560f8 --- /dev/null +++ b/issue2331002_1.diff @@ -0,0 +1,32 @@ +Index: invoice.py +=================================================================== + +--- ./trytond/trytond/modules/account_invoice/invoice.py ++++ ./trytond/trytond/modules/account_invoice/invoice.py +@@ -1049,24 +1049,11 @@ + default['invoice_report_cache'] = None + default['invoice_report_format'] = None + default['payment_lines'] = None +- default['lines'] = None +- default['taxes'] = None + default.setdefault('invoice_date', None) + default.setdefault('accounting_date', None) + default['lines_to_pay'] = None + default.setdefault('origin', None) +- +- new_invoices = [] +- for invoice in invoices: +- new_invoice, = super(Invoice, cls).copy([invoice], default=default) +- Line.copy(invoice.lines, default={ +- 'invoice': new_invoice.id, +- }) +- Tax.copy(invoice.taxes, default={ +- 'invoice': new_invoice.id, +- }) +- new_invoices.append(new_invoice) +- return new_invoices ++ return super(Invoice, cls).copy(invoices, default=default) + + @classmethod + def validate(cls, invoices): + diff --git a/issue2331002_1_10001.diff b/issue2331002_1_10001.diff new file mode 100644 index 0000000..fe560f8 --- /dev/null +++ b/issue2331002_1_10001.diff @@ -0,0 +1,32 @@ +Index: invoice.py +=================================================================== + +--- ./trytond/trytond/modules/account_invoice/invoice.py ++++ ./trytond/trytond/modules/account_invoice/invoice.py +@@ -1049,24 +1049,11 @@ + default['invoice_report_cache'] = None + default['invoice_report_format'] = None + default['payment_lines'] = None +- default['lines'] = None +- default['taxes'] = None + default.setdefault('invoice_date', None) + default.setdefault('accounting_date', None) + default['lines_to_pay'] = None + default.setdefault('origin', None) +- +- new_invoices = [] +- for invoice in invoices: +- new_invoice, = super(Invoice, cls).copy([invoice], default=default) +- Line.copy(invoice.lines, default={ +- 'invoice': new_invoice.id, +- }) +- Tax.copy(invoice.taxes, default={ +- 'invoice': new_invoice.id, +- }) +- new_invoices.append(new_invoice) +- return new_invoices ++ return super(Invoice, cls).copy(invoices, default=default) + + @classmethod + def validate(cls, invoices): + diff --git a/issue2341002_1_10001.diff b/issue2341002_1_10001.diff new file mode 100644 index 0000000..00f6f44 --- /dev/null +++ b/issue2341002_1_10001.diff @@ -0,0 +1,120 @@ +Index: shipment.py +=================================================================== + +--- ./trytond/trytond/modules/stock/shipment.py ++++ ./trytond/trytond/modules/stock/shipment.py +@@ -60,9 +60,9 @@ + supplier = fields.Many2One('party.party', 'Supplier', + states={ + 'readonly': And(Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('incoming_moves'))), Bool(Eval('supplier'))), ++ Bool(Eval('incoming_moves', [0]))), Bool(Eval('supplier'))), + }, on_change=['supplier'], required=True, +- depends=['state', 'incoming_moves', 'supplier']) ++ depends=['state', 'supplier']) + supplier_location = fields.Function(fields.Many2One('stock.location', + 'Supplier Location', on_change_with=['supplier']), + 'on_change_with_supplier_location') +@@ -75,8 +75,8 @@ + required=True, domain=[('type', '=', 'warehouse')], + states={ + 'readonly': Or(In(Eval('state'), ['cancel', 'done']), +- Bool(Eval('incoming_moves'))), +- }, depends=['state', 'incoming_moves']) ++ Bool(Eval('incoming_moves', [0]))), ++ }, depends=['state']) + warehouse_input = fields.Function(fields.Many2One('stock.location', + 'Warehouse Input', on_change_with=['warehouse']), + 'on_change_with_warehouse_input') +@@ -496,15 +496,15 @@ + from_location = fields.Many2One('stock.location', "From Location", + required=True, states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('moves'))), ++ Bool(Eval('moves', [0]))), + }, domain=[('type', '=', 'storage')], +- depends=['state', 'moves']) ++ depends=['state']) + to_location = fields.Many2One('stock.location', "To Location", + required=True, states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('moves'))), ++ Bool(Eval('moves', [0]))), + }, domain=[('type', '=', 'supplier')], +- depends=['state', 'moves']) ++ depends=['state']) + moves = fields.One2Many('stock.move', 'shipment', 'Moves', + states={ + 'readonly': And(Or(Not(Equal(Eval('state'), 'draft')), +@@ -797,9 +797,9 @@ + customer = fields.Many2One('party.party', 'Customer', required=True, + states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('outgoing_moves'))), ++ Bool(Eval('outgoing_moves', [0]))), + }, on_change=['customer'], +- depends=['state', 'outgoing_moves']) ++ depends=['state']) + customer_location = fields.Function(fields.Many2One('stock.location', + 'Customer Location', on_change_with=['customer']), + 'on_change_with_customer_location') +@@ -816,9 +816,9 @@ + warehouse = fields.Many2One('stock.location', "Warehouse", required=True, + states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('outgoing_moves'))), ++ Bool(Eval('outgoing_moves', [0]))), + }, domain=[('type', '=', 'warehouse')], +- depends=['state', 'outgoing_moves']) ++ depends=['state']) + warehouse_storage = fields.Function(fields.Many2One('stock.location', + 'Warehouse Storage', on_change_with=['warehouse']), + 'on_change_with_warehouse_storage') +@@ -1329,9 +1329,9 @@ + customer = fields.Many2One('party.party', 'Customer', required=True, + states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('incoming_moves'))), ++ Bool(Eval('incoming_moves', [0]))), + }, on_change=['customer'], +- depends=['state', 'incoming_moves']) ++ depends=['state']) + customer_location = fields.Function(fields.Many2One('stock.location', + 'Customer Location', on_change_with=['customer']), + 'on_change_with_customer_location') +@@ -1348,9 +1348,9 @@ + warehouse = fields.Many2One('stock.location', "Warehouse", required=True, + states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('incoming_moves'))), ++ Bool(Eval('incoming_moves', [0]))), + }, domain=[('type', '=', 'warehouse')], +- depends=['state', 'incoming_moves']) ++ depends=['state']) + warehouse_storage = fields.Function(fields.Many2One('stock.location', + 'Warehouse Storage', on_change_with=['warehouse']), + 'on_change_with_warehouse_storage') +@@ -1774,18 +1774,18 @@ + from_location = fields.Many2One('stock.location', "From Location", + required=True, states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('moves'))), ++ Bool(Eval('moves', [0]))), + }, + domain=[ + ('type', 'in', ['storage']), +- ], depends=['state', 'moves']) ++ ], depends=['state']) + to_location = fields.Many2One('stock.location', "To Location", + required=True, states={ + 'readonly': Or(Not(Equal(Eval('state'), 'draft')), +- Bool(Eval('moves'))), ++ Bool(Eval('moves', [0]))), + }, domain=[ + ('type', 'in', ['storage']), +- ], depends=['state', 'moves']) ++ ], depends=['state']) + moves = fields.One2Many('stock.move', 'shipment', 'Moves', + states={ + 'readonly': ((Eval('state') != 'draft') + diff --git a/series b/series index dd4f695..b1ec9a7 100644 --- a/series +++ b/series @@ -1,3 +1,7 @@ +issue2341002_1_10001.diff +issue2331002_1.diff +issue2331002_1_10001.diff +issue2321002_1.diff issue971002_127001.diff issue1961002_40001.diff issue10739.diff