]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Apache/MVC/Model/CDBI.pm
This gets delete working, although it involves diamond inheritance.
[maypole.git] / lib / Apache / MVC / Model / CDBI.pm
index 86b2d344c23f93d284a4d53336fb6eddef0d3ab9..88ba3da1334cd3383057cb69345f214614d5447a 100644 (file)
@@ -1,5 +1,5 @@
 package Apache::MVC::Model::CDBI;
-use base 'Apache::MVC::Model::Base';
+use base qw(Apache::MVC::Model::Base Class::DBI);
 use Class::DBI::AsForm;
 use Class::DBI::FromCGI;
 use CGI::Untaint;
@@ -16,10 +16,9 @@ sub get_objects {
 sub do_edit :Exported {
     my ($self, $r) = @_;
     my $h = CGI::Untaint->new(%{$r->{params}});
-    my $obj;
-    if (@{$r->{args}}) {
+    my ($obj) = @{$self->objects};
+    if ($obj) {
         # We have something to edit
-        ($obj) = @{$self->objects};
         $obj->update_from_cgi($h);
         warn "Updating an object ($obj) with ".Dumper($h); use Data::Dumper;
     } else {
@@ -39,7 +38,7 @@ sub do_edit :Exported {
 
 sub delete :Exported {
     my ($self, $r) = @_;
-    $self->delete for @{ $r->objects };
+    $_->SUPER::delete for @{ $r->objects };
     $r->objects([ $self->retrieve_all ]);
     $r->{template} = "list";
 }