MenuItem e Actions

Gli oggetti del Menu

I MenuItem sono oggetti salvati nella modello ir.ui.menu and possono essere visualizzati nel menu tecnico:

Settings -> Technical -> User Interface -> Menu Items

Sono organizzati in una struttura ad albero. I menu radice (top-level) vengono listati nell’elenco completo delle applicazioni, ogni applicazione deve quindi avere almeno un elemento del menu per poter essere visualizzata.

Il primo sottolivello di menu crea il menu principale dell’applicazione, i successivi vengono rappresentati come menu dropdown nei rispettivi padri.

Un esempio di menu di secondo livello che abbiamo aggiunto con il nostro modulo task_plus

<record model="ir.ui.menu" id="menu_todo_project">
    <field name="name">Projects</field>
    <field name="action" ref="action_todo_project" />
    <field name="parent_id" ref="todo_app.menu_todo_task" />
    <field name="sequence" eval="2" />
</record>

Window Actions

Una Window Action comanda le azioni che possono essere compiute attraverso l’interfaccia utente e solitamente vengono associate a dei MenuItem oppure a dei bottoni. Principalmente comunicano alla UI su quale tipo di modello andare a lavorare e quali viste del modello rendere disponibili all’utente. Ad ogni azione può opzionalmente essere legato un domain e un context che andranno a modificare il comportamente specifico del sistema (vedi la prossima sezione)

Sempre nel nostro modulo task_plus abbiamo legato al menu dei progetti questa action:

<record model="ir.actions.act_window" id="action_todo_project">
    <field name="name">Projects</field>
    <field name="res_model">todo.project</field>
    <field name="view_mode">tree,form</field>
    <field name="domain">[]</field>
    <field name="context">{}</field>
</record>