登錄
正常訪問http://localhost:8069后,登錄的界面如下:
這是Odoo默認的認證方式,也是我們最常見最熟悉的認證方式,7.0以前,數據庫中的密碼都是以明文方式存儲,可以很輕松地在res_users表中查詢到用戶的密碼。8.0以后,odoo提高的密碼的安全性,將密碼加密后進行存儲。
近些年來,網絡比較流行的一種登錄方式是auth,像QQ、支付寶、微信等登錄方式,Odoo通過第三方模塊也可以實現類似的功能。
對於企業內部用戶,可能會接觸到SSO的登錄方式,這種方式的驗證機制同微信驗證類似,只不過驗證的服務器端是企業內部自己搭建的,因此,SSO的登錄方式沒有通用的模塊,只有根據不同的企業端來進行定制的開發。如去哪兒內部就有一種QSSO,實現之后的登錄界面如下:
界面
登錄完成之后,會看到如下的界面:
頂部是導航欄,分別對應系統安裝了的模塊的幾大功能,如銷售、項目、會計、采購、倉庫、生產、人力資源、報表等等,這是系統的一級菜單,也可以稱之為應用。
左邊一欄是二級菜單,單擊每一個菜單,右邊會有不同的界面顯示。
右上角是當前登錄用戶,在這里可以切換當前登錄用戶的時區,語言,更改密碼等設置,如下圖
還有另外以下諸如關於Odoo,注銷等功能。
模塊的安裝與卸載
模塊是Odoo功能的基本單位,也是正因為功能的模塊化,使得Odoo功能的添加與修改都變得十分靈活。模塊的安裝非常簡單,在設置的界面里搜索要安裝的模塊名,然后安裝即可。
安裝第三方模塊
Odoo的強大源於不僅有諸多官方已經集成在安裝包中的官方模塊,更在於眾多社區開發者貢獻的第三方模塊。官方模塊有些時候只是給出了一個通用的解決方案,在落地到實際企業生產過程中,有諸多需要改進的地方,這個時候就是第三方模塊發揮其作用的時候了。我們通常所說的二次開發就是這個概念,將企業的特定化需求,結合其原有的模塊進行定制,以求以最小的時間成本獲取最大的生產效率。
安裝第三方模塊,首先需要將源代碼放在配置文件的addons目錄中。
多個路徑以‘,’隔開。Ubuntu Deb包安裝的目錄在 /usr/lib/python2.7/dist-packages/openerp/addons/ 中。建議第三方模塊或自己開發的模塊不要跟官方模塊混放在一起,以防止代碼升級造成模塊的丟失。
源代碼放置到文件夾中之后,需要重啟服務。然后在設置界面中,先更新模塊列表,然后才能在本地模塊列表中找到我們想要安裝的模塊。
模塊的卸載是一個非常危險的動作,因為極有可能因為卸載模塊導致數據的丟失。由於模塊間的依賴關系,卸載一個模塊也很有可能會將其他依賴於這個模塊的模塊一並卸載,因此強烈建議除非在極有把握的情況下,否則不要輕易卸載模塊。通常模塊的問題,我們可以通過升級操作來進行修復,這個我們等到開發部分在進行詳細介紹。
公司設置
在設置中,有一項公司設置用來配置公司信息。
公司信息里包含了銀行賬戶,地址,聯系方式等信息,也包含一些報表的頁眉頁腳的設置,通常會在打印報表的時候將這些信息一並打印出來。公司信息是一項很重要的預先設置,通常在安裝系統的時候系統會幫你把這些信息自動填寫完畢,必要的時候,你也可以更改公司信息。公司設置里會有一些隱藏信息用於指導采購,銷售,倉庫的行為,這些我們會在遇到的時候進行一一闡述。
用戶與組
Odoo的用戶與組是Odoo權限控制的兩個重要部分,組實際可以理解為角色,用戶可以針對不用的應用有多個角色,比如,Kevin既可以是倉庫的用戶,又可以是采購的用戶。根據不同的應用給予用戶賦予不同的角色,即可以實現對用戶權限的靈活設置。
用戶界面主要由兩個頁面組成,一個是與權限相關的訪問權限,另一個是跟國際化相關的語言區域設置。
訪問權限頁面用於給用戶賦予角色,同一個應用程序組與組之間如果有繼承關系,該權限組會顯示成為下拉列表樣式,若組與組之間存在並列關系,那么就會被展開成為勾選的樣式。組之間的繼承關系,在組的頁面中進行設置。
在組的視圖中,我們可以看到有 用戶、繼承、菜單、視圖、訪問權限、規則、備注等多個tab頁。視圖、訪問權限、規則屬於高級內容,在此不進行過多闡述,在后續的開發章節中會有對此三種對象的詳細介紹。
在用戶Tab頁中,我們可以看到加入此組的所有用戶。這里列舉出的用戶包含改組的子組中(繼承自改組)的用戶。繼承Tab頁中可以看到改組的繼承關系。菜單Tab頁中可以看到改組所擁有訪問權限的菜單。
常規設置
剛接觸Odoo的時候比較關注的功能之一就是它的收發郵件功能,配置郵件的界面在設置菜單的常規設置中(也可以在技術設置-郵件里進行)。
郵件的設置需要根據公司的郵箱服務器進行設置,對於支持Catch-All功能的服務器,只需要配置好域名,無需過多的設置即可使用Odoo的郵件收發服務。
但對於沒有自己公司的郵箱服務器或不支持Catch-All功能的服務器來說,配置Odoo的郵箱服務就沒那么容易了。最好的辦法是找一個支持Catch-All功能的企業郵箱,如果不能,向國內的163企業郵也是可以的。使用163企業郵箱,需要針對每個用戶設置獨立的收發件服務器,維護的成本較高。同時,需要用到第三方模塊來完成對每個用戶和收發服務器的匹配操作。這個模塊的下載地址是:
https://github.com/kevin8909/auto_select_smtp
接收服務器設置列表:
發出郵件服務器列表:
發出郵件服務器設置舉例:
接收服務器設置舉例:
需要說明的一點,接收服務器設置里,對於收到的郵件可執行的動作,這里要選Email 別名,因為我們是依據Email別名來尋找相應的用戶的。
配置郵件過程不是一個容易的事,期間會碰到各種各樣的問題,建議參照企業郵的說明文檔進行設置。
翻譯
Odoo的翻譯漢化的不是很完美,部署完系統之后就會發現有很多地方依舊保留着英文,這對國內的一些用戶造成了閱讀與理解上的不便。社區也有人致力於解決這個問題,組織了一些漢化工作者,但由於翻譯者的水平有限,有很多地方造成了歧義。這里的建議是,如果英文水平足夠好,建議將語言設置成英文。不得不用中文的情況下,建議對照詞典英文釋義及自己的理解將其翻譯成自己認為正確的漢語。也可以購買社區的漢化包,但在使用過程中碰到難以理解的翻譯時,要記得對照英文原意進行解讀。
下面介紹翻譯的方法:
開發者模式
開發者模式是Odoo提供給有技術基礎的人進行界面編程的入口。我們翻譯的方法之一就是借助開發者模式提供給我們的技術翻譯進行。打開開發者模式位置在右上角-關於
技術翻譯
在任一Form視圖/Tree視圖中,我們都可以看到Debug下拉列表中有一項叫做技術翻譯。
在這里我們就可以對界面上的一些翻譯進行修改,例如:
詢價單中的“幣種”,我希望將它翻譯成“幣別”,我們就可以在技術翻譯里找到幣別這條翻譯
將其翻譯為幣別。技術設置的最后一列可能剛入門的讀者比較困惑,它是技術后台中對Odoo對象的分類,這個在以后的開發內容中會有涉及,這里不需要太過糾結。
界面翻譯的第二種方法,不是在技術翻譯里進行,是在設置/應用程序術語/已翻譯術語中
在這里我們可以搜索到Odoo中所有模塊的翻譯,並且可以進行編輯修改或是添加。
第三種翻譯方法,是通過修改模塊文件中的i18n文件夾中的po文件進行,這也是解決翻譯問題的終極辦法。I18n的意思是internationalization ,只需要把包含翻譯的Zh_CN.po文件放入該文件夾中,然后對模塊進行升級,就可將翻譯應用到系統中。PO文件大概是這個樣子:
po文件是GNU gettext項目的一套應用規范,屬於L10n方案。PO 是 Portable Object (可移植對象)的縮寫形式;MO 是 Machine Object (機器對象) 的縮寫形式。PO 文件是面向翻譯人員的、提取於源代碼的一種資源文件。當軟件升級的時候,通過使用 gettext 軟件包處理 PO 文件,可以在一定程度上使翻譯成果得以繼承,減輕翻譯人員的負擔。MO 文件是面向計算機的、由 PO 文件通過 gettext 軟件包編譯而成的二進制文件。程序通過讀取 MO 文件使自身的界面轉換成用戶使用的語言。
在Odoo中使用po文件,可以通過設置-導入 /導出菜單將要修改的模塊的po文件導出,然后用poedit軟件進行編輯后,覆蓋掉原模塊文件夾中的po文件,完成修改。
對於function類型的字段,可能在導出模塊的po文件中不會存在相應的翻譯,這時需要手工添加,具體的添加方法可將po文件中其他的字段翻譯復制一遍,然后修改為新字段即可。
視圖
Odoo的視圖是指技術前端對用戶展示的頁面,有以下幾種類型:Form,Tree,Kanban,Gantt,Graph,Canlendar,Diagram,Search,Qweb.最常用的是Form和Tree兩種,通常翻譯為表單和樹形視圖。
表單
最常見的視圖類型之一:
用來展示一個對象的信息。
樹形
實際上應該稱為列表(List),真正的樹形是可以展開顯示子節點的。用於顯示多個對象的全部或部分信息。
看板(Kanban)
以看板的形式展示一個或多個對象。
甘特圖(Gantt)
以甘特圖的方式展示對象信息
圖表(Graph)
以圖表的方式展示數據,多用於報表。
日歷(Canlendar)
以日歷形式展示數據。
流程圖(Diagram)
以流程圖的方式展示數據關系,主要用戶工作流。
搜索(search)
搜索視圖,常見類型之一,用於多個條件的過濾。
Qweb
主要用於打印文件的設置以及前端一些小窗口部件(Widget)的繪制,在Qweb開發部分會給出具體介紹。
總結
本章主要介紹了一些關於Odoo的基本設置,這是開始學習Odoo的第一步。經過本章的學習,相信你已經對Odoo有了一個大概的認識,可能你對Odoo的操作還不是很熟悉,不過相信經過接下來的學習,你一定會變得越來越熟練。