实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下,根据条件对form视图自带按钮的显示、隐藏进行控制 代码实现 隐藏、显示编辑和创建按钮为例 odoo14...function (require) { 'use strict'; let modelConfigs = { 'estate.property': { // form表单视图归属模型...,即需要对按钮的显示做管控的模型名称 /* hideEditButton hideCreateButton的值可以简单理解为eval函数的参数,形如 eval(arg),整个表达式计算结果为...、或自定义按钮,可以通过查看form视图的html结构,依葫芦画瓢。...根据实际需求,可以通过在js中打印this对象,以获取更多判断是否隐藏、显示按钮的有用信息。
环境 odoo-14.0.post20221212.tar Actions(动作) action定义系统响应用户操作的行为:登录、操作按钮、选择发票等… action可以存储在数据库中,也可以作为字典直接返回...binding_view_types 以逗号分隔的视图类型列表,即Action需要显示的上下文菜单所在的视图,主要是“列表”和“表单”。...默认为list,form(列表和表单) Window Actions (ir.actions.act_window) 最常见的动作类型,用于通过视图呈现模型的可视化:Window Action为模型定义了一组视图类型...默认值为“Unnamed”,注意:如果name值为空字符串,则默认为 Unnamed 例如,要使用列表和表单视图打开客户(设置了customer标志的partner): { "type": "ir.actions.act_window..."views": [[False, "tree"], [False, "form"]], "domain": [["customer", "=", true]], } 或者在新对话框中打开特定产品的表单视图
_context, 'target': 'new' } } 说明:打开estate.customer.wizard默认form视图 形式3:实现类似浏览器刷新当前页面效果 return...> estate_customer_tree 组件定义 js实现 为列表视图添加自定义上传数据文件按钮 odoo14\custom\estate\static\src\js\estate_customer_tree_upload.js...,想复用上述js,需要替换js中以下内容: 修改estate.upload.customer.mixin为其它自定义全局唯一值 替换o_estate_customer_upload为在对应按钮视图模板中定义的对应...class属性值 替换estate.CustomerHiddenUploadForm为在对应按钮视图模板中定义的隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板中定义的按钮模版名称...> 按钮视图模板定义 odoo14\custom\estate\static\src\xml\estate_customer_tree_view_buttons.xml <?
实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 方案1 通过研究发现,点击odoo form表单按钮时,会调用odoo14\odoo\addons\web...\static\src\js\views\form\form_controller.js文件中的_onButtonClicked函数,在该函数中响应点击事件。...所以,我们可以通过重写该方法来实现自定义响应点击事件。...示例如下 表单视图定义 codePojects\odoo14\custom\estate\wizards\demo_wizard_views.xml 的情况下,可以为按钮添加onclick属性,指定点击按钮时需要调用的javascript函数,不过,此时点击按钮,不会再调用web.FormController中定义的_onButtonClicked
表单视图也是如此:尽管使用了一些标记,如或,但在设计方面几乎没有什么可做的。 然而,如果我们想给我们的应用程序一个独特的外观,就必须更进一步,能够设计新的视图。...Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中的记录以卡片状结构显示。...目标: 本节结束时创建一个房产的看板视图 在我们的地产应用程序中,我们希望添加一个看板视图来显示我们的房产。看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。...事实上,每张卡片的结构是表单元素(包括基本HTML)和QWeb的混合。看板视图的定义与列表视图和表单视图的定义相似,只是它们的根元素是kanban。...前者是根据当前用户参数格式化的,后者则是直接通过read()读取的。 在上面的示例中,字段name被添加到元素中,但state在它之外。
在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。 视图是在带有操作和菜单的XML文件中定义的。...它们是ir.ui.view model的实例。 在我们的estate模块中,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示的不仅仅是名称。 在表单视图中,应该对字段进行分组。...练习 -- 添加自定义表单视图 在合适的XML文件中为estate.property 定义视图 为了避免每次修改视图时都重新启动服务器,可以在启动服务器时添加--dev-xml,以便只刷新页面就可以查看视图修改...搜索视图与列表及表单视图略有不同,因为它们不显示内容。尽管它们适用于特定模型,但它们用于过滤其他视图的内容(通常是聚合视图,比如列表). 除了在使用方面的不同,他们的定义方式是一样的。.../> Odoo生成的默认搜索视图提供了按name筛选的快捷方式。
、过滤条件 视图定义 为设置action打开的tree列表视图,添加默认搜索,搜索条件为 state字段值等于True odoo> 说明:'group_by': '分组字段名称' 用于视图对象按钮,传递数据给模型方法 模型设计 #!...,服务端会报错误,如下: TypeError: action_confirm2() takes 1 positional argument but 2 were given 用于视图动作按钮,传递数据给动作关联的视图...> 传递数据给视图按钮 action_demo_wizard action关联视图设计 odoo> 打开上述视图
添加字段到表单视图,正如本章目标中展示的那样 对于关系型字段,可以使用通过字段的路径作为依赖项: description = fields.Char(compute="_compute_description...提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时的奔溃 在表单和列表视图中添加字段,正如本章目标中显示的第二个动画中的一样。...同时,需要注意的是,不要循环遍历 self,因为该方法在表单视图中触发,self总是代表单条记录。...始终首选computed field,因为它们也是在表单视图上下文之外触发的。永远不要使用onchange将业务逻辑添加到模型中。...这是一个非常糟糕的想法,因为在以编程方式创建记录时不会自动触发onchanges;它们仅在表单视图中触发。
实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中的"...选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页中内联tree视图("Offers" Tab页)的列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。....略 │ │ __init__.py │ │ │ ├─addons │ │ │ __init__.py │ ...略 ...略 wizard简介 wizard(向导)通过动态表单描述与用户...可选 modelMethod 点击列表复选框时,需要调用的模型方法,通过该方法收集列表勾选记录的数据。可选。...__DEBUG__['services']['web.ListRenderer'] = ListRenderer; //覆盖原有的ListRender服务 }); 实践过程中,有尝试过以下实现方案,视图通过指定相同服务
在这篇教程里我们将会了解到 Odoo 模型里的一些其他类型的字段和特殊机制,而我依然会继续带领大家一起完善我们的 Todo 应用,不断地往里面添加一些新的功能特性,让它看起来更丰满也更实用一些。.../mymodules --db-filter=^demo$ -d demo -u todo 升级后创建或打开任意一条待办事项进入到表单页面,就可以看到已经多了「紧急程度」这个字段了,并且默认选择了「待办...任务是否已经过期,我们要先知道任务的截止时间(上面一小节已经加上了)和当前时间,然后进行比较判断任务的截止时间是否小于当前时间,如果是则表示任务已经过期了,我们需要在视图上用红色将对应的任务标记起来。...这个需求跟时间有关,并且时间是流动(一直在变化)的,所以我们应该要有一个方法在用户每次打开待办事项之前,把这个结果计算好,并且反馈给用户,还好 Odoo 的 ORM 已经为我们实现了相关的机制——计算字段...我们打开视图文件来加点东西上去: <!
-> Users & Companies -> Groups),并为用户分配不同的用户组,及设置相关权限(菜单权限,视图权限,访问权限,记录规则) 此外,为了更方便的管理用户组,odoo还支持对用户组...模型访问权限(Access Rights,表级别) 当模型中没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志中打印: 2022-12-14 09:01:38,994 32508...授权给用户的模型访问权限,可通过点击Settings -> Users & Groups -> Users用户详情页Access Rights按钮查看。...注意:通过为当前视图中目标字段添加groups属性实现的权限控制仅作用于当前视图,如果希望当前视图模型(Model)的所有视图中,对该字段实现统一的权限控制话,需要在模型定义中,为目标字段添加groups...接口,会调用fields_view_get方法,可以重写此方法以控制xml显示的效果(参考网络资料,未实践验证) 按钮权限(按钮级别) 类似字段权限控制,仅需在在对应视图中,为目标按钮元素
,树,搜索视图 该练习是对前几章很好的扼要重述:你需要创建一个 model,设置 model,添加 动作和菜单,并且创建视图....它支持标准Python的集合操作,如len()和iter(),以及recs1 | recs2等额外的集合操作。...,不必创建动作和菜单 添加offer_ids字段到estate.property 模型极其表单视图 这里有几件重要的事情需要注意。...首先,我们不需要所有模型的操作或菜单。某些模型只能通过另一个模型访问。在我们的练习中就是这样的:报价总是通过房产获得的。 其次,尽管property_id字段是必需的,但我们没有将其包含在视图中。...当我们通过one2many字段创建记录时,为了方便,会自动填充相应的many2one 添加odoo14\custom\estate\models\estate_property_offer.py #!
客户端通过JSON-RPC或者XML-RPC与服务器进行通信。 开发 实现功能 数据访问功能:信息的增删查改。...工作流开发:用软件表达企业层级的工作协作关系。有两种方式:XML方式定义、可视化拖拽编程定义。 报表开发:把系统的数据以特定形式输出打印。主要有:文档报表、图形报表等。...然后使用自己的模块:把自己的模块路径设置到odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...static:静态资源文件,如css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令 使用...构建动作对象,关联某个具体菜单项的响应。 构建视图对象:主要是list、tree、form、search视图。
想要打印 PDF 报告,你将需要Wkhtmltopdf工具。Odoo 推荐的版本是0.12.5,这个版本不在 CentOS 8 官方软件源仓库中。...九、将 Nginx 配置成 SSL 代理服务器 默认的 Odoo 网站服务器通过 HTTP 服务。...,你可以通过https://example.com来访问 Odoo 了。...十二、总结 这篇指南带你浏览了如何在 CentOS 8 上的 Python 虚拟环境中 安装 Odoo 13,并使用 Nginx 作为反向代理服务器。...我们展示了如何在生产环境中如何启用多进程以及优化 Odoo。
上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。...因此,对CSV文件所做的所有说明对XML文件都适用。当数据链接到视图时,我们将它们添加到views文件夹中 本章,我们将通过XML文件加载我们第一个action和菜单。...odoo中,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件中的记录来定义的。常见的模式为 菜单> action > 视图。为了访问记录,用户在几个菜单级中导航。...动作可以通过三种方式触发 : 点击菜单项目(链接接到指定动作) 点击视图按钮(如果与action关联) 对象的上下文action 本章仅涵盖第一种情况。...我们看到一些属性,如required=True,会影响数据库中的表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。
2.如何在文件下拉窗口底部设置最近运行的文件名数量? 打开“工具”,选择“选项”,然后选择“常规”,并在“最近使用的文件列表”下的文件编号输入框中更改文件编号。...在EXCEL菜单中,单击文件-页面设置-工作表-打印标题;您可以通过按下折叠对话框的按钮并用鼠标划定范围,将标题设置在顶端或左端。这样,Excel会自动将您指定的部分添加为每页的页眉。...5.如果一个Excel文件中有多个工作表,如何将多个工作表同时设置为相同的页眉和页脚?如何一次打印多个工作表? 在EXCEL菜单的视图-页眉和页脚中,您可以设置页眉和页脚来标记信息。...14.如何在屏幕上扩大工作空间? 从“视图”菜单中,选择“全屏”命令。 15.如何使用快捷菜单?弹出菜单包括一些最常用的命令,可以大大提高操作效率。...19.如何在表单中添加斜线? 一般来说,我们习惯在表单上使用斜线,但是工作表本身不提供这个功能。事实上,我们可以使用绘图工具来实现: 点击“绘图”按钮,选择“直线”,鼠标将变成一个十字。
想要启用 PDF 报告打印,你需要安装wkhtmltopdf工具。推荐的 Odoo 版本是0.12.5,它在默认的 Ubuntu 18.04 软件源中不可用。...八、将 Nginx 配置成 SSL 代理服务器 默认的 Odoo 网站服务器通过 HTTP 服务。...,你可以通过https://example.com来访问 Odoo 了。...十一、总结 这篇指南带你浏览了如何在 Ubuntu 18.04 上的 Python 虚拟环境中 安装 Odoo 13,并使用 Nginx 作为反向代理服务器。...我们展示了如何在生产环境中如何启用多进程以及优化 Odoo。
聚类功能支持通过合并功能在地图上显示大量标记。...成功部署流程后,应用程序会在日志中打印一条消息: ▲BPM 流程热部署 Studio 中的流程表单向导现在可以为流程的启动事件生成表单。...表单中将包含一个用于启动流程的按钮,该按钮调用流程引擎的 API。 向导的“表单模板”下拉列表中包含一个新的实体实例流程表单选项。如果选择此选项,向导将支持选择或创建 Entity 类型的流程变量。...: ▲应用程序菜单搜索 主视图的另一个改进是能够在没有子视图打开时以声明方式定义其展示的内容。...DataGrid 改进 现在,双击 DataGrid 的某一行将打开详情视图,或者,如果是查找模式,则完成选择。这对用户来说非常方便,不需要先选择一行,再点击按钮或菜单。
再打开Max文件,导出为FBX文件,使用默认设置,FBX文件也放置在和Max文件相同的目录下,如 导出的时候,可以将模型简单的分类,如地面、植被、楼房等,也可以将模型分为几个区域,如小区1,小区...你可以在层次视图(Hierarchy)单击任何物体,然后移动你的鼠标到场景视图上并按F键。 场景视图将移动以居中显示当前选择的物体。这个命令是非常有用的,你将在场景编辑的时候经常使用它。 ...同时注意视图工具 按钮从手型变成了眼睛。 视图工具的旋转模式 Option键 昀后,你可以通过按下 Command按钮进入缩放模式。在这种模式下,单击并拖动鼠标将前后缩放你的视图。...工程视图控制栏设置(Settings)按钮将为当前选择的资源打开导入设置。创建下拉列表将会在你选择的目录下创建项目,创建文件夹是一种快速有效的组织你的工程视图的方法。...一个完全的自定义布局 你还可以将任何视图切换为全屏模式。将你的鼠标移到视图上并按下空格键(Spacebar),这将临时昀大化当前视图并隐藏所有其他视图。
要获取自己的API密钥,请访问Google的“获取API密钥”页面。单击步骤1中的GET STARTED按钮,将打开一个弹出窗口,如下图所示: 单击复选框选择“ 地图”,然后单击“ 继续”。...http://your_server_ip/digiaddress 您将看到新添加的表单字段和生成按钮,应用程序应如下所示: 此时,如果您在表单中输入地址信息并尝试单击“ 生成”按钮,则不会发生任何事情...您将看到以下内容: 如您所见,我们已成功将地图添加到应用程序中。您可以拖动地图以聚焦在不同位置,放大和缩小,以及在地图,卫星和街道视图之间切换。...此代码创建一个视口,在地图上标记新的边界矩形: . . ....保存文件,但暂时保持打开状态。如果您再次在浏览器中访问该应用程序,则不会看到其外观或行为的任何新变化。同样,如果您要输入地址并单击“ 生成”按钮,则应用程序仍然不会生成或显示地图代码。
领取专属 10元无门槛券
手把手带您无忧上云