轉載請註明原文地址:http://www.javashuo.com/article/p-kmvwlxts-ks.htmlcss
一:Odoo架構html
1:數據庫服務器層:postgreSQL數據庫服務器,用於存儲全部應用數據。python
2:openERP應用服務層:包含全部企業模塊邏輯(報表引擎、工做流引擎等),向下提供ORM引擎,向上提供web服務,控制服務器與瀏覽器的通訊。mysql
3:客戶層:包括GUI客戶端以及Web客戶端。web
客戶端經過JSON-RPC或者XML-RPC與服務器進行通訊。sql
二:Odoo經常使用功能模塊數據庫
企業管理模塊編程
物料管理模塊瀏覽器
財務管理模塊服務器
人力資源模塊
客戶與供應商關係管理模塊
項目管理模塊
平常工做管理模塊
溝通工具模塊
業務流程管理模塊
......
三:odoo開發簡介
odoo開發要實現如下功能:
數據訪問功能:信息的增刪查改。基於MVC模式進行開發,其中Model用ORM了來對應數據庫表並操縱,而view則用XML來定製界面,Controller也是用XML來定義響應。
工做流開發:用軟件表達企業層級的工做協做關係。有兩種方式:XML方式定義、可視化拖拽編程定義。
報表開發:把系統的數據以特定形式輸出打印。主要有:文檔報表、圖形報表等。
四:繼承開發
Odoo提供了大量現成的模塊給咱們使用,可是某些狀況下,咱們須要制定符合本身需求的功能模塊。Odoo開發的一條黃金準則是——不要修改現有的模塊,以避免改動後的代碼與原有模塊產生混淆。
所以,odoo提供了繼承機制,咱們能夠選擇一個基礎模塊,而後繼承它,在它的基礎上進行修改、擴展,生成本身的模塊。
開發本身的模塊時,須要在模塊所在目錄下,建立兩個文件:__init__.py和__openerp__.py,在其中定義模塊的初始化操做以及模塊的描述。
而後使用本身的模塊:把本身的模塊路徑設置到odoo中,重啓odoo讓其搜索到自定義模塊,便可經過odoo進行安裝。
模塊文件目錄構成:
data:存放demo和data xml
models:存放模型定義:繼承models.Model類,定義出的模型類會自動與Odoo提供的ORM接口匹配,也就是說這些模型類會自動存入sql中。
controllers:存放http路徑控制(url請求處理)
views:網頁視圖文件與模版文件(xml文件,使用QWEB語言進行描述)
static:靜態資源文件,如css、js等
security:對模塊的訪問權限控制,在ir.model.access.csv文件中定義。還能夠新建一個record_rule.xml,在其中進行更細化的權限控制。
繼承模塊經過 _inherit=「繼承的模塊」 屬性來實現。以後在新建立的模塊中就能夠新增field、修改父模塊的field、重載方法了。
不單單模塊能夠繼承開發,視圖文件也可繼承修改,對與視圖文件中某個標籤,經過 ref=「繼承的視圖元素」進行繼承。
五:數據庫端開發
可使用pgadmin3來對postgreSQL數據庫管理操做,若是SQLYog操做mysql同樣。
六:模塊開發流程
1:分析模塊模型,得出模型所需的字段有哪些,而後定義模型類——python編程。
2:構建菜單對象——在views文件夾下,使用xml定義菜單項。
3:構建動做對象,關聯某個具體菜單項的響應。
4:構建視圖對象:主要是list、tree、form、search視圖。
5:配置__init__.py和__openerp__.py
七:orderset
odoo8新增的ORM API,最經常使用的有 domain(fieldName,op,value) 方法 以及 search(fieldName,op,value)。
八:模型內的數據文件
1:ID
全部存儲在Odoo底層數據庫中的記錄都有一個獨一無二的id。odoo經過ir.model.data模型來管理這些ID,這個模型對應數據庫中ir_model_data表,其存儲了ID與具體某條具體的記錄的映射關係。
2:導入導出數據
tree列表視圖下,能夠導入導出數據。其中,導入數據須要csv格式,導出則能夠爲csv或excel格式。
3:標籤值
使用filed標籤指明某個字段並賦值。賦值有兩種方式:<field>值<field/> 、<field name="" eval="計算標籤值的表達式"/>
九:工做流開發
工做流開發主要使用xml,有三種組成元素:workflow、activity、transition。