Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 06837707

Von Moritz Bunkus vor mehr als 9 Jahren hinzugefügt

  • ID 06837707dbfdc495214e21817e7b9d7d696ba549
  • Vorgänger d951ddcd
  • Nachfolger 79b7fc43

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

Unterschiede anzeigen:

SL/Controller/Project.pm
54 54

  
55 55
  $self->make_filter_summary;
56 56

  
57
  my $projects = $self->models->get;
58

  
59 57
  $self->prepare_report;
60 58

  
61
  $self->report_generator_list_objects(report => $self->{report}, objects => $projects);
59
  $self->report_generator_list_objects(report => $self->{report}, objects => $self->models->get);
62 60
}
63 61

  
64 62
sub action_new {
......
215 213

  
216 214
  map { $column_defs{$_}->{text} ||= $::locale->text( $self->models->get_sort_spec->{$_}->{title} ) } keys %column_defs;
217 215

  
218
  if ( $report->{options}{output_format} =~ /^(pdf|csv)$/i ) {
219
    $self->models->disable_plugin('paginated');
220
  }
221 216
  $report->set_options(
222 217
    std_column_visibility => 1,
223 218
    controller_class      => 'Project',
224 219
    output_format         => 'HTML',
225
    raw_top_info_text     => $self->render('project/report_top', { output => 0 }),
226
    raw_bottom_info_text  => $self->render('project/report_bottom', { output => 0 }),
227 220
    title                 => $::locale->text('Projects'),
228 221
    allow_pdf_export      => 1,
229 222
    allow_csv_export      => 1,
......
232 225
  $report->set_column_order(@columns);
233 226
  $report->set_export_options(qw(list filter));
234 227
  $report->set_options_from_form;
228
  $self->models->disable_plugin('paginated') if $report->{options}{output_format} =~ /^(pdf|csv)$/i;
235 229
  $self->models->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable);
236 230
  $report->set_options(
231
    raw_top_info_text     => $self->render('project/report_top',    { output => 0 }),
237 232
    raw_bottom_info_text  => $self->render('project/report_bottom', { output => 0 }),
238 233
  );
239 234
}

Auch abrufbar als: Unified diff