from odoo import models class StockPicking(models.Model): _name = 'stock.picking' _inherit = ["stock.picking", "directive.mixin"] def button_validate(self): res = super().button_validate() # Сохраняем семантику старого monkey-patch wrapper: политика срабатывала # ТОЛЬКО если метод не вернул False, и НЕ должна срабатывать на промежуточном # возврате экшена-визарда (backorder / immediate transfer), т.к. в этот момент # перемещение ещё не проведено. if res is not False and not (isinstance(res, dict) and res.get("type") == "ir.actions.act_window"): self._directive_run_callback_policies("button_validate") return res def action_agv_callback(self, payload: dict): for picking in self: picking.message_post( body="AGV Unit 01: Доставка в зону производства выполнена.
" "Батарея: 84%." ) return True