Revision 75e726e7
Von Sven Schöling vor mehr als 11 Jahren hinzugefügt
SL/Controller/Project.pm | ||
---|---|---|
use Clone qw(clone);
|
||
|
||
use SL::Controller::Helper::GetModels;
|
||
use SL::Controller::Helper::Paginated;
|
||
use SL::Controller::Helper::Sorted;
|
||
use SL::Controller::Helper::Filtered;
|
||
use SL::Controller::Helper::ParseFilter;
|
||
use SL::Controller::Helper::ReportGenerator;
|
||
use SL::CVar;
|
||
... | ... | |
use Rose::Object::MakeMethods::Generic
|
||
(
|
||
scalar => [ qw(project linked_records) ],
|
||
'scalar --get_set_init' => [ qw(models) ],
|
||
);
|
||
|
||
__PACKAGE__->run_before('check_auth');
|
||
__PACKAGE__->run_before('load_project', only => [ qw(edit update destroy) ]);
|
||
|
||
__PACKAGE__->make_filtered(
|
||
MODEL => 'Project',
|
||
LAUNDER_TO => 'filter',
|
||
ONLY => [ qw(list) ],
|
||
);
|
||
__PACKAGE__->make_paginated(
|
||
MODEL => 'Project',
|
||
# PAGINATE_ARGS => 'db_args',
|
||
ONLY => [ qw(list) ],
|
||
);
|
||
|
||
__PACKAGE__->make_sorted(
|
||
MODEL => 'Project',
|
||
ONLY => [ qw(list) ],
|
||
|
||
DEFAULT_BY => 'projectnumber',
|
||
DEFAULT_DIR => 1,
|
||
|
||
customer => t8('Customer'),
|
||
description => t8('Description'),
|
||
projectnumber => t8('Project Number'),
|
||
type => t8('Type'),
|
||
);
|
||
|
||
|
||
#
|
||
# actions
|
||
#
|
||
... | ... | |
|
||
# $self->make_filter_summary;
|
||
|
||
my $projects = $self->get_models(
|
||
with_objects => [ 'customer' ],
|
||
);
|
||
my $projects = $self->models->get;
|
||
|
||
$self->prepare_report;
|
||
|
||
... | ... | |
sub prepare_report {
|
||
my ($self) = @_;
|
||
|
||
my $callback = $self->get_callback;
|
||
my $callback = $self->models->get_callback;
|
||
|
||
my $report = SL::ReportGenerator->new(\%::myconfig, $::form);
|
||
$self->{report} = $report;
|
||
... | ... | |
text => $::locale->text('Valid') },
|
||
);
|
||
|
||
map { $column_defs{$_}->{text} ||= $::locale->text( $self->get_sort_spec->{$_}->{title} ) } keys %column_defs;
|
||
map { $column_defs{$_}->{text} ||= $::locale->text( $self->models->get_sort_spec->{$_}->{title} ) } keys %column_defs;
|
||
|
||
$report->set_options(
|
||
std_column_visibility => 1,
|
||
... | ... | |
$report->set_column_order(@columns);
|
||
$report->set_export_options(qw(list filter));
|
||
$report->set_options_from_form;
|
||
$self->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable);
|
||
$self->models->disable_pagination if $report->{options}{output_format} =~ /^(pdf|csv)$/i;
|
||
$self->models->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable);
|
||
$report->set_options(
|
||
top_info_text => $::locale->text('Projects'),
|
||
raw_bottom_info_text => $self->render('project/report_bottom', { output => 0 }),
|
||
);
|
||
}
|
||
|
||
$self->disable_pagination if $report->{options}{output_format} =~ /^(pdf|csv)$/i;
|
||
sub init_models {
|
||
my ($self) = @_;
|
||
|
||
SL::Controller::Helper::GetModels->new(
|
||
controller => $self,
|
||
model => 'Project',
|
||
sorted => {
|
||
_default => {
|
||
by => 'projectnumber',
|
||
dir => 1,
|
||
},
|
||
customer => t8('Customer'),
|
||
description => t8('Description'),
|
||
projectnumber => t8('Project Number'),
|
||
type => t8('Type'),
|
||
},
|
||
with_objects => [ 'customer' ],
|
||
);
|
||
}
|
||
|
||
1;
|
templates/webpages/project/report_bottom.html | ||
---|---|---|
[% USE L %]
|
||
[%- L.paginate_controls %]
|
||
[%- L.paginate_controls(models=SELF.models) %]
|
Auch abrufbar als: Unified diff
Projects auf getmodels