在线编辑器¶
通过 在线编辑器 视图,您可以通过网络浏览器编辑构建的源代码。它还可以打开终端、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 目录下的文件);正式运行分支构建的源代码为只读,因为在正式运行服务器上应用本地更改并非良好实践。
注解
您在编辑器中做出的修改不会自动同步到新的构建任务中。若需让修改永久生效,必须 将其提交到源代码仓库 。
您的 GitHub 仓库的源代码位于
/src/user下。Odoo 源代码位于:
/src/odoo(https://github.com/odoo/odoo)/src/enterprise(https://github.com/odoo/enterprise)/src/themes(https://github.com/odoo/design-themes)
打开文件:在文件浏览器面板中双击目标文件,即可在编辑器中打开并编辑。保存修改,点击菜单路径 ,或使用快捷键 Ctrl+S 。
若你修改并保存 Odoo 服务器 addons 路径下的 Python 文件,Odoo 会自动检测到变更并重启,修改会立即生效。
但是,如果您的更改存储在数据库中,例如字段标签或视图,则必须更新相关模块才能应用更改。要更新当前1 打开文件的模块,请转到 。
小技巧
也可在终端中执行以下命令来更新指定模块:
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>
https是 HTTPS GitHub 远程仓库的名称(例如:https://github.com/username/repository.git)。
HEAD指向你最新提交的版本引用;
<branch>需替换为你要推送变更的目标分支名称(若在开发分支的构建任务中操作,通常填写当前分支名即可)。
执行命令后,系统会提示你输入 GitHub 用户名和密码,输入完成后按回车键确认即可。
小技巧
若为 GitHub 账户启用了双因素认证,可以创建一个 个人访问令牌 并将其用作密码。只需 授予仓库(repo)权限 即可。
注解
不支持通过 SSH 方式认证,出于安全考虑,您的 SSH 私钥不会存储在构建容器中。同时,由于您是通过网页浏览器访问在线编辑器,SSH 代理也无法转发私钥,因此无法使用 SSH 完成身份验证。
源码目录
~/src/user并非检出到某一分支,而是处于分离头指针状态。这是因为构建任务基于特定版本,而非 “分支” 运行。也就是说,同一分支下可存在多个基于不同版本的构建任务。
一旦您的修改被推送,根据您的 分支推送行为, 一个新的构建可能会被创建。您可以继续在您推送的编辑器中工作,因为它的版本将与创建的新版本相同。不过,请务必使用分支的最新版本来编辑构建。
控制台¶
您可以打开 Python 控制台,即 IPython 交互式 shell 。使用这些 Python 控制台(而非终端内的 IPython shell),可以利用其 富文本显示功能 ,以 HTML 格式显示对象。
示例
Pretty 类以清晰易读的方式显示列表。
您还可打开 Odoo Shell 控制台,用于调试数据库的 Odoo 注册表和模型方法,也可直接读写数据库中的记录。
警告
Odoo Shell 控制台中的事务会自动提交 —— 这意味着您对记录的修改会直接同步到数据库中。例如,若您修改了某用户的姓名,该变更会立即更新到数据库。因此,在正式运行数据库上使用 Odoo Shell 控制台时务必谨慎操作。
在 Odoo Shell 控制台中,可通过 env 对象调用数据库注册表中的模型,例如:env['res.users'] (调用用户模型)。
env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]