From: Moritz Bunkus Date: Fri, 24 Apr 2015 13:02:59 +0000 (+0200) Subject: Project-Controller: Paginaten beim CSV-/PDF-Export ausschalten X-Git-Tag: release-3.3.0beta~130 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=06837707dbfdc495214e21817e7b9d7d696ba549;p=kivitendo-erp.git Project-Controller: Paginaten beim CSV-/PDF-Export ausschalten Die Entscheidung, ob CSV-/PDF-Export gewünscht wird, ist erst nach dem $report->set_options_from_form klar. Andererseits müssen Module im GetModels deaktiviert werden, bevor die GetModels-Instanz finalisiert wird. Das kann sie werden, wenn ihre Anzahl benötigt wird (z.B. beim Rendern vom bottom text) oder wenn man get_models schlicht vorher aufruft. Also Aufrufreihenfolge gefixt: 1. $report->set_options_from_form 2. Paginating disablen wenn Export gewünscht 3. Top-/Bottom-Texte render 4. Models abholen --- diff --git a/SL/Controller/Project.pm b/SL/Controller/Project.pm index ba7bf1db6..c9b094969 100644 --- a/SL/Controller/Project.pm +++ b/SL/Controller/Project.pm @@ -54,11 +54,9 @@ sub action_list { $self->make_filter_summary; - my $projects = $self->models->get; - $self->prepare_report; - $self->report_generator_list_objects(report => $self->{report}, objects => $projects); + $self->report_generator_list_objects(report => $self->{report}, objects => $self->models->get); } sub action_new { @@ -215,15 +213,10 @@ sub prepare_report { map { $column_defs{$_}->{text} ||= $::locale->text( $self->models->get_sort_spec->{$_}->{title} ) } keys %column_defs; - if ( $report->{options}{output_format} =~ /^(pdf|csv)$/i ) { - $self->models->disable_plugin('paginated'); - } $report->set_options( std_column_visibility => 1, controller_class => 'Project', output_format => 'HTML', - raw_top_info_text => $self->render('project/report_top', { output => 0 }), - raw_bottom_info_text => $self->render('project/report_bottom', { output => 0 }), title => $::locale->text('Projects'), allow_pdf_export => 1, allow_csv_export => 1, @@ -232,8 +225,10 @@ sub prepare_report { $report->set_column_order(@columns); $report->set_export_options(qw(list filter)); $report->set_options_from_form; + $self->models->disable_plugin('paginated') if $report->{options}{output_format} =~ /^(pdf|csv)$/i; $self->models->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable); $report->set_options( + raw_top_info_text => $self->render('project/report_top', { output => 0 }), raw_bottom_info_text => $self->render('project/report_bottom', { output => 0 }), ); }