ir.ui.menu 在 OpenERP 7.0 中有什么用?

What is the use of ir.ui.menu in OpenERP 7.0?

我是 OpenERP 的新手,我想知道 OpenERP 中的 model="ir.ui.menu" 是什么。像这样还有很多其他型号。

例如:

model="ir.ui.view"

model="ir.actions.act_window"

任何人都可以解释这一切吗?

http://useopenerp.com/v8/model/ir-ui-view#pagetop

https://www.odoo.com/documentation/8.0/reference/actions.html#window-actions-ir-actions-act-window

有关详细信息,请参阅上述参考资料。 希望对您有所帮助。

使用 ir.ui.menu 模型,您可以创建新的菜单项。您可以使用 menuitem 标签,它是快捷方式:

<record id="menu_human_readable_name" model="ir.ui.menu" >
    <field name="name">Human readable name</field>
    <field name="sequence" eval="10" />
    <field name="action" ref="action_name" />
    <field name="parent_id" ref="base.menu_custom" />
</record>

您对 ir.actions.act_window 模型 in the Odoo documentation 做了一个简短的解释。您可以在 ir.ui.menu 模型

action 字段中分配此类操作的 id

The most common action type, used to present visualisations of a model through views: a window action defines a set of view types (and possibly specific views) for a model (and possibly specific record of the model).

<record id="action_human_readable_name_act_window" model="ir.actions.act_window">
    <field name="type">ir.actions.act_window</field>
    <field name="name">Human readable name</field>
    <field name="res_model">model.name</field>
    <field name="view_mode">tree,form</field>
    <field name="view_type">form</field>
    <field name="target">current</field>
    <field name="domain">[]</field>
    <field name="context">{}</field>
    <field name="search_view_id" ref="ir.ui.view" />
</record>

ir.ui.view 用于显示字段或树列表的视图

您在 Odoo Documentation 中有更多信息:

Views define the way the records of a model are displayed. Each type of view represents a mode of visualization (a list of records, a graph of their aggregation, …). Views can either be requested generically via their type (e.g. a list of partners) or specifically via their id. For generic requests, the view with the correct type and the lowest priority will be used (so the lowest-priority view of each type is the default view for that type).

<record model="ir.ui.view" id="view_id">
    <field name="name">view.name</field>
    <field name="model">object_name</field>
    <field name="priority" eval="16"/>
    <field name="arch" type="xml">
        <!-- view content: <form>, <tree>, <graph>, ... -->
        [...]
        <field name="field_name" />
        [...]
    </field>
</record>

菜单和操作

菜单记录在ir.ui.menutable中。为了创建一个新的菜单条目,您可以直接使用record标签创建一条记录。

<record id="menu_external_id" model="ir.ui.menu">
  <field name="name">New Menu</field>
  <field name="action" ref="action_external_id"/>
  <field name="sequence" eval="<integer value>" />
  <field name="parent_id" ref="parent_menu_external_id"/>
</record>

使用menuitem标签有一个快捷方式,您应该优先使用。它提供了一种灵活的方式来轻松定义菜单条目以及图标和其他字段。

<menuitem id="menu_external_id"
    name="New Menu"
    action="action_external_id"
    icon="ICON_NAME"
    groups="groupname"
    sequence="<integer value>"
    parent="parent_menu_external_id"
/>

如果您从 menu/menuitem 中删除 parent/parent_id,那么它将成为顶级菜单。

操作数

action 指定在操作 table (ir.actions.act_window) 中定义的附加操作的标识符。该字段不是强制性的:您可以定义菜单元素而无需将操作与它们相关联。 这在为将充当文件夹的菜单元素定义自定义图标时很有用。这就是 OpenERP 中“项目”或“人力资源”的自定义图标的定义方式。

动作定义系统响应用户动作的行为;新用户登录,双击发票,单击操作按钮,...

有不同类型的简单操作:

  • Window: 开新window
  • 报告:报告的打印

     - Custom Report: The personalized reports  
     - RML Report: The XSL:RML reports
    
  • Execute:在服务端执行一个方法
  • 组:将一些动作集中在一个组中

这些操作用于以下事件:

  • 用户连接。
  • 用户点击菜单。
  • 用户点击“打印”或“操作”图标。

    <record id="action_external_id" model="ir.actions.act_window">
        <field name="name">action.name</field>
        <field name="view_id" ref="view_external_id" />
        <field name="domain">[('field','operator','value')]</field>
        <field name="context">{'key':value}</field>
        <field name="res_model">Model Name</field>
        <field name="view_type">form|tree</field>
        <field name="view_mode">form,tree|tree,form|form|tree</field>
        <field name="target">new/current</field> 
    </record>
    

希望您能轻松理解我下面的解释:

"ir.ui.menu"是一个映射为ir_ui_menu table的数据库模型,用于存储Odoo(OpenERP)中的菜单数据。 Odoo (OpenERP) 中的每个菜单都通过 xml 文件插入并存储在数据库中。此外,"ir.ui.view" 存储视图数据(例如表单、树和搜索视图),"ir.actions.act_window" 存储操作数据。

结论:大多数(不是全部)OpenERP 中的模型是数据库中 tables 的体现。