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) = @_;
$self->SUPER::list($r);
my %cols = map { $_ => 1 } $self->columns, $self->display_columns;
my @cols = keys %cols;
$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.
sub do_edit : Exported {
my ($self, $r) = (shift, shift);
$self->SUPER::do_edit($r, @_);
if (my $obj = $r->object) {
my $url = $r->config->uri_base . "/" . $r->table . "/view/" . $obj->id;
$r->redirect_request(url => $url);
}
}
sub metadata: Exported {}
1;