学习了《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. JAVA中计算两个日期时间的差值竟然也有这么多门道

    上半年春招的时候,作为面试官,对于面试表现的不错的同学会要求其写一小段代码看看.题目很简单: 给定一个日期,然后计算下距离今天相差的天数. 本以为这么个问题就是用来活跃面试氛围的,但是结果却让人大跌眼 ...

  2. 浏览器中的原生base64方法

    在web开发中,经常涉及到对文本.文件等进行base64编码处理,在之前的开发中,使用js-base64来进行处理,但其实浏览器已经原生包含了处理方法.性能更好,兼容性也更高. atob() - AS ...

  3. Java多线程交替打印

    1. synchronized实现双线程交替打印 class Print implements Runnable{ static int i=0; static final int n=100; @O ...

  4. html和css的常用语法代码详解

    前端html html 超文本标记语言.文本,图片,视频,音频. 网页基本信息 一个基础的网页具有的一些信息. <!-- 这是注释--> <!--!DOCTYPE网页约束规范--&g ...

  5. Java学习_常见异常

    JAVA常见异常 Java.io.NullPointerException null 空的,不存在的 NullPointer 空指针 空指针异常,该异常出现在我们操作某个对象的属性或方法时,如果该对象 ...

  6. nginx虚拟主机测试

    一.基于域名的nginx虚拟主机 基于域名的nginx虚拟主机的操作步骤: 1 .为虚拟主机提供域名和IP的映射(也可以使用DNS正向解析) echo "172.16.10.101 www. ...

  7. 解决报错Error response from daemon: Get https://10.0.0.110/v2/: dial tcp 10.0.0.110:443: connect: connection refused

    修改 #https不需要验证,否则要加上以下配置# 意思就是非安全仓库,加上重启就OK了! vim /lib/systemd/system/docker.service --insecure-regi ...

  8. C++ 加速(卡常)技巧【超级 快读、快写】

    C++ \texttt{C++} C++ 加速技巧 快读快写 快读 inline int read() { int x = 0, w = 0; char ch = 0; while (!isdigit ...

  9. python 可变、不可变类型、深拷贝、浅拷贝理解

    简介 python中数据分为可变类型,不可变类型.不同的数据类型影响着不同情况下的深浅拷贝. 下面则将简要介绍一下 可变类型 当某个数据的值发生改变时,它对应的内存地址不发生改变,常见的有列表.字典. ...

  10. (转)git使用收集

    由于最近项目开始弃SVN用git,特意整理下git命令.原文链接为http://www.jb51.net/article/55442.htm git branch 查看本地所有分支git status ...