フォーム定義のデータ

昨日のTableDefinitionクラス、もうじきFormDefinitionになりそうな気がしていますが、これはアンケートのフォームの定義データを扱うためのクラスです。なので、今日はちょっとそのあたりを買いてみます。

最初のテーブルは、フォームの定義データです。データは次のとおり:

tid primary key
テーブルID(フォームIDでfidにするつもり)
title
アンケートのタイトル
abbr_title
アンケートの省略タイトル
summary
アンケートの詳細
start_date
開始日
end_date
終了日
active
有効無効の切り替え

start_date、end_dateにはdatetimeオブジェクトをpickle化して保存するつもり。Noneなら常設になるといった具合に使いたい。

このフォーム定義にぶらさがるのが回答項目の定義データで、それは次のとおり:

iid primary key
項目ID
tid primary key
テーブルID(けどfidにするつもり)
title
問い合わせのタイトル
abbr_title
問い合わせの省略タイトル
number
問い合わせの番号
level
問い合わせの深さ(HTMLでいうH1, H2のようなもの)
order_number
並べ替えに使う数値
summary
問い合わせ詳細
type
フォーム部品の種別
default_value
問い合わせの初期値
require
回答必須項目かどうか切り替え
active
有効無効の切り替え

tid(fidになる予定)でselectして、その際にorder_numberでorderする。最初、これはorderという名前にするつもりだったんだけど、それをするとsqlite3が例外を出すので、order_numberという無闇に長い名前になってしまいました。

typeにtextfieldであるとかcheckboxであるとかのキーワードを記録して、こうした値を一式与えるとフォーム部品を生成してくれる(っていっても、HTMLのテキストを返すだけだけど)、そんなクラス、メソッドを用意するわけです。

このあたりは、以前Perlでアンケート作成CGIを作ったことがあるので、そう大変でなくできる予定です。