打算入手odoo开发新的系统,先研究下开发的过程是如何的。案例模仿自带的订餐系统,此系统模块不多,但很典型,可以达到联系的目的。先记录下订餐系统消息提醒的开发过程。
1.添加自己的addons目录myaddons,方便以后的管理。并在文件openerp-server.conf中加入该路径,注意用逗号分隔
2.建立应用系统文件夹mylunch,并添加文件__init__.py和 __openerp__.py。并在__openerp__.py文件中填写应用模块的基本信息.
3.虽然还没开始任何业务代码的开发,但此时我们可以依赖框架安装自己的应用了,用管理员登录系统,去开启技术特性,更新应用程序,搜索我们的程序名mylunch,点击安装即可。
安装之后的数据库信息查询结果
4.添加我们的model类。在mylunch文件夹下添加mylunch.py文件,增加mylunch.alert类。
然后继续升级我们的应用程序。
升级后的model类信息和表字段信息
5.在mylunch目录下添加view视图文件mylunch_view.xml文件,设置mylunch的菜单,使用默认的tree和form布局
升级mylunch程序后的运行效果
6.我们使用了默认的tree和form效果,界面不是很美,我们自己定义自己的视图布局。
form布局控制
程序升级后的效果图,tree视图没大的变化,主要看form布局,尤其是可以根据字段的取值不同或显示或隐藏其他字段。
经过设计之后的form布局比之前更优雅好看了。不过我们的搜索栏还是默认的效果,如下图:
添加serach视图:
升级后的效果:
7.基本可以实现了alert消息的显示效果,不过由于我们使用的是管理员权限查看的效果,如果普通用户登录之后是看不到MyLunch菜单的,这里就涉及到了权限的问题,在之前的安装升级的过程中,可以看到如下的权限警告信息:
8.设置应用程序的权限,在mylunch文件夹下建立security目录,然后添加mylunch_security.xml文件,内容如下:
这里添加了两个组,一个是MyLunch User组,另一个是Mylunch Manager组,前者没有添加默认的用户,后者则添加了默认的用户
在security目录下新建ir.model.access.csv文件,给alert类分配CRUD权限到对应的组中:
这里需要注意的是model_id?id对应的值规则: "model_"+A,其中A为model类名,用"_"替代".",如本例子是mylunch.alert类名,则结果取值是model_mylunch_alert.
将新添加的两个文件路径配置到__openerp__.py的data字段中去:
升级应用之前ir_model_access表 中的数据条数如下:
升级应用程序,ir+model_access表中的数据变化:
以普通用户登录网站,仍旧是看不到MyLunch菜单的:
将普通用户添加到MyLunch Manager组之后的效果:
这样我们基本将odoo开发的流程走了一遍,万事开头难,总算完成了我们的第一个应用的模块,接下来就是熟悉开发的过程和具体的知识点。