在线编辑器¶
通过 在线编辑器 视图,您可以通过网络浏览器编辑构建的源代码。它还可以打开终端、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 账号开启了双因素认证,需创建一个 个人访问令牌 <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 类以清晰易读的方式显示列表。
您还可打开 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'}]