Есть ли способ добавить дополнительное действие в меню действий в дереве в Odoo 12? - PullRequest
1 голос
/ 13 июля 2020

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

Мой мастер работает, потому что я тестировал его индивидуально, но мне нужно добавить его к кнопке действия на вверху, и я не знаю, как

Я пытался использовать action.server, но не нашел ни одного примера, который мне помог

Спасибо

Также я знаю это из Odoo 10 на Odoo 12 изменено, поэтому я не нашел подсказки.

Далее приведены примеры, которые я пробовал, но не добился успеха

<record model="ir.actions.act_window" id="enviar_evaluacion">
        <field name="name">enviar_evaluacion</field>
        <field name="view_id" ref="vista_formulario_riesgo_para_evaluacion"/>
        <field name="domain">[]</field>
        <field name="context">{}</field>
        <field name="res_model">pdi.riesgo</field>
        <field name="view_type">form</field>
        <field name="view_mode">form</field>
        <field name="target">new</field>
</record>

<record model="ir.actions.server" id="accion_servidor_evaluacion">
    <field name="name">Enviar a evaluacion</field>
    <field name="model_id" ref="model_pdi_riesgo_wizard_evaluacion"/>
    <field name="state">code</field>
    <field name="code">
        object.enviar_a_evaluar(context.get('active_ids'))
    </field>
</record>

следующая попытка

<record model="ir.actions.server" id="menu_action_evaluacion">
    <field name="name">Enviar a evaluacion</field>
    <field name="model_id" ref="model_pdi_riesgo"/>
    <field name="state">code</field>
    <field name="code">
        action=pdi.riesgo.wizard.evaluacion.enviar_a_evaluar()
    </field>
</record>




<menuitem id="menu_enviar_a_evaluacion" 
          name="Enviar a evaluacion" 
          parent="pdi_Riesgo.menu_riesgo_evaluaciones" 
          action="menu_action_evaluacion"/>

Ответы [ 2 ]

2 голосов
/ 13 июля 2020

«Новый» способ - установить несколько новых полей для действий. Ниже приведен пример из приложения Odoo crm :

        <!--
            'Mark as Lost' in action dropdown
        -->
        <record id="action_mark_as_lost" model="ir.actions.server">
            <field name="name">Mark as lost</field>
            <field name="model_id" ref="model_crm_lead"/>
            <field name="binding_model_id" ref="crm.model_crm_lead"/>
            <field name="binding_view_types">list</field>
            <field name="state">code</field>
            <field name="code">
if record:
    action_values = env.ref('crm.crm_lead_lost_action').read()[0]
    action_values.update({'context': env.context})
    action = action_values
            </field>
        </record>

Итак, в модели ir.actions (которая наследуется ir.actions.server) есть три поля, все начинающиеся с binding_

  • binding_model_id: установить ссылку на существующую модель, достаточно, чтобы показать действие в меню действий
  • binding_type: report для меню отчета и action для действия menu (по умолчанию)
  • binding_view_types: list,form по умолчанию, list и form также должны работать, я не смотрел в это поле, поэтому, возможно, есть намного больше комбинаций / значений
0 голосов
/ 13 июля 2020

[Odoo 7,8,9 и 10], чтобы добавить действие в меню действий, вы также должны создать запись для модели «ir.values». Вот пример:

<record model="ir.values" id="ir_values_my_action">
      <field name="model_id" ref="model_my_model" />
      <field name="name">Name Of Action</field>
      <field name="key2">client_action_multi</field>
      <field
        name="value"
        eval=
          "'ir.actions.server,' + str(ref('action_name_reference'))"/>
      <field name="key">action</field>
      <field name="model">my.model</field>
    </record>
...