diff options
Diffstat (limited to 'lib/Travelynx/Model')
| -rwxr-xr-x | lib/Travelynx/Model/Journeys.pm | 15 | ||||
| -rw-r--r-- | lib/Travelynx/Model/Stations.pm | 19 | 
2 files changed, 22 insertions, 12 deletions
| diff --git a/lib/Travelynx/Model/Journeys.pm b/lib/Travelynx/Model/Journeys.pm index b1af966..46ad1c0 100755 --- a/lib/Travelynx/Model/Journeys.pm +++ b/lib/Travelynx/Model/Journeys.pm @@ -445,8 +445,12 @@ sub update {  			# Otherwise, fetch stop IDs so that polylines remain usable  			if ( @new_route != @{ $opt{route} } ) { -				my %stop_id = map { $_->{name} => $_->{eva} } -				  $self->{stations}->get_by_names( @{ $opt{route} } ); +				my %stop_id +				  = map { $_->{name} => $_->{eva} } +				  $self->{stations}->get_by_names( +					backend_id => $journey->{backend_id}, +					names      => [ $opt{route} ] +				  );  				@new_route = map { [ $_, $stop_id{$_}, {} ] } @{ $opt{route} };  			} @@ -1268,9 +1272,10 @@ sub sanity_check {  		  . ' Stimmt das wirklich?';  	}  	if ( $journey->{edited} & 0x0010 and not $lax ) { -		my @unknown_stations -		  = $self->{stations} -		  ->grep_unknown( map { $_->[0] } @{ $journey->{route} } ); +		my @unknown_stations = $self->{stations}->grep_unknown( +			backend_id => $journey->{backend_id}, +			names      => [ map { $_->[0] } @{ $journey->{route} } ] +		);  		if (@unknown_stations) {  			return 'Unbekannte Station(en): ' . join( ', ', @unknown_stations );  		} diff --git a/lib/Travelynx/Model/Stations.pm b/lib/Travelynx/Model/Stations.pm index c6d9730..5316118 100644 --- a/lib/Travelynx/Model/Stations.pm +++ b/lib/Travelynx/Model/Stations.pm @@ -461,11 +461,16 @@ sub get_by_name {  # Slow  sub get_by_names { -	my ( $self, @names ) = @_; +	my ( $self, %opt ) = @_; -	my @ret -	  = $self->{pg}->db->select( 'stations', '*', { name => { '=', \@names } } ) -	  ->hashes->each; +	my @ret = $self->{pg}->db->select( +		'stations', +		'*', +		{ +			name   => { '=', $opt{names} }, +			source => $opt{backend_id} +		} +	)->hashes->each;  	return @ret;  } @@ -506,10 +511,10 @@ sub search {  # Slow  sub grep_unknown { -	my ( $self, @stations ) = @_; +	my ( $self, %opt ) = @_; -	my %station = map { $_->{name} => 1 } $self->get_by_names(@stations); -	my @unknown_stations = grep { not $station{$_} } @stations; +	my %station          = map  { $_->{name} => 1 } $self->get_by_names(%opt); +	my @unknown_stations = grep { not $station{$_} } @{ $opt{names} };  	return @unknown_stations;  } | 
