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

2009-05-11 Thread Greg Coates
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?)

2009-05-10 Thread Mario Minati
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?)

2009-05-07 Thread Mario Minati
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