オンラインエディタ¶
:guilabel:`オンラインエディタ`ビューでは、ウェブブラウザからビルドのソースコードを編集できます。また、ターミナル、Pythonコンソール、Odoo shellコンソール、および`Jupyter Notebooks <https://jupyterlab.readthedocs.io/en/stable/user/notebook.html>`_を開くこともできます。
エディタには、ブランチタブ、ビルドドロップダウンメニュー <odoo-sh/builds/stages/features>`からアクセスするか、ビルドの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 配下のファイル)を編集できます。本番ビルドの場合、ソースコードは読み取り専用です。本番サーバで直接変更を適用することは推奨されないためです。
注釈
変更は新しいビルドには引き継がれません。変更を永続化するには、:ref:`ソースコードにコミット <odoo-sh/editor/commit>`する必要があります。
GitHubリポジトリのソースコードは
/src/user配下にあります。Odoのソースコードは以下の場所にあります:
エディタでファイルを開くには、ファイルブラウザパネルでファイルをダブルクリックします。その後、ファイルを編集できます。変更を保存するには、:menuselection:`ファイル --> 保存`を選択するか、:kbd:`Ctrl+S`キーボードショートカットを使用します。
Odoサーバのアドオンパス内のPythonファイルを保存すると、Odoが検知して自動的にリロードするため、変更は即座に反映されます。
ただし、フィールドのラベルやビューなど、変更がデータベースに保存される場合は、変更を適用するために関連モジュールを更新する必要があります。現在開いているファイルのモジュールを更新するには、:menuselection:`Odoo --> 現在のモジュールを更新`を選択します。
ちなみに
ターミナルで以下のコマンドを実行してモジュールを更新することもできます:
odoo-bin -u <comma-separated module names> --stop-after-init
変更のコミットとプッシュ¶
GitHubリポジトリに変更をコミットしてプッシュするには:
:menuselection:`ファイル --> 新規 --> ターミナル`を選択してターミナルを開きます。
ディレクトリを`~/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>
このコマンドでは:
GitHubのユーザ名とパスワードの入力を求められます。認証情報を入力した後、Enterキーを押してください。
ちなみに
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>`_を作成してパスワードとして使用できます。`repoパーミッションを付与する <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を使用して認証することはできません。
ソースフォルダ`~/src/user`はブランチではなく、切り離された変更履歴でチェックアウトされています。これは、ビルドがブランチではなく特定の変更履歴で動作するためです。つまり、同じブランチ上でも異なる変更履歴で複数のビルドを持つことができます。
変更がプッシュされると、:ref:`ブランチプッシュ動作 <odoo-sh/branches/tabs/settings>`に応じて、新しいビルドが作成される場合があります。プッシュ元のエディタは、作成された新しいビルドと同じ変更履歴を持つため、引き続き作業できます。ただし、必ずブランチの最新変更履歴を使用しているビルドのエディタで作業してください。
コンソール¶
Pythonコンソールを開くことができます。これらは`IPythonインタラクティブシェル <https://ipython.readthedocs.io/en/stable/interactive/tutorial.html>`_です。これらのPythonコンソール(ターミナル内のIPythonシェルではなく)を使用すると、`リッチディスプレイ機能 <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display>`_を利用してオブジェクトをHTMLで表示できます。
ちなみに
`pandas <https://pandas.pydata.org/pandas-docs/stable/getting_started/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'}]