在線編輯器?

概覽?

在線編輯器允許您從Web瀏覽器編輯構建的源代碼。它還使您有可能打開終端、Python控制臺、Odoo Shell控制臺和 Notebooks。

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

您可以通過 分支選項卡 、 構建下拉菜單 或者在您的構建域名后添加 /odoo-sh/editor (例如 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 下的文件)。

注解

您的更改不會傳播到新的構建中,如果您想使它們持久化,必須將它們提交到源代碼中。

對于生產環境的構建,源代碼是只讀的,因為在生產服務器上應用本地更改不是一個好的做法。

要在編輯器中打開文件,只需在左側的文件瀏覽器面板中雙擊該文件即可。

../../../_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

提交并推送您的更改?

您可以將更改提交并推送到您的 Github 存儲庫。

  • 打開終端 ( 文件 ? 新建 ? 終端 ),

  • 將目錄更改為 ~/src/user ,使用 cd ~/src/user 命令

  • 使用 git add 暫存您的更改,

  • 使用 git commit 提交您的更改,

  • 使用 git push https HEAD:<branch> 推送您的更改。

在這個最后的命令中,

  • https 是您的 HTTPS Github 遠程倉庫的名稱(例如 https://github.com/username/repository.git),

  • HEAD 是你提交的最新修訂版本的引用。

  • <branch> 必須替換為您要推送更改的分支名稱,如果您在開發構建中工作,則很可能是當前分支。

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

注解

由于您的SSH私鑰不在構建容器中(出于明顯的安全考慮)也沒有通過SSH代理轉發(因為您是通過Web瀏覽器訪問此編輯器),因此無法使用SSH身份驗證自己到Github。您必須使用Github倉庫的HTTPS遠程來推送更改,它會自動添加為 https 在您的Git遠程中命名。您將被提示輸入Github用戶名和密碼。如果您在Github上啟用了雙重身份驗證,您可以創建一個 `個人訪問令牌<https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/>`_并將其用作密碼。授予“repo”權限即可。

注解

Git源文件夾 ~/src/user 沒有檢出分支,而是檢出了一個分離的修訂版本:這是因為構建是基于特定的修訂版本而不是分支進行的。換句話說,這意味著您可以在同一分支上擁有多個構建,但是在不同的修訂版本上。

一旦您的更改被推送,根據您的 分支推送行為 ,可能會創建一個新的構建。您可以繼續在您推送的編輯器中工作,因為它將與創建的新構建具有相同的修訂版本,但始終確保在使用您分支的最新修訂版本的構建的編輯器中。

控制臺?

您可以打開Python控制臺,這是 IPython交互式shell。使用Python控制臺而不是終端中的IPython shell的最有趣的補充之一是 豐富的顯示 功能。由于這個功能,您將能夠以HTML格式顯示對象。

例如,您可以使用 pandas 顯示 CSV 文件的單元格。

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

您還可以打開Odoo Shell控制臺,玩轉您的數據庫的Odoo注冊表和模型方法。您還可以直接讀取或寫入您的記錄。

警告

在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 類可以讓您輕松地以漂亮的方式顯示列表和字典,使用上面提到的 `豐富的顯示<https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>`_。

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

您也可以使用 pandas 來顯示圖表。

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