Carl Franks wrote:
cool - but can you also run the 'svn add' command on your new test
files(s) so that they also get included in the patch file?
we're almost there... ;)
Here it is.
Alex.
Index: t/lib/DBICTestLib.pm
===================================================================
--- t/lib/DBICTestLib.pm (revision 990)
+++ t/lib/DBICTestLib.pm (working copy)
@@ -98,7 +98,29 @@
INSERT INTO `type` (`type2`) VALUES('foo');
INSERT INTO `type` (`type2`) VALUES('bar');
SQL
-
+
+ $dbh->do( <<SQL );
+CREATE TABLE one (
+ oneid INTEGER PRIMARY KEY,
+ value TEXT
+);
+SQL
+
+ $dbh->do( <<SQL );
+CREATE TABLE two (
+ twoid INTEGER PRIMARY KEY,
+ value TEXT
+);
+SQL
+
+ $dbh->do( <<SQL );
+CREATE TABLE link (
+ oneid INTEGER,
+ twoid INTEGER,
+ PRIMARY KEY (oneid, twoid)
+);
+SQL
+
}
1;
Index: t/lib/MySchema/Two.pm
===================================================================
--- t/lib/MySchema/Two.pm (revision 0)
+++ t/lib/MySchema/Two.pm (revision 0)
@@ -0,0 +1,24 @@
+package MySchema::Two;
+
+use strict;
+use warnings;
+
+use base 'DBIx::Class';
+
+__PACKAGE__->load_components("Core");
+__PACKAGE__->table("two");
+__PACKAGE__->add_columns(
+ "twoid",
+ { data_type => "INTEGER", is_nullable => 0, size => undef },
+ "value",
+ { data_type => "TEXT", is_nullable => 0, size => undef },
+);
+__PACKAGE__->set_primary_key("twoid");
+
+
+# Created by DBIx::Class::Schema::Loader v0.04004 @ 2008-04-07 16:28:56
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7nQFH3+e6y02LptHcngIHg
+__PACKAGE__->has_many( links => 'MySchema::Link', 'twoid');
+__PACKAGE__->many_to_many( ones => 'links', 'oneid');
+
+1;
Index: t/lib/MySchema/Link.pm
===================================================================
--- t/lib/MySchema/Link.pm (revision 0)
+++ t/lib/MySchema/Link.pm (revision 0)
@@ -0,0 +1,24 @@
+package MySchema::Link;
+
+use strict;
+use warnings;
+
+use base 'DBIx::Class';
+
+__PACKAGE__->load_components("Core");
+__PACKAGE__->table("link");
+__PACKAGE__->add_columns(
+ "oneid",
+ { data_type => "INTEGER", is_nullable => 0, size => undef },
+ "twoid",
+ { data_type => "INTEGER", is_nullable => 0, size => undef },
+);
+__PACKAGE__->set_primary_key("oneid", "twoid");
+
+
+# Created by DBIx::Class::Schema::Loader v0.04004 @ 2008-04-07 16:28:56
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hCA3bZCPb47kGRMFRFKu7Q
+
+__PACKAGE__->belongs_to('oneid', 'MySchema::One');
+__PACKAGE__->belongs_to('twoid', 'MySchema::Two');
+1;
Index: t/lib/MySchema/One.pm
===================================================================
--- t/lib/MySchema/One.pm (revision 0)
+++ t/lib/MySchema/One.pm (revision 0)
@@ -0,0 +1,24 @@
+package MySchema::One;
+
+use strict;
+use warnings;
+
+use base 'DBIx::Class';
+
+__PACKAGE__->load_components("Core");
+__PACKAGE__->table("one");
+__PACKAGE__->add_columns(
+ "oneid",
+ { data_type => "INTEGER", is_nullable => 0, size => undef },
+ "value",
+ { data_type => "TEXT", is_nullable => 0, size => undef },
+);
+__PACKAGE__->set_primary_key("oneid");
+
+
+# Created by DBIx::Class::Schema::Loader v0.04004 @ 2008-04-07 16:28:56
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:J7k7mvX3U0pS4I0aKY4CLQ
+
+__PACKAGE__->has_many( links => 'MySchema::Link', 'oneid');
+__PACKAGE__->many_to_many( twos => 'links', 'twoid');
+1;
Index: t/m2mtest.yml
===================================================================
--- t/m2mtest.yml (revision 0)
+++ t/m2mtest.yml (revision 0)
@@ -0,0 +1,16 @@
+---
+auto_fieldset: 1
+
+elements:
+ - type: Hidden
+ name: id
+
+ - type: Text
+ name: value
+
+ - type: Select
+ name: twos
+ multiple: 1
+
+ - type: Submit
+ name: submit
Index: t/m2mtest.t
===================================================================
--- t/m2mtest.t (revision 0)
+++ t/m2mtest.t (revision 0)
@@ -0,0 +1,45 @@
+use strict;
+use warnings;
+use Test::More;
+
+plan tests => 1;
+
+use HTML::FormFu;
+use lib 't/lib';
+use DBICTestLib 'new_db';
+use MySchema;
+
+new_db();
+
+my $form = HTML::FormFu->new;
+
+$form->load_config_file('t/m2mtest.yml');
+
+my $schema = MySchema->connect('dbi:SQLite:dbname=t/test.db');
+
+my $one_rs = $schema->resultset('One');
+my $two_rs = $schema->resultset('Two');
+
+{
+ # one 1
+ my $u1 = $one_rs->new_result({ value => 'John' });
+ $u1->insert;
+ # one 2
+ my $u2 = $one_rs->new_result({ value => 'Paul' });
+ $u2->insert;
+ # two 1
+ my $b1 = $u1->add_to_twos({ value => 'the beatles' });
+ # one 2 => two 2
+ $u2->add_to_twos({ value => 'wings' });
+ # two 3
+ $two_rs->new_result({ value => 'the kinks' });
+ # one 2 => two 1
+ $u2->add_to_twos( $b1 );
+}
+
+{
+ my $row = $one_rs->find(2);
+
+ eval { $form->model('DBIC')->default_values( $row ); };
+ is($@, '');
+}
Index: lib/HTML/FormFu/Model/DBIC.pm
===================================================================
--- lib/HTML/FormFu/Model/DBIC.pm (revision 990)
+++ lib/HTML/FormFu/Model/DBIC.pm (working copy)
@@ -160,7 +160,7 @@
my $info = $dbic->result_source->relationship_info($name);
if ( !defined $info or $info->{attrs}{accessor} eq 'multi' ) {
- my @defaults = $dbic->$name->get_column($col)->all;
+ my @defaults = $dbic->$name->get_column('me.'.$col)->all;
$field->default( [EMAIL PROTECTED] );
}
}
_______________________________________________
HTML-FormFu mailing list
[email protected]
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu