diff --git a/lib/Travelynx/Command/database.pm b/lib/Travelynx/Command/database.pm index a42f2f5..407d50a 100644 --- a/lib/Travelynx/Command/database.pm +++ b/lib/Travelynx/Command/database.pm @@ -1300,6 +1300,18 @@ my @migrations = ( } ); }, + + # v31 -> v32 + # travelynx v1.29.18 improves above-mentioned conflict links. + sub { + my ($db) = @_; + $db->query( + qq{ + truncate journey_stats; + update schema_version set version = 32; + } + ); + }, ); sub sync_stations { diff --git a/lib/Travelynx/Model/Journeys.pm b/lib/Travelynx/Model/Journeys.pm index 1239266..2c84181 100755 --- a/lib/Travelynx/Model/Journeys.pm +++ b/lib/Travelynx/Model/Journeys.pm @@ -1458,6 +1458,8 @@ sub compute_stats { my @inconsistencies; my $next_departure = 0; + my $next_id; + my $next_train; for my $journey (@journeys) { $num_trains++; @@ -1488,11 +1490,21 @@ sub compute_stats { if ( $next_departure - $journey->{rt_arr_ts} < 0 ) { push( @inconsistencies, - [ - epoch_to_dt($next_departure) - ->strftime('%d.%m.%Y %H:%M'), - $journey->{id} - ] + { + conflict => { + train => $journey->{type} . ' ' + . ( $journey->{line} // $journey->{no} ), + arr => epoch_to_dt( $journey->{rt_arr_ts} ) + ->strftime('%d.%m.%Y %H:%M'), + id => $journey->{id}, + }, + ignored => { + train => $next_train, + dep => epoch_to_dt($next_departure) + ->strftime('%d.%m.%Y %H:%M'), + id => $next_id, + }, + } ); } else { @@ -1504,6 +1516,9 @@ sub compute_stats { $num_journeys++; } $next_departure = $journey->{rt_dep_ts}; + $next_id = $journey->{id}; + $next_train + = $journey->{type} . ' ' . ( $journey->{line} // $journey->{no} ),; } my $ret = { km_route => $km_route, diff --git a/templates/_history_stats.html.ep b/templates/_history_stats.html.ep index 4d702a1..7e11ee7 100644 --- a/templates/_history_stats.html.ep +++ b/templates/_history_stats.html.ep @@ -6,12 +6,15 @@ warning Inkonsistente Reisedaten
- Die folgenden Abfahrtszeiten liegen vor der Ankunftszeit der - vorherigen Zugfahrt und wurden bei der Wartezeitberechnung - ignoriert. + Die folgenden Zugfahrten wurden bei der Wartezeitberechnung + ignoriert, da ihre Abfahrtszeit vor der Ankunftszeit der + vorherigen Zugfahrt liegt. Bei den restlichen Statistken + wurden sie mitberücksichtigt.