This question has been flagged
4 Replies
6432 Views

Hello!

I want to call views with some added entries in the 'More'/'Action' Menu. 

I created following code to do this in a Modul 'fc_menu', but the 'More'/'Action' Menu is not displayed.

Does somebody know what is wrong in my code or give me a solution for this?


Here is the code...

File "fc_models.py" :

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class InputCockpitTest(models.TransientModel):
    _name = 'fc.input.cockpit'
    _description = 'A model for testing the input cockpit'
    input_cockpit_name = fields.Char('Input-Cockpit-Name' , Required=False)

File "fc_menu_view.xml" => Menu entry leading to main view :

<menuitem id="fc_input_cockpit_menu" name="Input cockpit"
                  parent="fc_cockpits_menu"
                  action="fc_action_input_cockpit"
                  sequence="1"/>

Action, View and More Menu of main view :

        <!-- input cockpit dashboard Action-->
        <record id="fc_action_input_cockpit" model="ir.actions.act_window">
            <field name="name">Input Cockpit Action</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">fc.input.cockpit</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="usage">menu</field>
            <field name="view_id" ref="fc_view_input_cockpit"/>
            <field name="help" type="html">
              <div class="oe_empty_custom_dashboard">
                  <p>
                    <b>Your input cockpit dashboard is empty.</b>
                  </p>
              </div>
            </field>
        </record>

        <!-- input cockpit dashboard View-->
        <record model="ir.ui.view" id="fc_view_input_cockpit">
            <field name="name">Dashboard input cockpit</field>
            <field name="model">fc.input.cockpit</field>
            <field name="arch" type="xml">
                <form string="Input Cockpit Dashboard">
                    <board style="2-1">
                        <column>
                            <field name="input_cockpit_name"/>
                        </column>
                    </board>
                </form>
            </field>
        </record>

        <!-- input cockpit More Action Menu - Test entry 1 -->
        <record id="fc_ir_values_input_cockpit" model="ir.values">
            <field name="model_id" ref="fc_menu.model_fc_input_cockpit" />
            <field name="name">Input Cockpit test</field>
            <field name="key2">client_action_multi</field>
            <field name="value" eval="'ir.actions.act_window,' + str(ref('fc_action_input_cockpit_test'))" />
            <field name="key">action</field>
            <field name="model">fc.input.cockpit</field>
        </record>

        <!-- input cockpit More Action Menu - Test entry 2 -->
        <record id="fc_ir_values_input_cockpit_2" model="ir.values">
            <field name="model_id" ref="fc_menu.model_fc_input_cockpit" />
            <field name="name">Input Cockpit test 2</field>
            <field name="key2">client_action_multi</field>
            <field name="value" eval="'ir.actions.act_window,' + str(ref('fc_action_input_cockpit_test_2'))" />
            <field name="key">action</field>
            <field name="model">fc.input.cockpit</field>
        </record>

Goal View / Action of entry 1 in 'More'/'Action' Menu :

        <!-- input cockpit test Action-->
        <record id="fc_action_input_cockpit_test" model="ir.actions.act_window">
            <field name="name">Input Cockpit Test Action</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">fc.input.cockpit</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="view_id" ref="fc_view_input_cockpit_test"/>
            <field name="target">current</field>
            <field name="multi">True</field>
            <field name="help" type="html">
              <div class="oe_empty_custom_dashboard">
                  <p>
                    <b>Your input cockpit test view is empty.</b>
                  </p>
              </div>
            </field>
        </record>

        <!-- input cockpit test View-->
        <record id="fc_view_input_cockpit_test" model="ir.ui.view">
            <field name="name">Input Cockpit Test View</field>
            <field name="model">fc.input.cockpit</field>
            <field name="arch" type="xml">
                <form string="Input Cockpit" version="7.0">

                    <!-- Design Form or put your field here -->                
                    <footer>
                        <!-- Add button on footer of pop-up window -->
                    </footer>
               </form>
            </field>
        </record>


I hope anyone can help me please finding a solution to call views from 'More'/'Action' Menu!

Many Thanks in advance!



Avatar
Discard

Did you checked action menu in settings front end.

This might not be added to more menu by default.

Author

Hello, thanks for your answer!

Sorry but I did not know what you mean?

Could please explan where exactly to change some settings?

Best Answer

Hello

try this example. and make yourself sure that you register  .xml file into your __manifest__.py file

        <record model="ir.values" id="record_unique_id">
            <field name="model_id" ref="modulename.model_object_name" />
            <field name="name">ANY VALUE</field>
            <field name="key2">client_action_multi</field>
            <field name="value" eval="'ir.actions.act_window,' +str(ref('your_Action_id'))" />
            <field name="key">action</field>
            <field name="model">object_name</field>
        </record>
or make the action with below action
 <act_window id="action_wizard_small" 
name="My Invoice"
src_model="account.invoice"
res_model="wizard.small"
view_type="form"
view_mode="form"
key2="client_action_multi"
target="new" /> 
Avatar
Discard
Author

Hello, thanks for your answers!

With following code it was possible to add an entry in the 'More'/'Action' Menu.

<act_window id="fc_action_input_cockpit_more_button" name="More-Button-Test" res_model="board.board" src_model="fc.input.cockpit" view_type="form" view_mode="form" key2="client_action_multi" multi="False" target="new"/>

But 'More'/'Action' Menu is only displayed after I created a record, and not on initial view!

See following pictures...

1) Initial view where no record is created - here the 'More'/'Action' Menu is not displayed:

2) View after created a record - here it is displayed correctly:

Could somebody please tell me how it is possible to show the 'More'/'Action' Menu already on initial view when no records are created?

Many thanks in advance!

the more/action button only visible when the one or more record is selected. if there is not record then it will not display.

Author

Thank you Mitul! That's an important information, I did not know it. Kind regards and many thanks for your help!

Author Best Answer

Hello, thanks for your answers!

With following code it was possible to add an entry in the 'More'/'Action' Menu.

<act_window id="fc_action_input_cockpit_more_button" name="More-Button-Test" res_model="board.board" src_model="fc.input.cockpit" view_type="form" view_mode="form" key2="client_action_multi" multi="False" target="new"/>


But 'More'/'Action' Menu is only displayed after I created a record, and not on initial view!

See following pictures... (Sorry, I tried to add pictures but I got an error when storing them!)

1) Initial view where no record is created - here the 'More'/'Action' Menu is not displayed:


2) View after created a record - here it is displayed correctly:



Could somebody please tell me how it is possible to show the 'More'/'Action' Menu already on initial view when no records are created?

Many thanks in advance!

Avatar
Discard