ผลต่างระหว่างรุ่นของ "Tutorial Odoo 9.0"
จาก Morange Wiki
Bombay (คุย | มีส่วนร่วม) (→แก้ไขไฟล์ ต่างๆ) |
Bombay (คุย | มีส่วนร่วม) |
||
แถว 182: | แถว 182: | ||
[[ไฟล์:Tutor-odoo-5.png |600px]] | [[ไฟล์:Tutor-odoo-5.png |600px]] | ||
+ | |||
+ | |||
+ | ==อ้างอิง== | ||
+ | * https://www.odoo.com/documentation/9.0/howtos/backend.html |
รุ่นแก้ไขเมื่อ 03:13, 14 กรกฎาคม 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 ก่อน (ถ้าทำแล้วให้ผ่านขึ้นตอนนี้ไป)
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย
แก้ไขไฟล์ ต่างๆ
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.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.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/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.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 # })
views/__inti__.py
import controllers import models
models/__init__.py
import models
controllers/__init__.py
import controllers
เมื่อเพิ่มเสร็จแล้วให้เข้า http://localhost:8069/ App จะได้ผลลัพธ์ตามภาพ
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย