]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Apache/MVC/Model/CDBI.pm
Whoa, oops, carry object over. This stops it being recreated every time.
[maypole.git] / lib / Apache / MVC / Model / CDBI.pm
index f9918bc9b84cf1b5f93019d204fd5b21bd8aff54..8e0b9812bd1763cd1ddb5ed3e8f373a2f06a2866 100644 (file)
@@ -8,13 +8,17 @@ sub description { "A poorly defined class" }
 
 sub column_names { my $class = shift; map { $_ => ucfirst $_ } $class->columns }
 
+sub get_objects {
+    my ($self, $r) = @_;
+    return $self->retrieve(shift @{$r->{args}});
+}
+
 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->retrieve($r->{args}[0]);
         $obj->update_from_cgi($h);
         warn "Updating an object ($obj) with ".Dumper($h); use Data::Dumper;
     } else {
@@ -29,7 +33,14 @@ sub do_edit :Exported {
     } else {
         $r->{template} = "view";
     }
-    return $obj;
+    $r->objects([ $obj ]);
+}
+
+sub delete :Exported {
+    my ($self, $r) = @_;
+    $self->delete for @{ $r->objects };
+    $r->objects([ $self->retrieve_all ]);
+    $r->{template} = "list";
 }
 
 sub adopt {