-# drb - I've (probably temporarily) split this out from do_edit, so it's
-# reported by Mp::P::Trace
-sub _do_update_or_create
-{
- my ($self, $r, $obj, $required_cols, $ignored_cols) = @_;
-
- my $fatal;
- my $creating = 0;
- my $h = CGI::Untaint->new( %{$r->params} );
-
- # update or create
- if ($obj)
- {
- # We have something to edit
- eval { $obj->update_from_cgi( $h => {
- required => $required_cols,
- ignore => $ignored_cols,
- } ) };
- $fatal = $@;
- }
- else
- {
- eval {
- $obj = $self->create_from_cgi( $h => {
- required => $required_cols,
- ignore => $ignored_cols,
- } )
- };
-
- if ($fatal = $@)
- {
- warn "$fatal" if $r->debug;
- }
- $creating++;
- }
-
- return $obj, $fatal, $creating;
-}