学习了《Odoo快速入门与实践 Python开发ERP指南》(刘金亮 2019年5月第1版 机械工业出版社)第6章自建应用入门后进行一下总结。

因为本书作者使用Odoo11,而目前最新版本为Odoo14,因此存在一些版本上的差异。

一、首先是界面差异

Odoo11的菜单在左侧导航区显示,在Odoo14中顶级菜单(parent为空)在导航区显示,而二级及以下菜单在右侧上部显示。

图1 Odoo11界面

图2 Odoo14界面

在Odoo14中,在打开进入具体应用后,左侧导航栏即“消失”了。从图2可以看到这个效果。如果要进入其他应用,可点击界面左上角的图标。

二、技术(代码)上的差异

在第6章中,目前能看到的是方法装饰器@multi已经在Odoo13以后废弃了,所以在相应处,我使用了@depend(value)这个装饰器。

Odoo14一定还有与Odoo11在编码方面的差异,因目前章节还未涉及,故未做深入了解。这个最好能查阅Odoo官网的文档。

三、关于“关注者管理”功能的一些想法

在书中介绍了新增的“关注者管理”功能的视图的创建,是继承了base.view_partner_form,并在该视图的<field name=”mobile”>节点后添加了一个Bug列表。我最初按照书中介绍的步骤进行操作,但并未出现书中展示的如图3所示的界面。在我的应用界面中,首先是“bug”为个标签未出现,其次是bug列表占用了mobile的输入框的位置。还不明白具体是什么原因。但更重要的是,当我打开“联系人”这个应用,并进入一个具体的记录后,这个bug列表完全破坏了原本的布局:直接“冲出”了视图数据的显示区域。

图3 添加bug列表后的显示效果

后来,发现该视图下部有一个“Tabs”标签组,于是尝试新增一个Tab,并将bug列表放在其中。最终结果如图4。

相应的代码如下:

  1     <record model="ir.ui.view" id="bug-manage.follower_form">
2 <field name="name">关注者</field>
3 <field name="model">res.partner</field>
4 <field name="inherit_id" ref="base.view_partner_form" />
5 <field name="arch" type="xml">
6 <!-- 在"internal_notes"后面添加一个Tab,在其中布置关注的bug -->
7 <!-- 关注的bug布置在某个Field后,可能会影响整个页面的布局。上次还没有方法整理页面布局 -->
8 <page name="internal_notes" position="after">
9 <page name="关注的Bugs" string="关注的Bugs">
10 <field name="bug_ids" />
11 </page>
12 </page>
13 </field>
14 </record>

这样修改后,在“联系人”应用中的效果也很好。

四、关于权限管理中model_id的命名

关于权限管理的csv文件中的model_id的指定,其实书中已经交待的很清晰了,这里是为了再强调一下:

model_id的命名规则比较固定,比如我们的bug管理模型的_name是bm.bug,那么model_id就是model_bm_bug。

总结一下就是:model_id命名格式:model_<模型类中_name属性设置的值>。特别要注意的是:要将_name值中的“.”替换为“_”(下划线)。

(关于Odoo学习,相关的体会将持续更新。)

Odoo自建应用初步总结(一)的更多相关文章

  1. Scrum 冲刺第一天

    一.团队信息 1.团队名称 挑战极限队 2.团队成员 张博愉(3118005074) 张润柏(3118005075) 郑堉涵(3118005077) 周伟建(3118005079) 林梓琦(31180 ...

  2. Azure底层架构的初步分析

    之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...

  3. [web建站] 优课急送《零基础快速学习建站》视频+课件【价值399元】

    [课程介绍]你想快速建一个网站出来吗?你想从什么都不懂到一两天出一个漂漂亮亮的站吗?你想完成领导交给你的任务找人建站吗?你想自己建站来创业吗?你想学会建站之后,利用给别人建站来赚钱吗?你想建一个跟某个 ...

  4. 搜索引擎系列 ---lucene简介 创建索引和搜索初步

    一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 :Lucene得名于Doug妻子 ...

  5. Odoo 路线规则实现机制浅析

    事情是这个样子的:项目在实施过程中,碰到A仓库向B仓库供货的情况,心想这还不简单,老老实实地建多个仓库并将B仓库的供货仓库选为A仓库,再设置好产品的再订购规则,万事大吉了.然而,事情并非想象的那么简单 ...

  6. 配置Windows 2008 R2 64位 Odoo 8.0 源码PyCharm开发调试环境

    安装过程中,需要互联网连接下载python依赖库: 1.安装: Windows Server 2008 R2 x64标准版 2.安装: Python 2.7.10 amd64 到C:\Python27 ...

  7. Sprint会议-初步组织划分

    主题:Spring冲刺计划会议,组员已认领方式领取任务,对个人任务进行详细划分. 日期:2015.4.26 地点:学一食堂二楼 与会人员:王雪青.陆宇.徐擎天.张文冬.赵建松 索引表 因早期任务的认领 ...

  8. 配置Windows 2008 R2 64位 Odoo 8.0/9.0 源码开发调试环境

    安装过程中,需要互联网连接下载python依赖库: 1.安装: Windows Server 2008 R2 x64标准版 2.安装: Python 2.7.10 amd64 到C:\Python27 ...

  9. SmartGit初步使用

    在Git如日中天的今天,我也不免俗的想用Git将业余时间写的代码管理一下. 什么是Git这里不多说,具体见廖雪峰的Git教程,ProGit等详细教程. 我们这里直接上手. 一.下载Git客户端 1.G ...

随机推荐

  1. vmstate 命令详解2022

    vmstat 是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过 vmstat 来发现系统中的瓶颈呢? 1. 使用vmstat 使用前我们先看下命令介绍及参数定义 Usag ...

  2. 10道不得不会的JavaEE面试题

    10道不得不会的 JavaEE 面试题 我是 JavaPub,专注于面试.副业,技术人的成长记录. 以下是 JavaEE 面试题,相信大家都会有种及眼熟又陌生的感觉.看过可能在短暂的面试后又马上忘记了 ...

  3. 抓到 Netty 一个隐藏很深的内存泄露 Bug | 详解 Recycler 对象池的精妙设计与实现

    欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的 ...

  4. 隐私计算FATE-多分类神经网络算法测试

    一.说明 本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练,并使用该模型对数据进行 多分类预测. 二分类算法:是指待预测的 label 标签的取值只有两种:直白来 ...

  5. spring boot 打包为war包方法

    刚刚接触spring boot,其快速开发的特性吸引我去研究一下.于是我写了个demo,用spring boot内置的tomcat运行的很好,但是我需要把它部署到外部的tomcat中,于是从网上查找资 ...

  6. 浅学hello world

    Hello world 1.随便新建一个文件夹,存放代码 2.新建一个java文件 .后缀名为.java .Hello.java .[注意点]系统没显示后缀名的可以自己手动打开 3.编写代码 publ ...

  7. 快速入门python看过的一些资料

    我快速入门python看过的一些资料 B站的视频 10天自学Python,轻松掌握Python基础[千锋] 廖雪峰 - Python教程 https://www.liaoxuefeng.com/wik ...

  8. Acwing八数码

    此题用\(bfs\) 首先我们可以定义两个重要的数组 \(unordered\_map<string,int> d\)表示\(string\)距离\(start\)的交换次数 \(queu ...

  9. 如何创建一个带诊断工具的.NET镜像

    现阶段的问题 现在是云原生和容器化时代,.NET Core对于云原生来说有非常好的兼容和亲和性,dotnet社区以及微软为.NET Core提供了非常方便的镜像容器化方案.所以现在大多数的dotnet ...

  10. 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen

    常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...