CatWalk

CatWalkって何?

CatWalkはTurboGearsによって構築されたシングルページのAjaxアプリケーションです。これを使えばアプリケーションのモデルを操作したり、データを管理したりすることが簡単にできます。ORMレベルでのphpMyAdminやpgAdminだと思えばいいでしょう。これはデータベースを隠蔽して、すべての情報はデータベースからではなくSQLObjectを介してやりとりされます。

CatWalkを使う

CatWalkにアクセスするには主に2つの方法があります。好ましいのは ツールボックスから直接開くこと です。

そうではなく、もしかしたらCatWalkをコントローラとしてマウントしたいと思うかもしれませんが、これはデータのセキュリティを危険にさらすかもしれません。例えば以下のようにします:

from turbogears.toolbox.catwalk import CatWalk
import model

class Root(controllers.Root):
     catwalk = CatWalk(model)

     # Your controllers here

そして次のようにしてブラウザからCatWalkにアクセスします: http://example.org/catwalk.

identityでアクセスを制限する

アプリケーションがネットワーク上にあり、CatWalkをコントローラとしてマウントすると、そのネットワーク上にいるすべての人がCatWalkにアクセスできます。このアクセスを制限するためにTurboGearsの identity を利用することができます。

一度 identity をセットアップし設定すると、その設定のルールに従ってCatWalkへのアクセスを制限することができます。例えばこのアプリケーションにadminグループがあり、CatWalkへのアクセスはそのメンバーにのみ権限が与えられているとしたい場合は以下のようになります:

from turbogears.toolbox.catwalk import CatWalk
from turbogears import identity
import model

class Root(controllers.Root):
     catwalk = CatWalk(model)
     catwalk = identity.SecureObject(catwalk,identity.in_group('admin'))

ユーザインターフェイス

catwalk_overview.png
  1. 左側にはモデルに書かれたSQLObjectクラスがすべてリストアップされる
  2. グリッド部は選択したクラスの利用可能なレコードのリストで、これを削除・編集できる
  3. レコードの追加も可能
  4. (もしあれば)joinしたリレーションレコードの数
catwalk_configure_columns.png

カラムの順番をドラッグドロップで変更することもできます。また表示のオンオフを切り替えることも可能です。

catwalk_detail_view.png

詳細ビューではレコードを編集したり、リレーションを管理したりすることが可能です。