在线编辑器¶
概覽¶
在线编辑器允许您从 Web 浏览器编辑构建的源代码。它还为您提供了打开终端,Python控制台,Odoo Shell控制台和“Notebooks <https://jupyterlab.readthedocs.io/en/stable/user/notebook.html>”_的可能性。
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 下的文件)。
備註
您的更改不会传播到新的生成,如果要使它们持久化,则必须在源代码中提交它们。
对于生产版本,源代码是只读的,因为在生产服务器上应用本地更改不是一个好的做法。
Github 存储库的源代码位于 /src/user 下,
Odoo的源代码位于
/src/odoo (odoo/odoo),
/src/enterprise (odoo/enterprise),
/src/themes (odoo/design-themes)。
要在编辑器中打开文件,只需在左侧的文件浏览器面板中双击它即可。
然后,您可以开始进行更改。您可以使用菜单 :menuselection:`File –> Save ..文件“或按 :kbd:”Ctrl+S“ 快捷方式。
如果您保存的Python文件位于Odoo服务器插件路径下,Odoo将检测到它并自动重新加载,以便您的更改立即反映出来,而无需手动重新启动服务器。
但是,如果更改是存储在数据库中的数据(如字段的标签或视图),则必须更新相应的模块才能应用更改。您可以使用菜单更新当前打开的文件的模块:菜单选择:Odoo -->更新当前模块。请注意,被视为当前打开的文件是文本编辑器中聚焦的文件,而不是文件浏览器中突出显示的文件。
您也可以打开终端并执行以下命令:
$ odoo-bin -u <comma-separated module names> --stop-after-init
提交并推送更改¶
您可以提交更改并将其推送到 Github 存储库。
打开终端(:菜单选择:
文件 --> 新建 --> 终端),使用 :code:
cd ~/src/user将目录更改为 ~/src/user,使用 :code:`git add`暂存您的更改,
使用 :code:
git commit提交更改,使用 :code:
git push https HEAD:推送您的更改<branch>。</branch>
在最后一个命令中,
https 是您的 HTTPS Github 远程存储库的名称(例如 https://github.com/username/repository.git),
HEAD 是对您提交的最新修订版的引用,
<branch> 必须替换为要将更改推送到的分支的名称,如果在开发版本中工作,则很可能是当前分支。</branch>
備註
不使用 SSH Github 遠程,因為您的 SSH 私鑰未托管在構建容器中(出於明顯的安全問題),也不會通過 SSH 代理轉發(當您通過 Web 瀏覽器訪問此編輯器時),因此您無法使用 SSH 向 Github 驗證自己的身份。您必須使用Github存儲庫的HTTPS遠程來推送更改,這些更改會自動添加到Git遠程中,命名為*https*。系統將提示您輸入 Github 用戶名和密碼。如果您在 Github 上激活了雙因素身份驗證,則可以創建「個人訪問令牌<https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/>」_ 並將其用作密碼。授予「存儲庫」權限就足夠了。
備註
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交互式shells<https://ipython.readthedocs.io/en/stable/interactive/tutorial.html>”_。在终端中使用Python控制台而不是IPython shell的最有趣的补充之一是“丰富的显示<https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>”_功能。因此,您将能够以HTML格式显示对象。
例如,您可以使用“pandas <https://pandas.pydata.org/pandas-docs/stable/tutorials.html>”_来显示CSV文件的单元格。
您还可以打开 Odoo Shell 控制台来使用数据库的 Odoo 注册表和模型方法。您也可以直接读取或写入您的记录。
警告
在 Odoo 控制台中,事务会自动提交。这意味着,例如,记录中的更改可以有效地应用于数据库中。如果更改用户名,则该用户的名称也会在数据库中更改。因此,您应该在生产数据库上谨慎使用Odoo控制台。
您可以使用 env 调用数据库注册表的模型,例如 :code:』env[『res.users』]』。
env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]
类 :code:Pretty 使您可以使用上面提到的“富显示<https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>”_以漂亮的方式轻松显示列表和字典。
您还可以使用“pandas <https://pandas.pydata.org/pandas-docs/stable/tutorials.html>”_ 来显示图表。