ผลต่างระหว่างรุ่นของ "Tutorial Odoo 9.0"

จาก Morange Wiki
(Build an Odoo Module (สร้างโมดูลของ Odoo))
 
(ไม่แสดง 14 รุ่นระหว่างกลางโดยผู้ใช้ 3 คน)
แถว 6: แถว 6:
 
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_5_:_Relations_between_models Tutorial Odoo 9.0 Part 5 : Relations between models]
 
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_5_:_Relations_between_models Tutorial Odoo 9.0 Part 5 : Relations between models]
 
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_6_:_Inheritance Tutorial Odoo 9.0 Part 6 : Inheritance]
 
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_6_:_Inheritance Tutorial Odoo 9.0 Part 6 : Inheritance]
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_7_:_Computed_fields_and_default_values Tutorial Odoo 9.0 Part 7 : Computed fields and default values]
+
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_7_:_Computed_fields_and_default_values Tutorial Odoo 9.0 Part 7 : Computed fields & default values]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_8_:_Onchange_%26_Model_constraints Tutorial Odoo 9.0 Part 8 : Onchange & Model constraints]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_9_:_Advanced_Views Tutorial Odoo 9.0 Part 9 : Advanced Views]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_10_:_Workflows Tutorial Odoo 9.0 Part 10 : Workflows]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_11_:_Security Tutorial Odoo 9.0 Part 11 : Security]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_12_:_Wizards Tutorial Odoo 9.0 Part 12 : Wizards]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_13_:_Internationalization Tutorial Odoo 9.0 Part 13 : Internationalization ]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_14_:_Reporting Tutorial Odoo 9.0 Part 14 : Reporting]
 +
* [https://wiki.morange.co.th/Tutorial_Odoo_9.0_Part_15_:_WebServices#.E0.B8.97.E0.B8.B3_WebService Tutorial Odoo 9.0 Part 15 : WebServices]
  
 
== Build an Odoo Module (สร้างโมดูลของ Odoo) ==  
 
== Build an Odoo Module (สร้างโมดูลของ Odoo) ==  
แถว 78: แถว 86:
 
</pre>
 
</pre>
  
<h3>openacademy/demo.xml</h3> <br/>
+
<h3>openacademy/demo/demo.xml</h3> <br/>
 
<pre>
 
<pre>
 
<openerp>
 
<openerp>
แถว 107: แถว 115:
 
</pre>
 
</pre>
  
<h3>openacademy/models.py</h3> <br/>
+
<h3>openacademy/models/models.py</h3> <br/>
  
 
<pre>
 
<pre>
แถว 125: แถว 133:
 
access_openacademy_openacademy,openacademy.openacademy,model_openacademy_openacademy,,1,0,0,0
 
access_openacademy_openacademy,openacademy.openacademy,model_openacademy_openacademy,,1,0,0,0
 
</pre>
 
</pre>
<h3>openacademy/templates.xml</h3> <br/>
+
<h3>openacademy/views/templates.xml</h3> <br/>
  
 
<pre>
 
<pre>
แถว 152: แถว 160:
 
</pre>
 
</pre>
  
<h3>openacademy/controllers.py</h3><br/>
+
<h3>openacademy/controllers/controllers.py</h3><br/>
 
<pre># -*- coding: utf-8 -*-
 
<pre># -*- coding: utf-8 -*-
 
from openerp import http
 
from openerp import http
แถว 174: แถว 182:
 
#        })</pre>
 
#        })</pre>
  
<h3>views/__inti__.py</h3><br/>
+
<h3>openacademy/__inti__.py</h3><br/>
 
<pre>
 
<pre>
 
import controllers
 
import controllers
แถว 180: แถว 188:
 
</pre>
 
</pre>
  
<h3>models/__init__.py</h3><br/>
+
<h3>openacademy/models/__init__.py</h3><br/>
 
<pre>import models</pre>
 
<pre>import models</pre>
  
<h3>controllers/__init__.py</h3><br/>
+
<h3>openacademy/controllers/__init__.py</h3><br/>
 
<pre>import controllers</pre>
 
<pre>import controllers</pre>
 
<br/><br/>
 
<br/><br/>
แถว 193: แถว 201:
  
 
หัวข้อถัดไป [[Tutorial Odoo 9.0 Part 2 : การ Install Module  ]]
 
หัวข้อถัดไป [[Tutorial Odoo 9.0 Part 2 : การ Install Module  ]]
 
  
 
==อ้างอิง==
 
==อ้างอิง==
 
* https://www.odoo.com/documentation/9.0/howtos/backend.html
 
* https://www.odoo.com/documentation/9.0/howtos/backend.html

รุ่นแก้ไขปัจจุบันเมื่อ 11:06, 24 ตุลาคม 2559

หัวข้อ Tutorial

Build an Odoo Module (สร้างโมดูลของ Odoo)

1. สร้างโมดูล ด้วยคำสั่งดังนี้

odoo.py scaffold openacademy addons

หลังจากนั้นจะได้ไฟล์มีโครงสร้างเป็นดังนี้

มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย



2. ตั้งค่า Path ให้ Odoo ค้นหา App ที่เราสร้างพบ

หมายเหตุ : ถ้าใช้คำสั่งไม่ได้ ให้ล๊อกอินในฐานะ Root

sudo nano /etc/odoo/openerp-server.conf 

คำสังเขียนไฟล์


แก้ไข addons_path = ให้เพิ่ม path ของที่อยู่ไฟล์ addons ต่อท้ายจากที่อยู่ที่ระบบได้สร้างไว้ โดยคั่นด้วยเครื่องหมาย "," (Comma)

มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย



ไปที่ http://localhost:8069/ เพื่อไปตั้งค่า Database (หากทำแล้วให้ผ่านขั้นตอนนี้ไป)

มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย




3. แก้ไขไฟล์ ต่างๆ ดังนี้

openacademy/__openerp__.py


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

    'summary': """Manage trainings""",

    'description': """
        Open Academy module for managing trainings:
            - training courses
            - training sessions
            - attendees registration
    """,

    'author': "My Company",
    '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': 'Test',
    'version': '0.1',

    # any module necessary for this one to work correctly
    'depends': ['base'],

    # always loaded
    'data': [
        # 'security/ir.model.access.csv',
        'views/templates.xml',
    ],
    # only loaded in demonstration mode
    'demo': [
        'demo/demo.xml',
    ],
}

openacademy/__init__.py


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

openacademy/demo/demo.xml


<openerp>
    <data>
        <!--  -->
        <!--   <record id="object0" model="openacademy.openacademy"> -->
        <!--     <field name="name">Object 0</field> -->
        <!--   </record> -->
        <!--  -->
        <!--   <record id="object1" model="openacademy.openacademy"> -->
        <!--     <field name="name">Object 1</field> -->
        <!--   </record> -->
        <!--  -->
        <!--   <record id="object2" model="openacademy.openacademy"> -->
        <!--     <field name="name">Object 2</field> -->
        <!--   </record> -->
        <!--  -->
        <!--   <record id="object3" model="openacademy.openacademy"> -->
        <!--     <field name="name">Object 3</field> -->
        <!--   </record> -->
        <!--  -->
        <!--   <record id="object4" model="openacademy.openacademy"> -->
        <!--     <field name="name">Object 4</field> -->
        <!--   </record> -->
        <!--  -->
    </data>
</openerp>

openacademy/models/models.py


# -*- coding: utf-8 -*-

from openerp import models, fields, api

# class openacademy(models.Model):
#     _name = 'openacademy.openacademy'

#     name = fields.Char()

openacademy/security/ir.model.access.csv


id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_openacademy_openacademy,openacademy.openacademy,model_openacademy_openacademy,,1,0,0,0

openacademy/views/templates.xml


<openerp>
    <data>
        <!-- <template id="listing"> -->
        <!--   <ul> -->
        <!--     <li t-foreach="objects" t-as="object"> -->
        <!--       <a t-attf-href="{{ root }}/objects/{{ object.id }}"> -->
        <!--         <t t-esc="object.display_name"/> -->
        <!--       </a> -->
        <!--     </li> -->
        <!--   </ul> -->
        <!-- </template> -->
        <!-- <template id="object"> -->
        <!--   <h1><t t-esc="object.display_name"/></h1> -->
        <!--   <dl> -->
        <!--     <t t-foreach="object._fields" t-as="field"> -->
        <!--       <dt><t t-esc="field"/></dt> -->
        <!--       <dd><t t-esc="object[field]"/></dd> -->
        <!--     </t> -->
        <!--   </dl> -->
        <!-- </template> -->
    </data>
</openerp>

openacademy/controllers/controllers.py


# -*- coding: utf-8 -*-
from openerp import http

# class Openacademy(http.Controller):
#     @http.route('/openacademy/openacademy/', auth='public')
#     def index(self, **kw):
#         return "Hello, world"

#     @http.route('/openacademy/openacademy/objects/', auth='public')
#     def list(self, **kw):
#         return http.request.render('openacademy.listing', {
#             'root': '/openacademy/openacademy',
#             'objects': http.request.env['openacademy.openacademy'].search([]),
#         })

#     @http.route('/openacademy/openacademy/objects/<model("openacademy.openacademy"):obj>/', auth='public')
#     def object(self, obj, **kw):
#         return http.request.render('openacademy.object', {
#             'object': obj
#         })

openacademy/__inti__.py


import controllers
import models

openacademy/models/__init__.py


import models

openacademy/controllers/__init__.py


import controllers



เมื่อทำการแก้ไขเสร็จเรียบร้อย ให้ไปที่ http://localhost:8069/ และคลิกเมนู App จะได้ผลลัพธ์ตามภาพ

มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย


หัวข้อถัดไป Tutorial Odoo 9.0 Part 2 : การ Install Module

อ้างอิง