+ my $report_id = $params{report_id} || $::form->{id};
+
+ $self->{report} = SL::DB::Manager::CsvImportReport->find_by(id => $report_id);
+
+ if (!$self->{report}) {
+ $::form->error(t8('No report with id #1', $report_id));
+ }
+ my $num_rows = $self->{report}->numrows;
+ my $num_cols = SL::DB::Manager::CsvImportReportRow->get_all_count(query => [ csv_import_report_id => $report_id, row => 0 ]);
+
+ # manual paginating, yuck
+ my $page = $::form->{page} || 1;
+ my $pages = {};
+ $pages->{per_page} = $::form->{per_page} || 20;
+ $pages->{max} = SL::DB::Helper::Paginated::ceil($num_rows, $pages->{per_page}) || 1;
+ $pages->{cur} = $page < 1 ? 1
+ : $page > $pages->{max} ? $pages->{max}
+ : $page;
+ $pages->{common} = [ grep { $_->{visible} } @{ SL::DB::Helper::Paginated::make_common_pages($pages->{cur}, $pages->{max}) } ];
+
+ $self->{display_rows} = [
+ 0,
+ $pages->{per_page} * ($pages->{cur}-1) + 1
+ ..
+ min($pages->{per_page} * $pages->{cur}, $num_rows)
+ ];
+
+ my @query = (
+ csv_import_report_id => $report_id,
+ or => [
+ row => 0,
+ and => [
+ row => { gt => $pages->{per_page} * ($pages->{cur}-1) },
+ row => { le => $pages->{per_page} * $pages->{cur} },
+ ]
+ ]
+ );
+
+ my $rows = SL::DB::Manager::CsvImportReportRow->get_all(query => \@query);
+ my $status = SL::DB::Manager::CsvImportReportStatus->get_all(query => \@query);