Обновить контекст в старом API - PullRequest
0 голосов
/ 18 сентября 2018

Это оригинальный метод, но я хочу назвать его с super и добавить в него мой контекст, но это старый API, и я немного запутался здесь.

После move_scrap write должен быть вызван метод, но ничего не происходит, и write не вызывается

и, конечно, with_context не работает

class stock_move_scrap(osv.osv_memory):
    _name = "stock.move.scrap"
    _description = "Scrap Products"


  def move_scrap(self, cr, uid, ids, context=None):
    """ To move scrapped products
    @param self: The object pointer.
    @param cr: A database cursor
    @param uid: ID of the user currently logged in
    @param ids: the ID or list of IDs if we want more than one
    @param context: A standard dictionary
    @return:
    """
    if context is None:
        context = {}
    move_obj = self.pool.get('stock.move')
    move_ids = context['active_ids']
    for data in self.browse(cr, uid, ids):
        move_obj.action_scrap(cr, uid, move_ids,
                         data.product_qty, data.location_id.id, restrict_lot_id=data.restrict_lot_id.id,
                         context=context)
    if context.get('active_id'):
        move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
        if move.picking_id:
            return {
                'view_type': 'form',
                'view_mode': 'form',
                'res_model': 'stock.picking',
                'type': 'ir.actions.act_window',
                'res_id': move.picking_id.id,
                'context': context
            }
    return {'type': 'ir.actions.act_window_close'}

iпопробовал что-то вроде этого

 def move_scrap(self, cr, uid, ids, context=None):
        if context is None:
            context = {}
        ctx = context.copy()
        ctx['allow_scrap'] = True
        super(stock_move_scrap,self).move_scrap(cr, uid, [], context=ctx)

1 Ответ

0 голосов
/ 18 сентября 2018

Ваша проблема в том, что вы удаляете идентификаторы из супер-вызова, заменяя ожидаемый аргумент идентификаторов на [].Измените свою последнюю строку с:

super(stock_move_scrap,self).move_scrap(cr, uid, [], context=ctx)

на:

super(stock_move_scrap,self).move_scrap(cr, uid, ids, context=ctx)
...