Plone Dexterity を使ってみる
Plone 4 Advent Calendar 23日目、担当のtacacoです。書く事ないなぁと思いつつ引き受けてしまったので、今回は11月26日にバージョン1.1がリリースされましたので Dexterity を紹介しようと思います。
Dexterity は、Archetypes より軽量な Plone のコンテンツタイプフレームワークで、Zope 3 の技術を使用している比較的新しいフレームワークです。
TTW (Through The Web) とファイルシステムのコードの両方でコンテンツタイプを作成することが出来ます。
まだまだ不十分なところは多いのですが、TTW でプログラミングの知識がなくてもコンテンツタイプが作成できる Dexterity ってどんなものなのかを簡単に紹介しようと思います。
時々、何かの会に出席した時のレポートを、日付や場所などの必須項目を設けて、受け取った資料のスキャンしたもの等を一緒に置ける様に出来ないかという話があります。ルール決めしてページコンテンツタイプの関連アイテムでいいじゃん。というのは置いておいて、丁度良いお題なので Dexterity で作ってみます。
インストールしないことには話になりませんので、インストールします。
buildout.cfgに以下のように記載します。
[buildout]
extensions = buildout.dumppickedversions
unzip = true
parts = instance
extends =
http://good-py.appspot.com/release/dexterity/1.1?plone=4.1.2
versions = versions
develop =
[instance]
eggs =
Plone
plone.app.dexterity
保存したら、「./bin/buildout」 を実行します。plone のバージョンは環境に合わせて下さい。
Zope を起動して、「サイト設定」->「アドオン」に移動すると、利用できるアドオンに「Dexterity Content Types 1.1」というのが現れます。チェックボックスにチェックを入れて「有効にする」をクリックして下さい。

すると、サイト設定のPlone設定の中に「Dexterity Content Types」が追加されたのが確認できます。

Dexterity Content Types をクリックすると、新しいコンテンツタイプを追加するボタンがあります。

「Add New Content Type...」をクリックすると以下の様に新しく作成するコンテンツタイプの名前とショートネーム等を入れる画面が表示されます。
ここで、作成するコンテンツタイプの名前、ショートネーム、説明を入れ、今回は中にお知らせページやファイルを置きたいので、Containerのチェックボックスにチェックを入れます。

「Add」をクリックすると Container にチェックを入れたのでフォルダタイプのコンテンツタイプが出来ます。

この「報告書フォルダ」をクリックすると新しいフィールドが追加できるボタンが表示されています。このフォルダに対するフィールドを追加出来ます。

「Add new field...」をクリックすると以下のポップアップが表示されますので必要なフィールドを追加して行きます。

Field type からは以下のタイプが選択できます。
- Boolean
- Choice
- Date
- Date/Time
- File Upload
- Floating-point number
- Image
- Integer
- Multiple Choice
- Password
- Rich Text
- Text
- Text line(String)
日時と場所が必須でレポートが書けるようにフィールドを追加すると以下の様になります。

なお、「Settings..」をクリックするとそれぞれのフィールドに対して、必須項目、読み取り専用にする、初期値の設定等がフィールドのタイプに応じて設定出来ます。
必要なフィールドを全部追加して、トップページへ戻ると、「新規追加」のプルダウンメニューに作成した「報告書」コンテンツタイプが追加されています。

この報告書コンテンツタイプ自体がフォルダタイプですので、中にはファイルやページなどのコンテンツタイプが追加できます。
各項目を記載して、受け取ったパンフレット等をファイルでアップした表示は下記のようになります。

まだまだ改善の余地がある Dexterity ですが、プログラミングの知識がなくても独自のコンテンツタイプが作れるのは幸せになれる人が沢山いるのではないかと思います。
では、次はたかのりさんですね。(いつも私の後ってたかのりさん?)宜しくお願いします。
前: Plone 4 Book フッターカスタマイズの話
