Editor Online

Gambaran Umum

Editor Online memungkinkan Anda untuk mengedit source code build Anda dari browser website. Ini juga memberikan Anda pilihan untuk membuka terminal, console Python, console Odoo Shell dan Notebooks.

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

Anda dapat mengakses editor build melalui tab branch, menu dropdown build atau dengan menambahkan /odoo-sh/editor ke nama domain build Anda (contoh, https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor).

Edit source code

Direktori yang bekerja dibuat dari folder-folder berikut:

.
├── 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

Anda dapat mengedit source code (file di bawah /src) di development dan and build staging.

Catatan

Perubahan Anda tidak akan berlaku ke build baru, Anda harus commit mereka di source code Anda bila Anda ingin memastikan mereka berlaku.

Untuk build production, source code adalah read-only, karena menerapkan perubahan lokal pada server production bukan merupakan praktek yang bagus.

Untuk membuka file di editor, cukup klik dua-kali pada panel browser file di kiri.

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

Anda lalu dapat mulai melakukan perubahan Anda. Anda dapat menyimpan perubahan Anda dengan menu File ‣ Save .. File atau dengan memencet shortcut Ctrl+S.

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

Bila Anda save file Python yang berada di bawah path addon server Odoo, Odoo akan mendeteksinya dan memuatnya secara otomatis supaya perubahan langsung berlaku, tanpa harus restart server secara manual.

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

Namun, bila perubahan adalah data yang disimpan di database, seperti label field, atau tampilan, Anda harus mengupdate modul yang sesuai untuk menerapkan perubahannya. Anda dapat mengupdate modul file yang saat ini dibuka dengan menggunakan menu Odoo ‣ Update current module. Ingat bahwa file yang dipilih dianggap sebagai saat ini dibuka adalah file yang terfokus di editor teks, bukan file yang di highlight di browser file.

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

Anda juga dapat membuka terminal dan menjalankan command:

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

Commit & Push perubahan Anda

Anda memiliki pilihan untuk commit dan push perubahan Anda ke repositori Github Anda.

  • Buka terminal (File ‣ New ‣ Terminal),

  • Ubah direktori menjadi ~/src/user menggunakan cd ~/src/user,

  • Stage perubahan Anda menggunakan git add,

  • Commit perubahan Anda menggunakan git commit,

  • Push perubahan Anda menggunakan git push https HEAD:<branch>.

Di command terakhir ini,

  • https adalah nama HTTPS repositori remot Github Anda (e.g. https://github.com/username/repository.git),

  • HEAD adalah referensi ke revisi terakhir yang Anda commit,

  • <branch> harus diganti dengan nama branch di mana Anda ingin push perubahannya, kemungkinan besar merupakan branch saat ini bila Anda bekerja di build development.

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

Catatan

SSH remot Github tidak digunakan karena SSH private key Anda tidak dihosting di container build Anda (untuk alasan keamanan) dan tidak diforward melalui SSH Agent (selagi Anda mengakses editor ini melalui browser website) dan oleh karena itu Anda tidak dapat mengautentikasi diri Anda ke Github menggunakan SSH. Anda harus menggunakan HTTPS remot dari repositori Github Anda untuk push perubahan Anda, yang ditambahkan secara otomatis dinamakan sebagai https di Git remot Anda. Anda akan di-prompt untuk memasukkan username dan password Github Anda. Bila Anda mengaktifkan autentikasi dua-faktor di Github, Anda dapat membuat token akses pribadi dan menggunakannya sebagai password. Cukup dengan memberikan permission repo.

Catatan

Source folder Git ~/src/user tidak di check-out di branch tapi pada revisi yang terpisah: Ini karena build bekerja pada revisi-revisi tertentu alih-alih pada branch. Dengan kata lain, ini berarti Anda dapat memiliki lebih dari satu build pada branch yang sama, tapi pada revisi yang berbeda-beda.

Setelah perubahan Anda di push, menurut perilaku push branch Anda, build baru mungkin dibuat. Anda dapat melanjutkan bekerja di editor dari mana Anda melakukan push, karena akan memiliki revisi yang sama dengan build yang baru saja dibuat, tapi selalu pastikan untuk berada di editor dengan build yang menggunakan revisi terkini dari branch Anda.

Console

Anda dapat membuka console Python, yaitu IPython interactive shells. Salah satu penambahan paling menarik untuk menggunakan console Python alih-alih IPython shell di dalam terminal adalah kemampuan rich display. Berkat hal ini, Anda dapat menampilkan object di HTML.

Anda dapat contohnya menampilkan cell dari cell CSV menggunakan pandas.

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

Anda juga dapat membuka console Odoo Shell untuk mengutak atik registry Odoo dan model method database Anda. Anda juga dapat langsung membaca atau menulis pada record Anda.

Peringatan

Di Odoo Console, transaksi secara otomatis di-commit. Ini berarti, sebagai contoh, bahwa perubahan di record diterapkan secara efektif di database. Bila Anda mengganti nama user, nama user diubah di database Anda juga. Anda oleh karena itu sebaiknya menggunakan console Odoo secara hati-hati pada database production

Anda dapat menggunakan env untuk invoke model registry database Anda, contoh, env['res.users'].

env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]

Class Pretty memberikan Anda pilihan untuk dengan mudah menampilkan list dan dicts dengan tampilan yang rapih, menggunakan rich display yang disebut di atas.

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

Anda juga dapat menggunakan pandas untuk menampilkan grafik.

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