在线编辑器

Overview

在线编辑器允许您通过网页浏览器编辑构建的源代码。它还为您提供打开终端、Python 控制台、Odoo Shell 控制台和 笔记本 的可能性。

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

如果您保存了位于 Odoo 服务器 addons 路径下的 Python 文件,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 私钥未托管在构建容器中(出于明显的安全考虑),也没有通过 SSH 代理进行转发(因为你通过网页浏览器访问此编辑器),因此你无法使用 SSH 认证自己到 GitHub。你必须使用 GitHub 仓库的 HTTPS 远程地址来推送你的更改,该地址会自动添加并命名为 https 的 Git 远程。你将被提示输入你的 GitHub 用户名和密码。如果你在 GitHub 上启用了双重身份验证,可以创建一个 个人访问令牌 并将其用作密码。授予 repo 权限即可。

注解

Git 源代码目录 ~/src/user 当前并未检出到某个分支,而是处于分离的修订版本状态:这是因为构建工作是基于特定的修订版本进行的,而不是基于分支。换句话说,这意味着您可以在同一分支上进行多个不同修订版本的构建。

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

控制台

你可以打开 Python 控制台,这些是 IPython 交互式外壳。与在终端中使用 IPython shell 相比,使用 Python 控制台的一个最有趣的功能是 丰富的显示功能。借助此功能,你将能够以 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 使您能够以美观的方式轻松显示列表和字典,使用了上述的 rich display

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

你也可以使用 pandas 来显示图表。

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