Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中的记录以卡片状结构显示。...一个具体的示例: 一个看板视图 参考: 本主题关联文档可以查看Kanban. 目标: 本节结束时创建一个房产的看板视图 在我们的地产应用程序中,我们希望添加一个看板视图来显示我们的房产。...看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。事实上,每张卡片的结构是表单元素(包括基本HTML)和QWeb的混合。...看板视图的定义与列表视图和表单视图的定义相似,只是它们的根元素是kanban。...在上面的示例中,字段name被添加到元素中,但state在它之外。当我们需要字段的值但不想在视图中显示它时,可以将其添加到元素之外。
在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。 视图是在带有操作和菜单的XML文件中定义的。...在我们的estate模块中,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示的不仅仅是名称。 在表单视图中,应该对字段进行分组。 在搜索视图中,我们必须能够搜索的不仅仅是名称。...在自定义搜索视图中添加用户可能过滤的字段是非常常见的。 搜索视图还可以包含元素,这些元素充当预定义搜索的开关。...在odoo中,domain对记录上的条件进行编码:domain是用于选择模型记录子集的条件列表。每个条件都是一个包含字段名、运算符和值的三元组。...当然,我们也可以把表达式写得更容易看一点,如下: A, D, E, '|', B, C 练习 添加定义搜索视图 在合适的XML中为 estate.property 模型定义一个搜索视图 添加过滤和分组
在研发过程中,我们永远在做一些效率提升的事情。...我们以往注重的是资源效率,比如说人、物料、或者测试环境,我们的项目管理人员看到的资源效率是什么,是你这个人有没有在忙,你有没有工作,你的测试环境有没有闲置,因为这些东西停下来的话是一个很大的浪费。...上图是我们显示化的规则,我能达到这一步的入口条件是什么,或者我拖到下一个阶段我是符合显示化的规则的,我们会把一些交付件和报告、链接放在里面,这个步骤非常重要,否则你的整个过程是没有办法管理的。...持续改进 当我们觉得这个看板很好用的时候,我们想把所有的东西都放在上面,我们把一些团队管理也放了进去,我们搞了两个不同的泳道,不同的泳道我们也会建立不同的价值流和规则。 ?...精益看板可以看到很多的瓶颈,按照我们以前的模式,项目经理指定,但如果我们给每个开发人员把所有的任务都列出来,把目标工作量,难易程度,时间都明码标价,让开发人员自己去抢,同时在精益看板会产生一个卡片,会有你的署名
报表开发:把系统的数据以特定形式输出打印。主要有:文档报表、图形报表等。 继承开发 Odoo提供了大量现成的模块给我们使用,但是某些情况下,我们需要制定符合自己需求的功能模块。...因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它的基础上进行修改、扩展,生成自己的模块。...然后使用自己的模块:把自己的模块路径设置到odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...security:对模块的访问权限控制,在ir.model.access.csv文件中定义。还可以新建一个record_rule.xml,在其中进行更细化的权限控制。...配置__init__.py和__manifest__.py 工作流开发 工作流开发主要使用xml,有三种组成元素:workflow、activity、transition。
首先是退出按钮,我们因为不经常用,不必要放在这么明显的位置,而且和个人姓名头像放在一起更符合常理....所以转移到左侧收缩菜单里即可。...开始本节主要内容: 本节我们继续想办法 添加个人看板栏: 可能目前有些同学 很想加一个 统计图,这样看起来显得高大上一些,所以本节我们来嵌入这个。...凭借多年经验,一眼就看出来 这个饼形图的html代码: 我们把其复制到我们的Home.html中: 效果如下: 这里没有成功,是肯定的。而且位置也不对。...我们关闭了progresscircle.css,回到Home.html中设置: 可以看到我们在header中引入的那个css,给它加入宽度看看效果: 效果如下,可以看到间距明显缩小了。...我们想办法给移动到和文字数据看板并列,这里有俩种办法,一是给其和父级div都设置上bootstrap的并列属性。二是简单点,直接给写死位置,因为其相对于页面的底部和左边界是固定的。
但有没有一种方法可以在构建复杂的页面同时加快响应时间呢?嗯,确实有鱼和熊掌兼得的办法。 合并文件是通过把所有脚本放在一个文件中的方式来减少请求数的,当然,也可以合并所有的CSS。...图像映射可以把多张图片合并成单张图片,总大小是一样的,但减少了请求数并加速了页面加载。图片映射只有在图像在页面中连续的时候才有用,比如导航条。...行内图片(Base64编码)用data: URL模式来把图片嵌入页面。这样会增加HTML文件的大小,把行内图片放在(缓存的)样式表中是个好办法,而且成功避免了页面变“重”。...3.添加Expire/Cache-Control头 Http头介绍:Expires,Cache-Control,Last-Modified,ETag 4.启用Gzip压缩 5.将css放在页面最上面 6....将script放在页面最下面 避免在CSS中使用Expressions 把JavaScript和CSS都放到外部文件中 减少DNS查询 压缩 JavaScript 和 CSS 避免重定向 移除重复的脚本
因此,根据这一结论的调整,就是修改数据拉取的日期,太早期的数据就不放在看板中了。...删除同样是两种方式,直接在高级编辑器中删除M code或者在页面直接点击X号进行删除。 其他三张表的操作类似,把所有用到的数据都做一次过滤,让看板只留下我需要看到内容。...这里一定要提的一点是,在实操中,这个环节需要处理的任务还包括清洗脏数据——把数据先拉进BI看板看一眼是最容易发现脏数据的,什么空值啊,异常值啊,简简单单拉个图表出来最容易发现了。...类似在Excel表中的“4sheet”法(我应该只在直播课中讲过这个方法,没有写过相关的文章,后续慢慢出),搭建一个分析式的看板也有固定的套路,类似小时候写作文,我们就叫做“总分总”法吧: 第一步把能有的数据都放在一起大致看一下数据的概况...,根据实际情况进行调整(修改/清洗/补充);然后根据不同的主题对数据进行单独的详细分析;最后把有关联的、能分析出结论的内容整理在单独的页面中。
栈是一种非常有用的数据结构,它就像一摞盘子,第一个放在最下面,第二个放在第一个上面,第三个放在第二个上面,最后一个放在最上面。 ?...当我们要把一个元素放入栈的顶部,这个动作就叫做 push。 pop,同样的,我个人更喜欢叫它“弹出”,带有很强烈的动画效果,有没有?当我们要从栈中移除一个元素时,这个动作就叫做 pop。 ?...3)当我们要在栈中压入一个元素的时候,我们把 TOP 的值加 1,然后把新压入的元素指向 TOP。...4)当我们要从栈中弹出一个元素的时候,我们把 TOP 的值减 1,然后把保持在最顶部的那个元素指向 TOP。 5)当我们压入一个元素的时候,需要检查栈是否已经满了。...空栈的时候,TOP 等于 -1;把元素 1 压入栈中的时候,stack[0] 为 1,TOP 加 1 变为 0;把元素 2 压入栈中的时候,stack[1] 为 2,TOP 加 1 变为 1;把元素 3
TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久的;它们在一定时间后自动从数据库中删除。...获取数据,代码略(假设获取的数据存放在 data 变量中) record_ids = [] for id, value_dict in data.items(...以上参数同下文saveSelectionsToSessionStorage 参数可同时共存 如果需要将action绑定到指定模型指定视图的Action,可以在ir.actions.act_window定义中添加...> 说明: saveSelectionsToSessionStorage 为"true"则表示点击复选框时,将当前选取的记录存到浏览器sessionStorage中,可选 odoo14\custom\estate...odoo14\custom\estate\static\src\js\list_renderer.js 注意:之所以将uuid函数定义在list_renderer.js中,是为了避免因为js顺序加载问题
但是此次将中小企业纳入SAP的战略拼图与上次还是有所不同,从官方的文宣中我们可以看到SAP此次重返中小企业战略还是经过了深思熟虑。...相比较而言,Odoo和浪潮云ERP则是与客户、伙伴和开发者一道共同组成一个生态系统,以满足中小企业复杂的上云需求,同时实现自身和伙伴的发展壮大,这种“从中小企业中来,到中小企业中去”的做法,与SAP的“...用友和金蝶把更多的精力都放在中大型企业产品的研发上,包括金蝶推出大型云产品云苍穹,这也算是一款真正意义上的云架构产品。...以及2019年的1月用友也发布了大型数字化产品NC Cloud,两家都把战略重心放在大中型企业市场,也是由于多年在这块深耕不足,加上SAP和Oracle两大巨头把持,所以从心理上用友和金蝶都想啃下这块骨头...与Odoo的合作的确是一个捷径,Odoo有这么多款产品和成功案例实践,但风险也同样存在,就是能否适合中国企业?特别是在本土化这一块也是浪潮必须要迈过的坎。
使用方法 首先要有简单的 HTML 和 CSS,主要目标就是把 div 放在往下滚才会出现的地方: body { height: 1000px; } .box { width: 100px;...callback 的时候,也会给你一个 Array,Array 是所有正在监听的元素,我们可以从这些元素里的 isIntersecting 来判断当前的元素是出现在画面中,还是离开画面了: const... 要注意监听的元素必须要在载入数据的最下面哦!不然它不会被监听到“出现在页面上”了(这个下方会更详细说明注意事项)。...,这里一次加 50 笔数据 在 render 内加完数据,去判断当前加到的 index 有没有大于数据总数,如果有的话代表所有数据显示完了,因此隐藏 loading,并移除 Intersection Observer...render,但是 render 后的数据量却不足以把 loading 移到画面外,那 loading 就会一直停留在画面中,而不是“出现在画面中”,这麽一来,Intersection Observer
那么在odoo中如何区分用户类型以及如何做权限控制的呢?...如果文件中的部分数据需要应用一次,则可以将文件的这部分放在中,如下: odoo> <!...highlight=noupdate base.user_admin :admin用户(ID为2的用户,用户数据定义在odoo\addons\base\data\res_users_data.xml中...,可以在Settings -> Users & Groups -> Groups界面看到,组定义相关数据存储在res_groups表中 eval语法说明 (0, 0, values) 从提供的valueS...这些访问权限通常定义在security/ir.model.access.csv文件中。
三、 取货看板。它是单元线及原材料(半成品)库间的补充指令,当物料(半成品)消耗完取货看板置为空,把补充信号传递给仓库。 四、 采购看板。...它是原材料库与供应商拉动的补充指令,当物料被领用,采购看板置为空,把补充信号传递给供应商(可以通过网络传递)。...(1)后工序的搬运人员(物流工)将需要数量的取货看板和空容器装上铲车或合车,前往前工序的储备点A(零件放置场) (2)后工序的物流工在储备点A领取了零件后,就取下被安放在货架内零件上的前工序生产看板(生产指示布告栏...(5)一定期间,将前工序生产看板接收箱的看板按顺序放入前工序的生产指示栏中。 (6)前工序按照空生产看板的顺序进行生产。 (7)生产过程中,看板与实物成对移动。...其实浪费并没有想象中的难以发现,只是看你有没有意识去发现而已。 (3) 动作的浪费。比如一个冲孔的操作,我算了下时间。
它注册为ir.property,也就是说它的值存储在ir_property表中,通过查询该表来获取该字段的值。...在reverse的计算过程中,所有使用所述inverse的字段都受到保护,这意味着即使它们的值不在缓存中,也无法计算它们。...在包含表单中存在的值的伪记录上调用该方法。该记录上的字段赋值将自动返回客户端。...进行格式化 odoo.fields.One2many和odoo.fields.Many2many使用特殊的“命令”格式来操作存储在字段中/与字段关联的记录集。...) 是否在 set中。
Musk是准物理学博士(中途辍学创业,未能取得博士学位),他说我们要回到第一性原理,那么问题是:构成电池的基本原材料是金属元素,这些金属元素加起来成本是多少,多少钱一度电?比如60美元左右一度电。...这个看板跟上面的非常像。这个看板在张江,他们的业务在陆家嘴。业务有一天看到这个看板,看完之觉得非常好。不过说,原来你们把我们叫做需求池,你们知道我们在需求池这个阶段做了多少工作吗? ?...业务决定也要做一个看板,在他们的看板中,首先就把整个开发看板中的各个阶段压缩了,变成了一个小小的开发阶段。...作为解决方案,我们要设法把这两块看板连接起来,同时也要业务团队包含进来。我们用电子看板来完成这一任务,但物理看板仍然保留着。...我们在解决方案层要约束并行用户需求的数目,就是并行的用户需求数目不能太多了,因为并行的少就逼迫我们把已经开始的尽快完成掉,让各个团队,各个网元对齐和一致。
没有看板之前,我们真的是在白板上画泳道,写卡片,挪动卡片,在白板前开站立会。...任务视图:最基础的就是「to do -> doing -> done」可以看到已经完成的任务数量,在测试中的任务数量,开发中的数量等。在这个试图下最有意义的是那些高优任务卡片的状态。...我们实际使用中真的会把大大小小所有的事情都落到卡片里,我们把小学老师教给我们的「好记性不如烂笔头」发挥到了极致。...常看常更新 我个人觉得作为一个Lead/一个PO/一个业务负责人,除了招聘和面对用户,每天需要把大量的时间放在给任务看板「相面」上。...一个好办法就是去翻任务看板那些已经完成的卡片,你每天做的大大小小的事情上面都有体现;OKR 总结完了,又不知道下个季度做啥,还是去翻任务看板,看看上面 backlog 里哪些卡片还没有完成。
首先我有一个故事场景给大家分享一下: 有一次领导跟下属在聊天,当时听到聊的挺好,后来领导话锋一转“上次跟你说关于服务器优化的事情有没有进展?”...然后放到BackLog里面,领导就会知道你这个东西有没有做,有许多把我想的事儿放到看板上。如果领导改变主意了,那自然也可以再最短的时间内被取消掉。同时在每日站会进行确定和跟踪,这是看板第一点。...当我们在追溯原因的时候才知道,执行者按照看板的理论中,他会自己选择更紧急的任务执行。...我们加入看板一共有九个人,代表这一阶段负责这一块任务有多少个人,这样大家心里就有数了,而且脑袋里很清晰,知道我们大约多少人做这个事儿,大约知道今年有空闲时间应该把精力放在什么地方。...在开始的阶段,我们认为从DevOps的角度中我们运维可以做什么?
咱们都是专业做数据的朋友,把看板大屏理解为BI可就肤浅了。应该这么说:BI工具可以做大屏看板,但是能做大屏看板的东西不止BI工具。...这不是我的原创,是很久以前在一个公益咨询项目的培训中听老师讲的逻辑。我刚看到这个逻辑的时候也是觉得很懵,就做一个Excel表而已,怎么还能搞出这么多讲究来?...之后将数据加载到excel表中,并没有做更近一步的处理。 虽然说PQ中处理了一部分,但这里的处理其实都是一些非常基础的处理,只对一些数据的格式做了简单的处理,比如把小数转成百分数这样的操作。...接下来就是重点了,把这个图表用剪切的方式挪到最终呈现页那个sheet上去。...真正在工作中常见的场合是,要把图表放在PPT里。其实用这种剪切的方法,让图表跨sheet跨文件都是可以保证和原始数据的逻辑关系保持一致。
前段时间,在不少人博客看到这个 Live2D 看板娘,颇感兴趣!...(目录位置可以自定义) 然后把解压出来的文件夹改名为:live2d 。(叫啥无所谓,好看最重要) (少女盲目分析中) ?...>live2d/model/Pio/model.json"); 在合适的页面位置插入 Live2D 看板娘的元素,可以放在底部: ...opacity:0"> 鼠标放在页面某个元素上时...建议都使用绝对路径进行引用,而不是像列子中的相对路径 成品效果欣赏 Pio ? Tia ? 喵的,万恶的水印你走开!
没有看板之前,我们真的是在白板上画泳道,写卡片,挪动卡片,在白板前开站立会。...任务视图:最基础的就是「to do -> doing -> done」可以看到已经完成的任务数量,在测试中的任务数量,开发中的数量等。在这个试图下最有意义的是那些高优任务卡片的状态。...我们实际使用中真的会把大大小小所有的事情都落到卡片里,我们把小学老师教给我们的「好记性不如烂笔头」发挥到了极致。...常看常更新我个人觉得作为一个Lead/一个PO/一个业务负责人,除了招聘和面对用户,每天需要把大量的时间放在给任务看板「相面」上。...一个好办法就是去翻任务看板那些已经完成的卡片,你每天做的大大小小的事情上面都有体现;OKR 总结完了,又不知道下个季度做啥,还是去翻任务看板,看看上面 backlog 里哪些卡片还没有完成。
领取专属 10元无门槛券
手把手带您无忧上云