OpenERP Login窗口顯示資料庫下拉的中文說明



在OpenERP中,如果有建立多個資料庫,則在登入時就會顯示一下select清單,可以讓用戶選擇登入的作業資料庫。

但目前下拉清單中顯示的都是資料庫的代號,對於有些使用者來講,很難根據代號知道不同資料庫的意義,所以如果能顯示中文說明則是最好了。

經過一些調試,通過更改兩個位置的腳本即可實現此功能。

1.先修改python腳本中,取得資料庫清單的部分,腳本在/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py中,編輯此腳本,搜索"db_list"字串,會看到有如下一段代碼,紅色部分是我加的,就是先定義一個字典變量,保存資料庫代號和中文說明的定義,然後將dbs變量重新賦值:

 def get_list(self, req):
        proxy = req.session.proxy("db")
        dbs = proxy.list()
        h = req.httprequest.environ['HTTP_HOST'].split(':')[0]
        d = h.split('.')[0]
        r = req.config.dbfilter.replace('%h', h).replace('%d', d)
        dbs = [i for i in dbs if re.match(r, i)]
        dbdic={'erpdb':'Db for ERP','testdb':'Db for Test'}
        dbs=[(d,dbdic[d]) if dbdic.has_key(d) else (d,d)  for d in dbs]
        return {"db_list": dbs}



2.原來的dbs值是一個簡單的列表,經過上述更改後,列表中的元素變成了包含代號和中文說明的元組,所以前端的xml部分也要作些修改,

   xml的腳本是在 /usr/lib/pymodules/python2.7/openerp/addons/web/static/src/xml/base.xml 中,編輯此文件,搜索"db_list"字串,會找到其中一段代碼如下,紅色內容是我增加的,因爲原來db變量只是一個字串,現在變成了一個元組,所以要通過下標來設定其值,另外還有兩處是dropdb和backupdb部分有關<option>節點的值也要修改,不然刪除和備份時就不能顯示正確的資料庫:

<t t-name="Login_dblist">
    <select name="db">
        <t t-foreach="db_list" t-as="db">
            <t t-if="selected_db === db[0]">
                <option t-att-value="db[0]" selected="true">
                        <t t-esc="db[1]"/>
                </option>
            </t>
            <t t-if="selected_db !== db[0]">
                <option t-att-value="db[0]"><t t-esc="db[1]"/></option>
            </t>
        </t>
    </select>
</t>


3.上述修改保存後重新啓動openerp服務即可。上述環境是在Ubuntu12.04+OpenERP6.1修改,openerp7.0還沒有測試,有興趣的話大家可以試試。


大家複製python代碼的時候 注意縮進哦 


原文:http://blog.csdn.net/vnsoft/article/details/8596570



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章