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.整体美学 整体美学指的是一个应用的表现和行为与它的功能完美集成,传达连贯的信息. 人们关心一个应用是否提供它承诺的功能,但他们也被应用的外观和行为强烈影 ...
随机推荐
- 9.4、__del__、__doc__、__dict__、__module__、__getitem__、__setitem__、__delitem__、__str__、__repr__、__call__
相关内容: __del__.__doc__.__dict__.__module__.__getitem__.__setitem__.__delitem__.__str__.__repr__.__cal ...
- [20171113]修改表结构删除列相关问题2.txt
[20171113]修改表结构删除列相关问题2.txt --//测试看看修改表结构删除列产生的redo向量,对这些操作细节不了解,分析redo看看. 1.环境:SCOTT@book> @ &am ...
- 洗礼灵魂,修炼python(25)--自定义函数(6)—从匿名函数进阶话题讲解中解析“函数式编程”
匿名函数进阶 前一章已经说了匿名函数,匿名函数还可以和其他内置函数结合使用 1.map map():映射器,映射 list(map(lambda x:x*2,range(10))) #把range产生 ...
- Mvc检查图片格式后上传
/// <summary> /// 检查是否文件是否图片并保存 /// </summary> /// <param name="file">文件 ...
- Java获取数据库表 字段 存储的部分数据
在浏览器页面,选中图片(可多选) >单击删除按钮. 重点是, 本数据库表TabHeBeiTianQi中 存在 同一id,对应的picLocalPath字段 存储了多张图片,图片地址用 逗号 ...
- 使用parted创建gpt大分区例子
[root@VM000000518 ~]# parted /dev/xvde GNU Parted 2.1 Using /dev/xvde Welcome to GNU Parted! Type 'h ...
- centos7执行umount提示:device is busy或者target is busy解决方法
问题描述: 因为挂载错了,想取消挂载,但是umount报告如下错误: [root@zabbix /]# umount /dev/sdc1 umount: /data1: target is busy. ...
- 【hexo】01安装
什么是 Hexo? Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. 安装前提 安装 Hexo 相当简 ...
- php程序开发之实现网页跳转
php程序开发之实现网页跳转的三种方式 2017年04月16日 20:44:14 阅读数:3352 PHP目前是用来开发WEB项目的首选语言.Web项目中,从一个网页跳转到另一个网页是最常用的技术之一 ...
- Deepin系统手动安装oracle jdk8详细教程
Deepin系统手动安装oracle jdk8详细教程 oracle官网下载jdk压缩包,使用 sudo tar -zxf jdk***解压文件,我放在在了home/diy/java/jdk路径下. ...