<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在windows cmd命令行下: ~~~ e: cd E:\GOdoo10 E:\GOdoo10\runtime\python\python source\odoo-bin scaffold qingjia myaddons ~~~ E:\GOdoo10 是odoo10綠色版的解壓目錄。 E:\GOdoo10\runtime\python\python 這個是綠色版自帶的python環境,source\odoo-bin 是odoo10源碼中的odoo命令入口,scaffold 是odoo的腳手架功能,可以創建一個標準的odoo模塊框架,qingjia是創建的模塊名,myaddons是模塊所放置的目錄路徑。模塊加載目錄有兩個,一個是GOdoo10\myaddons,另一個是GOdoo10\source\addons,但是按約定GOdoo10\source\addons放系統模塊,GOdoo10\myaddons放自己開發的模塊。 ![](http://upload-images.jianshu.io/upload_images/3551405-07ee550e0fb3cbc7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 請假單目錄結構 建立完成后,目錄是這樣的,這里是用pycharm進行開發的,也可以用vs2015進行開發。 ![](http://upload-images.jianshu.io/upload_images/3551405-e3d35cbbdfbd0de3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 激活開發者模式 以管理員身份登錄系統,設置>激活開發者模式,odoo中很多操作和設置是需要管理員身份在開發者模式下才能進行的。 ![](http://upload-images.jianshu.io/upload_images/3551405-9a7d3c46af6ce243.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 安裝請假模塊 應用>更新應用列表,更新應用列表是為了能夠搜索到剛剛添加的qingjia模塊。更新完成后,在搜索欄關閉“應用”標簽,然后輸入qingjia搜索,能看到我們的模塊了。安裝qingjia模塊,安裝完成后會發現什么也沒增加,正常,因為腳手架中還沒有加入任何代碼。現在開始加入代碼,編輯文件`__manifest__.py` ~~~ # -*- coding: utf-8 -*- { 'name': "qingjia", 'summary': """ 請假模塊""", 'description': """ 請假模塊 """, 'author': "leo", 'website': "http://www.yourcompany.com", # Categories can be used to filter modules in modules listing # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml # for the full list 'category': 'Uncategorized', 'version': '0.1', # any module necessary for this one to work correctly 'depends': ['base'], # always loaded 'data': [ # 'security/ir.model.access.csv', 'views/views.xml', 'views/templates.xml', ], # only loaded in demonstration mode 'demo': [ 'demo/demo.xml', ], } ~~~ 這是整個模塊的配置文件,配置項從字面上很容易理解。 name:模塊名,會顯示在模塊列表中。 summary:摘要,在模塊詳情顯示。 description:描述,在模塊詳情顯示。 depends:模塊依賴項,在這個模塊中沒有需要依賴的其它模塊,保留默認的base。 data:模塊資源文件,視圖、菜單、權限等都可以寫在資源文件中。 demo:模塊演示數據。 修改模塊的類文件?`models/models.py` ~~~ from odoo import models, fields, api class qingjiadan(models.Model): _name = 'qingjia.qingjiadan' name = fields.Char(string="申請人") days = fields.Integer(string="天數") startdate = fields.Date(string="開始日期") reason = fields.Text(string="請假事由") ~~~ 這里我們定義了qingjiadan對象模型,包含四個屬性,name,days,startdate,reason。在模塊安裝完成后,odoo的ORM框架會自動把這個對象映射到數據庫表。屬性類型會映射到表字段數據類型,表名是`模塊名_對象名`,比如這個對象對應的表名是`qingjia_qingjiadan` 修改資源文件?`views/views.xml` ~~~ <openerp> <data> <!-- tree視圖 --> <record id="view_tree_qingjia_qingjiadan" model="ir.ui.view"> <field name="name">請假單列表</field> <field name="model">qingjia.qingjiadan</field> <field name="arch" type="xml"> <tree> <field name="name"/> <field name="days"/> <field name="startdate"/> </tree> </field> </record> <!-- form視圖 --> <record id="view_form_qingjia_qingjiadan" model="ir.ui.view"> <field name="name">請假單</field> <field name="model">qingjia.qingjiadan</field> <field name="arch" type="xml"> <form> <sheet> <group name="group_top" string="請假單"> <field name="name"/> <field name="days"/> <field name="startdate"/> <field name="reason"/> </group> </sheet> </form> </field> </record> <!-- 視圖動作 --> <act_window id="action_qingjia_qingjiadan" name="請假單" res_model="qingjia.qingjiadan" view_mode="tree,form" /> <!-- 頂級菜單 --> <menuitem name="請假" id="menu_qingjia"/> <!-- 二級菜單 --> <menuitem name="請假單" id="menu_qingjia_qingjiadan" parent="menu_qingjia" action="action_qingjia_qingjiadan"/> </data> </openerp> ~~~ 這里定義了一個tree視圖,一個form視圖,一個視圖動作,還有兩個菜單。 tree視圖用于顯示請假單列表頁面。 `<record id="view_tree_qingjia_qingjiadan" model="ir.ui.view">` id?tree視圖的全局唯一標識 model?資源類型,tree視圖和form視圖都是`ir.ui.view`,這里對應ir_ui_view數據庫表,模塊安裝后,資源數據會寫入對應的數據庫表中。 `<field name="model">qingjia.qingjiadan</field>` 將這個視圖與我們之前定義的對象模型`qingjia.qingjiadan`進行綁定。 ~~~ <field name="arch" type="xml"> <tree> <field name="name"/> <field name="days"/> <field name="startdate"/> </tree> </field> ~~~ 這里表示這是一個tree視圖,并定義列表項顯示的列。在列表項中顯示name,days,startdate三個字段的內容,這里字段都是在`qingjia.qingjiadan`對象模型中定義的。 form視圖用于顯示請假單詳情頁,定義方式與tree視圖類似。有兩個特殊的容器`<sheet><group>`是用于頁面布局的。 ~~~ <act_window id="action_qingjia_qingjiadan" name="請假單" res_model="qingjia.qingjiadan" view_mode="tree,form" /> ~~~ 這里定義視圖動作,視圖動作將菜單、視圖、模型進行關聯。 name?會在模塊的導航條中顯示 res_model?視圖動作綁定的模型 view_mode?視圖動作關聯的視圖類型 ~~~ <!-- 頂級菜單 --> <menuitem name="請假" id="menu_qingjia"/> <!-- 二級菜單 --> <menuitem name="請假單" id="menu_qingjia_qingjiadan" parent="menu_qingjia" action="action_qingjia_qingjiadan"/> ~~~ 這里定義了兩級菜單,頂級菜單將出現在odoo導航菜單上,二級菜單的通過`parent`屬性與頂級菜單關聯,`action`是菜單點擊動作響應方法。 ![](http://upload-images.jianshu.io/upload_images/3551405-5ecef42564a9e9cb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 模塊升級 修改完代碼后,重啟odoo服務,重新登錄系統,在應用>應用中再次找到我們之前安裝過的qingjia模塊,進入模塊詳情,把qingjia模塊升級。 ![](http://upload-images.jianshu.io/upload_images/3551405-626f81945f6129c2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 請假單tree視圖 ![](http://upload-images.jianshu.io/upload_images/3551405-835f6e1058c689a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 請假單form視圖 好了,現在可以看到請假模塊界面,能實現基本的增刪改查功能。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看