From: Dobrica Pavlinusic Date: Thu, 24 Jun 2010 11:52:52 +0000 (+0200) Subject: import filters with unac columns X-Git-Url: http://git.rot13.org/?p=MojoFacets.git;a=commitdiff_plain;h=db743bdac43ad95d69a9cc044cfbc10cd3ef79b2 import filters with unac columns --- diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index 5aed26c..3681e0f 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -317,6 +317,22 @@ sub _permanent_path { $self->app->home->rel_dir('data') . '/' . join('.', $path, @_); } +sub __unac { + my $n = shift; + $n = unac_string($n); + $n =~ s/\W+/_/g; + return $n; +} + +sub _column_from_unac { + my ($self,$name) = @_; + + my $stats = $self->_loaded('stats'); + my $cols_norm = { map { __unac( $_ ) => $_ } keys %$stats }; + + $cols_norm->{$name} || die "can't find column $name in ", dump($cols_norm); +} + sub _export_path { my $self = shift; my $path = $self->_param_or_session('path'); @@ -326,7 +342,7 @@ sub _export_path { } my $dir = $self->app->home->rel_dir('public') . "/export/$path"; mkpath $dir unless -e $dir; - my $name = join('.', map { my $n = unac_string($_); $n =~ s/\W+/_/g; $n; } @_ ); + my $name = join('.', map { __unac($_) } @_ ); $dir . '/' . $name; } @@ -1036,9 +1052,11 @@ sub export { if ( my $import = $self->param('import') ) { if ( $import =~ m{/filter\.(.+?)\..+} ) { - my $name = $1; + my $name = $self->_column_from_unac( $1 ); + my @vals = map { chomp; $_ } read_file "$dir/export/$import", binmode => ':utf8'; + $self->_remove_filter( $name ); $self->_filter_on_data( $name, @vals ); $self->session( 'offset' => 0 );