Я хочу отфильтровать SO в древовидной структуре, у которых есть stock.pickings, и некоторые stock.moves в этих комплектациях находятся в состоянии «назначен».
Я создал поле выбора, которое вычисляется и метод fnct_search, но оно даже не запускается. что не так в моем коде? и логика.
picking_id_states = fields.Selection([
('draft', 'Draft'), ('cancel', 'Cancelled'),
('waiting', 'Waiting Another Operation'),
('confirmed', 'Waiting Availability'),
('partially_available', 'Partially Available'),
('assigned', 'Available'), ('done', 'Done')], compute='compute_picking_state', string='Picking State',
fnct_search='_move_search', store=False, copy=False, index=True, readonly=True)
def _move_search(self, operator, value):
print "test"
for so in self:
moves = so.picking_ids.mapped('move_lines')
filtered_moves = moves.filtered(lambda l: l.state == 'assigned')
if filtered_moves:
so_ids = filtered_moves.mapped('picking_id.sale_id')
return [('id', 'in', so_ids)]
@api.depends('order_line.move_ids', 'order_line.move_ids.state')
def compute_picking_state(self):
for order in self:
for picking in order.picking_ids:
order.picking_id_state = picking.state
XML-код
<record id="view_sale_order_search_picking_state" model="ir.ui.view">
<field name="name">Config Hetlta picking state</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sales_order_filter" />
<field name="arch" type="xml">
<field name="user_id" position="after">
<field name="picking_id_state"/>
<field name="note"/>
</field>
<filter name="sales" position="after">
<filter string="Picking state" name="picking_id_states" />
</filter>
</field>
</record>