odoo订餐系统之菜单设计
1.model类的设计
class MyLunchProduction(osv.Model):
_name = "mylunch.production"
_description = "My Lunch Production"
_columns = {
'name': fields.char('Production', required=True),
'category_id': fields.many2one('mylunch.production.category', 'Category', required=True),
'description': fields.text('Description', size=256),
'price': fields.float('Price', digits=(16, 2)),
'supplier_id': fields.many2one('res.partner', 'Supplier'),
}
2.Tree视图的设计
<record model="ir.ui.view" id="mylunch_production_tree">
<field name="name">MyLunch Production Tree</field>
<field name="model">mylunch.production</field>
<field name="arch" type="xml">
<tree string="Production Tree">
<field name="name"></field>
<field name="category_id"></field>
<field name="supplier_id"></field>
<field name="description"></field>
<field name="price"></field>
</tree>
</field>
</record>
3.Form视图
<record model="ir.ui.view" id="mylunch_production_form" >
<field name="name">MyLunch Production Form</field>
<field name="model">mylunch.production</field>
<field name="arch" type="xml">
<form string="MyLunch Production Form">
<sheet>
<group>
<group>
<field name="name"></field>
<field name="category_id"></field>
</group>
<group>
<field name="supplier_id"></field>
<field name="price"></field>
</group>
</group>
<label for="description"></label>
<field name="description"></field>
</sheet>
</form>
</field>
</record>
4.action动作关联的form与tree视图
<record model="ir.actions.act_window" id="action_mylunch_production">
<field name="name">MyLunch Production</field>
<field name="res_model">mylunch.production</field>
<field name="view_mode">tree,form</field>
<field name="help" type="xml">
<p class="oe_view_nocontent_create">
Click to create a mylunch product for lunch.
</p>
<p>
A product is defined by its name, category, price and supplier.
</p>
</field>
</record>
5.menuitem菜单
<menuitem name="MyLunch Production" parent="menu_lunch_config" id="menu_mylunch_production" action="action_mylunch_production"></menuitem>
6.设置model类的权限
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
mylunch_product_manager,"MyLunch Product user",model_mylunch_production,group_my_lunch_manager,1,1,1,1
mylunch_product_user,"MyLunch Product user",model_mylunch_production,group_my_lunch_user,1,0,0,0
升级应用程序并运行查看效果如下图:

但是这边有一个不完美的地方,description这个字段想变得更高一些,所以这里需要设计对应的css。步骤如下:
1.建立mylunch.css文件,路径是static/src/css/mylunch.css,内容如下:
@charset "utf-8";
.openerp .oe_mylunch textarea {
background-color: #ffc7c7;
padding: 10px;
height: 1em;
margin-bottom: 20px;
}
2.引入mylunch.css的地方,建立mylunch.xml,路径为views/mylunch.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- vim:fdn=3:
-->
<openerp>
<data>
<template id="assets_backend" name="lunch assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/mylunch/static/src/css/mylunch.css"/>
</xpath>
</template>
</data>
</openerp>
3.在__openerp__.py中加入views/mylunch.xml,程序最终间接引入了我们的css文件,内容如下:
{
'name': 'MyLunch Order System',
'description': 'I used the system to practice odoo development skills.',
'author': 'Matthew Guo',
'version': '0.1.0',
'depends': ['base'],
'application': True,
'summary': 'I good plan to write codes to study step by step',
'data': ['security/mylunch_security.xml',
'security/ir.model.access.csv',
'mylunch_view.xml',
'views/mylunch.xml',
],
}
4.在form视图需要自定义样式的地方,引入对应的class类即可。此处我们是对textarea直接设置的样式,不需指明。
升级后的应用运行的效果如下图所示:

odoo订餐系统之菜单设计的更多相关文章
- odoo订餐系统之订单设计
订餐系统的主要功能便是用户下单部分,这里我们分为表头mylunch_order和表体mylunch_order_line两张主要的数据表,表头主要记录订单的一些通用信息,比如下单的操作人员 下单日期 ...
- odoo订餐系统之类型设计
这次开发的模块是订餐的类型设计,比如大荤 小荤 蔬菜 米饭 等基本数据.1.设计model类,很简单就一个字段: class MyLunchProductionCategory(osv.Model): ...
- odoo 订餐系统之消息提醒
打算入手odoo开发新的系统,先研究下开发的过程是如何的.案例模仿自带的订餐系统,此系统模块不多,但很典型,可以达到联系的目的.先记录下订餐系统消息提醒的开发过程. 1.添加自己的addons目录my ...
- odoo订餐系统之订单相关知识点理解
1.对重载函数name_get的理解 第一,此函数位于Model基类中,返回值是一个list列表,列表中的每个值是如(key,value)形式的键值对,此处为(id,name). 第二,在自己的Mod ...
- 用Qt写软件系列四:定制个性化系统托盘菜单
导读 一款流行的软件,往往会在功能渐趋完善的时候,通过改善交互界面来提高用户体验.毕竟,就算再牛逼的产品,躲藏在糟糕的用户界面之后总会让用户心生不满.界面设计需综合考虑审美学.心理学.设计学等多因素, ...
- php大力力 [031节] php设计系统后台菜单和样式设计
php大力力 [031节] php设计系统后台菜单和样式设计 耗掉我一整夜的时间,把后台html设计了一个,对于我这样的html白痴,实属不容易啊. 留下一点点网上查找的网页知识: 索马里论坛群发简介 ...
- php大力力 [030节] php设计系统后台菜单
php大力力 [030节] php设计系统后台菜单 2015-08-28 00:11 开始设计: 2015-08-28 01:29 设计完毕. php大力力 [030节] php设计系统后台菜单 1. ...
- 基于Hadoop开发网络云盘系统客户端界面设计初稿
基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...
- 苹果IOS与谷歌 android系统的UI设计原则
一.苹果为IOS的界面设计提出了六大原则: 1.整体美学 整体美学指的是一个应用的表现和行为与它的功能完美集成,传达连贯的信息. 人们关心一个应用是否提供它承诺的功能,但他们也被应用的外观和行为强烈影 ...
随机推荐
- JMeter 查看结果树监听器响应数据中文显示乱码解决方法
查看结果树监听器响应数据中文显示乱码解决方法 by:授客 QQ:1033553122 问题描述 使用监听器-查看结果树(View Results Tree Listener)过程中发现,响应数据面 ...
- Android-仿“抖音”的评论列表的UI和效果
在design包里面 有一个 BottomSheetDialogFragment 这个Fragment,他已经帮我们处理好了手势,所以实现起来很简单.下面是代码: public class ItemL ...
- 【Java入门提高篇】Day26 Java容器类详解(八)HashSet源码分析
前面花了好几篇的篇幅把HashMap里里外外说了个遍,大家可能对于源码分析篇已经讳莫如深了.别慌别慌,这一篇来说说集合框架里最偷懒的一个家伙——HashSet,为什么说它是最偷懒的呢,先留个悬念,看完 ...
- linux Mate Lxde 消耗资源对比
腾讯云 标准型SA1 | SA1.SMALL1 1核1G AMD LXDE: MATE:
- [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED3.txt
[20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED3.txt --//简单探究12c TABLE ACCESS BY INDEX ROWID BATCH ...
- 【第六篇】SAP ABAP7.5x新语法之SQL注入
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之SQL注入 前 ...
- Maven 变量及常见插件配置详解
Maven 的 pom.xml 常用 变量 插件 配置 详解 一.变量 - 自定义变量及内置变量 1. 自定义变量 <properties> <project.build.name& ...
- C# 连接Oracle时报错的问题
“/”应用程序中的服务器错误. 试图加载格式不正确的程序. (异常来自 HRESULT:0x8007000B) 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该 ...
- 对数组的操作splice() 和slice() 用法和区别
JavaScript splice() 方法 定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组. 语法 arrayObject.spli ...
- Oracle数据库里面查询字符串类型的字段不为空和为空的SQL语句:
一:查询字符串类型的字段的值不为空的SQL: select * from TB_CMS_FLGTINFO_A t where (t.fsta is not null and t.fsta <&g ...