在线编辑器

概览

在线编辑器允许您从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 存储库。

  • 打开终端 (文件 ‣ 新建 ‣ 终端),

  • 使用 cd ~/src/user 命令将目录更改为 ~/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 Github 远程不被使用,因为你的 SSH 私钥不被托管在你的构建容器中(出于明显的安全考虑),也不会通过 SSH 代理转发(因为你是通过 web 浏览器访问此编辑器),因此你无法使用 SSH 对自己进行身份验证。你必须使用你的 Github 仓库的 HTTPS 远程来推送你的更改,它会自动添加为 https,作为你的 Git 远程的名称。你将被提示输入你的 Github 用户名和密码。如果你在 Github 上启用了双因素身份验证,你可以创建一个 个人访问令牌 并将其用作密码。授予 repo 权限即可。

注解

Git源文件夹 ~/src/user 没有检出分支,而是检出了一个分离的修订版本:这是因为构建是基于特定的修订版本而不是分支进行的。换句话说,这意味着您可以在同一分支上拥有多个构建,但是在不同的修订版本上。

一旦您的更改被推送,根据您的 分支推送行为,可能会创建一个新的构建。您可以继续在您推送的编辑器中工作,因为它将与创建的新构建具有相同的修订版本,但请确保始终在使用您分支的最新修订版本的构建的编辑器中工作。

控制台

您可以打开Python控制台,这是 IPython交互式shell <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 显示 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 使您能够以漂亮的方式轻松显示列表和字典,使用上面提到的 丰富显示

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

您还可以使用 pandas 来显示图表。

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