チャプター2:新しいアプリケーション

この章の目的は、全く新しいOdooモジュールを作成するための基礎を築くことです。この章では、Odooにモジュールを認識させるために必要な最小限の機能をゼロから作ります。次の章では、現実的なビジネスケースを構築するために、徐々に機能を追加していきます。

不動産物件情報のモジュール

自分たちの新しいモジュールは、標準的なモジュールには含まれていない、非常に特殊なビジネス分野である「不動産の物件情報」をカバーします。新しいモジュールを開発する前に、Odooが特定のビジネスケースに対応する方法をすでに提供していないかどうかを確認することは、とても重要です。

ここでは、いくつかの物件情報を含むメインリストビューの概要を説明します。

リストビュー01

フォームビューのトップエリアには、物件名 Name 、物件タイプ Property Type 、郵便番号 Postcode など、物件に関する重要な情報がまとめられています。最初のタブには、ベッドルーム Bedrooms 、リビングエリア Living Area 、ガレージ Garage 、庭 Garden などの物件情報が表示されます。

フォームビュー01

2つ目のタブには、その物件に対するオファー Offers が表示されます。ここでは、購入希望者が予想販売価格よりも高い、または低い価格を提示できることがわかります。オファーを受け入れるかどうかは、売り手次第です。

フォームビュー02

このモジュールのワークフローを簡単なビデオでご紹介します。

このビデオはすぐに録画されることを期待しています :-)

アドオン ディレクトリの準備

参考 :このトピックに関連するドキュメントは マニフェスト にあります。

注釈

目標 :このセクションの目標は、Odoo に新しいモジュールを認識させることです。Appsにリスト表示されます。

新しいモジュールがリストに表示されます

モジュール作成の最初のステップはディレクトリを作成することです。tutorials ディレクトリに、新しいディレクトリ estate を追加します。

モジュールには、少なくとも2つのファイルが必要です。 __manifest__.py ファイルと __init__.py ファイルです。 __init__.py ファイルは、今のところ空のままで構いませんので、次の章で説明します。一方、 __manifest__.py ファイルはモジュールを説明するものですので、空のままにはできません。必須項目は名前だけですが、通常はもっと多くの情報が含まれています。

例として、 CRM ファイル を見てみましょう。モジュールの説明 (名前 name 、カテゴリ category 、概要 summary 、ウェブサイト website...) に加えて、依存関係 (depends) が記載されています。依存関係とは、Odooフレームワークが、自分たちのモジュールがインストールされる前に、これらのモジュールがインストールされていることを確認することを意味します。さらに、これらの依存関係の1つがアンインストールされた場合、自分たちのモジュールと それに依存する他のモジュールもアンインストールされます。 お気に入りのLinuxディストリビューションのパッケージマネージャ (aptdnfpacman...) について考えてみてください。Odooも同じように動作します。

Exercise

必要なアドオンのファイルを作成しましょう。

次のようにフォルダとファイルを作成してください。

  • /home/$USER/src/tutorials/estate/__init__.py

  • /home/$USER/src/tutorials/estate/__manifest__.py

__manifest__.py`ファイルは、モジュールの名前と依存関係のみを定義する必要があります。今のところ必要なフレームワークモジュールは ``base です。

Odoo サーバーを再起動し、アプリに移動します。アプリ一覧の更新をクリックし、estate を検索します。 tadaa、あなたのモジュールが表示されます!表示されませんでしたか?多分デフォルトの「アプリ」フィルタを削除してみてください ;-)

警告

前の章で説明したように、 開発者モード を有効にすることを忘れないでください。それ以外の場合、 アプリ一覧を更新 ボタンは表示されません。

Exercise

モジュールを App にしましょう。

何らかの適切なキーを __manifest__.py に追加して、 Apps フィルタがオンの場合でもモジュールが表示されるようにしましょう。

モジュールをインストールすることができました! しかし、お分かりの通り、空の枠組みのままなので、メニューは表示されません。

よろしいですか?もしイエスなら、 :doc:`最初のモデル<03_basicmodel>`を作りましょう!