Как открыть запись one2many в текущем окне, а не во всплывающем окне в odoo V13

Я поискал на старых форумах и не нашел достойных ответов. Можно ли щелкнуть запись в списке one2many и открыть всю страницу, а не только всплывающее окно?

Если да, то где еще я могу внести изменения в код?

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

Спасибо за ваш вклад.


person aru    schedule 08.09.2020    source источник
comment
Я думаю, что в Odoo эта опция недоступна из коробки. так что вам может потребоваться настройка   -  person kerbrose    schedule 08.09.2020
comment
есть ли какой-либо пример или документ для настройки того же в odoo V13? Шаги вроде   -  person aru    schedule 08.09.2020
comment
Вы можете использовать кнопку в древовидном представлении, чтобы открыть запись, или вы можете использовать кнопку, чтобы открыть запись, которая находится в поле one2many, например, умные кнопки   -  person Charif DZ    schedule 08.09.2020
comment
Кнопка в смысле, для всех записей? Если у меня есть 10 записей для модели, которая уже находится в представлении в виде дерева, тогда, если я нажимаю на одну запись, она должна отображать вид формы в текущем окне, а не во всплывающем окне. Вы об этом говорите? если да, то есть ли у вас какие-либо документы на это?   -  person aru    schedule 08.09.2020
comment
У меня не было времени написать ответ, но я думаю, что @arryph понял идею   -  person Charif DZ    schedule 08.09.2020


Ответы (1)


Вы можете использовать button для достижения этого в списке просмотра формы. Тип кнопки должен быть object, и она будет возвращать действие типа ir.actions.act_window.

Добавьте следующую кнопку внутри тега tree:

<button name="open_action" string="Open" type="object" class="oe_highlight"/>

Добавьте эту функцию в модель:

def open_action(self):
  return {
    'name': self.display_name,
    'type': 'ir.actions.act_window',
    'view_mode': 'form',
    'res_model': self._name,
    'res_id': self.id,
    'target': 'current
}

Обратите внимание, что цель current гарантирует, что объект откроется в текущем окне. Цель new открывается в модальном всплывающем окне.

person arryph    schedule 08.09.2020
comment
Спасибо за ваш ответ. - person aru; 08.09.2020
comment
не могли бы вы рассказать о случае использования self.display_name () ?? - person aru; 13.11.2020
comment
Я вижу, что после установки цели на «текущую» я вижу, что она открывается как всплывающее окно, что уже происходит при нажатии на запись без кнопки. при добавлении 'new' отображается ошибка с display_name () в odoo V13 - person aru; 13.11.2020
comment
обновленный ответ, он будет self.display_name. он просто отображает имя записи как заголовок всплывающего окна. вы можете заменить любой фиксированной строкой, например 'name': 'Popup'. - person arryph; 13.11.2020