手把手教-odoo的开发入门.docx
《手把手教-odoo的开发入门.docx》由会员分享,可在线阅读,更多相关《手把手教-odoo的开发入门.docx(186页珍藏版)》请在冰豆网上搜索。
1前言
目前市面上关于odoo实施的资料十分稀少,多见于博客,论坛,群组形式的交流,即便是为数不多的几本自出版的书,也是由英文版手册翻译而来又添砖加瓦而形成的,对于初学者来说,不够友好,也不够翔实。
本书的目的就是希望基于笔者这几年的实施开发经验,汇总一本能够对初学者起到扶持帮助作用的资料。
Odoo的实施与开发实际是不可分割的,只实施不开发,会碰到odoo系统中各种各样的钉子,因为odoo本身只是一个通用版的ERP类软件,在企业实施落地的过程中,势必会遇到各种各样的问题,这种问题有企业内部流程的问题,也有odoo系统设计与国内实际生产状况不符的问题,要解决这类问题,就需要对odoo系统进行二次开发的定制。
赶在odoo的开发并不难学,而且系统设计足够灵活,只要掌握了足够的开发知识,想要定制属于自己的特定功能,就游刃有余了。
本书不仅希望告诉读者该如何入门,更希望告诉读者应该以怎样的方式去思考处理实施开发过程中碰到的问题,Odoo在国内仍在起步阶段,笔者也还在漫长探索中,虽然笔者希望面面俱到,但毕竟知识和经验有限,如有疏漏还希望各位读者能不吝赐教
2Odoo安装
请参照《在ubuntu上安装odoo10.0步骤》
3Odoo基本设置
3.1登录
正常访问http:
//localhost:
8069,其他网内机器把localhost换为IP地址即可
这是Odoo默认的认证方式,也是我们最常见最熟悉的认证方式,7.0以前,数据库中的密码都是以明文方式存储,可以很轻松地在res_users表中查询到用户的密码。
8.0以后,odoo提高的密码的安全性,将密码加密后进行存储。
近些年来,网络比较流行的一种登录方式是auth,像QQ、支付宝、微信等登录方式,Odoo通过第三方模块也可以实现类似的功能。
对于企业内部用户,可能会接触到SSO的登录方式,这种方式的验证机制同微信验证类似,只不过验证的服务器端是企业内部自己搭建的,因此,SSO的登录方式没有通用的模块,只有根据不同的企业端来进行定制的开发。
如去哪儿内部就有一种QSSO顶部是导航栏,分别对应系统安装了的模块的几大功能,如销售、项目、会计、采购、仓库、生产、人力资源、报表等等,这是系统的一级菜单,也可以称之为应用。
左边一栏是二级菜单,单击每一个菜单,右边会有不同的界面显示。
右上角是当前登录用户,在这里可以切换当前
186/186
登录用户的时区,语言,更改密码等设置
还有另外以下诸如关于Odoo,注销等功能。
3.2模块的安装与卸载
模块是Odoo功能的基本单位,也是正因为功能的模块化,使得Odoo功能的添加与修改都变得十分灵活。
模块的安装非常简单,在设置的界面里搜索要安装的模块名,然后安装即可。
安装第三方模块
Odoo的强大源于不仅有诸多官方已经集成在安装包中的官方模块,更在于众多社区开发者贡献的第三方模块。
官方模块有些时候只是给出了一个通用的解决方案,在落地到实际企业生产过程中,有诸多需要改进的地方,这个时候就是第三方模块发挥其作用的时候了。
我们通常所说的二次开发就是这个概念,将企业的特定化需求,结合其原有的模块进行定制,以求以最小的时间成本获取最大的生产效率。
安装第三方模块,首先需要将源代码放在配置文件的addons目录中。
多个路径以‘,’隔开。
UbuntuDeb包安装的目录在/usr/lib/python2.7/dist-packages/openerp/addons/中。
建议第三方模块或自己开发的模块不要跟官方模块混放在一起,以防止代码升级造成模块的丢失。
源代码放置到文件夹中之后,需要重启服务。
然后在设置界面中,先更新模块列表,然后才能在本地模块列表中找到我们想要安装的模块。
模块的卸载是一个非常危险的动作,因为极有可能因为卸载模块导致数据的丢失。
由于模块间的依赖关系,卸载一个模块也很有可能会将其他依赖于这个模块的模块一并卸载,因此强烈建议除非在极有把握的情况下,否则不要轻易卸载模块。
通常模块的问题,我们可以通过升级操作来进行修复,这个我们等到开发部分在进行详细介绍。
3.3公司设置
在设置中,有一项公司设置用来配置公司信息.公司信息里包含了银行账户,地址,联系方式等信息,也包含一些报表的页眉页脚的设置,通常会在打印报表的时候将这些信息一并打印出来。
公司信息是一项很重要的预先设置,通常在安装系统的时候系统会帮你把这些信息自动填写完毕,必要的时候,你也可以更改公司信息。
公司设置里会有一些隐藏信息用于指导采购,销售,仓库的行为,这些我们会在遇到的时候进行一一阐述。
3.4用户与组
Odoo的用户与组是Odoo权限控制的两个重要部分,组实际可以理解为角色,用户可以针对不用的应用有多个角色,比如,Kevin既可以是仓库的用户,又可以是采购的用户。
根据不同的应用给予用户赋予不同的角色,即可以实现对用户权限的灵活设置。
用户界面主要由两个页面组成,一个是与权限相关的访问权限,另一个是跟国际化相关的语言区域设置。
访问权限页面用于给用户赋予角色,同一个应用程序组与组之间如果有继承关系,该权限组会显示成为下拉列表样式,若组与组之间存在并列关系,那么就会被展开成为勾选的样式。
组之间的继承关系,在组的页面中进行设置。
在组的视图中,我们可以看到有用户、继承、菜单、视图、访问权限、规则、备注等多个tab页。
视图、访问权限、规则属于高级内容,在此不进行过多阐述,在后续的开发章节中会有对此三种对象的详细介绍。
在用户Tab页中,我们可以看到加入此组的所有用户。
这里列举出的用户包含改组的子组中(继承自改组)的用户。
继承Tab页中可以看到改组的继承关系。
菜单Tab页中可以看到改组所拥有访问权限的菜单。
3.5常规设置
刚接触Odoo的时候比较关注的功能之一就是它的收发邮件功能,配置邮件的界面在设置菜单的常规设置中
(也可以在技术设置-邮件里进行)。
邮件的设置需要根据公司的邮箱服务器进行设置,对于支持Catch-All功能的服务器,只需要配置好域名,无需过多的设置即可使用Odoo的邮件收发服务。
但对于没有自己公司的邮箱服务器或不支持Catch-All功能的服务器来说,配置Odoo的邮箱服务就没那么容易了。
最好的办法是找一个支持Catch-All功能的企业邮箱,如果不能,向国内的163企业邮也是可以的。
使用163企业邮箱,需要针对每个用户设置独立的收发件服务器,维护的成本较高。
同时,需要用到第三方模块来完成对每个用户和收发服务器的匹配操作。
这个模块的下载地址是:
需要说明的一点,接收服务器设置里,对于收到的邮件可执行的动作,这里要选Email别名,因为我们是依据Email别名来寻找相应的用户的。
配置邮件过程不是一个容易的事,期间会碰到各种各样的问题,建议参照企业邮的说明文档进行设置。
3.6翻译
Odoo的翻译汉化的不是很完美,部署完系统之后就会发现有很多地方依旧保留着英文,这对国内的一些用户造成了阅读与理解上的不便。
社区也有人致力于解决这个问题,组织了一些汉化工作者,但由于翻译者的水平有限,有很多地方造成了歧义。
这里的建议是,如果英文水平足够好,建议将语言设置成英文。
不得不用中文的情况下,建议对照词典英文释义及自己的理解将其翻译成自己认为正确的汉语。
也可以购买社区的汉化包,但在使用过程中碰到难以理解的翻译时,要记得对照英文原意进行解读。
下面介绍翻译的方法:
开发者模式
开发者模式是Odoo提供给有技术基础的人进行界面编程的入口。
我们翻译的方法之一就是借助开发者模式提供给我们的技术翻译进行。
打开开发者模式位置在右上角-关于
技术翻译
在任一Form视图/Tree视图中,我们都可以看到Debug下拉列表中有一项叫做技术翻在这里我们就可以对界面上的一些翻译进行修改,例如:
询价单中的“币种”,我希望将它翻译成“币别”,我们就可以在技术翻译里找到币别这条翻译
将其翻译为币别。
技术设置的最后一列可能刚入门的读者比较困惑,它是技术后台中对Odoo对象的分类,这个在以后的开发内容中会有涉及,这里不需要太过纠结。
界面翻译的第二种方法,不是在技术翻译里进行,是在设置/应用程序术语/已翻译术语中在这里我们可以搜索到Odoo中所有模块的翻译,并且可以进行编辑修改或是添加。
第三种翻译方法,是通过修改模块文件中的i18n文件夹中的po文件进行,这也是解决翻译问题的终极办法。
I18n的意思是internationalization,只需要把包含翻译的Zh_CN.po文件放入该文件夹中,然后对模块进行升级,就可将翻译应用到系统中。
po文件是GNUgettext项目的一套应用规范,属于L10n方案。
PO是PortableObject(可移植对象)的缩写形式;MO是MachineObject(机器对象)的缩写形式。
PO文件是面向翻译人员的、提取于源代码的一种资源文件。
当软件升级的时候,通过使用gettext软件包处理PO文件,可以在一定程度上使翻译成果得以继承,减轻翻译人员的负担。
MO文件是面向计算机的、由PO文件通过gettext软件包编译而成的二进制文件。
程序通过读取MO文件使自身的界面转换成用户使用的语言。
在Odoo中使用po文件,可以通过设置-导入/导出菜单将要修改的模块的po文件导出,然后用poedit软件进行编辑后,覆盖掉原模块文件夹中的po文件,完成修改。
对于function类型的字段,可能在导出模块的po文件中不会存在相应的翻译,这时需要手工添加,具体的添加方法可将po文件中其他的字段翻译复制一遍,然后修改为新字段即可。
3.7视图
Odoo的视图是指技术前端对用户展示的页面,有以下几种类型:
Form,Tree,Kanban,Gantt,Graph,Canlendar,Diagram,Search,Qweb最.常用的是Form和Tree两种,通常翻译为表
单和树形视图。
表单
最常见的视图类型之一:
用来展示一个对象的信息。
树形
实际上应该称为列表(List),真正的树形是可以展开显示子节点的。
用于显示多个对象的全部或部分信息。
看板(Kanban)
以看板的形式展示一个或多个对象。
甘特图(Gantt)
以甘特图的方式展示对象信息图表(Graph)
以图表的方式展示数据,多用于报表。
日历(Canlendar)
以日历形式展示数据。
流程图(Diagram)
以流程图的方式展示数据关系,主要用户工作流。
搜索(search)
搜索视图,常见类型之一,用于多个条件的过滤。
Qweb
主要用于打印文件的设置以及前端一些小窗口部件(Widget)的绘制,在Qweb开发部分会给出具体介绍。
总结
本章主要介绍了一些关于Odoo的基本设置,这是开始学习Odoo的第一步。
经过本章的学习,相信你已经对
Odoo有了一个大概的认识,可能你对Odoo的操作还不是很熟悉,不过相信经过接下来的学习,你一定会变得越来越熟练。
3.8启用开发者模式
安装模块后,在设置的仪表盘上,激活开发者模式,如下图:
然后在用户管理界面,显示技术特性: