Odoo自建应用初步总结(一)

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

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

一、首先是界面差异

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

Odd应用更新后的效果界面

图1 Odoo11界面

Odd14应用更新后的效果界面

图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列表完全破坏了原本的布局:直接“冲出”了视图数据的显示区域。

Odoo-bug列表显示效果

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

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

Odoo14-bug列表显示效果

相应的代码如下:

  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学习,相关的体会将持续更新。)

posted @ 2020-12-02 12:55  风中之云  阅读(704)  评论(0编辑  收藏  举报