Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 6865|回复: 1
打印 上一主题 下一主题

入门练习实例(上)

[复制链接]

2

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
跳转到指定楼层
楼主
发表于 2015-8-30 17:02:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发案例1)写一个模块  需求  
  • 输入和查询课程,把信息储存到课程对象里
  • 课程包含以下信息:名称,价格,天数,开始日期,教师,学员
  • 每个课程可以有多个学员,要记录学员的姓名、电话、电子邮件
  • 课程可以添加教材和作业等文档附件
  • 用户可以设置默认值以加速输入
  • 可以按名称查询课程,也可以用其他信息查找课程,并保存常用查询条件
  • 可以导出课程信息到excel文件,并支持导入
  • 可以按日期查看课程,并调整课程时间
  • 老师只能看到自己的课程
  模块名就叫做oecn_training,然后它下面有四个文件,分别如下。
  |--oecn_training     |--__init__.py     |--__openerp__.py     |--lesson.py     |--lesson_view.xml__init__.py__init__.py文件是Python 的模块描述,因为OpenERP模块也是一个普通的Python模块。
Python (plain)
  • # -*- coding: utf-8 -*-
  • import lesson #导入包含Python代码的所有文件和目录

__openerp__.py__openerp__.py文件(在6.0之前的版本也叫__terp__.py)它包含一个Python的字典声明这个模块的相关信息:模块名字,依赖关系,说明和组成。
Python (plain)
  • # -*- coding: utf-8 -*-
  • # name: 模块名
  • #version: 模块版本
  • #description:模块说明
  • #author:作者
  • #website:网址
  • #depends:依赖的模块
  • #update_xml:模块更新的时候会读入的文件
  • #installable:可否安装
  • #category:模块类型
  • {
  •     "name" : "OECN Training",
  •     "version" : "1.0",      
  •     "description" : 'OECN Training Demo',
  •     "author" : "Shine IT",   
  •     "website" : "http://www.openerp.cn",
  •     "depends" : [],                     
  •     "update_xml" : ["lesson_view.xml"],  
  •     "installable" : True,                                 
  •     "category":'Generic Modules/Others'  
  • }

lesson.pyPython (plain)
  • # -*- coding: utf-8 -*-
  • from openerp.osv import fields, osv
  • ?
  • class oecn_training_lesson(osv.osv):
  •     _name = 'oecn.training.lesson'
  •     _description = u'OECN 培训课程'
  •     _columns = {
  •         'name':fields.char( u'课程名',size=64,select=True),
  •         'date_start':fields.date(u'开始日期',select=True),
  •         'total_day':fields.float(u'总天数',digits=(16,1)),
  •         'teacher':fields.many2one('res.users',u'授课老师'),
  •         'students':fields.many2many('res.partner',string=u'学生'),
  •         'price':fields.float(u'价格',digits=(16,2)),
  •     }
  • ?
  • oecn_training_lesson()

lesson_view.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <openerp>
  3.     <data>
  4.     <!--定义表单视图-->
  5.         <record model="ir.ui.view" id="oecn_training_lesson_form_view">
  6.             <field name="name">课程表单</field>
  7.             <field name="type">form</field>
  8.             <field name="model">oecn.training.lesson</field>
  9.             <field name="arch" type="xml">
  10.                 <form string="课程表单" version="7.0">
  11.                   <group>
  12.                     <field name="name"/>
  13.                     <field name="date_start"/>
  14.                     <field name="total_day"/>
  15.                     <field name="price"/>
  16.                     <field name="teacher"/>
  17.                     <field name="students" colspan="4"/>
  18.                  </group>
  19.                 </form>
  20.             </field>
  21.         </record>
  22.         <!--定义列表视图-->
  23.         <record model="ir.ui.view" id="oecn_training_lesson_tree_view">
  24.             <field name="name">课程列表</field>
  25.             <field name="type">tree</field>
  26.             <field name="model">oecn.training.lesson</field>
  27.             <field name="arch" type="xml">
  28.                 <tree string="课程列表" version="7.0">
  29.                     <field name="name"/>
  30.                     <field name="date_start"/>
  31.                     <field name="teacher"/>
  32.                     <field name="price" sum="合计"/>
  33.                 </tree>
  34.             </field>
  35.         </record>
  36. <!--定义视图动作-->
  37.     <record model="ir.actions.act_window"  id="action_oecn_training_lesson">
  38.         <field name="name">课程</field>
  39.         <field name="res_model">oecn.training.lesson</field>
  40.         <field name="view_type">form</field>
  41.         <field name="view_mode">form,tree</field>
  42.         <field name="view_id" ref="oecn_training_lesson_tree_view"/>
  43.     </record>
  44. <!--定义菜单-->
  45.     <menuitem id="oecn_menu" name="OECN"/>
  46.     <menuitem id="oecn_training_menu" name="OECN Training" parent="oecn_menu"/>

  47.     <menuitem id="oecn_training_lesson_menu" name="OECN Training
  48. Lesson" parent="oecn_training_menu"
  49. action="action_oecn_training_lesson"/>   
  50. </data>
  51. </openerp>
复制代码

装一个模块把oecn_training这个目录复制到openerp的addons目录下
登录OpenERP
1.确保在扩展视图下(右上角小齿轮->首选项->扩展)
!!7.0 版本OpenERP 可以忽略此步直接 `更新模块列表`, 如果没有`更新模块列表`菜单, 请用 admin 用户登陆修改对应登陆用户的权限, 勾选"技术特性".
2.更新模块列表(设置->模块->更新模块列表)
3.搜索自己的模块(设置->模块->模块)
4.安装后重启服务器

回复

使用道具 举报

14

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
沙发
发表于 2015-8-30 22:49:03 | 只看该作者
写得很详细啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-5-4 12:07 , Processed in 0.013634 second(s), 14 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表