在线编辑器¶
概览¶
在线编辑器允许您从Web浏览器中编辑构建的源代码。它还使您有可能打开终端、Python控制台、Odoo Shell控制台和 Notebooks。
您可以通过 分支选项卡 、 构建下拉菜单 或者在构建域名后添加 /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 下的文件)。
注解
您的更改不会传播到新的构建中,如果您想使它们持久化,必须将它们提交到源代码中。
对于生产环境的构建,源代码是只读的,因为在生产服务器上应用本地更改不是一个好的做法。
您的 Github 仓库的源代码位于 /src/user 下,
Odoo的源代码位于
/src/odoo (odoo/odoo),
/src/enterprise (odoo/enterprise),
/src/themes (odoo/design-themes).
要在编辑器中打开文件,只需在左侧的文件浏览器面板中双击该文件即可。
您可以开始进行更改。您可以使用菜单
或按下 Ctrl+S 快捷键保存更改。如果您保存的Python文件位于Odoo服务器的插件路径下,Odoo将自动检测并重新加载该文件,以便您的更改立即反映出来,无需手动重启服务器。
然而,如果更改是存储在数据库中的数据,例如字段的标签或视图,则必须更新相应的模块以应用更改。您可以使用菜单
来更新当前打开的文件的模块。请注意,当前打开的文件是文本编辑器中聚焦的文件,而不是文件浏览器中突出显示的文件。您也可以打开终端并执行以下命令:
$ 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> 必须替换为您要推送更改的分支名称,如果您在开发构建中工作,则很可能是当前分支。
注解
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 文件的单元格。
您还可以打开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
使您能够以漂亮的方式轻松显示列表和字典,使用上面提到的 丰富显示。
您还可以使用 pandas 来显示图表。