星期二, 7月 26, 2016

Odoo 9 建立模組 (三) 自行建立模組

一、建立資料夾,檔案

  • 想要自行建立一個模組裡面必須要有下列幾個必要元素
  • 先在addons目錄下新增一個python package  檔名為test

image

  • 在test下新增以下檔案
  • test (python package)
  • __init__.py   (python file 會自行產生 )
  • __openerp__.py     (python file"__"為雙底線)
    • models    ( ython package)
      • __init__.py(python file 會自行產生)
    • views (Directory 檔案夾)
      • test_student_view.xml  (file)

image

  • 完成後

image

二、import 資料夾和檔案

    • __openerp__.py

      • 可以參考上節所建立的openacademy內的openerp建立,主要是宣告模組名稱,版本,作者.......

{
    'name': "test1",
    'version': '1.0',
    'depends': [],
    'author': "supojen(kulius@msn.com)",
    'category': '',
    'description': """

    """,
    'data': ["views/test1_student_view.xml"],
    'demo': [],
}

  • __init__.py

    • import有使用到的models,和python檔

image

      # -*- coding: utf-8 -*-
      import models

image

from . import test_student

三、資料關聯建立

  • models內的檔案是負責關聯資料表

image

 

  • 建立一個"name"的欄位

from openerp import models, fields, api

class TestStudent(models.Model):
    _name="test.student"
    name=fields.Char()

image

四、畫面設定

  • odoo畫面相關的code會放在剛剛建立views資料夾裡的XML檔,此XML檔需在openerp內的DATA進行宣告

image

 

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record id="test_student_view_form" model="ir.ui.view">
            <field name="name">test.student.view.form</field>
            <field name="model">test.student</field>
            <field name="arch" type="xml">
                <form string="">
                    <sheet>
                        <group>
                            <field name="name"/>


                        </group>
                    </sheet>
                </form>
            </field>
        </record>

        <record id="test_student_view_tree" model="ir.ui.view">
            <field name="name">test.student.view.tree</field>
            <field name="model">test.student</field>
            <field name="arch" type="xml">
                <tree string="">
                    <field name="name"/>
                </tree>
            </field>
        </record>

        <record id="test_student_action" model="ir.actions.act_window">
            <field name="name">test student</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">test.student</field>
            <field name="view_mode">tree,form</field>
            <field name="help" type="html">
              <p class="oe_view_nocontent_create">
                <!-- Add Text Here -->
              </p><p>
                <!-- More details about what a user can do with this object will be OK -->
              </p>
            </field>
        </record>


        <menuitem id="test_menu_root" name="test" sequence="1"/>
        <menuitem id="test_select_menu_category" name="select" parent="test_menu_root" sequence="1"/>
        <menuitem id="test_course_menu_action_list" name="set student" parent="test_select_menu_category" action="test_student_action" sequence=""/>


    </data>
</openerp>

四、簡易模組完成

image

 

image