X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ex%2Ffancy_example%2FBeerDB%2FBase.pm;h=aaafce1eec74e1e1249a43c009af0e287a8637fb;hb=7e7a50d266e62351b5ba6fcdd81f45cf4e60c98b;hp=23b1dd132104360f4847ace269287494d441ac6b;hpb=436fd74e09a36cccdff90be36e1d098426cbc975;p=maypole.git diff --git a/ex/fancy_example/BeerDB/Base.pm b/ex/fancy_example/BeerDB/Base.pm index 23b1dd1..aaafce1 100644 --- a/ex/fancy_example/BeerDB/Base.pm +++ b/ex/fancy_example/BeerDB/Base.pm @@ -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.