openERP課程轉載

* �圓發表於2018-12-11

##需求描述

輸入和查詢課程,把資訊儲存到課程物件裡
課程包含以下資訊:名稱,價格,天數,開始日期,教師,學員
每個課程可以有多個學員,要記錄學員的姓名、電話、電子郵件
課程可以新增教材和作業等文件附件
使用者可以設定預設值以加速輸入
可以按名稱查詢課程,也可以用其他資訊查詢課程,並儲存常用查詢條件
可以匯出課程資訊到excel檔案,並支援匯入
可以按日期檢視課程,並調整課程時間
老師只能看到自己的課程
##編寫課程模組

###PyCharm中建立工程

PyCharm中建立一個工程my_training, 存放在OE addons目錄下, 並在該工程中開啟OE目錄(見之前的文章).

###檔案結構

模組名命名為”my_training”, 目錄下四個檔案, 如下:

|–my_training
|–init.py
|–openerp.py
|–lesson.py
|–lesson_view.xml
###init.py

Python模組描述檔案, 每個OE模組也是一個Python模組.

-- coding: utf-8 --

import lesson
###openerp.py

-- coding: utf-8 --

{
“name”: “My Training”, #模組名
“version”: “1.0”, #模組版本
“description”: ‘My Training Demo’, #模組說明
“author”: “Jeff”, #作者
“website”: “http://www.jeffzhang.cn”, #網址
“depends”: [], #依賴的模組
“data”: [“lesson_view.xml”],
“demo”: [],
“installable”: True, #可否安裝
‘auto_install’: False,
}
###lesson.py

-- coding: utf-8 >--

from openerp.osv import fields, osv

class my_training_lesson(osv.osv):
_name = ‘my.training.lesson’
_discription = u’培訓課程示例’
_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)),
}

my_training_lesson()
###lesson_view.xml

<?xml version="1.0" encoding="utf-8"?> 課程表單 form my.training.lesson 課程列表 tree my.training.lesson 課程 my.training.lesson form form,tree ##通過繼承修改模組

Custom Module Development第一部分中說明了怎麼擴充套件一個系統模組, 這部分擴充套件剛才編寫的課程模組.

###PyCharm中建立工程

PyCharm中建立一個工程my_training_classroom, 存放在OE addons目錄下, 並在該工程中開啟OE目錄(見之前的文章).

###檔案結構

模組名命名為”my_training_classroom”, 目錄下六個檔案, 如下:

|–my_training_classroom
|–init.py
|–openerp.py
|–lesson.py #繼承my.training.lesson物件的檔案
|–classroom.py
|–lesson_view.xml
|–classroom_view.xml
###init.py

-- coding: utf-8 --

import lesson
import classroom
###openerp.py

-- coding: utf-8 --

{
“name”: “My Training Classroom”, #模組名
“version”: “1.0”, #模組版本
“description”: ‘My Training Demo – ClassRoom’, #模組說明
“author”: “Jeff”, #作者
“website”: “http://www.jeffzhang.cn”, #網址
“depends”: [“my_training”], #依賴的模組
“data”: [
“lesson_view.xml”, # 需要繼承的檢視
“classroom_view.xml”,], # 模組更新時讀入的檔案
“demo”: [],
“installable”: True, #可否安裝
‘auto_install’: False,
}
###classroom.py

from openerp.osv import fields, osv

class my_training_classroom(osv.osv):
_name = ‘my.training.classroom’
_discription = u’教室’
_columns = {
‘number’: fields.char(u’編號’, size=64, select=True),
‘capacity’: fields.integer(u’容納人數’, select=True),
‘location’: fields.char(u’地點’, size=125, select=True),
}
my_training_classroom()
###lesson.py

from openerp.osv import fields, osv

class my_training_lesson(osv.osv):
_name = ‘my.training.lesson’ #本物件的名稱
_inherit = ‘my.training.lesson’ #要繼承的物件的_name
_columns = {
‘classroom_id’: fields.many2one(‘my.training.classroom’, u’教室’), #新增一個教室屬性,為多對一物件。
}

my_training_lesson()
###lesson_view.xml

<?xml version="1.0" encoding="utf-8"?> 課程教室繼承檢視 form my.training.lesson ###classroom_view.xml <?xml version="1.0" encoding="utf-8"?> 教室 form my.training.classroom 教室列表 tree my.training.classroom 教室 my.training.classroom form form,tree

相關文章