Odoo(九):简单的UI界面

数据文件(XML)

前面,我们通过CSV文件添加了数据。当要加载的数据具有简单格式时,CSV 格式很方便。当格式更复杂时(例如加载视图的结构或电子邮件模板),我们使用 XML 格式。虽然可以通过 CSV 文件加载此类数据,但使用 XML 文件更方便。

XML 文件必须添加到与 CSV 文件相同的文件夹中,并且在 __manifest__.py. 安装或更新模块时,数据文件的内容也会按顺序加载,因此对 CSV 文件所做的所有说明都适用于 XML 文件。当数据链接到视图时,我们将它们添加到views文件夹中。

在 Odoo 中,用户界面(操作、菜单和视图)主要是通过创建和组合 XML 文件中定义的记录来定义的。一个常见的模式是菜单 > 操作 > 视图。要访问记录,用户需要浏览多个菜单级别;最深层次是触发打开记录列表的动作。

动作(Actions)

可以通过三种方式触发操作:

  1. 通过单击菜单项(链接到特定操作)
  2. 通过单击视图中的按钮(如果这些按钮与操作相关联)
  3. 作为对象的上下文动作

这里只介绍第一种情况

例如,我们有一个test.model模型,他的最基本的动作是:

<record id="test_model_action" model="ir.actions.act_window">
    <field name="name">Test action</field>
    <field name="res_model">test.model</field>
    <field name="view_mode">tree,form</field>
</record>
  • id是一个外部标识符。它可以用来引用记录(不知道它的数据库标识符)。
  • model有一个固定值ir.actions.act_window
  • name是动作的名称。
  • res_model是动作适用的模型。
  • view_mode是可用的视图;在这种情况下,它们是列表(树)和表单视图。

菜单(Menus)

为了降低声明菜单 ( ir.ui.menu) 并将其连接到相应操作的复杂性,我们可以使用<menuitem>快捷方式 。

test_model_action的基本菜单是:

<menuitem id="test_model_menu_action" action="test_model_action"/>

菜单test_model_menu_action链接到动作test_model_action,动作链接到模型test.model。如前所述,动作可以看作是菜单和模型之间的链接。

代码

代码

estate/views/estate_property_view.xml

<?xml version="1.0" encoding="UTF-8" ?>

<odoo>
    <data>
        <record id="estate_property_action_window" model="ir.actions.act_window">
            <field name="name">房地产广告</field>
            <field name="res_model">estate.property</field>
            <field name="view_mode">tree,form</field>
        </record>

        <menuitem id="estate_property_menu_action" action="estate_property_action_window"/>
    </data>
</odoo>

estate/__manifest__.py

# -*- coding: utf-8 -*-
{
    'name': '房产广告',
    'version': '1.0',
    'summary': '房产广告',
    'sequence': 10,
    'description': """
        房产广告
        """,
    'author': 'Pure',
    'depends': [],
    'data': [
        'security/ir.model.access.csv',
        'views/estate_property_view.xml',
    ],
    'installable': True,
    'application': True,
}

见证奇迹

升级模块后我们可以看到该模块已经出现

进入该模块
下面未定义的tree视图和form视图。
当我们没有定义tree视图和form视图的时,Odoo会生成一个默认的form视图tree视图的页面,可能默认的页面对于我们来说官感不是太好,而且某些字段是具有关联性的会对为止有要求,当然我们可以自定义这些字段的位置,后面会讲

posted @ 2022-07-01 17:19  pure3417  阅读(425)  评论(0编辑  收藏  举报