1 package SL::Controller::CsvImport::Project;
6 use SL::DB::CustomVariable;
7 use SL::DB::CustomVariableConfig;
9 use parent qw(SL::Controller::CsvImport::Base);
11 use Rose::Object::MakeMethods::Generic
13 scalar => [ qw(table) ],
18 $self->class('SL::DB::Project');
21 sub init_all_cvar_configs {
24 return SL::DB::Manager::CustomVariableConfig->get_all(where => [ module => 'Projects' ]);
30 foreach my $entry (@{ $self->controller->data }) {
31 $self->handle_cvars($entry);
34 $self->add_cvar_raw_data_columns;
37 sub check_duplicates {
40 my %duplicates_by_number;
42 if ( $self->controller->profile->get('duplicates') eq 'check_db' ) {
43 foreach my $object (@{$self->existing_objects}) {
44 $duplicates_by_number{$object->{projectnumber}} = 'db';
48 foreach my $entry (@{ $self->controller->data }) {
50 my $object = $entry->{object};
52 if ( $duplicates_by_number{$object->projectnumber()} )
54 push( @{$entry->{errors}},
55 $duplicates_by_number{$object->projectnumber()} eq 'db' ? $::locale->text('Duplicate in database') : $::locale->text('Duplicate in CSV file')
58 $duplicates_by_number{$object->projectnumber()} = 'csv';
64 sub setup_displayable_columns {
67 $self->SUPER::setup_displayable_columns;
68 $self->add_cvar_columns_to_displayable_columns;
70 $self->add_displayable_columns({ name => 'projectnumber', description => $::locale->text('number') },
71 { name => 'description', description => $::locale->text('Description') },
72 { name => 'active', description => $::locale->text('Active') },