首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

odoo 开发入门教程系列-QWeb简史

Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经Odoo见过 看板,其中的记录以卡片状结构显示。...一个具体的示例: 一个看板视图 参考: 本主题关联文档可以查看Kanban. 目标: 本节结束时创建一个房产的看板视图 我们的地产应用程序中,我们希望添加一个看板视图来显示我们的房产。...看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。事实上,每张卡片的结构是表单元素(包括基本HTML)和QWeb的混合。...:这向视图中添加name字段。...在上面的示例中,字段name被添加到元素中,但state它之外。当我们需要字段的值但不想在视图中显示它时,可以将其添加到元素之外。

2K20
您找到你想要的搜索结果了吗?
是的
没有找到

odoo wizard界面显示带复选框列表及勾选数据获取

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中的"...TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久的;它们一定时间后自动从数据库中删除。...以下属性皆hasCheckBoxes 为"true"的情况下起作用。 modelName 点击列表复选框时,需要访问的模型名称,需要配合modelMethod方法使用,缺一不可。...odoo14\custom\estate\static\src\js\list_renderer.js 注意:之所以将uuid函数定义list_renderer.js中,是为了避免因为js顺序加载问题... <field name="offer_ids" attrs="{'<em>readonly</em>

5.2K60

odoo ORM API学习总结兼orm学习教程

设置记录树结构的索引存储,以便使用child_of和parent_of域运算符对当前模型的记录进行更快的分层查询 _date_name= 'date' 用于默认日历视图的字段 _fold_name= 'fold' 用于确定看板图中折叠组的字段...(即使是隐藏的),state属性的名称是odoo硬编码且不允许修改的,可用属性有: readonly, required, invisible。...例如states={'done':[('readonly',True)]},表示当state值为done时,将用户界面states所在字段设置为只读(仅针对UI层面) 用法举例: state = fields.Selection...这意味着视图中不存在的字段创建记录期间不会触发调用。...在出现字段的表单视图中,当修改某个给定字段时,将调用该方法。包含表单中存在的值的伪记录上调用该方法。该记录上的字段赋值将自动返回客户端。

13.3K10

odoo 权限管理学习总结

激活开发者模式,即可在设置-用户详情页对用户类型进行编辑(Settings -> Users & Companies -> Users) 以上三类用户的信息都存在res_user与res_partner表中,那么odoo...highlight=noupdate base.user_admin :admin用户(ID为2的用户,用户数据定义odoo\addons\base\data\res_users_data.xml中...可以利用该特性实现隐藏对象需求,比如针对一些常规下不需要显示的特殊字段,为其设置属性groups = "base.group_no_one",可以实现在非Debug模式下隐藏字段图中的显示。...笔者实践发现: 如果创建了规则,但是没有授权给用户,那对于该用户来说,该规则不起作用,就像该规则不存在一样。...,仅需在在对应视图中,为目标按钮元素,添加groups属性即可。

10K20

odoo 开发入门教程系列-一些用户界面

这是因为,odoo中加载CSV文件比加载XML文件更快。 odoo中,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件中的记录来定义的。...适当的位置(本例中为odoo14/custom/estate/models/views)创建 estate_property_views.xml <?xml version="1.0"?...然而,菜单总是遵循一种体系结构,实际上有三个层次的菜单: 根菜单,显示App切换器中(Odoo社区版切换器是一个下拉菜单) 第一级菜单,显示顶部栏中 动作菜单 最容易的方式是XML文件中定义结构来创建菜单...price', digits=(8, 2), required=True) selling_price = fields.Float('selling price', digits=(8, 2), readonly...字段 active = fields.Boolean('Active', default=True, invisible=True) # 注意:实践发现,invisible字段不起作用

2.8K30

odoo 开发入门教程系列-模型之间的关系(Relations Between Models)

, 2), required=True) # 最大8位,小数占2位 selling_price = fields.Float('selling price', digits=(8, 2), readonly...买家可以是任何个人,然而,销售人员必须是房产机构的员工(即odoo用户)。 odoo中,有两种我们经常引用的两种模型: res.partner: 一个partner为一个物理实体或者法人实体。...将它们添加到form视图中新tab页面。 销售人员的默认值必须是当前用户。买家不能被复制。..., 2), required=True) # 最大8位,小数占2位 selling_price = fields.Float('selling price', digits=(8, 2), readonly...我们的练习中就是这样的:报价总是通过房产获得的。 其次,尽管property_id字段是必需的,但我们没有将其包含在视图中odoo如何知道我们的报价与哪个房产相关?

4.4K40

odoo Actions学习总结

环境 odoo-14.0.post20221212.tar Actions(动作) action定义系统响应用户操作的行为:登录、操作按钮、选择发票等… action可以存储在数据库中,也可以作为字典直接返回...列表的第一种类型是默认视图类型,执行操作时默认打开。每个视图类型列表中最多应出现一次。...当action配置如下时,打开的依旧是tree视图,也就说view_mode似乎是如下文所述,type为ir.actions.act_window的情况下,被忽略了,不起作用 { 'type':...web客户端中默认为80 name(可选),action名称,界面显示时拼接到当前面包屑导航(现有导航面包屑 / name值)。...模块的estate.property模型的表单视图中,为Action添加菜单"选取offers",如下: !

2.6K30

iOS学习——布局利器Masonry框架源码深度剖析

用Masonry框架进行布局非常简单,主要特点是采用链式语法进行布局,这一点使得我们使用和代码布局上更为方便,利用Masonry进行布局的前提条件之一是 布局视图必须先被添加到父视图中。...UIView *sv1 = [UIView new]; //利用Masonry进行布局的前提条件之一是 布局视图必须先被添加到父视图中 [sv addSubview:sv1]; [sv1 mas_makeConstraints...* (^)(void))priorityMedium; - (MASConstraint * (^)(void))priorityHigh; - (MASConstraint * (^)(id attr...))equalTo; - (MASConstraint * (^)(id attr))greaterThanOrEqualTo; //MASConstraint.m文件 - (MASConstraint...属性类群:主要是指MASViewAttribute,主要是对NSLayoutAttribute的扩展,方便我们进行约束定义和修改 附属类群:还有一些工具类没有在这张图中进行展示,例如NSArray+MASAdditions

1.4K101

第107期:前端搜索列表中某一项并滚动到可视区域

大致的图形描述如下: image.png 比如上图中dog超出了可视区域的下方,则需要填写该数据时,页面上进行搜索,让dog显示到可视容器内。...需要注意的是: scrollTop属性只能设置本身包含滚动条的元素上,否则不起作用。因为包含滚动条的容器,含有overflow:scroll或者overflow:auto属性。...设置scroll-inner上,则不起作用。 vue3选中真实dom 选中真实dom有两种方式。...scrollContent.getBoundingClientRect() const scrollDistance = bottom2-bottom1 + height getBoundingClientRect()用来获取元素的大小及其相对于口的位置...所以,绑定时,需要我们在外面多加一层div,用来获取真实的DOM。然后通过实例的refs属性,匹配到我们查询的key即可。

1.6K20

ASP.NET Core依赖注入深入讨论

ASP.NET Core中注入组件的典型方式是构造函数注入,针对不同的场景确实存在其他选项,但构造器注入允许您定义没有这些其他组件的情况下此组件不起作用。...控制器中,您有几个选项: public class HomeController : Controller { private readonly IDataService _dataService...Razor视图 您还可以使用新的关键字@injectRazor视图中注入组件: @using Microsoft.AspNetCore.Mvc.Localization @inject IViewLocalizer...Localizer 在这里,我们_ViewImports.cshtml中注入了一个视图本地化器,因此我们将它作为Localizer在所有视图中提供。...链接 ASP.NET Core 依赖注入 | Microsoft Docs 控制器中的依赖关系注入 | Microsoft Docs 视图中的依赖关系注入 | Microsoft Docs

2.1K10

现在的房租有多高(杭州)?

分析了我爱我家的3000多套出租房信息,可以看出房源主要集中西湖区、下城区、拱墅区、江干区、上城区。...这里的房租我把它特意计算为单间价格,其中滨江区房租最高,这估计也是滨江作为高新区,阿里网易华为吉利海康威等诸多上市公司云集的结果,毕竟大厂的员工薪水摆在那里,自然而然也就抬高了滨江的房租。...其中申花和三墩都是属于西湖区,这也与上面的西湖区的房源数量最多有了对应,滨江区政府的价格还是最高,对于滨江区政府的印象就是靠近吉利汽车,海康威,还有就是距离钱塘江岸边很近,滨江区的图书馆也在那里,借书可以支付宝免押金...,最后房租2000以下,离公司挺近的,交通也算便利。...这个是经纬度获取的代码,通过调用百度地图的API,实现对地点的经纬度获取,然后 http://lbsyun.baidu.com/jsdemo.htm#c1_15 里添加你的密匙及获取的经纬度,然后调整地图中心点经纬度

83610

CSS小技能:常用样式属性、选择器分类、盒子模型

] 指定属性的元素 2 [attr=val] 属性等于指定值的元素 2 [attr*=val] 属性包含指定值的元素 3 [attr^=val] 属性以指定值开头的元素 3 [attr$=val] 属性以指定值结尾的元素...3 [attr~=val] 属性包含指定值(完整单词)的元素(不推荐使用) 2 [attr|=val] 属性以指定值(完整单词)开头的元素(不推荐使用) 2 2.9 伪元素 选择器 说明 ::before...元素前插入的内容 ::after 元素后插入的内容 III 盒子模型 一切皆盒子: CSS 中,所有的元素都被一个个的“盒子(box)”包围着,理解这些“盒子”的基本原理,是我们使用 CSS...width 和 height 属性将不起作用 垂直方向的内边距、外边距以及边框会被应用但是不会把其他处于 inline 状态的盒子推开。...固定定位 (Fixed positioning) 将一个元素相对浏览器口(viewport,网页的可视区域)固定,而不是相对另外一个元素。

1.6K10

手把手带你上手D3.js数据可视化系列(一)手把手带你上手D3.js数据可视化系列(一)

其实一直有想写简单的 D3.js 入门文章/教程的打算,但总想着要写就写的全面细致些、有趣些、够通俗易懂些,甚至如果能对标 Daniel Shiffman Processing、P5.js 等方面的输出...选择器用法; 接着通过 append 添加 svg 元素,然后设置其的宽高和背景色,这里为了演示方便,设置成浏览器网页窗口高度的全部和宽度的一半,大家也可以撑满网页窗口,或者用固定大小如 900*600 等,自己需求而定即可...和 window.innerHeight 就是网页窗口某一大小打开时的宽高,即图中红框部分,并且可以看到画布占了一半大小。...通过 d % col_num 取余得到元素每一行里的位置并计算到x坐标上;每一列y坐标等差变化,通过 Math.floor(d / col_num) 取整得到元素每一列里的位置并计算到y坐标上。...所以截止目前,通过运用取余取整操作,画布上较好的绘制出了所有数据。 但如果当数据更多时,超出最大高度又该怎么办呢? 也许可以缩小矩形宽高,然后调节间距一步步搞定。

4.3K20

什么是 DevOps 三步工作法?

简单说一下拆书联盟的活动,目前有几位小伙伴一起做拆书活动,首先由我做来第一期,然后是石雪峰,他是乐配置管理和持续交付部门总监,他会给大家带来第二期拆书活动,后面还有王磊、大梁、景韵、赵班长等同学,都会参与到读书分享过程中...图中左边是生产价值流,指的是生产制造领域中设计、开发和交付产品所需要的活动,包括信息和材料的双重流动。聚焦创造平顺和流式的工作,关注小批量,避免返工,减少在制品等。...图中左下角是一个典型的看板看板里把整个软件的生命周期分成需求调研、需求就绪,开发进行中、开发完成,测试过程中、测试完成,以及UAT测试、准生产、发布等不同的列。...在这里推荐一本书,何勉老师最近编写的《精益产品开发》,前一个月刚上市,我认为是国内做看板比较权威和完整的理论与实践相结合的书,强烈推荐大家阅读,里面会讲很多看板的方法和原则,如何建立、如何实践。...右图是将局部发现转为全局改进的案例,平安科技有一个“看板大巡游”的活动,组织级推动看板时,每个团队会选一个人参加看板巡游活动,由一个敏捷教练带队,像导游一样带着大家到各个团队看板处观摩,评价每团队的看板

4.2K112

一文学会使用 CSS 中的 min(), max(), clamp() 以及它们的使用场景用例

1000px); } 假设我们有一个元素,其最小宽度为200px,首选值为50%,最大值为1000px,如下所示: 上面的计算过程是这样的: 宽度永远不会低于200px 内容中间首选值是50%,只有口宽度大于...如果口足够大,我们可以根据口的大小动态增加侧边栏宽度,这里我们可以使用max()函数为其设置最小宽度。...如果换做min(),那么就不能在小的视图中控制字体了。....section-title:before { content: attr(data-test); font-size: max(13vw, 50px); } 源码: https://codepen.io...editors=1100 Grid Gap 一个使用风格布局的界面上,如果我们想根据口大小来调整网格之间的间距,使用 clamp() 是很容易做到的: .wrapper { display:

72021

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券