Создайте еще один пункт меню действий в Odoo

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

Используемая модель: education.group

Модуль, в котором определено: образование.

введите здесь описание изображения

<record id="education_group_mailing_action" model="ir.actions.server">
    <field name="name">Generate group lists</field>
    <field name="type">ir.actions.server</field>
    <field name="model_id" ref="model_education_group"/>
    <field name="binding_model_id" ref="model_education_group"/>
    <field name="state">code</field>
    <field name="code">action = records.generate_lists()</field>
</record>

<record id="education_group_mailing_action2" model="ir.default">
        <field name="model_id" ref="model_education_group" />
        <field name="field_id" eval="1" />
        <field name="json_value">False</field>
        <field name="name">Generate group lsts</field>
        <field name="key2">client_action_multi</field>
        <field name="key">action</field>
        <field name="model">education.group</field>
        <field name="value" eval="'ir.actions.server,' + str(ref('education_group_mailing_action'))" />
    </record>
class EducationGroup(models.Model):
    _inherit='education.group'

   def generate_lists(self):
        print("HELLO!")

Кто-нибудь знает, как это сделать? Спасибо за чтение!


person arevilla009    schedule 16.03.2020    source источник


Ответы (2)


Если вы используете Odoo12.0, вам нужно сделать так.

    <record id="new_action1" model="ir.actions.server">
        <field name="name">New Action</field>
        <field name="model_id" ref="model_product_template" />
        <field name="binding_model_id" ref="model_product_template" />
        <field name="state">code</field>
        <field name="code">records.export_product()</field>
    </record>
    <record id="run_product_new_order_action2" model="ir.default">
        <field name="model_id" ref="model_product_template" />
        <field name="field_id" eval="1" />
        <field name="json_value">False</field>
        <field name="name">New Action</field>
        <field name="key2">client_action_multi</field>
        <field name="key">action</field>
        <field name="model">product.template</field>
        <field name="value" eval="'ir.actions.server,' + str(ref('new_action1'))" />
    </record>

Если вы используете Odoo13.0, это будет похоже на

       <record id="product_order_new_action1" model="ir.actions.server">
            <field name="name">New Action</field>
            <field name="type">ir.actions.server</field>
            <field name="model_id" ref="model_product_template" />
            <field name="binding_model_id" ref="model_product_template" />
            <field name="state">code</field>
            <field name="code">records.sync_product(False)</field>
        </record>
person Adam Strauss    schedule 17.03.2020
comment
Привет, Адам, я попробовал следующий код, который я редактировал, но он не работает, я не вижу новый элемент раскрывающегося списка, ты знаешь, что происходит? @Адам Штраус - person arevilla009; 18.03.2020
comment
который из ? первый или второй? - person Adam Strauss; 18.03.2020
comment
Я использую Odoo12, поэтому я попробовал первый. Я отредактировал свой код с новой попыткой, но по-прежнему не вижу элемент раскрывающегося списка. Спасибо за помощь! @Адам Штраус - person arevilla009; 18.03.2020
comment
Мне нужно использовать в древовидном представлении для запуска функции python для выбранных записей. @Адам Штраус - person arevilla009; 18.03.2020

Проверьте этот код,

<record id="mail_mass_mailing_lists_action" model="ir.actions.server">
    <field name="name">Generate group lists</field>
    <field name="type">ir.actions.server</field>
    <field name="model_id" ref="mass_mailing.model_mail_mass_mailing_list"/>
    <field name="binding_model_id" ref="mass_mailing.model_mail_mass_mailing_list"/>
    <field name="state">code</field>
    <field name="code">action = records.generate_lists()</field>
</record>

Спасибо

person Dipen Shah    schedule 17.03.2020