diff --git a/purchase.py b/purchase.py index c5f2f4f6c8..5d4c3b63e5 100644 --- a/purchase.py +++ b/purchase.py @@ -217,7 +217,9 @@ class Purchase( shipment_returns = fields.Function(fields.Many2Many( 'stock.shipment.in.return', None, None, "Shipment Returns"), 'get_shipment_returns', searcher='search_shipment_returns') - moves = fields.One2Many('stock.move', 'purchase', 'Moves', readonly=True) + moves = fields.Function( + fields.Many2Many('stock.move', None, None, "Moves"), + 'get_moves', searcher='search_moves') quoted_by = employee_field( "Quoted By", @@ -602,6 +604,13 @@ class Purchase( return 'waiting' return 'none' + def get_moves(self, name): + return [m.id for l in self.lines for m in l.moves] + + @classmethod + def search_moves(cls, name, clause): + return [('lines.' + clause[0],) + tuple(clause[1:])] + @classmethod def _get_origin(cls): "Return list of Model names for origin Reference" @@ -692,7 +701,6 @@ class Purchase( 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) default.setdefault('quoted_by')