+ if ($::form->{file}) {
+ my $file = SL::SessionFile->new($self->csv_file_name, mode => '>');
+ $file->fh->print($::form->{file});
+ $file->fh->close;
+ }
+
+ my $file = SL::SessionFile->new($self->csv_file_name, mode => '<', encoding => $self->profile->get('charset'));
+ if (!$file->fh) {
+ flash('error', $::locale->text('No file has been uploaded yet.'));
+ return $self->action_new;
+ }
+
+ $self->file($file);
+
+ my $worker = $self->worker();
+
+ $worker->run;
+
+ $self->num_imported(0);
+ $worker->save_objects if !$params{test};
+
+ $self->num_importable(scalar grep { !$_ } map { scalar @{ $_->{errors} } } @{ $self->data || [] });
+ $self->import_status($params{test} ? 'tested' : 'imported');
+
+ flash('info', $::locale->text('Objects have been imported.')) if !$params{test};
+