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'}
}
Это снова откроет мастера. Если вы хотите снова открыть мастера.