openerp - мастер не должен закрываться при нажатии кнопки

Я добавил кнопку в мастер "Изменить стандартную цену (stock.change.standard.price)". Он доступен из раздела Продукты-> Закупка -> ссылка "- обновить".

Как только я нажимаю на эту кнопку, мастер закрывается, хотя я не хочу его закрывать. Он должен быть закрыт, когда я нажимаю "Применить" или "Отмена".

Вот код:

Кнопка:

<button string="New Cost" name="get_price" type="object" class="oe_inline"/>

Метод:

def get_price(self, cr, uid, ids, context=None):
    cost_price = 100
return {'new_price': cost_price, 'nodestroy': True}

Я возвращаю нодестрой тоже, поскольку я прочитал это, чтобы не уничтожить волшебника.

Я делаю что-то неправильно?

Спасибо заранее.

3 ответа

Вы должны вернуть словарь, как это, чтобы снова открыть мастер,

view_id = self.pool.get('ir.ui.view').search(cr,uid,[('model','=','your wizard')])
return {
    'type': 'ir.actions.act_window',
    'res_model': 'your wizard',
    'name': _('Your wizard Heading'),
    'res_id': ids[0],
    'view_type': 'form',
    'view_mode': 'form',
    'view_id': view_id,
    'target': 'new',
     'nodestroy': True,
     'context': context
        }

(Odoo 9/10) Самое простое, что нужно сделать, это не закрывать мастер:

@api.multi
def null_action(self):
    return {
        "type": "set_scrollTop",
    }

Так как тип используется для вызова любого метода класса ActionManager (javascript)

Это лучше, чем "type": "ir.actions.do_nothing", которое генерирует исключение (этот атрибут не существует)

Попробуйте вернуть словарь как

    return {
        'name':_("wizard name"),
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': 'model', # your current model
        'type': 'ir.actions.act_window',
        'nodestroy': True,
        'target': 'new',
        'context': {'default_fieldname': 'your value'}
    }

Это снова откроет мастера. Если вы хотите снова открыть мастера.

Другие вопросы по тегам