X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FApache%2FMVC%2FModel%2FCDBI.pm;h=833550d5a059a0297973069bb144d80adb89685d;hb=21e0e0c44d23d0d1f0612e4d009c83d010bfb50c;hp=f9918bc9b84cf1b5f93019d204fd5b21bd8aff54;hpb=fd44a844f551caa56dfaaacb4ba2c6e69d9a4157;p=maypole.git diff --git a/lib/Apache/MVC/Model/CDBI.pm b/lib/Apache/MVC/Model/CDBI.pm index f9918bc..833550d 100644 --- a/lib/Apache/MVC/Model/CDBI.pm +++ b/lib/Apache/MVC/Model/CDBI.pm @@ -8,13 +8,18 @@ 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}}) { # We have something to edit - $obj = $self->retrieve($r->{args}[0]); + ($obj) = @{$self->objects}; $obj->update_from_cgi($h); warn "Updating an object ($obj) with ".Dumper($h); use Data::Dumper; } else { @@ -32,6 +37,13 @@ sub do_edit :Exported { return $obj; } +sub delete :Exported { + my ($self, $r) = @_; + $self->delete for @{ $r->objects }; + $r->objects([ $self->retrieve_all ]); + $r->{template} = "list"; +} + sub adopt { my ($self, $child) = @_; $child->autoupdate(1);