打算入手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开发的流程走了一遍,万事开头难,总算完成了我们的第一个应用的模块,接下来就是熟悉开发的过程和具体的知识点。

odoo 订餐系统之消息提醒的更多相关文章

  1. odoo订餐系统之订单设计

    订餐系统的主要功能便是用户下单部分,这里我们分为表头mylunch_order和表体mylunch_order_line两张主要的数据表,表头主要记录订单的一些通用信息,比如下单的操作人员 下单日期 ...

  2. odoo订餐系统之菜单设计

    1.model类的设计 class MyLunchProduction(osv.Model): _name = "mylunch.production" _description ...

  3. odoo订餐系统之类型设计

    这次开发的模块是订餐的类型设计,比如大荤 小荤 蔬菜 米饭 等基本数据.1.设计model类,很简单就一个字段: class MyLunchProductionCategory(osv.Model): ...

  4. odoo订餐系统之订单相关知识点理解

    1.对重载函数name_get的理解 第一,此函数位于Model基类中,返回值是一个list列表,列表中的每个值是如(key,value)形式的键值对,此处为(id,name). 第二,在自己的Mod ...

  5. Python flask构建微信小程序订餐系统

    第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆ht ...

  6. PHP实现RTX发送消息提醒

    RTX是腾讯公司推出的企业级即时通信平台,大多数公司都在使用它,但是我们很多时候需要将自己系统或者产品的一些通知实时推送给RTX,这就需要用到RTX的服务端SDK,建议先去看看RTX的SDK开发文档( ...

  7. 终于等到你---订餐系统之负载均衡(nginx+memcached+ftp上传图片+iis)

    又见毕业 对面工商大学的毕业生叕在拍毕业照了,一个个脸上都挂满了笑容,也许是满意自己四年的修行,也许是期待步入繁华的社会... 恰逢其时的连绵细雨与满天柳絮,似乎也是在映衬他们心中那些离别的忧伤,与对 ...

  8. RTX发送消息提醒实现以及注意事项

    一.RTX简介 RTX是腾讯公司推出的企业级即时通信平台.该平台定位于降低企业通信费用,增强企业内部沟通能力,改善企业与客户之间的沟通渠道,创造新兴的企业沟通文化,提高企业生产力.RTX平台的主要功能 ...

  9. jquery 消息提醒插件 toastmessage

    最近做系统,想到使用后台要使用消息提醒,但是一直苦恼消息提醒的效果,于是找了一个toastmessage,还不错.记录下使用的方法. 第一步:引入需要的文件 <script type=" ...

随机推荐

  1. 基于InfluxDB实现分页查询功能

    InfluxDB作为时序数据库中的翘楚,应用范围非常广泛,尤其在监控领域. 最近做了一个功能,将InfluxDB中的数据查询出来后,在前台分页展现,比如每页10条,一共100页,可以查看首页.末页,进 ...

  2. HBuilder离线打包启用Chrome Inspect调试

    解决方法: 修改这个文件 assets/data/dcloud_control.xml <msc version="1.9.9.39354" debug="true ...

  3. 【PAT】A1001A+B Format

    最新想法: 最多是七位数,而且只有一组输入,完全不用考虑算法复杂度. 直接判断是否为负,并输出符号 巧妙的地方:while循环的下一次再添加逗号.(防止出现,999,991的情况) 婼姐的方法真的很巧 ...

  4. January 21st, 2018 Week 3rd Sunday

    Your attitude, not your aptitude, will determine your altitude. 决定你人生高度的,不是你的才能,而是你的态度. Actually, at ...

  5. Parameter infoDTOs of type T from private T com.ListVO.setInfoDTOs is not resolvable to a concrete type.

    WARN  org.glassfish.jersey.internal.Errors - The following warnings have been detected: WARNING: Par ...

  6. ABAP性能和优化

    哪些工具可以用于性能优化? ST05-性能追踪.包含SQL追踪加RFC,队列和缓存追踪.SQL追踪主要用于测量程序中select语句的性能. SE30-运行时分析.用于测量应用的性能. SAT是过时的 ...

  7. for(var i=1;i<=3;i++){ setTimeout(function(){ console.log(i); },0); };答案:4 4 4。

    看面试题时,发现了一道较为经典的面试题,代码如下 for(var i=1;i<=3;i++){ setTimeout(function(){ console.log(i); },0); }; / ...

  8. Tomcat 下配置一个ip绑定多个域名

    原文:http://pkblog.blog.sohu.com/68921246.html 在网上找了半天也没找到相关的资料,都说的太含糊.本人对tomcat下配置 一ip对多域名的方法详细如下,按下面 ...

  9. 用智能TFT液晶模块这种串口屏做产品界面设计太简单了,大大的节省了开发时间

    随着科技的发展,TFT液晶显示屏在我们日常中可以随处可见. 工业设备上的显示也逐渐由段式显示.黑白显示转向彩色的TFT液晶显示屏. 普通的TFT液晶显示屏由于开发起来比较麻烦, 需要嵌入式工程时写程序 ...

  10. 高精度(x ,/, +, -, %)良心模板

    该模板不是本人的,但是该是加了个头文件哒.不然在某个oj上编译错误. #include <iostream> #include <string> #include <cs ...