第1章:アーキテクチャの概要¶
多層アプリケーション¶
Odoo は multitier architecture (多層アーキテクチャ)に準拠しており、プレゼンテーション、ビジネスロジック、データストレージは分離されています。 具体的には、3層アーキテクチャを使用しています(Wikipediaの画像)。
プレゼンテーション層は、HTML5、JavaScript、CSSの組み合わせで構成されています。ロジック層はPythonのみで書かれており、データ層はRDBMSであるPostgreSQLのみをサポートしています。
モジュールの範囲に応じて、Odooの開発はこれらの層のいずれかで行うことができます。したがって、先に進む前に、これらのトピックに関して中級レベルの知識を持っていない場合は、あなた自身の記憶をリフレッシュするのが良いかもしれません。
このチュートリアルを進めるためには、HTMLのごく基本的な知識とPythonの中級レベルが必要となります。上級者向けトピックスでは、他の科目の知識が必要になります。自由にアクセスできるチュートリアルはたくさんありますが、各自のバックグラウンドに依存するため、どれかを推奨することはできません。
参考までに、Python tutorial これは公式のPythonチュートリアルです。
注釈
バージョン15.0以降、Odooは自社で開発した OWLフレームワーク をプレゼンテーション階層の一部として活発に使用しています。 従来のJavaScriptフレームワークはまだサポートされていますが、時間の経過とともに非推奨となります。これは高度なトピックで詳しく説明します。
Odoo モジュール¶
サーバーとクライアントの両方の拡張機能はモジュールとしてパッケージ化され、オプションでデータベースにロードされます。モジュールとは、単一の目的のための機能とデータの集合体です。
Odooモジュールは、Odooシステムに全く新しいビジネスロジックを追加することも、既存のビジネスロジックを変更・拡張することもできます。あるモジュールはOdooの一般的な会計サポートにあなたの国の会計ルールを追加するために作成され、別のモジュールはバス車両のリアルタイムな視覚化のサポートを追加することができます。
Odooのすべてはモジュールに始まり、モジュールに終わるのです。
用語解説:開発者はビジネス機能をOdoo モジュール にまとめます。主なユーザー向けモジュールは アプリ としてフラグを立てて公開されますが、モジュールの大部分はアプリではありません。 モジュール は アドオン と呼ばれることもあり、Odoo サーバーがモジュールを見つけるディレクトリは addons_path
となります。
モジュールの構造¶
Odooのモジュールにはいくつかの要素を含むことが 可能です 。
- ビジネスオブジェクト
ビジネスオブジェクト (例:請求書) はPythonのクラスとして宣言されます。このクラスで定義されたフィールドは、 ORM レイヤーにより自動的にデータベースのカラムにマッピングされます。
- Object views
UIの定義
- データファイル
XMLまたはCSVファイルで、モデルのデータを定義します。
- ウェブコントローラ
Webブラウザからのリクエストを処理します。
- 静的Webデータ
WebインターフェースやWebサイトで使用される画像、CSS、JavaScriptファイル
これらの要素のいずれも必須ではありません。一部のモジュールはデータファイル(国別の会計設定など)のみを追加することができますが、他のモジュールはビジネスオブジェクトのみを追加することができます。 このトレーニングでは、ビジネス オブジェクト、オブジェクト ビュー、データ ファイルを作成します。
モジュール構造¶
各モジュールは モジュールディレクトリ というディレクトリにあります。モジュールディレクトリは、 --addons-path
オプションを使用して指定します。
Odoo モジュールは、 マニフェスト で宣言されます。
Odooモジュールがビジネスオブジェクト (すなわちPythonファイル) を含む場合、それは、 __init__.py
ファイルを持つ Pythonパッケージ として編成されます。このファイルには、モジュール内の様々なPythonファイルのインポート指示が含まれています.
ここでは、モジュールのディレクトリを簡略化して示します。
module
├── models
│ ├── *.py
│ └── __init__.py
├── data
│ └── *.xml
├── __init__.py
└── __manifest__.py
Odoo のエディション¶
Odooには2つのバージョンがあります( two versions )。Odoo Enterprise (ライセンス&シェアードソース) とOdoo Community (オープンソース) です。Enterprise版は、サポートやアップグレードなどのサービスに加えて、Odooに追加の機能性を提供します。技術的には、これらの機能はCommunity版で提供されているモジュールの上に新しいモジュールをインストールしているだけです。
始める準備はできましたか?今は :doc:`自分のアプリケーション<02_newapp>を書きましょう!