フォーム定義のデータ
昨日の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のテキストを返すだけだけど)、そんなクラス、メソッドを用意するわけです。