[html-formfu] Repeatable displays every row in table (bug?)

Mario Minati mario.minati at googlemail.com
Sun May 10 14:10:49 GMT 2009


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 at lists.scsys.co.uk
> >> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
> >
> > _______________________________________________
> > HTML-FormFu mailing list
> > HTML-FormFu at lists.scsys.co.uk
> > http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>
> _______________________________________________
> HTML-FormFu mailing list
> HTML-FormFu at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu





More information about the HTML-FormFu mailing list