odoo17开发教程(17):美化UI界面

2024-03-20 22:52

本文主要是介绍odoo17开发教程(17):美化UI界面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从业务角度来看,我们的房地产模块现在很有意义。我们创建了特定的视图,添加了几个操作按钮和约束条件。不过,我们的用户界面还有些粗糙。我们希望在列表视图中添加一些颜色,并使一些字段和按钮有条件地消失。例如,"已售出 "和 "取消 "按钮应在房产售出或取消时消失,因为此时已不允许更改状态。

本章只介绍了视图中的一小部分功能。如需更全面的概述,请阅读参考文档。

参考:与本章相关的文档可在 View 记录和 View 架构中找到。

内联视图
 

在房地产模块中,我们添加了一个房地产报价列表。我们只需在字段 offer_ids 中添加以下内容:

<field name="offer_ids"/>

该字段使用 estate.property.offer 的特定视图。在某些情况下,我们希望定义一个特定的列表视图,该视图只在表单视图中使用。例如,我们希望显示与某个属性类型相关联的属性列表。但是,为了清晰起见,我们只想显示 3 个字段:名称、预期价格和状态。

实践

添加内联列表视图。

  • 在 estate.property.type 模型中添加 One2many 字段 property_ids。
  • 如本节目标所示,在 estate.property.type 表单视图中添加该字段。

 

class EstatePropertyType(models.Model):_name = "estate_property_type"_description = "Estate Property Type"name = fields.Char(required=True)property_ids = fields.One2many("estate_property", "property_type_id")_sql_constraints = [("check_name", "UNIQUE(name)", "房产类型必须是唯一的")]
<record id="estate_property_type_view_form" model="ir.ui.view"><field name="name">房产类型详情</field><field name="model">estate_property_type</field><field name="arch" type="xml"><form string="详情"><sheet><div class="oe_title"><h1><field name="name"/></h1></div><notebook><page string="房产列表"><field name="property_ids"><tree><field name="name" string="title"/><field name="expected_price"/><field name="state"/></tree></field></page></notebook></sheet></form></field></record>

效果如下: 

Widgets小工具

每当我们向模型中添加字段时,我们(几乎)从未担心过这些字段在用户界面中的外观。例如,日期字段提供了日期选择器,而 One2many 字段则自动显示为列表。Odoo 会根据字段类型选择合适的 "部件"。

不过,在某些情况下,我们需要对某个字段进行特定表示,而 widget 属性就可以实现这一点。在使用 widget="many2many_tags" 属性时,我们已经将其用于 tag_ids 字段。如果我们没有使用它,那么该字段就会显示为一个列表。

每个字段类型都有一组小部件,可用于微调其显示。有些小部件还带有额外的选项。可以在字段中找到详尽的列表。 

<field name="state" widget="statusbar" statusbar_visible="open,posted,confirm"/>

实践:使用状态栏部件显示 estate.property 的状态

<field name="state" widget="statusbar" statusbar_visible="offer_received,offer_accepted,sold"/>

效果如下:右边出现了状态条 

 

这篇关于odoo17开发教程(17):美化UI界面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/831016

相关文章

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基