]> git.decadent.org.uk Git - maypole.git/blobdiff - ex/fancy_example/BeerDB/Base.pm
add_to_from_cgi is cool.
[maypole.git] / ex / fancy_example / BeerDB / Base.pm
index 23b1dd132104360f4847ace269287494d441ac6b..aaafce1eec74e1e1249a43c009af0e287a8637fb 100644 (file)
@@ -2,10 +2,10 @@ package BeerDB::Base;
 use base qw/Maypole::Model::CDBI/;
 use strict;
 use warnings;
+use Data::Dumper;
 
 # Overide list to add display_columns to cgi  
 # Perhaps do this in AsForm?
-
 sub list : Exported {
        use Data::Dumper;
        my ($self, $r) = @_;
@@ -15,6 +15,24 @@ sub list : Exported {
        $r->template_args->{classmetadata}{cgi} = { $self->to_cgi(@cols) }; 
 }
 
+# Override view to make inputs and process form to add to related 
+sub view : Exported {
+    my ($self, $r, $obj) = @_;
+    $self->_croak( "Object method only") unless $obj;
+
+    if ($r->params->{submit}) {
+        my @related  = $obj->add_to_from_cgi($r, { required => [$self->related ]});
+        if (my $errs = $obj->cgi_update_errors) {
+            $r->template_args->{errors} = $errs;
+        }
+    }
+
+    # Inputs to add to related on the view page
+       # Now done on the view template 
+       # my %cgi = $self->to_cgi($self->related);
+       #$r->template_args->{classmetadata}{cgi} =  \%cgi ;
+}
+
 
 # Template switcheroo bug bit me -- was seeing view page but the view action was never 
 # being executed after an edit.