ตัวแก้ไขออนไลน์¶
มุมมอง Online Editor ช่วยให้สามารถแก้ไขซอร์สโค้ดของบิลด์ของคุณจากเว็บเบราว์เซอร์ นอกจากนี้ยังให้ความสามารถในการเปิดเทอร์มินัล คอนโซล Python คอนโซล Odoo shell และ Jupyter Notebooks
คุณสามารถเข้าถึงตัวแก้ไขของบิลด์ผ่าน แท็บแบรนช์ เมนูดรอปดาวน์บิลด์ หรือโดยการเพิ่ม /odoo-sh/editor ไปยัง URL ของบิลด์ (เช่น https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor)
การแก้ไขซอร์สโค้ด¶
ไดเรกทอรีการทำงานประกอบด้วยสิ่งต่อไปนี้:
.
├── home
│ └── odoo
│ ├── src
│ │ ├── odoo Odoo Community source code
│ │ │ └── odoo-bin Odoo server executable
│ │ ├── enterprise Odoo Enterprise source code
│ │ ├── themes Odoo Themes source code
│ │ └── user Your repository branch source code
│ ├── data
│ │ ├── filestore Database attachments, as well as the files of binary fields
│ │ └── sessions Visitors and users sessions
│ └── logs
│ ├── install.log Database installation logs
│ ├── odoo.log Running server logs
│ ├── update.log Database updates logs
│ └── pip.log Python packages installation logs
คุณสามารถแก้ไขซอร์สโค้ด (ไฟล์ภายใต้ /src) ของบิลด์สำหรับการพัฒนาและบิลด์สเตจจิ้ง สำหรับบิลด์สำหรับการใช้งานจริง ซอร์สโค้ดจะเป็นแบบอ่านอย่างเดียว เพราะการใช้การเปลี่ยนแปลงในเครื่องบนเซิร์ฟเวอร์สำหรับการใช้งานจริงไม่ใช่แนวทางปฏิบัติที่ดี
Note
การเปลี่ยนแปลงของคุณจะไม่ถูกส่งต่อไปยังบิลด์ใหม่ จำเป็นต้อง คอมมิตไปยังซอร์สโค้ด หากคุณต้องการให้การเปลี่ยนแปลงยังคงอยู่
ซอร์สโค้ดของรีพอสิทอรี GitHub ของคุณอยู่ภายใต้
/src/userซอร์สโค้ดของ Odoo อยู่ภายใต้:
/src/odoo(https://github.com/odoo/odoo)/src/enterprise(https://github.com/odoo/enterprise)/src/themes(https://github.com/odoo/design-themes)
ในการเปิดไฟล์ในตัวแก้ไข ให้ดับเบิลคลิกที่ไฟล์ในแผงเบราว์เซอร์ไฟล์ จากนั้นคุณสามารถแก้ไขไฟล์ได้ ในการบันทึกการเปลี่ยนแปลงของคุณ ไปที่ หรือใช้แป้นพิมพ์ลัด Ctrl+S
หากคุณบันทึกไฟล์ Python ในเส้นทางแอดออนของเซิร์ฟเวอร์ Odoo ของคุณ Odoo จะตรวจจับและโหลดใหม่โดยอัตโนมัติ ซึ่งหมายความว่าการเปลี่ยนแปลงของคุณจะมองเห็นได้ทันที
อย่างไรก็ตาม หากการเปลี่ยนแปลงของคุณถูกเก็บไว้ในฐานข้อมูล เช่น ป้ายกำกับของฟิลด์หรือมุมมอง จำเป็นต้องอัปเดตโมดูลที่เกี่ยวข้องเพื่อใช้การเปลี่ยนแปลง ในการอัปเดตโมดูลของไฟล์ที่เปิดอยู่ในปัจจุบัน ไปที่
Tip
คุณยังสามารถรันคำสั่งต่อไปนี้ในเทอร์มินัลเพื่ออัปเดตโมดูล:
odoo-bin -u <comma-separated module names> --stop-after-init
การ commit และ push การเปลี่ยนแปลง¶
เพื่อ commit และ push การเปลี่ยนแปลงไปยัง GitHub repository ของคุณ:
เปิดเทอร์มินัลโดยไปที่
เปลี่ยนไดเรกทอรีเป็น
~/src/usercd ~/src/userระบุข้อมูลประจำตัวของคุณ
git config --global user.email "you@example.com" && git config --global user.name "Your Name"
จัดเตรียมการเปลี่ยนแปลงของคุณ
git add
Commit การเปลี่ยนแปลงของคุณ
git commit
Push การเปลี่ยนแปลงของคุณ
git push https HEAD:<branch>
ในคำสั่งนี้:
httpsคือชื่อของ HTTPS GitHub remote repository ของคุณ (เช่นhttps://github.com/username/repository.git)HEADคือการอ้างอิงถึง revision ล่าสุดที่คุณ commit<branch>ต้องถูกแทนที่ด้วยชื่อของ branch ที่คุณต้องการ push การเปลี่ยนแปลงไป ซึ่งมักจะเป็น branch ปัจจุบันหากคุณทำงานบน development build
คุณจะถูกขอให้ป้อนชื่อผู้ใช้และรหัสผ่าน GitHub ของคุณ หลังจากป้อนข้อมูลรับรองแล้ว ให้กด enter
Tip
หากคุณเปิดใช้งานการยืนยันตัวตนแบบสองปัจจัยสำหรับบัญชี GitHub ของคุณ คุณสามารถสร้าง personal access token และใช้เป็นรหัสผ่านได้ การให้สิทธิ์ repo ก็เพียงพอแล้ว
Note
ไม่สามารถยืนยันตัวตนโดยใช้ SSH ได้ เนื่องจาก private SSH key ของคุณไม่ได้ถูกเก็บไว้ใน build containers ของคุณด้วยเหตุผลด้านความปลอดภัย และไม่ได้ถูกส่งต่อผ่าน SSH agent เนื่องจากคุณเข้าถึงตัวแก้ไขผ่านเว็บเบราว์เซอร์
โฟลเดอร์ต้นทาง
~/src/userไม่ได้ถูก checkout บน branch แต่อยู่บน detached revision เนื่องจาก builds ทำงานบน revisions เฉพาะแทนที่จะเป็น branches ซึ่งหมายความว่าคุณสามารถมีหลาย builds บน branch เดียวกันได้ แต่อยู่บน revisions ที่ต่างกัน
เมื่อการเปลี่ยนแปลงของคุณถูก push แล้ว ตาม:ref:พฤติกรรมการ push branch <odoo-sh/branches/tabs/settings> ของคุณ build ใหม่อาจถูกสร้างขึ้น คุณสามารถทำงานต่อในตัวแก้ไขที่คุณ push ออกไปได้ เนื่องจากจะมี revision เดียวกับ build ใหม่ที่ถูกสร้างขึ้น อย่างไรก็ตาม ให้แน่ใจเสมอว่าคุณอยู่ในตัวแก้ไขของ build ที่ใช้ revision ล่าสุดของ branch ของคุณ
คอนโซล¶
คุณสามารถเปิดคอนโซล Python ซึ่งเป็น IPython interactive shells การใช้คอนโซล Python เหล่านี้ (แทนที่จะใช้เชลล์ IPython ภายในเทอร์มินัล) ช่วยให้คุณสามารถใช้ rich display capabilities เพื่อแสดงออบเจ็กต์ในรูปแบบ HTML
Example
คลาส Pretty แสดงรายการในลักษณะที่อ่านง่าย
คุณสามารถเปิดคอนโซลเชลล์ Odoo เพื่อทดลองใช้งานรีจิสทรีและเมธอดโมเดลของฐานข้อมูลของคุณ คุณยังสามารถอ่านหรือเขียนข้อมูลลงในเรกคอร์ดของคุณได้โดยตรง
Warning
ในคอนโซลเชลล์ Odoo ธุรกรรมจะถูกคอมมิตโดยอัตโนมัติ ซึ่งหมายความว่าการเปลี่ยนแปลงที่ทำกับเรกคอร์ดจะถูกนำไปใช้กับฐานข้อมูล ตัวอย่างเช่น หากคุณเปลี่ยนชื่อของผู้ใช้ ชื่อดังกล่าวจะถูกอัปเดตในฐานข้อมูลของคุณด้วย ดังนั้นโปรดใช้คอนโซลเชลล์ Odoo อย่างระมัดระวังบนฐานข้อมูลที่ใช้งานจริง
คุณสามารถใช้ env เพื่อเรียกใช้โมเดลของรีจิสทรีฐานข้อมูลของคุณ เช่น env['res.users']
env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]