オンラインエディタ¶
概要¶
オンラインエディタを使用すると、ウェブブラウザからビルドのソースコードを編集することができます。また、ターミナル、Pythonコンソール、Odooシェルコンソール、および ノートブック を開くこともできます。

ビルドのエディタには、ブランチタブ、ビルドドロップダウンメニュー、または、/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 ショートカットキーを押して保存できます。
Odooサーバのアドオンパスに配置されたPythonファイルを保存すると、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 エージェント経由で転送されていない(ウェブブラウザからこのエディタにアクセスしている)ため、SSHを使用して Github に認証できないためです。変更をプッシュするには、Githubリポジトリの HTTPS リモートを使用する必要があります。これは、Gitリモートに自動的に https という名前で追加されます。GitHubのユーザ名とパスワードを入力するよう求められます。GitHubで2要素認証を有効化している場合は、個人用アクセストークン を作成し、それをパスワードとして使用できます。 repo
権限を付与するだけで十分です。
注釈
Gitソースフォルダ ~/src/user は、Gitのブランチ上ではなく、特定のリビジョン上でチェックアウトされています。これは、ビルドプロセスがブランチ全体ではなく、特定のコミットで動作するように設定されていることを意味します。つまり、同じブランチ内で複数のビルドを行うことができ、それぞれが異なるリビジョンでのビルドとなります。
変更がプッシュされると、ブランチのプッシュ動作 に従って、新しいビルドが作成される場合があります。プッシュ元のエディタで作業を続けることもできますが、作成された新しいビルドと同じリビジョンを持つことになります。ただし、常に、自分のブランチの最新リビジョンを使用するビルドのエディタで作業するようにして下さい。
コンソール¶
Pythonコンソールを開くことができ、IPythonインタラクティブシェル です。ターミナル内でIPythonシェルではなくPythonコンソールを使用する最も有益な機能は リッチディスプレイ 機能です。これにより、HTML内のオブジェクトを表示できるようになります。
例えば、pandas <https://pandas.pydata.org/pandas-docs/stable/tutorials.html>
を使用してCSVファイルのセルを表示することができます。

Odooシェルコンソールを開いて、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 を使用してグラフを表示することもできます。
