Re: [html-formfu] Repeatable displays every row in table (bug?)
This fixed the problem, but it brings up another issue. From the DBIx::Class::Resultset documentation: | Note: find_or_new is probably not what you want when creating a | new row in a table that uses primary keys supplied by the | database. Passing in a primary key column with a value of undef | will cause find to attempt to search for a row with a value of | NULL. That's exactly what's happening to me, and it causes the insert that follows to fail. I'm not sure where to go with this. Write a test that fails? Somethings else? Greg Greg Coates wrote: Yep, that solved it for me too. Greg Ascii King wrote: I had this same problem back in this thread http://lists.scsys.co.uk/pipermail/html-formfu/2009-March/001884.html the answer was how I was calling the new record. I eeded to use find_or_new to call a new record. my $book = $c-model('DB::MyTable')-find_or_new({ id = $id }); Mario Minati wrote: OK. Let me try again, then. I have a form that is used to display invoices from a table called 'invoices'. It contains a Repeatable that is used to display the individual lines for those invoices. These lines come from a table called 'invoice_items'. When the form is used on an existing record, all is well. However, when I use the form to create a new record, I have a problem. Instead of the Repeatable being blank, every row from the 'invoice_items' table is displayed. Greg ___ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu ___ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
Re: [html-formfu] Repeatable displays every row in table (bug?)
Hi Greg, I don't see the hidden line_cnt field, but I guess you just didn't post it as editing works. Maybe you have anycustom DBIC stuff hosing your setup? If not it would be usefull to create a test out of your code that currently fails. Greets, Mario Minati Am Donnerstag 07 Mai 2009 23:13:10 schrieb Greg Coates: OK. Let me try again, then. I have a form that is used to display invoices from a table called 'invoices'. It contains a Repeatable that is used to display the individual lines for those invoices. These lines come from a table called 'invoice_items'. When the form is used on an existing record, all is well. However, when I use the form to create a new record, I have a problem. Instead of the Repeatable being blank, every row from the 'invoice_items' table is displayed. Greg Mario Minati wrote: Your problem description seems to be missing a few words, actually I don't understand your problem. Greets, Mario Minati Am Mittwoch 06 Mai 2009 01:05:18 schrieb Greg Coates: I have a form that contains a repeatable block that I'm using with Catalyst. Everything works fine for existing master records. However, when I use the form to create a new record, every record in the table for the has many relationship. This is less than optimal. Here's the repeatable block from the form definition: - type: Repeatable name: invoice_lines nested_name: invoice_items counter_name: line_cnt auto_id: %n attributes: class: data_row invoice_item elements: - type: Hidden name: ivi_id - type: Block attributes: class: ivi_desc elements: - type: Text name: ivi_desc size: 75 - type: Block attributes: class: ivi_unit_price numeric elements: - type: Text name: ivi_unit_price size: 8 - type: Block attributes: class: ivi_quantity numeric elements: - type: Text name: ivi_quantity size: 5 - type: Block attributes: class: ivi_total_price numeric elements: - type: +Coatesoft::FormFu::Element::DataLabel name: ivi_total_price - type: Block attributes: class: ivi_account elements: - type: Select name: ivi_account model_config: resultset: Accounts id_column: acc_id label_column: acc_title - type: Block attributes: class: ivi_item elements: - type: Select name: ivi_item empty_first: 1 empty_first_label: no inventory item model_config: resultset: Items id_column: itm_id label_column: itm_description - type: Block attributes: class: ivi_tax_type elements: - type: Select name: ivi_tax_type empty_first: 1 empty_first_label: no tax model_config: resultset: Taxes id_column: tax_id label_column: tax_desc - type: Block attributes: class: ivi_memo elements: - type: Text name: ivi_memo size: 100 And here's the relevant part of my Catalyst controller: sub edit :Local :FormConfig('invoices/edit_invoice.yml') { my ($self, $c, $ivc_id) = @_; if ($c-request-param('cancel')) { $c-response-redirect($c-uri_for(/invoices)); $c-detach(); } my $invoice = ($ivc_id) ? $c-model('DB::Invoices')-find($ivc_id) : $c-model('DB::Invoices')-new_result({}); my $form = $c-stash-{form}; if ($form-submitted_and_valid()) { $form-process(); $form-model-update($invoice); if (! $c-request-param('draft')) { # Save to accounts } $c-response-redirect($c-uri_for(/invoices)); $c-detach(); } } Any ideas, folks? Thanks, Greg Coates Coatesoft ___ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu ___ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu ___ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu ___
Re: [html-formfu] Repeatable displays every row in table (bug?)
Your problem description seems to be missing a few words, actually I don't understand your problem. Greets, Mario Minati Am Mittwoch 06 Mai 2009 01:05:18 schrieb Greg Coates: I have a form that contains a repeatable block that I'm using with Catalyst. Everything works fine for existing master records. However, when I use the form to create a new record, every record in the table for the has many relationship. This is less than optimal. Here's the repeatable block from the form definition: - type: Repeatable name: invoice_lines nested_name: invoice_items counter_name: line_cnt auto_id: %n attributes: class: data_row invoice_item elements: - type: Hidden name: ivi_id - type: Block attributes: class: ivi_desc elements: - type: Text name: ivi_desc size: 75 - type: Block attributes: class: ivi_unit_price numeric elements: - type: Text name: ivi_unit_price size: 8 - type: Block attributes: class: ivi_quantity numeric elements: - type: Text name: ivi_quantity size: 5 - type: Block attributes: class: ivi_total_price numeric elements: - type: +Coatesoft::FormFu::Element::DataLabel name: ivi_total_price - type: Block attributes: class: ivi_account elements: - type: Select name: ivi_account model_config: resultset: Accounts id_column: acc_id label_column: acc_title - type: Block attributes: class: ivi_item elements: - type: Select name: ivi_item empty_first: 1 empty_first_label: no inventory item model_config: resultset: Items id_column: itm_id label_column: itm_description - type: Block attributes: class: ivi_tax_type elements: - type: Select name: ivi_tax_type empty_first: 1 empty_first_label: no tax model_config: resultset: Taxes id_column: tax_id label_column: tax_desc - type: Block attributes: class: ivi_memo elements: - type: Text name: ivi_memo size: 100 And here's the relevant part of my Catalyst controller: sub edit :Local :FormConfig('invoices/edit_invoice.yml') { my ($self, $c, $ivc_id) = @_; if ($c-request-param('cancel')) { $c-response-redirect($c-uri_for(/invoices)); $c-detach(); } my $invoice = ($ivc_id) ? $c-model('DB::Invoices')-find($ivc_id) : $c-model('DB::Invoices')-new_result({}); my $form = $c-stash-{form}; if ($form-submitted_and_valid()) { $form-process(); $form-model-update($invoice); if (! $c-request-param('draft')) { # Save to accounts } $c-response-redirect($c-uri_for(/invoices)); $c-detach(); } } Any ideas, folks? Thanks, Greg Coates Coatesoft ___ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu ___ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu