在线编辑器

概述

在线编辑器允许您从 Web 浏览器编辑构建的源代码。它还为您提供了打开终端,Python控制台,Odoo Shell控制台和“Notebooks <https://jupyterlab.readthedocs.io/en/stable/user/notebook.html>”_的可能性。

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

您可以通过 :ref:分支选项卡 <odoosh-gettingstarted-branches-tabs>, :ref:构建下拉菜单 <odoosh-gettingstarted-builds-dropdown-menu> 或通过将 /odoo-sh/editor 添加到您的构建域名(例如 https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor)来访问构建的编辑器。</odoosh-gettingstarted-builds-dropdown-menu></odoosh-gettingstarted-branches-tabs>

编辑源代码

工作目录由以下文件夹组成:

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

然后,您可以开始进行更改。您可以使用菜单 :menuselection:`File –> Save ..文件“或按 :kbd:”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 存储库。

  • 打开终端(:菜单选择:文件 --> 新建 --> 终端),

  • 使用 :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>

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

注解

不使用 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 不是在分支上签出的,而是在分离的修订版上签出的:这是因为构建工作是在特定修订版而不是分支上。换句话说,这意味着您可以在同一分支上拥有多个构建版本,但具有不同的修订版。

推送更改后,根据你的 :ref:branch push behavior <odoosh-gettingstarted-branches-tabs-settings>,可能会创建一个新的构建版本。您可以继续在推送的编辑器中工作,因为它将具有与创建的新版本相同的修订版本,但始终确保在使用分支最新修订版本的生成编辑器中。</odoosh-gettingstarted-branches-tabs-settings>

你可以打开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文件的单元格。

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

您还可以打开 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>”_以漂亮的方式轻松显示列表和字典。

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

您还可以使用“pandas <https://pandas.pydata.org/pandas-docs/stable/tutorials.html>”_ 来显示图表。

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