details: https://code.tryton.org/tryton/commit/ea3d027558f9
branch: 7.0
user: Cédric Krier <[email protected]>
date: Sun Sep 13 13:57:29 2026 +0200
description:
Use explicit order for shipments and invoices on sale and purchase
Closes #15090
(grafted from 05dbc76d7b374aebf7aaef7c03617cbec6c67393)
diffstat:
modules/purchase/purchase.py | 19 ++++++++++++-------
modules/sale/sale.py | 15 ++++++++++-----
2 files changed, 22 insertions(+), 12 deletions(-)
diffs (79 lines):
diff -r 78bf3c890afc -r ea3d027558f9 modules/purchase/purchase.py
--- a/modules/purchase/purchase.py Sun Sep 13 14:01:21 2026 +0200
+++ b/modules/purchase/purchase.py Sun Sep 13 13:57:29 2026 +0200
@@ -191,14 +191,17 @@
('exception', 'Exception'),
], 'Invoice State', readonly=True, required=True, sort=False)
invoices = fields.Function(fields.Many2Many(
- 'account.invoice', None, None, "Invoices"),
+ 'account.invoice', None, None, "Invoices",
+ order=[('id', 'ASC')]),
'get_invoices', searcher='search_invoices')
invoices_ignored = fields.Many2Many(
- 'purchase.purchase-ignored-account.invoice',
- 'purchase', 'invoice', 'Ignored Invoices', readonly=True)
+ 'purchase.purchase-ignored-account.invoice',
+ 'purchase', 'invoice', 'Ignored Invoices', readonly=True,
+ order=[('id', 'ASC')])
invoices_recreated = fields.Many2Many(
- 'purchase.purchase-recreated-account.invoice',
- 'purchase', 'invoice', 'Recreated Invoices', readonly=True)
+ 'purchase.purchase-recreated-account.invoice',
+ 'purchase', 'invoice', 'Recreated Invoices', readonly=True,
+ order=[('id', 'ASC')])
origin = fields.Reference(
"Origin", selection='get_origin',
states={
@@ -219,10 +222,12 @@
('exception', 'Exception'),
], 'Shipment State', readonly=True, required=True, sort=False)
shipments = fields.Function(fields.Many2Many(
- 'stock.shipment.in', None, None, "Shipments"),
+ 'stock.shipment.in', None, None, "Shipments",
+ order=[('id', 'ASC')]),
'get_shipments', searcher='search_shipments')
shipment_returns = fields.Function(fields.Many2Many(
- 'stock.shipment.in.return', None, None, "Shipment Returns"),
+ 'stock.shipment.in.return', None, None, "Shipment Returns",
+ order=[('id', 'ASC')]),
'get_shipment_returns', searcher='search_shipment_returns')
moves = fields.Function(
fields.Many2Many('stock.move', None, None, "Moves"),
diff -r 78bf3c890afc -r ea3d027558f9 modules/sale/sale.py
--- a/modules/sale/sale.py Sun Sep 13 14:01:21 2026 +0200
+++ b/modules/sale/sale.py Sun Sep 13 13:57:29 2026 +0200
@@ -219,13 +219,16 @@
('exception', 'Exception'),
], 'Invoice State', readonly=True, required=True, sort=False)
invoices = fields.Function(fields.Many2Many(
- 'account.invoice', None, None, "Invoices"),
+ 'account.invoice', None, None, "Invoices",
+ order=[('id', 'ASC')]),
'get_invoices', searcher='search_invoices')
invoices_ignored = fields.Many2Many('sale.sale-ignored-account.invoice',
- 'sale', 'invoice', 'Ignored Invoices', readonly=True)
+ 'sale', 'invoice', 'Ignored Invoices', readonly=True,
+ order=[('id', 'ASC')])
invoices_recreated = fields.Many2Many(
'sale.sale-recreated-account.invoice', 'sale', 'invoice',
- 'Recreated Invoices', readonly=True)
+ 'Recreated Invoices', readonly=True,
+ order=[('id', 'ASC')])
shipment_method = fields.Selection([
('manual', 'Manual'),
('order', 'On Order Processed'),
@@ -243,10 +246,12 @@
('exception', 'Exception'),
], "Shipment State", readonly=True, required=True, sort=False)
shipments = fields.Function(fields.Many2Many(
- 'stock.shipment.out', None, None, "Shipments"),
+ 'stock.shipment.out', None, None, "Shipments",
+ order=[('id', 'ASC')]),
'get_shipments', searcher='search_shipments')
shipment_returns = fields.Function(fields.Many2Many(
- 'stock.shipment.out.return', None, None, "Shipment Returns"),
+ 'stock.shipment.out.return', None, None, "Shipment Returns",
+ order=[('id', 'ASC')]),
'get_shipment_returns', searcher='search_shipment_returns')
moves = fields.Function(
fields.Many2Many('stock.move', None, None, "Moves"),