config {
engine CGI;
template_engine TT;
Init Std {}
CGI Gantry { gen_root 1; with_server 1; flex_db 1; }
SQL SQLite {}
Control Gantry { dbix 1; }
Model GantryDBIxClass {}
SiteLook GantryDefault {}
}
app Checkbook {
config {
dbconn `dbi:Pg:dbname=checking` => no_accessor;
template_wrapper `genwrapper.tt` => no_accessor;
}
table payeepayor {
foreign_display `%name`;
field id { is int4, primary_key, auto; }
field name {
is varchar;
label Name;
html_form_type text;
}
field descr {
is varchar;
label Description;
html_form_type textarea;
html_form_rows 5;
html_form_cols 45;
}
}
table category {
foreign_display `%type: %subtype`;
field id { is int4, primary_key, auto; }
field type {
is varchar;
label Name;
html_form_type text;
}
field subtype {
is varchar;
label Name;
html_form_type text;
html_form_optional 1;
}
}
table status {
foreign_display `%descr`;
field id { is int4, primary_key, auto; }
field descr {
is varchar;
label Description;
html_form_type text;
}
data descr => Outstanding;
data descr => Cleared;
data descr => Reconciled;
}
table trans {
field id { is int4, primary_key, auto; }
field status {
is varchar;
label Status;
refers_to status;
html_form_type select;
}
field trans_date {
is date;
label `Trans Date`;
html_form_type text;
html_form_display_size 10;
date_select_text Select;
}
field amount {
is int4;
label Amount;
html_form_type text;
html_form_display_size 10;
}
field payee_payor {
is int4;
refers_to payeepayor;
label `Paid To/Rec\'v\'d From`;
html_form_type select;
}
field category {
is int4;
refers_to category;
label Category;
html_form_type select;
}
field descr {
is varchar;
label Descr;
html_form_type textarea;
html_form_rows 3;
html_form_cols 60;
html_form_optional 1;
}
}
controller PayeePayor is AutoCRUD {
controls_table payeepayor;
text_description `Payee/Payor`;
rel_location payeeor;
page_link_label `Payee/Payor`;
method do_main is main_listing {
title `Payees/Payors`;
cols name;
header_options Add;
row_options Edit, Delete;
}
method form is AutoCRUD_form {
form_name payeeor;
all_fields_but id;
extra_keys
legend => `$self->path_info =~ /edit/i ? 'Edit' : 'Add'`;
}
}
controller Category is AutoCRUD {
controls_table category;
text_description `Category`;
rel_location category;
page_link_label Category;
method do_main is main_listing {
title Category;
cols type, subtype;
header_options Add;
row_options Edit, Delete;
}
method form is AutoCRUD_form {
form_name category;
all_fields_but id;
extra_keys
legend => `$self->path_info =~ /edit/i ? 'Edit' : 'Add'`;
}
}
controller Status is AutoCRUD {
controls_table status;
text_description `Status`;
rel_location status;
page_link_label Status;
method do_main is main_listing {
title Status;
cols descr;
header_options Add;
row_options Edit, Delete;
}
method form is AutoCRUD_form {
form_name category;
all_fields_but id;
extra_keys
legend => `$self->path_info =~ /edit/i ? 'Edit' : 'Add'`;
}
}
controller Trans is AutoCRUD {
uses Gantry::Plugins::Calendar;
controls_table trans;
text_description Transaction;
rel_location trans;
page_link_label Trans;
method do_main is main_listing {
title `Transaction`;
cols status, trans_date, amount, payee_payor, category;
header_options Add;
row_options Edit, Delete;
}
method form is AutoCRUD_form {
form_name trans;
all_fields_but id;
extra_keys
legend => `$self->path_info =~ /edit/i ? 'Edit' : 'Add'`,
javascript => `$self->calendar_month_js( 'trans' )`;
}
}
}