Projektliste: Kundenname bei PDF-/CSV-Export richtig ausgeben
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 23 May 2016 10:51:03 +0000 (12:51 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 23 May 2016 10:51:52 +0000 (12:51 +0200)
Der Controller-Helfer für den ReportGenerator muss aus Objekten Werte
machen können. Wie das geschieht, wird über die Spaltendefinition
festgelegt. Für Nicht-HTML-Anzeige wird entweder eine zur Verfügung
gestellte Unterfunktion benutzt, oder aber auf dem Objekt wird der
Spaltenname als Funktion aufgerufen.

Für die Spalte »customer« wird bei einem Projekt also das
SL::DB::Customer-Objekt genutzt, wenn keine manuelle Sub angegeben
wurde.

Fixt #166.

SL/Controller/Project.pm

index fc72036..9a75836 100644 (file)
@@ -263,7 +263,8 @@ sub prepare_report {
     description   => { obj_link => sub { $self->url_for(action => 'edit', id => $_[0]->id, callback => $callback) } },
     project_type  => { sub  => sub { $_[0]->project_type->description } },
     project_status => { sub  => sub { $_[0]->project_status->description }, text => t8('Status') },
-    customer      => { raw_data  => sub { $_[0]->customer_id ? $self->presenter->customer($_[0]->customer, display => 'table-cell', callback => $callback) : '' } },
+    customer      => { sub       => sub { !$_[0]->customer_id ? '' : $_[0]->customer->name },
+                       raw_data  => sub { !$_[0]->customer_id ? '' : $self->presenter->customer($_[0]->customer, display => 'table-cell', callback => $callback) } },
     active        => { sub  => sub { $_[0]->active   ? $::locale->text('Active') : $::locale->text('Inactive') },
                        text => $::locale->text('Active') },
     valid         => { sub  => sub { $_[0]->valid    ? $::locale->text('Valid')  : $::locale->text('Invalid')  },