|
开发案例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- <?xml version="1.0" encoding="utf-8"?>
- <openerp>
- <data>
- <!--定义表单视图-->
- <record model="ir.ui.view" id="oecn_training_lesson_form_view">
- <field name="name">课程表单</field>
- <field name="type">form</field>
- <field name="model">oecn.training.lesson</field>
- <field name="arch" type="xml">
- <form string="课程表单" version="7.0">
- <group>
- <field name="name"/>
- <field name="date_start"/>
- <field name="total_day"/>
- <field name="price"/>
- <field name="teacher"/>
- <field name="students" colspan="4"/>
- </group>
- </form>
- </field>
- </record>
- <!--定义列表视图-->
- <record model="ir.ui.view" id="oecn_training_lesson_tree_view">
- <field name="name">课程列表</field>
- <field name="type">tree</field>
- <field name="model">oecn.training.lesson</field>
- <field name="arch" type="xml">
- <tree string="课程列表" version="7.0">
- <field name="name"/>
- <field name="date_start"/>
- <field name="teacher"/>
- <field name="price" sum="合计"/>
- </tree>
- </field>
- </record>
- <!--定义视图动作-->
- <record model="ir.actions.act_window" id="action_oecn_training_lesson">
- <field name="name">课程</field>
- <field name="res_model">oecn.training.lesson</field>
- <field name="view_type">form</field>
- <field name="view_mode">form,tree</field>
- <field name="view_id" ref="oecn_training_lesson_tree_view"/>
- </record>
- <!--定义菜单-->
- <menuitem id="oecn_menu" name="OECN"/>
- <menuitem id="oecn_training_menu" name="OECN Training" parent="oecn_menu"/>
- <menuitem id="oecn_training_lesson_menu" name="OECN Training
- Lesson" parent="oecn_training_menu"
- action="action_oecn_training_lesson"/>
- </data>
- </openerp>
复制代码
装一个模块把oecn_training这个目录复制到openerp的addons目录下
登录OpenERP
1.确保在扩展视图下(右上角小齿轮->首选项->扩展)
!!7.0 版本OpenERP 可以忽略此步直接 `更新模块列表`, 如果没有`更新模块列表`菜单, 请用 admin 用户登陆修改对应登陆用户的权限, 勾选"技术特性".
2.更新模块列表(设置->模块->更新模块列表)
3.搜索自己的模块(设置->模块->模块)
4.安装后重启服务器
|
|