odoo10 學(xué)習(xí)筆記2(簡(jiǎn)單的請(qǐng)假模塊)

在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 這個(gè)是綠色版自帶的python環(huán)境,source\odoo-bin 是odoo10源碼中的odoo命令入口,scaffold 是odoo的腳手架功能天通,可以創(chuàng)建一個(gè)標(biāo)準(zhǔn)的odoo模塊框架,qingjia是創(chuàng)建的模塊名,myaddons是模塊所放置的目錄路徑搬素。模塊加載目錄有兩個(gè)霎箍,一個(gè)是GOdoo10\myaddons奇钞,另一個(gè)是GOdoo10\source\addons,但是按約定GOdoo10\source\addons放系統(tǒng)模塊漂坏,GOdoo10\myaddons放自己開發(fā)的模塊景埃。

請(qǐng)假單目錄結(jié)構(gòu)

建立完成后,目錄是這樣的顶别,這里是用pycharm進(jìn)行開發(fā)的谷徙,也可以用vs2015進(jìn)行開發(fā)。

激活開發(fā)者模式

以管理員身份登錄系統(tǒng)驯绎,設(shè)置>激活開發(fā)者模式完慧,odoo中很多操作和設(shè)置是需要管理員身份在開發(fā)者模式下才能進(jìn)行的。

安裝請(qǐng)假模塊

應(yīng)用>更新應(yīng)用列表条篷,更新應(yīng)用列表是為了能夠搜索到剛剛添加的qingjia模塊骗随。更新完成后,在搜索欄關(guān)閉“應(yīng)用”標(biāo)簽赴叹,然后輸入qingjia搜索鸿染,能看到我們的模塊了。安裝qingjia模塊乞巧,安裝完成后會(huì)發(fā)現(xiàn)什么也沒(méi)增加涨椒,正常,因?yàn)槟_手架中還沒(méi)有加入任何代碼≌烂剑現(xiàn)在開始加入代碼蚕冬,編輯文件__manifest__.py

# -*- coding: utf-8 -*-
{
    'name': "qingjia",

    'summary': """
        請(qǐng)假模塊""",

    'description': """
        請(qǐng)假模塊
    """,

    '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',
    ],
}

這是整個(gè)模塊的配置文件,配置項(xiàng)從字面上很容易理解是辕。
name:模塊名囤热,會(huì)顯示在模塊列表中。
summary:摘要获三,在模塊詳情顯示旁蔼。
description:描述,在模塊詳情顯示疙教。
depends:模塊依賴項(xiàng)棺聊,在這個(gè)模塊中沒(méi)有需要依賴的其它模塊,保留默認(rèn)的base贞谓。
data:模塊資源文件限佩,視圖、菜單、權(quán)限等都可以寫在資源文件中祟同。
demo:模塊演示數(shù)據(jù)作喘。

修改模塊的類文件 models/models.py

from odoo import models, fields, api

class qingjiadan(models.Model):
    _name = 'qingjia.qingjiadan'
    name = fields.Char(string="申請(qǐng)人")
    days = fields.Integer(string="天數(shù)")
    startdate = fields.Date(string="開始日期")
    reason = fields.Text(string="請(qǐng)假事由")

這里我們定義了qingjiadan對(duì)象模型,包含四個(gè)屬性耐亏,name徊都,days,startdate广辰,reason暇矫。在模塊安裝完成后,odoo的ORM框架會(huì)自動(dòng)把這個(gè)對(duì)象映射到數(shù)據(jù)庫(kù)表择吊。屬性類型會(huì)映射到表字段數(shù)據(jù)類型李根,表名是模塊名_對(duì)象名,比如這個(gè)對(duì)象對(duì)應(yīng)的表名是qingjia_qingjiadan

修改資源文件 views/views.xml

<openerp>
  <data>
    <!-- tree視圖 -->         
    <record id="view_tree_qingjia_qingjiadan" model="ir.ui.view">
      <field name="name">請(qǐng)假單列表</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">請(qǐng)假單</field>
      <field name="model">qingjia.qingjiadan</field>
      <field name="arch" type="xml">
        <form>
          <sheet>
            <group name="group_top" string="請(qǐng)假單">
              <field name="name"/>
              <field name="days"/>
              <field name="startdate"/>
              <field name="reason"/>
            </group>            
          </sheet>
        </form>
      </field>
    </record>

    <!-- 視圖動(dòng)作 -->
    <act_window id="action_qingjia_qingjiadan"
                   name="請(qǐng)假單"
                   res_model="qingjia.qingjiadan"
                   view_mode="tree,form" />
    
    <!-- 頂級(jí)菜單 -->
    <menuitem name="請(qǐng)假" id="menu_qingjia"/>

    <!-- 二級(jí)菜單 -->
    <menuitem name="請(qǐng)假單" id="menu_qingjia_qingjiadan" parent="menu_qingjia" action="action_qingjia_qingjiadan"/>

  </data>
</openerp>

這里定義了一個(gè)tree視圖几睛,一個(gè)form視圖房轿,一個(gè)視圖動(dòng)作,還有兩個(gè)菜單所森。
tree視圖用于顯示請(qǐng)假單列表頁(yè)面囱持。
<record id="view_tree_qingjia_qingjiadan" model="ir.ui.view">
id tree視圖的全局唯一標(biāo)識(shí)
model 資源類型,tree視圖和form視圖都是ir.ui.view焕济,這里對(duì)應(yīng)ir_ui_view數(shù)據(jù)庫(kù)表纷妆,模塊安裝后,資源數(shù)據(jù)會(huì)寫入對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中晴弃。
<field name="model">qingjia.qingjiadan</field>
將這個(gè)視圖與我們之前定義的對(duì)象模型qingjia.qingjiadan進(jìn)行綁定掩幢。

<field name="arch" type="xml">
        <tree>
            <field name="name"/>
            <field name="days"/>
            <field name="startdate"/>
        </tree>
</field>

這里表示這是一個(gè)tree視圖,并定義列表項(xiàng)顯示的列上鞠。在列表項(xiàng)中顯示name,days,startdate三個(gè)字段的內(nèi)容际邻,這里字段都是在qingjia.qingjiadan對(duì)象模型中定義的。
form視圖用于顯示請(qǐng)假單詳情頁(yè)芍阎,定義方式與tree視圖類似世曾。有兩個(gè)特殊的容器<sheet><group>是用于頁(yè)面布局的。

    <act_window id="action_qingjia_qingjiadan"
                   name="請(qǐng)假單"
                   res_model="qingjia.qingjiadan"
                   view_mode="tree,form" />

這里定義視圖動(dòng)作谴咸,視圖動(dòng)作將菜單度硝、視圖、模型進(jìn)行關(guān)聯(lián)寿冕。
name 會(huì)在模塊的導(dǎo)航條中顯示
res_model 視圖動(dòng)作綁定的模型
view_mode 視圖動(dòng)作關(guān)聯(lián)的視圖類型

    <!-- 頂級(jí)菜單 -->
    <menuitem name="請(qǐng)假" id="menu_qingjia"/>

    <!-- 二級(jí)菜單 -->
    <menuitem name="請(qǐng)假單" id="menu_qingjia_qingjiadan" parent="menu_qingjia" action="action_qingjia_qingjiadan"/>

這里定義了兩級(jí)菜單,頂級(jí)菜單將出現(xiàn)在odoo導(dǎo)航菜單上椒袍,二級(jí)菜單的通過(guò)parent屬性與頂級(jí)菜單關(guān)聯(lián)驼唱,action是菜單點(diǎn)擊動(dòng)作響應(yīng)方法。

模塊升級(jí)

修改完代碼后驹暑,重啟odoo服務(wù)玫恳,重新登錄系統(tǒng)辨赐,在應(yīng)用>應(yīng)用中再次找到我們之前安裝過(guò)的qingjia模塊,進(jìn)入模塊詳情京办,把qingjia模塊升級(jí)掀序。

請(qǐng)假單tree視圖
請(qǐng)假單form視圖

好了,現(xiàn)在可以看到請(qǐng)假模塊界面惭婿,能實(shí)現(xiàn)基本的增刪改查功能不恭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市财饥,隨后出現(xiàn)的幾起案子换吧,更是在濱河造成了極大的恐慌,老刑警劉巖钥星,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沾瓦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谦炒,警方通過(guò)查閱死者的電腦和手機(jī)贯莺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宁改,“玉大人缕探,你說(shuō)我怎么就攤上這事⊥盖遥” “怎么了撕蔼?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)秽誊。 經(jīng)常有香客問(wèn)我鲸沮,道長(zhǎng),這世上最難降的妖魔是什么锅论? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任讼溺,我火速辦了婚禮,結(jié)果婚禮上最易,老公的妹妹穿的比我還像新娘怒坯。我一直安慰自己,他們只是感情好藻懒,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布剔猿。 她就那樣靜靜地躺著,像睡著了一般嬉荆。 火紅的嫁衣襯著肌膚如雪归敬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音汪茧,去河邊找鬼椅亚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舱污,可吹牛的內(nèi)容都是我干的呀舔。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼扩灯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼媚赖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起驴剔,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤省古,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后丧失,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豺妓,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年布讹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琳拭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡描验,死狀恐怖白嘁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膘流,我是刑警寧澤絮缅,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站呼股,受9級(jí)特大地震影響耕魄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彭谁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一吸奴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缠局,春花似錦则奥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至唱矛,卻和暖如春档泽,著一層夾襖步出監(jiān)牢的瞬間俊戳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工馆匿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人燥滑。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓渐北,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親铭拧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赃蛛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容