在线编辑器

通过 在线编辑器 视图,您可以通过网络浏览器编辑构建的源代码。它还可以打开终端、Python 控制台、Odoo shell 控制台和 Jupyter 笔记本

在线编辑器概览

您可以通过 分支标签页构建下拉菜单 ,或在联编的 URL 中添加 /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`目录下的文件);而正式运行分支构建任务的源代码为只读状态,这是因为在正式运行服务器上直接修改本地代码并非规范的操作方式。

注解

打开文件:在文件浏览器面板中双击目标文件,即可在编辑器中打开并编辑。保存修改,点击菜单路径 文件 ‣ 保存 ,或使用快捷键 Ctrl+S

若你修改并保存 Odoo 服务器 addons 路径下的 Python 文件,Odoo 会自动检测到变更并重启,修改会立即生效。

Python 文件修改后即时生效示意

但是,如果您的更改存储在数据库中,例如字段标签或视图,则必须更新相关模块才能应用更改。要更新当前1 打开文件的模块,请转到 Odoo ‣ 更新当前模块

通过编辑器更新当前模块

小技巧

也可在终端中执行以下命令来更新指定模块:

odoo-bin -u <comma-separated module names> --stop-after-init

提交并推送变更

提交并将更改推送到 GitHub 仓库:

  • 进入 文件 ‣ 新建 ‣ 终端 打开终端。

  • 将目录更改为 ~/src/user

    cd ~/src/user
    
  • 说明你的身份。

    git config --global user.email "you@example.com" && git config --global user.name "Your Name"
    
  • 暂存您的更改。

    git add
    
  • 提交您的更改。

    git commit
    
  • 推送变更。

    git push https HEAD:<branch>
    

    在该命令中:

    • httpsHTTPS GitHub 远程仓库的名称(例如:https://github.com/username/repository.git)。

    • HEAD 指向你最新提交的版本引用;

    • <branch> 需替换为你要推送变更的目标分支名称(若在开发分支的构建任务中操作,通常填写当前分支名即可)。

执行命令后,系统会提示你输入 GitHub 用户名和密码,输入完成后按回车键确认即可。

提交并推送变更的命令示例说明

小技巧

若你的 GitHub 账号开启了双因素认证,需创建一个 个人访问令牌 <https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token> ,并将其作为密码使用。仅需为该令牌`授予仓库权限 <https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/repository-access-and-collaboration/inviting-collaborators-to-a-personal-repository> `即可满足需求。

注解

  • 不支持通过 SSH 方式认证,出于安全考虑,您的 SSH 私钥不会存储在构建容器中。同时,由于您是通过网页浏览器访问在线编辑器,SSH 代理也无法转发私钥,因此无法使用 SSH 完成身份验证。

  • 源码目录 ~/src/user 并非检出到某一分支,而是处于分离头指针状态。这是因为构建任务基于特定版本,而非 “分支” 运行。也就是说,同一分支下可存在多个基于不同版本的构建任务。

一旦您的修改被推送,根据您的 分支推送行为, 一个新的构建可能会被创建。您可以继续在您推送的编辑器中工作,因为它的版本将与创建的新版本相同。不过,请务必使用分支的最新版本来编辑构建。

您可打开 Python 控制台(本质是`IPython 交互式终端 <https://ipython.readthedocs.io/en/stable/interactive/tutorial.html>`)。与终端内的 IPython 终端不同,在线编辑器中的 Python 控制台支持`富文本显示功能 <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>` ,可将对象以 HTML 格式展示。

Example

Pretty 类以清晰易读的方式显示列表。

Pretty 类示例

小技巧

使用 pandas 可以显示:

  • SV 文件单元格数据

    pandas 处理 CSV 示例
  • 图表

    pandas 图表示例

您还可打开 Odoo Shell 控制台,用于调试数据库的 Odoo 注册表和模型方法,也可直接读写数据库中的记录。

警告

Odoo Shell 控制台中的事务会自动提交 —— 这意味着您对记录的修改会直接同步到数据库中。例如,若您修改了某用户的姓名,该变更会立即更新到数据库。因此,在正式运行数据库上使用 Odoo Shell 控制台时务必谨慎操作。

在 Odoo Shell 控制台中,可通过 env 对象调用数据库注册表中的模型,例如::code:`env[‘res.users’]`(调用用户模型)。

env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]