Dockerで動かすOdooにAddOnを追加する
Docker hub で公開されているOdoo公式のDocker imageでは、AddOnを追加する場合、/mnt/extra-addons から読み込まれる。と書かれています。
Odooコンテナにホストのディレクトリをバインドする
Docker のオプションでホストのMac側ディレクトリをコンテナ側の/mnt/extra-addonsにバインドでマウントするようにしましょう。
Docker desktop for Mac を使っている場合は、Preferences>Resources>FILE SHARING で共有設定しているディレクトリ下に共有対象のディレクトリを作っておきます。
その後、今まで使っていたコンテナを一旦削除して、次のコマンドを実行しました。
docker run -v odoo-data:/var/lib/odoo -v /Users/ratty/Documents/odoo/addons:/mnt/extra-addons -d -p 8069:8069 --name odoo --link db:db -t odoo:14
このコマンドで作られたコンテナは、ホスト側の "/Users/ratty/Documents/odoo/addons" が "/mnt/extra-addons" に対してマウントされるようになります。
マウントの状態を確認
Docker desktop のDashboardからodooコンテナのInspectまたは、dockerコマンドのinspectでMountsの部分を確認するとちゃんとマウントされているようです。
"Mounts": [
{
"Type": "volume",
"Name": "odoo-data",
"Source": "/var/lib/docker/volumes/odoo-data/_data",
"Destination": "/var/lib/odoo",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
},
{
"Type": "bind",
"Source": "/Users/ratty/Documents/odoo/addons",
"Destination": "/mnt/extra-addons",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
OdooにAddOnを追加する
OdooのAddOnにはOdoo Appsで売られているAddOnと、OCA(Odoo Community Association)で公開・メンテナンスされているオープンソースのAddOnがある。という事をこの記事に書きました。
今回は、OCAからAddOnを見つけて、それをOdooにインストールしてみましょう。
OCA でAddOnを探す
OCAのトップページからDiscover>Appsを選びます。
たくさんのAddOnが表示されます。
対象バージョンや、Purchase/Manufacturing/AccountingといったAddOnのカテゴリ、名称での絞り込み検索が可能です。
購買発注の一覧で、納品の状態について未完了、分納、完納というステータスがありませんでした。このステータスを表示するようなAddOnが無いか検索してみました。
すると、Purchase Reception Statusというそれらしいモジュールが見つかりました。
これをインストールしてみましょう。
Odooのバージョンを指定してDownloadします。
Ver.14.0用を選択しました。
AddOnファイルをコピー & Odooでインストール
ZIPファイルがダウンロードされるので、これを解凍してOdooコンテナの"/mnt/extra-addons"へコピーします。
その後、開発者モードを有効にした状態で、Odooアプリ管理画面の”アプリリストを更新”を実行します。
開発者モードについてはこちらを参照。
アプリリストを更新を実行すると、モジュール更新ダイアログが開くので"更新"を押します。
今回インストールするのはアプリではなく、拡張機能(モジュール)なのでpurchaseで検索します。
先ほど"/mnt/extra-addons"にコピーした"purchase_reception_status"が表示されているでしょうか?
これをインストールします。
エラーが表示されず、画面がディスカスに切り替わったらインストール成功です。
purchase_reception_statusの動作確認
インストール前の購買オーダ一覧画面はこのような状態でした。
受け取りの状態がわからず、注文した物が全て受け取り済みかがわかりませんでした。
モジュールをインストールした後に購買オーダの画面に入ってみましょう。
"Reception Status" という項目が追加されています。ステータスが表示されるようになりました!!
Nothing Received = 未受領
Partially Received = 分納
Fully Received = 完納
このように割と簡単にOdooへAddOnを追加することができます。
アンインストールするには
AddOnのアンインストールはアプリ管理から実行できます。
フィルタに"インストール済"を設定。
"purchase"と入力して検索すると、先ほどインストールした"purchase_reception_status"が表示されます。
モジュール右上の3点アイコンから”アンインストール”を選択します。
警告が表示されるので”確認”でアンインストールを実行します。
翻訳やAddOnの改善でOdooコミュニティに貢献したい!!という場合は
OCAで公開されているモジュールやアプリは、GitHubでリポジトリが公開されています。
今回使用したpurchase_reception_statusモジュールはpurchase-workflowリポジトリに含まれています。
また、Odooの翻訳については、Weblateを使用して翻訳の管理をおこなっています。
コミュニティに貢献したい!!!という方は参加されてはいかがでしょうか?