[html-formfu] Repeatable block will not save records
Ascii King
tech at swattermatter.com
Tue Dec 30 18:25:42 GMT 2008
I have created a repeatable block and it populates correctly, but it
will not save any changes I make to those records. It will save the
previous fields in the form, though. I am using Catalyst and Formfu.
Here's my calling subroutine. I've taken it from an example online and
added the repeatable section to it.
sub formfu_edit :Local :FormConfig('prior/formfu_create.yml') {
my ($self, $c, $id) = @_;
# Get the specified book
my $book = $c->model('DB::Prior')->find($id);
# Make sure we were able to get a book
unless ($book) {
$c->flash->{error_msg} = "Invalid prior record -- Cannot edit";
$c->response->redirect($c->uri_for('listprior'));
$c->detach;
}
# Get the form that the :FormConfig attribute saved in the stash
my $form = $c->stash->{form};
if ($form->submitted_and_valid) {
$form->save_to_model($book);
$c->flash->{status_msg} = 'Record ammended';
$c->response->redirect($c->uri_for('listprior'));
$c->detach;
} else {
$form->defaults_from_model($book);
}
# Set the template
$c->stash->{template} = 'prior_approval/formfu_create.tt2';
}
My formfu_create.yml file is:
indicator: submit
elements:
- type: Text
name: client_number
label: Status Number
attributes:
title: Enter the Client's Status Number
constraints:
- type: Integer
message: "Required. Digits only, please."
- type: Length
min: 9
max: 10
message: Length must be between 9 and 10 characters
- type: Text
name: client_first_name
label: Client First Name
constraints:
- type: Length
min: 2
max: 50
message: Length must be between 2 and 50 characters
- type: Text
name: client_last_name
label: Client Last Name
constraints:
- type: Length
min: 2
max: 50
message: Length must be between 2 and 50 characters
- type: Text
name: client_dob
label: Date of Birth
attributes:
title: Format is yyyy/MM/dd
- type: Repeatable
auto_id: "%n"
nested_name: appointments
model_config:
DBIC:
new_empty_row: appointment_date
delete_if_true: deletion_marker
element:
- type: Hidden
name: appointment_id
- type: Text
name: appointment_date
label: Appointment Date
- type: Checkbox
name: deletion_marker
- type: Submit
name: submit
value: Submit
I have been over the documentation and the only two things I think it
may be are that I don't actually specify the appointments model in a
save statement, but it seems like Catalyst takes care of that. I also
don't understand this statement in the documentation for
HTML::FormFu::Model::DBIC
<Controller::HTML::FormFu>
<model_stash>
schema = ModelName
<model_stash>
</Controller::HTML::FormFu>
Is my modelname in this case DB::Prior and does this chunk of code go
into my config file in the very root of my application? in MyApp.conf (I
use Apache style)
Thank you for your help in this.
More information about the HTML-FormFu
mailing list