Как отобразить вид формы, нажав на запись в поле много-много, не поднимая модальную панель - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть форма с полем Many2many, и я показываю ее в виде дерева:

enter image description here

При нажатии на запись в поле Many2many, указанном выше, форма соответствующей модели поднимается на модальной панели, как и ожидалось:

enter image description here

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

enter image description here

Есть предложения?

1 Ответ

1 голос
/ 04 апреля 2019

Вы можете написать метод действия для модели и расширить древовидное представление, показывая это как кнопку.Этот метод должен возвращать действие, которое открывает запись в представлении формы.Это единственный «простой» способ сделать это с текущей платформой Odoo.

Небольшой пример:

class MyModel(models.Model):
    _name = 'my.model'

    name = fields.Char()

class MyOtherModel(models.Model)
    _name = 'my.other.model'

    name = fields.Char
    my_model_ids = fields.Many2many(
        comodel_name='my.model')

    @api.multi
    def action_show_record(self):
        # only use on singletons
        self.ensure_one()
        return {
            'name': self.name,
            'type': 'ir.actions.act_window',
            'view_type': 'form',
            'view_mode': 'form',
            'res_model': 'my.model',
            'context': self.env.context,
            # don't open a popup
            'target': 'current'
        }

и представление my.other.model

<record id="my_other_model_view_form" model="ir.ui.view">
    <field name="name">my.other.model.view.form</field>
    <field name="model">my.other.model</field>
    <field name="arch" type="xml">
        <form>
            <sheet>
                <group>
                    <field name="name" />
                    <field name="my_model_ids">
                        <tree>
                            <field name="name" />
                            <button name="action_show_record" type="object"
                                string="Open" icon="an-font-awesome-icon" />
                        </tree>
                    </field>
                </group>
            </sheet>
        </form>
    </field>
</record>
...