เครื่องมือแก้ไขออนไลน์

ภาพรวม

โปรแกรมแก้ไขออนไลน์ช่วยให้คุณสามารถแก้ไขซอร์สโค้ดของงานสร้างของคุณจากเว็บเบราว์เซอร์ นอกจากนี้ยังช่วยให้คุณสามารถเปิดเทอร์มินัล, คอนโซล Python, คอนโซลเชลล์ Odoo และ โน๊ตบุ๊ค

../../../_images/interface-editor.png

You can access the editor of a build through the branches tabs, the builds dropdown menu or by adding /odoo-sh/editor to your build domain name (e.g. 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

การเปลี่ยนแปลงของคุณจะไม่ถูกเผยแพร่ไปยังบิลด์ใหม่ คุณต้อง commit การเปลี่ยนแปลงเหล่านั้นในซอร์สโค้ดของคุณหากคุณต้องการให้คงอยู่

สำหรับบิลด์ที่ใช้งานจริง ซอร์สโค้ดเป็นแบบอ่านอย่างเดียว เนื่องจากการใช้การเปลี่ยนแปลงในเครื่องบนเซิร์ฟเวอร์ที่ใช้งานจริงไม่ใช่แนวปฏิบัติที่ดี

  • ซอร์สโค้ดของที่เก็บ Github ของคุณอยู่ภายใต้ /src/user

  • ซอร์สโค้ดของ Odoo อยู่ภายใต้

หากต้องการเปิดไฟล์ในตัวแก้ไข เพียงดับเบิลคลิกที่ไฟล์นั้นในแผงเบราว์เซอร์ไฟล์ทางด้านซ้าย

../../../_images/interface-editor-open-file.png

จากนั้นคุณสามารถเริ่มทำการเปลี่ยนแปลงได้ คุณสามารถบันทึกการเปลี่ยนแปลงได้ด้วยเมนู ไฟล์ ‣ บันทึก .. ไฟล์ หรือโดยการกดปุ่มทางลัด Ctrl+S

../../../_images/interface-editor-save-file.png

หากคุณบันทึกไฟล์ Python ที่อยู่ภายใต้เส้นทางส่วนเสริมเซิร์ฟเวอร์ Odoo ของคุณ Odoo จะตรวจจับและโหลดซ้ำโดยอัตโนมัติ เพื่อให้การเปลี่ยนแปลงของคุณมีผลทันที โดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ด้วยตนเอง

../../../_images/interface-editor-automaticreload.gif

อย่างไรก็ตาม หากการเปลี่ยนแปลงเป็นข้อมูลที่จัดเก็บไว้ในฐานข้อมูล เช่น ป้ายกำกับของฟิลด์ หรือมุมมอง คุณต้องอัปเดตโมดูลตามเพื่อใช้การเปลี่ยนแปลง คุณสามารถอัปเดตโมดูลของไฟล์ที่เปิดอยู่ในปัจจุบันได้โดยใช้เมนู Odoo ‣ อัปเดตโมดูลปัจจุบัน โปรดทราบว่าไฟล์ที่พิจารณาว่าเปิดอยู่ในปัจจุบันคือไฟล์ที่เน้นในตัวแก้ไขข้อความ ไม่ใช่ไฟล์ที่ไฮไลต์ในเบราว์เซอร์ไฟล์

../../../_images/interface-editor-update-current-module.png

คุณยังสามารถเปิดเทอร์มินัลและรันคำสั่ง:

$ odoo-bin -u <comma-separated module names> --stop-after-init

Commit & Push การเปลี่ยนแปลงของคุณ

คุณสามารถที่จะ Commit และ Push การเปลี่ยนแปลงของคุณไปยังพื้นที่เก็บข้อมูล Github ของคุณได้

  • เปิดเทอร์มินัล (ไฟล์ -> ใหม่ -> เทอร์มินัล)

  • เปลี่ยนไดเร็กทอรีเป็น ~/src/user โดยใช้ cd ~/src/user,

  • แสดงการเปลี่ยนแปลงของคุณโดยใช้ เพิ่ม git,

  • ยอมรับการเปลี่ยนแปลงของคุณโดยใช้ git commit,

  • Push การเปลี่ยนแปลงของคุณโดยใช้ git push https HEAD:<branch>.

ในคำสั่งสุดท้ายนี้

  • https คือชื่อของพื้นที่เก็บข้อมูลระยะไกล HTTPS Github ของคุณ (เช่น https://github.com/username/repository.git)

  • HEAD คือการอ้างอิงถึงการแก้ไขล่าสุดที่คุณ commit

  • <branch> จะต้องถูกแทนที่ด้วยชื่อของสาขาที่คุณต้อง Push การเปลี่ยนแปลง ซึ่งส่วนใหญ่เป็นสาขาปัจจุบันหากคุณทำงานในรุ่นการพัฒนา

../../../_images/interface-editor-commit-push.png

Note

ไม่ได้ใช้รีโมต SSH Github เนื่องจากคีย์ส่วนตัว SSH ของคุณไม่ได้โฮสต์อยู่ในคอนเทนเนอร์บิลด์ของคุณ (สำหรับข้อกังวลด้านความปลอดภัยที่ชัดเจน) หรือส่งต่อผ่านตัวแทน SSH (เมื่อคุณเข้าถึงตัวแก้ไขนี้ผ่านเว็บเบราว์เซอร์) ดังนั้นคุณจึงไม่สามารถรับรองความถูกต้องของตัวเองกับ Github ใช้ SSH คุณต้องใช้ HTTPS ระยะไกลของที่เก็บ Github ของคุณเพื่อพุชการเปลี่ยนแปลงของคุณ ซึ่งจะถูกเพิ่มชื่อโดยอัตโนมัติเป็น https ในรีโมท Git ของคุณ คุณจะได้รับแจ้งให้ป้อนชื่อผู้ใช้และรหัสผ่าน Github ของคุณ หากคุณเปิดใช้งานการตรวจสอบสิทธิ์แบบสองปัจจัยบน Github คุณสามารถสร้าง `โทเค็นการเข้าถึงส่วนบุคคล <https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/ >`_ และใช้เป็นรหัสผ่าน การให้สิทธิ์ `` repo`` ก็ถือว่าเพียงพอ

Note

โฟลเดอร์ซอร์ส Git ~/src/user ไม่ได้ถูกเช็คเอาท์ในสาขา แต่ในการแก้ไขที่แยกออกมา: นี่เป็นเพราะว่าบิลด์ทำงานในการแก้ไขเฉพาะมากกว่าสาขา ซึ่งหมายความว่าคุณสามารถมีได้หลายบิลด์ในสาขาเดียวกัน แต่มีการแก้ไขต่างกัน

Once your changes are pushed, according to your branch push behavior, a new build may be created. You can continue to work in the editor you pushed from, as it will have the same revision as the new build that was created, but always make sure to be in an editor of a build using the latest revision of your branch.

คอนโซล

คุณสามารถเปิดคอนโซล Python ซึ่งเป็น IPython เชลล์เชิงโต้ตอบ สิ่งที่น่าสนใจที่สุดอย่างหนึ่งในการใช้คอนโซล Python แทนที่จะเป็นเชลล์ IPython ภายในเทอร์มินัลคือ จอแสดงผลที่หลากหลาย <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display> _ความสามารถ ด้วยเหตุนี้คุณจึงสามารถแสดงวัตถุในรูปแบบ HTML ได้

ตัวอย่างเช่น คุณสามารถแสดงเซลล์ของไฟล์ CSV โดยใช้ pandas

../../../_images/interface-editor-console-python-read-csv.png

คุณยังสามารถเปิดคอนโซลเชลล์ Odoo เพื่อทดลองใช้การลงทะเบียน 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'}]

คลาส Pretty ช่วยให้คุณสามารถแสดงรายการและการเขียนตามคำบอกได้อย่างง่ายดายโดยใช้ จอแสดงผลที่หลากหลาย กล่าวถึงข้างต้น

../../../_images/interface-editor-console-odoo-pretty.png

คุณยังสามารถใช้ pandas เพื่อแสดงกราฟได้

../../../_images/interface-editor-console-odoo-graph.png